Ultralytics YOLOv8 pour l'estimation de vitesse dans les projets de vision par ordinateur
Découvre comment le modèle Ultralytics YOLOv8 peut être utilisé pour l'estimation de la vitesse dans tes projets de vision par ordinateur. Essaie-le toi-même avec un exemple de code simple.

Nous avons probablement tous déjà vu des panneaux de limitation de vitesse. Certains d'entre nous ont peut-être même reçu une notification automatique d'infraction pour excès de vitesse par courrier ou par e-mail. Les systèmes de gestion du trafic basés sur l'intelligence artificielle (IA) peuvent signaler automatiquement les excès de vitesse grâce à la vision par ordinateur. Les images en temps réel capturées par des caméras aux feux de signalisation et sur les autoroutes sont utilisées pour estimer la vitesse et renforcer la sécurité routière.
L'estimation de la vitesse ne se limite pas à la sécurité autoroutière. Elle peut être utilisée dans le sport, les véhicules autonomes et diverses autres applications. Dans cet article, nous allons discuter de la façon dont tu peux utiliser le modèle Ultralytics YOLOv8 pour l'estimation de la vitesse dans tes projets de vision par ordinateur. Nous suivrons également un exemple de code étape par étape pour que tu puisses l'essayer toi-même. Commençons !
Link to this sectionL'estimation de la vitesse facilite la gestion du trafic#
Selon l'Organisation mondiale de la Santé (OMS), environ 1,19 million de personnes meurent chaque année dans des accidents de la route à cause de la vitesse. De plus, 20 à 50 millions d'autres personnes subissent des blessures non mortelles dont beaucoup entraînent des handicaps. L'importance de la sécurité routière ne peut être surestimée, surtout lorsque l'estimation de la vitesse aide à prévenir les accidents, sauve des vies et maintient nos routes sûres et efficaces.
L'estimation de la vitesse par vision par ordinateur implique la détection et le suivi d'objets dans les images vidéo pour calculer leur vitesse de déplacement. Des algorithmes comme YOLOv8 peuvent identifier et suivre des objets tels que des véhicules à travers des images consécutives. Le système mesure la distance parcourue par ces objets à l'aide de caméras calibrées ou de points de référence pour évaluer les distances réelles. En chronométrant le temps nécessaire aux objets pour se déplacer entre deux points, le système calcule leur vitesse en utilisant le ratio distance-temps.

Fig 1. Estimation de la vitesse utilisant le modèle Ultralytics YOLOv8.
Outre la verbalisation des excès de vitesse, les systèmes d'estimation de la vitesse intégrés à l'IA peuvent collecter des données pour faire des prédictions sur le trafic. Ces prédictions peuvent appuyer les tâches de gestion du trafic comme l'optimisation du timing des feux et l'allocation des ressources. Les informations sur les modèles de trafic et les causes de congestion peuvent être utilisées pour planifier de nouvelles routes afin de réduire les embouteillages.
Link to this sectionApplications de l'estimation de la vitesse dans d'autres industries#
Les applications de l'estimation de la vitesse vont au-delà de la surveillance des routes. Elle peut également être utile pour surveiller les performances des athlètes, aider les véhicules autonomes à comprendre la vitesse des objets se déplaçant autour d'eux, détecter les comportements suspects, etc. Partout où une caméra peut être utilisée pour mesurer la vitesse d'un objet, l'estimation de la vitesse par vision par ordinateur peut être utilisée.
Voici quelques exemples de domaines où l'estimation de la vitesse est utilisée :
- Les voitures autonomes de Tesla utilisent l'estimation de la vitesse basée sur la vision pour éviter les collisions.
- La vision par ordinateur et l'estimation de la vitesse seront utilisées lors des Jeux Olympiques 2024 pour améliorer l'analyse des performances dans les épreuves d'athlétisme.
- Les villes intelligentes étudient l'analyse de la démarche des piétons pour surveiller les vitesses de marche et accroître la mobilité et la sécurité urbaines. Ces systèmes peuvent alerter les conducteurs de la présence de piétons et prévenir les accidents.
- Les systèmes de surveillance du comportement animal utilisent l'estimation de la vitesse pour suivre les mouvements des animaux et détecter des signes de détresse ou de maladie.

