YOLO Vision 2026 :

Cartes de chaleur de suivi d'objets avec Ultralytics YOLO26#

Open Heatmaps In Colab

La solution de carte thermique dans Ultralytics YOLO26 suit les objets à travers les images vidéo et superpose leur intensité de mouvement accumulée sur chaque image, de sorte que les zones fréquentées brillent dans des couleurs chaudes tandis que les zones calmes restent froides. Basée sur le suivi d'objets de YOLO26, elle transforme n'importe quelle vidéo en une carte d'activité spatiale qui révèle le flux de trafic, le mouvement des foules et les zones de séjour avec un simple appel Python ou une commande CLI.



Watch: Heatmaps using Ultralytics YOLO26

Pourquoi utiliser des cartes de chaleur pour l'analyse vidéo ?#

  • Repère les modèles d'activité en un coup d'œil : L'intensité s'accumule là où les objets suivis passent du temps ; ainsi, les voies à fort trafic, les rayons populaires ou les goulots d'étranglement de foule ressortent sans examen manuel image par image.
  • Suivi intégré : La solution exécute la détection et le suivi YOLO26 en interne, il n'y a donc aucun pipeline de suivi distinct à mettre en place.
  • Comptage lors de la même passe : Passe un region pour compter les objets entrant et sortant d'une zone pendant que la carte thermique se construit, combinant ainsi deux tâches d'analyse en une seule exécution.

Applications dans le monde réel#

TransportsCommerce de détail
Superposition de carte thermique Ultralytics YOLO montrant la densité du trafic automobileSuperposition de carte thermique Ultralytics YOLO montrant le mouvement des clients de détail
Carte de chaleur de transport Ultralytics YOLOCarte de chaleur de vente au détail Ultralytics YOLO

Comment générer des cartes de chaleur avec Ultralytics YOLO#

Exécute la solution Heatmap sur une source vidéo depuis la CLI ou Python. L'exemple Python écrit les images traitées dans un fichier vidéo de sortie :

Cartes de chaleur utilisant Ultralytics YOLO
# Run a heatmap example
yolo solutions heatmap show=True

# Pass a source video
yolo solutions heatmap source="path/to/video.mp4"

# Pass a custom colormap
yolo solutions heatmap colormap=cv2.COLORMAP_INFERNO

# Heatmaps + object counting
yolo solutions heatmap region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"

Arguments de Heatmap()#

Voici un tableau avec les arguments de Heatmap :

ArgumentTypeDéfautDescription
modelstrNoneChemin d'accès vers un fichier de modèle YOLO d'Ultralytics.
colormapintcv2.COLORMAP_DEEPGREENPalette de couleurs à utiliser pour la carte de chaleur.
show_inboolTrueIndicateur pour contrôler s'il faut afficher les comptages entrants sur le flux vidéo.
show_outboolTrueIndicateur pour contrôler s'il faut afficher les comptages sortants sur le flux vidéo.
regionlist ou dictNonePoints définissant la région d'intérêt, soit une liste de tuples (x, y), soit un dictionnaire associant des noms de région à des listes de points pour plusieurs régions (RegionCounter uniquement). Lorsque réglé sur None, les solutions nécessitant une région se replient sur une valeur par défaut prédéfinie.
line_widthint2Épaisseur de ligne pour les boîtes, les points clés et les comptes tracés par la solution.
verboseboolTrueActive le journal par trame de la solution concernant la forme d'entrée, les comptes de classes et la vitesse de traitement. L'appel de suivi reste toujours silencieux.

Tu peux aussi appliquer différents arguments track dans la solution Heatmap.

ArgumentTypeDéfautDescription
trackerstr'botsort.yaml'Spécifie l'algorithme de suivi à utiliser. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Dé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.
ioufloat0.7Définit le seuil d'Intersection over Union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par index de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées.
devicestrNoneSpé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 arguments de visualisation pris en charge sont listés ci-dessous :

ArgumentTypeDéfautDescription
showboolFalseSi 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.
show_confboolTrueAffiche 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_labelsboolTrueAffiche les étiquettes pour chaque détection dans la sortie visuelle. Permet une compréhension immédiate des objets détectés.

Palettes de couleurs de carte de chaleur#

L'argument colormap accepte n'importe quelle palette de couleurs OpenCV. Passe la constante du module cv2, par exemple colormap=cv2.COLORMAP_INFERNO :

