Contrôle vert
Lien copié dans le presse-papiers

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

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

Nous avons probablement tous vu des panneaux de limitation 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 courriel. Les systèmes de gestion du trafic basés sur l'intelligence artificielle (IA) peuvent signaler automatiquement les infractions à la vitesse grâce à la vision par ordinateur. Les séquences en temps réel capturées par les caméras situées aux feux de rue et sur les autoroutes sont utilisées pour l'estimation de la vitesse et pour 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 les sports, les véhicules autonomes et diverses autres applications. Dans cet article, nous allons voir comment tu peux utiliser le modèleUltralytics YOLOv8 pour estimer la vitesse dans tes projets de vision par ordinateur. Nous allons également parcourir étape par étape un exemple de codage pour que tu puisses l'essayer toi-même. C'est parti !

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 dans des accidents de la route dus à des excès de vitesse. En outre, 20 à 50 millions d'autres personnes souffrent de blessures non mortelles, dont beaucoup entraînent des handicaps. On ne saurait trop insister sur l'importance de la sécurité routière, surtout lorsque l'estimation de la vitesse permet de prévenir les accidents, de sauver des vies et de préserver la sécurité et l'efficacité de nos routes. 

L'estimation de la vitesse à l'aide de la vision par ordinateur consiste à détecter et à suivre des objets dans des images vidéo afin de calculer la vitesse à laquelle ils se déplacent. Des algorithmes tels que YOLOv8 peuvent identifier et suivre des objets tels que des véhicules sur plusieurs 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 dans le monde réel. En chronométrant le temps que mettent les objets à se déplacer entre deux points, le système calcule leur vitesse à l'aide du rapport distance-temps.

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

En plus d'attraper les chauffards, 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 horaires de signalisation et l'allocation des ressources. Les connaissances sur les schémas de circulation et les causes des embouteillages peuvent être utilisées pour planifier de nouvelles routes afin de réduire les embouteillages.

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

Les applications d'estimation de la vitesse vont au-delà de la surveillance des routes. Elles peuvent également être pratiques pour surveiller les performances des athlètes, aider les véhicules autonomes à comprendre la vitesse des objets qui se déplacent 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 à l'aide de la vision par ordinateur peut être utilisée. 

Voici quelques exemples d'utilisation de l'estimation de la vitesse :

  • Les voitures autonomes de Tesla utilisent une 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 font des recherches sur l'analyse de la démarche des piétons afin de surveiller la vitesse de marche et d'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 des animaux 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 permet de mesurer la vitesse de marche d'une personne.

Les avantages de l'estimation de la vitesse à l'aide de la vision par ordinateur

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 s'appuient 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 façon transparente à l'infrastructure routière 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é du trafic dans son ensemble.

Essaie toi-même : Estimation de la vitesse à l'aide de YOLOv8

Maintenant que nous avons bien compris ce qu'est l'estimation de la vitesse et ses applications, voyons de plus près comment tu peux intégrer l'estimation de la vitesse dans tes projets de vision par ordinateur grâce au code. Nous allons détecter des 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 sur Internet. Tu peux utiliser la même vidéo ou toute autre vidéo pertinente. Le modèle YOLOv8 identifie le centre de chaque véhicule et calcule sa vitesse en fonction de la vitesse à laquelle ce centre traverse une ligne horizontale dans le cadre vidéo. 

Fig 3. Vidéo d'entrée de voitures sur une route

Avant de plonger, 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 tout à fait exacte. De plus, la vitesse estimée peut varier en fonction de la vitesse de ton GPU.

Étape 1 : Nous allons commencer par installer le paquetage Ultralytics . Ouvre ton invite de commande ou ton terminal et exécute la commande indiquée ci-dessous. 


pip install ultralytics

Jette un coup d'œil à notre guide d'installationUltralytics pour obtenir 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 paquets 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 nécessaires. La bibliothèque OpenCV nous aidera à traiter les vidéos.


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

Vérifie 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 ouvrirons le fichier vidéo d'entrée à l'aide du module VideoCapture d'OpenCV. Nous extrairons également la largeur, la hauteur et les images par seconde (ips) 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 graveur vidéo pour enregistrer nos résultats finaux de l'estimation de la vitesse. Le fichier vidéo de sortie sera enregistré sous le nom de "speed_estimation.avi".


video_writer = cv2.VideoWriter(
"speed_estimation.avi",
cv2.VideoWriter_fourcc(*"mp4v"),
fps, (w, h))

‍Étape6 : 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 dans les 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 à l'aide des points de ligne et des 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:        
    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 vidéo et d'écriture et nous fermons toutes les fenêtres OpenCV.


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

Étape 10 : Sauvegarde ton script. Si tu travailles à partir de ton terminal ou de l'invite de commande, exécute le script à l'aide de la commande suivante :


python your_script_name.py

Si ton code est exécuté avec succès, ton fichier vidéo de sortie ressemblera à ceci.

Fig 4. La sortie de l'estimation de la vitesse à l'aide de YOLOv8.


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. Des conditions météorologiques défavorables comme la pluie, le brouillard ou la neige peuvent poser 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 empêcher 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 par le 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é. Ta solution peut nécessiter un matériel coûteux pour gérer tout cela et s'assurer que tout fonctionne rapidement sans retard.

Ensuite, il y a la question de la protection 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 sur 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 problèmes éthiques et juridiques qui doivent être traités avec le plus grand soin.

En route vers l'avenir

L'utilisation du modèleUltralytics 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 à relever, comme la précision dans des conditions difficiles et la prise en compte des questions de confidentialité, les avantages sont multiples. L'estimation de la vitesse basée sur la vision par ordinateur est plus rentable, plus adaptable et plus précise que les anciennes méthodes. Elle est utile dans divers secteurs comme les transports, les sports, la surveillance et les voitures autonomes. Avec tous ces avantages et ces applications, elle est destinée à devenir un élément clé des futurs systèmes intelligents.

Intéressé par l'IA ? Connecte-toi avec 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 ! 🚀

Logo FacebookLogo de TwitterLogo LinkedInSymbole du lien de copie

Lire la suite dans cette catégorie

Construisons ensemble le futur
de l'IA !

Commence ton voyage avec le futur de l'apprentissage automatique.