Fig 2. L'estimation de la vitesse peut mesurer la vitesse de marche d'une personne.
Link to this sectionLes avantages de l'estimation de la vitesse par vision par ordinateur#
Les systèmes d'estimation de la vitesse par vision remplacent les méthodes traditionnelles basées sur des capteurs en raison de leur précision accrue, de leur rentabilité et de leur flexibilité. Contrairement aux systèmes qui reposent sur des capteurs coûteux comme le LiDAR, la vision par ordinateur utilise des caméras standard pour surveiller et analyser la vitesse en temps réel. Les solutions de vision par ordinateur pour l'estimation de la vitesse peuvent être intégrées de manière transparente à l'infrastructure routière existante. De plus, ces systèmes peuvent être conçus pour effectuer un certain nombre de tâches complexes comme l'identification du type de véhicule et l'analyse des modèles de trafic afin d'améliorer le flux de circulation et la sécurité globale.
Link to this sectionEssaie par toi-même : Estimation de la vitesse utilisant YOLOv8#
Maintenant que nous avons une compréhension claire de l'estimation de la vitesse et de ses applications, examinons de plus près comment tu peux intégrer l'estimation de la vitesse dans tes projets de vision par ordinateur via le code. Nous allons détecter les véhicules en mouvement et estimer leur vitesse en utilisant le modèle YOLOv8.
Cet exemple utilise une vidéo de voitures sur une route téléchargée depuis Internet. Tu peux utiliser la même vidéo ou toute vidéo pertinente. Le modèle YOLOv8 identifie le centre de chaque véhicule et calcule sa vitesse selon la rapidité avec laquelle ce centre franchit une ligne horizontale dans l'image vidéo.
Avant de commencer, il est important de noter que, dans ce cas, le calcul de distance est approximatif et basé sur la distance euclidienne. Le calibrage de la caméra n'est pas pris en compte, donc l'estimation de la vitesse peut ne pas être totalement précise. De plus, la vitesse estimée peut varier en fonction de la vitesse de ton GPU.
Étape 1 : Nous allons commencer par installer le package Ultralytics. Ouvre ton invite de commande ou ton terminal et exécute la commande ci-dessous.
pip install ultralyticsJette un œil à notre guide d'installation Ultralytics pour des instructions étape par étape et les meilleures pratiques sur le processus d'installation. Si tu rencontres des problèmes lors de l'installation des packages requis pour YOLOv8, notre guide des problèmes courants contient des solutions et des conseils utiles.
Étape 2 : Ensuite, nous allons importer les bibliothèques requises. La bibliothèque OpenCV nous aidera à gérer le traitement vidéo.
import cv2
from ultralytics import YOLO, solutionsÉtape 3 : Ensuite, nous pouvons charger le modèle YOLOv8 et récupérer les noms des classes que le modèle peut détecter.
model = YOLO("yolov8n.pt")
names = model.model.namesDécouvre tous les modèles que nous prenons en charge pour comprendre quel modèle convient le mieux à ton projet.
Étape 4 : Dans cette étape, nous allons ouvrir le fichier vidéo d'entrée en utilisant le module VideoCapture d'OpenCV. Nous extrairons également la largeur, la hauteur et les images par seconde (fps) de la vidéo.
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))Étape 5 : Ici, nous allons initialiser l'enregistreur vidéo pour sauvegarder nos résultats finaux de l'estimation de la vitesse. Le fichier vidéo de sortie sera enregistré sous le nom « speed_estimation.avi ».
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))Étape 6 : Ensuite, nous pouvons définir les points de la ligne pour l'estimation de la vitesse. Pour notre vidéo d'entrée, cette ligne sera placée horizontalement au milieu de l'image. N'hésite pas à jouer avec les valeurs pour placer la ligne aux positions les plus appropriées, en fonction de ta vidéo d'entrée.
line_pts = [(0, 360), (1280, 360)]Étape 7 : Maintenant, nous pouvons initialiser l'objet d'estimation de la vitesse en utilisant les points de ligne et les noms de classe définis.
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)Étape 8 : Le cœur du script traite la vidéo image par image. Nous lisons chaque image et détectons et suivons les objets. La vitesse des objets suivis est estimée et l'image annotée est écrite dans la vidéo de sortie.
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)Étape 9 : Enfin, nous libérons les objets de capture et d'écriture vidéo et fermons toutes les fenêtres OpenCV.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Étape 10 : Sauvegarde ton script. Si tu travailles depuis ton terminal ou ton invite de commande, exécute le script en utilisant la commande suivante :
python your_script_name.pyLink to this sectionLes défis de l'estimation de la vitesse basée sur la vision#
Il est également important de comprendre les défis liés à la mise en œuvre de l'estimation de la vitesse à l'aide de la vision par ordinateur. Des conditions météorologiques défavorables comme la pluie, le brouillard ou la neige peuvent poser problème au système car elles peuvent entraver la visibilité de la route. De même, les occlusions causées par d'autres véhicules ou objets peuvent rendre difficile pour ces systèmes le suivi et l'estimation précise de la vitesse d'un véhicule cible. De mauvaises conditions d'éclairage provoquant des ombres ou l'éblouissement du soleil peuvent également compliquer davantage la tâche d'estimation de la vitesse.
Un autre défi concerne la puissance de calcul. Pour estimer la vitesse en temps réel, nous devons traiter beaucoup de données visuelles provenant de caméras de trafic haute qualité. Ta solution pourrait nécessiter du matériel coûteux pour gérer tout cela et s'assurer que tout fonctionne rapidement sans délai.
Ensuite, il y a la question de la confidentialité. Les données collectées par ces systèmes peuvent inclure les détails du véhicule d'un individu comme la marque, le modèle et les informations de la plaque d'immatriculation, qui sont recueillies sans son consentement. Certaines caméras HD modernes peuvent même capturer des images des occupants à l'intérieur de la voiture. Une telle collecte de données peut soulever de sérieux problèmes éthiques et juridiques qui doivent être traités avec le plus grand soin.
Link to this sectionEn route vers l'avenir#
Utiliser le modèle Ultralytics YOLOv8 pour l'estimation de la vitesse offre une solution flexible et efficace pour de nombreuses utilisations. Bien qu'il y ait des défis, comme la précision dans des conditions difficiles et le traitement des questions de confidentialité, les avantages sont multiples. L'estimation de la vitesse par vision par ordinateur est plus rentable, adaptable et précise que les méthodes anciennes. Elle est utile dans divers secteurs comme le transport, le sport, la surveillance et les voitures autonomes. Avec tous ces avantages et applications, elle est destinée à être une pièce maîtresse des futurs systèmes intelligents.
Tu t'intéresses à l'IA ? Rejoins notre communauté ! Explore notre dépôt GitHub pour en savoir plus sur la façon dont nous utilisons l'IA pour créer des solutions innovantes dans divers secteurs comme la santé et l'agriculture. Collabore, innove et apprends avec nous ! 🚀