Nom de la carte de couleursDescription
cv2.COLORMAP_AUTUMNCarte de couleurs Autumn
cv2.COLORMAP_BONECarte de couleurs Bone
cv2.COLORMAP_JETCarte de couleurs Jet
cv2.COLORMAP_WINTERCarte de couleurs Winter
cv2.COLORMAP_RAINBOWCarte de couleurs Rainbow
cv2.COLORMAP_OCEANCarte de couleurs Ocean
cv2.COLORMAP_SUMMERCarte de couleurs Summer
cv2.COLORMAP_SPRINGCarte de couleurs Spring
cv2.COLORMAP_COOLCarte de couleurs Cool
cv2.COLORMAP_HSVCarte de couleurs HSV (Hue, Saturation, Value)
cv2.COLORMAP_PINKCarte de couleurs Pink
cv2.COLORMAP_HOTCarte de couleurs Hot
cv2.COLORMAP_PARULACarte de couleurs Parula
cv2.COLORMAP_MAGMACarte de couleurs Magma
cv2.COLORMAP_INFERNOCarte de couleurs Inferno
cv2.COLORMAP_PLASMACarte de couleurs Plasma
cv2.COLORMAP_VIRIDISCarte de couleurs Viridis
cv2.COLORMAP_CIVIDISCarte de couleurs Cividis
cv2.COLORMAP_TWILIGHTCarte de couleurs Twilight
cv2.COLORMAP_TWILIGHT_SHIFTEDCarte de couleurs Twilight décalée
cv2.COLORMAP_TURBOCarte de couleurs Turbo
cv2.COLORMAP_DEEPGREENCarte de couleurs Deep Green

Comment fonctionnent les cartes de chaleur#

La solution de carte thermique étend la classe ObjectCounter. Sur la première image traitée, elle crée une couche d'intensité vide correspondant à la taille de l'image. Chaque image est ensuite traitée en deux étapes :

  1. Le suivi YOLO26 détecte et suit chaque objet dans l'image
  2. Pour chaque objet suivi, l'intensité de la carte de chaleur augmente dans une zone circulaire centrée dans sa boîte englobante

Une fois par image, la couche d'intensité accumulée est normalisée, colorisée avec la palette choisie et mélangée à l'image originale. La superposition apparaît dès qu'au moins un objet est suivi ; les images sans objets suivis sont affichées sans superposition de carte de chaleur.

Le résultat est une visualisation dynamique qui se construit au fil du temps, révélant les schémas de trafic, les mouvements de foule ou d'autres comportements spatiaux dans tes données vidéo. Lorsqu'un region est défini, la solution compte également les objets entrant et sortant de cette région pendant que la carte thermique se construit.

Conclusion#

La solution de carte thermique Ultralytics YOLO26 transforme les résultats de suivi d'objets en une superposition d'activités intuitive avec quelques lignes de code. Pour aller plus loin, combine-la avec le comptage d'objets, explore les autres Solutions Ultralytics, ou découvre le mode de suivi sous-jacent.

FAQ#

  • Ultralytics YOLO26 génère des cartes thermiques en suivant les objets à travers les images vidéo et en accumulant une valeur d'intensité à l'emplacement de chaque objet suivi, puis en colorisant le résultat et en le fusionnant avec l'image d'origine. Les zones où les objets apparaissent fréquemment ou s'attardent accumulent une intensité plus élevée et s'affichent dans des couleurs plus chaudes. Pour les options de configuration, consulte la section Arguments Heatmap().

  • Utilise cv2.VideoWriter d'OpenCV et écris results.plot_im pour chaque image traitée, comme indiqué dans l'exemple principal. L'attribut plot_im contient l'image avec la superposition de carte thermique déjà appliquée.

  • Oui. Passe un argument region à Heatmap() avec des points de ligne, de rectangle ou de polygone, et la solution compte les objets entrant et sortant de cette région pendant que la carte thermique se construit. Les résultats renvoyés incluent in_count, out_count et les comptes par classe. Consulte le guide de comptage d'objets pour les détails de configuration de la région.

  • Passe l'argument classes à Heatmap() avec les indices de classe que tu souhaites conserver. Par exemple, classes=[0, 2] construit la carte thermique uniquement à partir des personnes et des voitures (indices de classe COCO 0 et 2) :

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.mp4")
    heatmap = solutions.Heatmap(show=True, model="yolo26n.pt", classes=[0, 2])
    
    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            break
        results = heatmap(im0)
    cap.release()
    cv2.destroyAllWindows()
  • Les cartes thermiques Ultralytics YOLO26 intègrent la détection d'objets, le suivi, l'accumulation d'intensité et le rendu de superposition en un seul appel, tandis que les outils génériques comme OpenCV ou Matplotlib nécessitent de construire ce pipeline toi-même. La solution traite les flux vidéo en temps réel et prend en charge le suivi persistant et des palettes de couleurs personnalisables dès la sortie de la boîte. Pour plus de détails sur le modèle sous-jacent, consulte la page du modèle YOLO26.

Commentaires