Estimation de la vitesse à l'aide de Ultralytics YOLO11 🚀
Qu'est-ce que l'estimation de la vitesse ?
L'estimation de la vitesse est le processus de calcul de la vitesse de déplacement d'un objet dans un contexte donné, souvent utilisé dans les applications de vision par ordinateur. En utilisant Ultralytics YOLO11, tu peux maintenant calculer la vitesse d'un objet en utilisant le suivi d'objet ainsi que les données de distance et de temps, ce qui est crucial pour des tâches telles que la circulation et la surveillance. La précision de l'estimation de la vitesse influence directement l'efficacité et la fiabilité de diverses applications, ce qui en fait un élément clé dans l'avancement des systèmes intelligents et des processus de prise de décision en temps réel.
Regarde : Estimation de la vitesse à l'aide de Ultralytics YOLO11
Jette un coup d'œil à notre blog
Pour en savoir plus sur l'estimation de la vitesse, consulte notre article de blog : Ultralytics YOLO11 pour l'estimation de la vitesse dans les projets de vision par ordinateur
Avantages de l'estimation de la vitesse ?
- Contrôle efficace du trafic : Une estimation précise de la vitesse permet de gérer le flux de circulation, d'améliorer la sécurité et de réduire les embouteillages sur les routes.
- Navigation autonome précise : Dans les systèmes autonomes comme les voitures auto-conduites, une estimation fiable de la vitesse garantit une navigation sûre et précise du véhicule.
- Amélioration de la sécurité de la surveillance : L'estimation de la vitesse dans l'analyse de la surveillance permet d'identifier les comportements inhabituels ou les menaces potentielles, ce qui améliore l'efficacité des mesures de sécurité.
Applications dans le monde réel
Transport | Transport |
---|---|
Estimation de la vitesse sur route à l'aide de Ultralytics YOLO11 | Estimation de la vitesse sur un pont à l'aide de Ultralytics YOLO11 |
Estimation de la vitesse à l'aide de YOLO11 Exemple
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
# Video writer
video_writer = cv2.VideoWriter("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Define speed region points
speed_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
speed = solutions.SpeedEstimator(
show=True, # Display the output
model="yolo11n-pose.pt", # Path to the YOLO11 model file.
region=speed_region, # Pass region points
# classes=[0, 2], # If you want to estimate speed of specific classes.
# line_width=2, # Adjust the line width for bounding boxes and text display
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if success:
out = speed.estimate_speed(im0)
video_writer.write(im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
continue
print("Video frame is empty or video processing has been successfully completed.")
break
cap.release()
cv2.destroyAllWindows()
La vitesse est une estimation
La vitesse est une estimation et peut ne pas être tout à fait exacte. De plus, l'estimation peut varier en fonction de la vitesse de GPU .
Arguments SpeedEstimator
Nom | Type | Défaut | Description |
---|---|---|---|
model | str | None | Chemin d'accès au fichier modèle Ultralytics YOLO |
region | list | [(20, 400), (1260, 400)] | Liste des points définissant la région de comptage. |
line_width | int | 2 | Épaisseur du trait pour les boîtes de délimitation. |
show | bool | False | Drapeau permettant de contrôler l'affichage ou non du flux vidéo. |
Arguments model.track
Argument | Type | Défaut | Description |
---|---|---|---|
source | str | None | Spécifie le répertoire source pour les images ou les vidéos. Prend en charge les chemins d'accès aux fichiers et les URL. |
persist | bool | False | Permet un suivi persistant des objets entre les images, en conservant les identifiants à travers les séquences vidéo. |
tracker | str | botsort.yaml | Spécifie l'algorithme de suivi à utiliser, par ex, bytetrack.yaml ou botsort.yaml . |
conf | float | 0.3 | Définit le seuil de confiance pour les détections ; des valeurs plus faibles permettent de suivre plus d'objets mais peuvent inclure des faux positifs. |
iou | float | 0.5 | Définit le seuil d'intersection sur l'union (IoU) pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats par indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées. |
verbose | bool | True | Contrôle l'affichage des résultats du suivi, en fournissant une sortie visuelle des objets suivis. |
FAQ
Comment estimer la vitesse d'un objet à l'aide de Ultralytics YOLO11 ?
L'estimation de la vitesse des objets avec Ultralytics YOLO11 implique de combiner les techniques de détection et de suivi des objets. Tout d'abord, tu dois détecter les objets dans chaque image à l'aide du modèle YOLO11. Puis, suivre ces objets entre les images pour calculer leur mouvement dans le temps. Enfin, utilise la distance parcourue par l'objet entre les images et la fréquence des images pour estimer sa vitesse.
Exemple:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
region=[(0, 360), (1280, 360)],
model="yolo11n.pt",
show=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
im0 = speed_obj.estimate_speed(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Pour plus de détails, reporte-toi à notre article de blog officiel.
Quels sont les avantages de l'utilisation de Ultralytics YOLO11 pour l'estimation de la vitesse dans la gestion du trafic ?
L'utilisation de Ultralytics YOLO11 pour l'estimation de la vitesse offre des avantages significatifs dans la gestion du trafic :
- Sécurité renforcée: Estime avec précision la vitesse des véhicules pour détecter les excès de vitesse et améliorer la sécurité routière.
- Surveillance en temps réel: Profite de la capacité de détection d'objets en temps réel de YOLO11 pour surveiller efficacement le flux de circulation et les embouteillages.
- Évolutivité: Déploie le modèle sur diverses configurations matérielles, des appareils périphériques aux serveurs, ce qui garantit des solutions flexibles et évolutives pour les mises en œuvre à grande échelle.
Pour plus d'applications, voir les avantages de l'estimation de la vitesse.
YOLO11 peut-il être intégré à d'autres frameworks d'IA comme TensorFlow ou PyTorch?
Oui, YOLO11 peut être intégré à d'autres frameworks d'IA tels que TensorFlow et PyTorch. Ultralytics permet d'exporter les modèles YOLO11 vers différents formats tels que ONNX, TensorRT, et CoreML, ce qui garantit une bonne interopérabilité avec d'autres frameworks de ML.
Pour exporter un modèle YOLO11 au format ONNX :
Pour en savoir plus sur l'exportation des modèles, consulte notre guide sur l'exportation.
Quelle est la précision de l'estimation de la vitesse à l'aide de Ultralytics YOLO11 ?
La précision de l'estimation de la vitesse à l'aide de Ultralytics YOLO11 dépend de plusieurs facteurs, notamment de la qualité du suivi des objets, de la résolution et de la fréquence d'images de la vidéo, ainsi que des variables environnementales. Bien que l'estimateur de vitesse fournisse des estimations fiables, il peut ne pas être précis à 100 % en raison des variations de la vitesse de traitement des images et de l'occlusion des objets.
Remarque: il faut toujours tenir compte de la marge d'erreur et valider les estimations avec les données de la vérité terrain lorsque c'est possible.
Pour d'autres conseils sur l'amélioration de la précision, consulte la rubrique Arguments SpeedEstimator
section.
Pourquoi choisir Ultralytics YOLO11 plutôt que d'autres modèles de détection d'objets comme TensorFlow Object Detection API ?
Ultralytics YOLO11 offre plusieurs avantages par rapport à d'autres modèles de détection d'objets, tels que l'API de détection d'objets TensorFlow :
- Performance en temps réel: YOLO11 est optimisé pour la détection en temps réel, offrant une vitesse et une précision élevées.
- Facilité d'utilisation: Conçu avec une interface conviviale, YOLO11 simplifie la formation et le déploiement des modèles.
- Polyvalence: Prend en charge de multiples tâches, notamment la détection d'objets, la segmentation et l'estimation de la pose.
- Communauté et soutien: YOLO11 est soutenu par une communauté active et une documentation complète, ce qui garantit aux développeurs les ressources dont ils ont besoin.
Pour plus d'informations sur les avantages de YOLO11, explore la page détaillée de notre modèle.