Estimation de la vitesse à l'aide d'Ultralytics YOLO11 🚀
Qu'est-ce que l'estimation de la vitesse ?
L'estimation de la vitesse est le processus de calcul du taux de mouvement d'un objet dans un contexte donné, souvent utilisé dans les applications de vision par ordinateur. En utilisant Ultralytics YOLO11, vous pouvez maintenant calculer la vitesse des objets en utilisant le suivi d'objets ainsi que les données de distance et de temps, ce qui est essentiel pour des tâches telles que la surveillance du trafic 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.
Regarder : Estimation de la vitesse à l'aide d'Ultralytics YOLO11
Consultez notre blog
Pour des informations plus approfondies sur l'estimation de la vitesse, consultez 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 : L'estimation précise de la vitesse aide à gérer la fluidité du trafic, à améliorer la sécurité et à réduire la congestion sur les routes.
- Navigation autonome précise : Dans les systèmes autonomes comme les voitures autonomes, une estimation fiable de la vitesse assure une navigation sûre et précise du véhicule.
- Sécurité de Surveillance Améliorée : 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 concrètes
Transport | Transport |
---|---|
![]() |
![]() |
Estimation de la vitesse sur route à l'aide d'Ultralytics YOLO11 | Estimation de la vitesse sur un pont à l'aide d'Ultralytics YOLO11 |
La vitesse est une estimation
La vitesse sera une estimation et peut ne pas être tout à fait exacte. De plus, l'estimation peut varier en fonction des spécifications de la caméra et des facteurs connexes.
Estimation de la vitesse à l'aide d'Ultralytics YOLO
# Run a speed example
yolo solutions speed show=True
# Pass a source video
yolo solutions speed source="path/to/video.mp4"
# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
show=True, # display the output
model="yolo11n.pt", # path to the YOLO11 model file.
fps=fps, # adjust speed based on frame per second
# max_speed=120, # cap speed to a max value (km/h) to avoid outliers
# max_hist=5, # minimum frames object tracked before computing speed
# meter_per_pixel=0.05, # highly depends on the camera configuration
# classes=[0, 2], # estimate speed of specific classes.
# line_width=2, # adjust the line width for bounding boxes
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = speedestimator(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
SpeedEstimator
Arguments
Voici un tableau avec les SpeedEstimator
arguments :
Argument | Type | Par défaut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier de modèle Ultralytics YOLO. |
fps |
float |
30.0 |
Images par seconde utilisées pour les calculs de vitesse. |
max_hist |
int |
5 |
Nombre maximal de points historiques à suivre par objet pour les calculs de vitesse/direction. |
meter_per_pixel |
float |
0.05 |
Facteur d'échelle utilisé pour convertir la distance en pixels en unités du monde réel. |
max_speed |
int |
120 |
Limite de vitesse maximale dans les superpositions visuelles (utilisée dans les alertes). |
L'argument SpeedEstimator
la solution permet l'utilisation de track
paramètres :
Argument | Type | Par défaut | Description |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Spécifie l'algorithme de suivi à utiliser, par exemple, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Définit le seuil de confiance pour les détections ; des valeurs plus basses permettent de suivre plus d'objets, mais peuvent inclure de faux positifs. |
iou |
float |
0.5 |
Définit le seuil Intersection sur Union (IoU) pour filtrer les détections qui se chevauchent. |
classes |
list |
None |
Filtre les résultats par index de classe. Par exemple, classes=[0, 2, 3] suit uniquement les classes spécifiées. |
verbose |
bool |
True |
Contrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis. |
device |
str |
None |
Spécifie le périphérique pour l'inférence (par exemple, cpu , cuda:0 ou 0 ). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle. |
De plus, les options de visualisation suivantes sont prises en charge :
Argument | Type | Par défaut | Description |
---|---|---|---|
show |
bool |
False |
Si True , affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour visuel immédiat pendant le développement ou les tests. |
line_width |
None or int |
None |
Spécifie la largeur de ligne des boîtes englobantes. Si None , la largeur de ligne est automatiquement ajustée en fonction de la taille de l'image. Fournit une personnalisation visuelle pour plus de clarté. |
show_conf |
bool |
True |
Affiche le score de confiance pour chaque détection à côté de l'étiquette. Donne un aperçu de la certitude du modèle pour chaque détection. |
show_labels |
bool |
True |
Affiche les étiquettes pour chaque détection dans la sortie visuelle. Fournit une compréhension immédiate des objets détectés. |
FAQ
Comment estimer la vitesse d'un objet à l'aide d'Ultralytics YOLO11 ?
L'estimation de la vitesse d'un objet avec Ultralytics YOLO11 implique de combiner des techniques de détection d'objets et de suivi. Tout d'abord, vous devez détecter les objets dans chaque image en utilisant le modèle YOLO11. Ensuite, suivez ces objets à travers les images pour calculer leur mouvement dans le temps. Enfin, utilisez la distance parcourue par l'objet entre les images et la fréquence d'images pour estimer sa vitesse.
Exemple :
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.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
speedestimator = solutions.SpeedEstimator(
model="yolo11n.pt",
show=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = speedestimator(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Pour plus de détails, consultez notre article de blog officiel.
Quels sont les avantages de l'utilisation d'Ultralytics YOLO11 pour l'estimation de la vitesse dans la gestion du trafic ?
L'utilisation d'Ultralytics YOLO11 pour l'estimation de la vitesse offre des avantages significatifs dans la gestion du trafic :
- Sécurité renforcée : Estimez 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 : Bénéficiez de la capacité de détection d'objets en temps réel de YOLO11 pour surveiller efficacement le flux de trafic et la congestion.
- Scalabilité : Déployez le modèle sur diverses configurations matérielles, des périphériques edge aux serveurs, garantissant des solutions flexibles et évolutives pour les implémentations à grande échelle.
Pour plus d'applications, consultez 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 comme TensorFlow et PyTorch. Ultralytics prend en charge l'exportation des modèles YOLO11 vers différents formats comme ONNX, TensorRT et CoreML, assurant une interopérabilité fluide avec d'autres frameworks de ML.
Pour exporter un modèle YOLO11 au format ONNX :
yolo export model=yolo11n.pt format=onnx
Apprenez-en davantage sur l'exportation de modèles dans notre guide sur l'exportation.
Quelle est la précision de l'estimation de la vitesse avec Ultralytics YOLO11 ?
La précision de l'estimation de la vitesse à l'aide d'Ultralytics YOLO11 dépend de plusieurs facteurs, notamment la qualité du suivi des objets, la résolution et la fréquence d'images de la vidéo, et les 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 : Tenez toujours compte de la marge d’erreur et validez les estimations avec des données de vérité terrain lorsque cela est possible.
Pour d'autres conseils sur l'amélioration de la précision, consultez le Arguments SpeedEstimator
section.