Connectez-vous à YOLO Vision 2025 !
25 septembre 2025
10:00 — 18:00, heure d'été britannique
Événement hybride
Yolo Vision 2024

Ultralytics YOLOv8 pour l'estimation de la vitesse dans les projets de vision par ordinateur

Abirami Vina

5 min de lecture

23 mai 2024

Découvrez comment le modèle Ultralytics YOLOv8 peut être utilisé pour l'estimation de la vitesse dans vos projets de vision par ordinateur. Essayez-le vous-même avec un exemple de codage simple.

Nous avons probablement tous vu des panneaux de signalisation indiquant les limites de vitesse. Certains d'entre nous ont peut-être même reçu une notification automatisée de violation de la limite 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 les caméras situées 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é routiè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 vous pouvez utiliser le modèle Ultralytics YOLOv8 pour l'estimation de la vitesse dans vos projets de vision par ordinateur. Nous allons également passer en revue étape par étape un exemple de codage afin que vous puissiez l'essayer vous-même. Commençons !

L'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 des suites d'accidents de la circulation dus à la vitesse excessive. De plus, 20 à 50 millions de personnes supplémentaires subissent des blessures non mortelles, dont beaucoup entraînent des handicaps. L'importance de la sécurité routière ne saurait être surestimée, d'autant plus que l'estimation de la vitesse permet de prévenir les accidents, de sauver des vies et de garantir la sécurité et l'efficacité de nos routes. 

L'estimation de la vitesse par vision artificielle implique la détection et le suivi d'objets dans des trames 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 trames 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 rapport distance/temps.

Fig 1. Estimation de la vitesse à l'aide du modèle Ultralytics YOLOv8

Outre la capture 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 soutenir les tâches de gestion du trafic telles que l'optimisation des temps de signalisation et l'allocation des ressources. Les informations sur les schémas de trafic et les causes de la congestion peuvent être utilisées pour planifier de nouvelles routes afin de réduire la congestion du trafic.

Applications de l'estimation de la vitesse dans d'autres industries

Les applications d'estimation de la vitesse ne se limitent pas à la surveillance des routes. Elles peuvent également être utiles pour surveiller les performances des athlètes, aider les véhicules autonomes à comprendre la vitesse des objets qui les entourent, 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 artificielle peut être utilisée. 

Voici quelques exemples d'endroits 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 aux Jeux olympiques de 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 la vitesse 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 les signes de détresse ou de maladie.
Fig 2. L'estimation de la vitesse peut mesurer la vitesse de marche d'une personne.

Les avantages de l'estimation de la vitesse par vision artificielle

Les systèmes d'estimation de la vitesse basés sur la 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 de circulation existante. De plus, ces systèmes peuvent être conçus pour effectuer un certain nombre de tâches complexes telles que l'identification du type de véhicule et l'analyse des schémas de circulation afin d'améliorer la fluidité et la sécurité globales de la circulation.

Essayez par vous-même : Estimation de la vitesse à l'aide de 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 vous pouvez intégrer l'estimation de la vitesse dans vos projets de vision par ordinateur grâce au code. Nous allons détecter les véhicules en mouvement et estimer leur vitesse à l'aide du modèle YOLOv8.

Cet exemple utilise une vidéo de voitures sur une route téléchargée depuis Internet. Vous pouvez 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 en fonction de la rapidité avec laquelle ce centre traverse une ligne horizontale dans le cadre de la vidéo. 

Avant de nous lancer, il est important de noter que, dans ce cas, le calcul de la distance est approximatif et basé sur la distance euclidienne. L'étalonnage de la caméra n'est pas pris en compte, et l'estimation de la vitesse peut donc ne pas être entièrement précise. De plus, la vitesse estimée peut varier en fonction de la vitesse de votre GPU.

Étape 1 : Nous allons commencer par installer le paquet Ultralytics. Ouvrez votre invite de commande ou votre terminal et exécutez la commande indiquée ci-dessous.

pip install ultralytics 

Consultez notre guide d'installation Ultralytics pour obtenir des instructions étape par étape et connaître les meilleures pratiques concernant le processus d'installation. Si vous rencontrez des problèmes lors de l'installation des packages requis pour YOLOv8, notre guide des problèmes courants propose 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.names

Consultez tous les modèles que nous prenons en charge pour déterminer quel modèle convient le mieux à votre projet.

Étape 4 : Dans cette étape, nous allons ouvrir le fichier vidéo d’entrée à l’aide du module VideoCapture d’OpenCV. Nous allons également extraire la largeur, la hauteur et le nombre d’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 le rédacteur vidéo pour enregistrer nos résultats finaux d’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 ligne pour l'estimation de la vitesse. Pour notre vidéo d'entrée, cette ligne sera placée horizontalement au milieu de la trame. N'hésitez pas à jouer avec les valeurs pour placer la ligne dans les positions les plus appropriées, en fonction de votre vidéo d'entrée.

line_pts = [(0, 360), (1280, 360)]

Étape 7 : Maintenant, nous pouvons initialiser l’objet d’estimation de la vitesse à l’aide des points de ligne définis et des noms de classes.

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 de rédaction vidéo et fermons toutes les fenêtres OpenCV.

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Étape 10 : Enregistrez votre script. Si vous travaillez à partir de votre terminal ou de votre invite de commande, exécutez le script à l’aide de la commande suivante :

python your_script_name.py


Les 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. Les conditions météorologiques défavorables comme la pluie, le brouillard ou la neige peuvent causer des problèmes au système car elles peuvent obstruer 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 de suivre et d'estimer avec précision la vitesse d'un véhicule cible. De mauvaises conditions d'éclairage qui provoquent des ombres ou un é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 circulation de haute qualité. Votre solution peut nécessiter du matériel coûteux pour gérer tout cela et garantir que tout fonctionne rapidement sans délai.

Ensuite, il y a la question de la vie privée. Les données collectées par ces systèmes peuvent inclure les détails du véhicule d'une personne, 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 graves questions éthiques et juridiques qui doivent être traitées avec le plus grand soin.

Vers l'avenir à toute vitesse

L'utilisation du modèle Ultralytics YOLOv8 pour l'estimation de la vitesse offre une solution flexible et efficace pour de nombreuses applications. Bien qu'il existe des défis, tels que la précision dans des conditions difficiles et la résolution des problèmes de confidentialité, les avantages sont multiples. L'estimation de la vitesse basée sur la vision par ordinateur est plus rentable, adaptable et précise que les méthodes plus anciennes. Elle est utile dans divers secteurs tels que le transport, le sport, la surveillance et les voitures autonomes. Avec tous ses avantages et ses applications, elle est destinée à être un élément clé des futurs systèmes intelligents.

L'IA vous intéresse ? Connectez-vous avec notre communauté ! Explorez 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 tels que la santé et l'agriculture. Collaborez, innovez et apprenez avec nous ! 🚀

Construisons ensemble l'avenir
de l'IA !

Commencez votre parcours avec l'avenir de l'apprentissage automatique

Démarrer gratuitement
Lien copié dans le presse-papiers