Ultralytics YOLO27 :
Get Started

Cartes thermiques du suivi d’objets avec Ultralytics YOLO26#

Open Heatmaps In Colab

La solution de carte thermique d’Ultralytics YOLO26 suit les objets d’une image vidéo à l’autre et superpose à chaque image l’intensité cumulée de leurs déplacements : les zones fréquentées brillent de 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 carte d’activité spatiale qui révèle les flux de circulation, les déplacements de foule et les zones de stationnement, avec un seul appel Python ou une commande CLI.



Regarder : Comment créer des cartes thermiques avec Ultralytics YOLO26 | Visualiser l’activité des objets | VisionAI dans le commerce de détail 🚀

Pourquoi utiliser des cartes thermiques pour l’analyse vidéo ?#

  • Repère les tendances d’activité en un coup d’œil : l’intensité s’accumule là où les objets suivis passent du temps ; les voies très fréquentées, les rayons populaires ou les goulots d’étranglement dans les foules ressortent sans avoir à examiner manuellement chaque image.
  • Suivi intégré : la solution exécute la détection et le suivi YOLO26 en interne ; aucun pipeline de suivi distinct n’est donc à mettre en place.
  • Comptage en une seule passe : passe un region pour compter les objets qui entrent dans une zone ou en sortent pendant la génération de la carte thermique, afin de combiner deux tâches d’analyse en une seule exécution.

Applications concrètes#

TransportCommerce de détail
Superposition d’une carte thermique Ultralytics YOLO montrant la densité du trafic automobileSuperposition d’une carte thermique Ultralytics YOLO montrant les déplacements des clients dans un magasin
Carte thermique des transports avec Ultralytics YOLOCarte thermique du commerce de détail avec Ultralytics YOLO

Comment générer des cartes thermiques avec Ultralytics YOLO#

Exécute la solution de carte thermique 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 thermiques avec 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 des arguments de Heatmap :

ArgumentTypeValeur par défautDescription
modelstrNoneChemin vers un fichier de modèle Ultralytics YOLO.
colormapintcv2.COLORMAP_DEEPGREENPalette de couleurs à utiliser pour la carte thermique.
show_inboolTrueIndicateur permettant de contrôler l'affichage du nombre d'entrées dans le flux vidéo.
show_outboolTrueIndicateur permettant de contrôler l'affichage du nombre de sorties dans le flux vidéo.
regionlist ou dictNonePoints définissant la région d'intérêt : une liste de tuples (x, y) ou un dictionnaire associant des noms de régions à des listes de points pour plusieurs régions (uniquement RegionCounter). Si None, les solutions qui nécessitent une région utilisent une région par défaut prédéfinie.
line_widthint2Épaisseur des lignes des boîtes, des points clés et des compteurs dessinés par la solution.
verboseboolTrueActive le journal de la solution pour chaque image, qui indique la forme de l'entrée, le nombre d'éléments par classe et la vitesse de traitement. L'appel de suivi reste toujours silencieux.

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

ArgumentTypeValeur par défautDescription
trackerstr'tracktrack.yaml'Indique 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 des détections ; des valeurs plus faibles permettent de suivre davantage d'objets, mais peuvent inclure des faux positifs.
ioufloat0.7Définit le seuil d'intersection sur l'union (IoU) utilisé pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats selon l'indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées.
devicestrNoneIndique le périphérique utilisé pour l'inférence (par exemple, cpu, cuda:0 ou 0). Permet de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle.
imgszint or tuple640Taille cible de l'image pour l'inférence : un entier pour une image carrée ou une paire (height, width). Les dimensions sont ajustées au stride du modèle.
max_detint300Nombre maximal de détections conservées par image avant le suivi, ce qui limite le nombre d'objets qu'une solution traite dans les scènes denses.
quantizeint or strNonePrécision de l'inférence : 16 (FP16) ou 32/non défini (FP32) pour les modèles PyTorch et TorchScript ; les autres formats utilisent la précision sélectionnée par leur artefact et leur environnement d'exécution. Remplace l'option obsolète half.

De plus, les arguments de visualisation pris en charge sont répertoriés ci-dessous :

ArgumentTypeValeur par défautDescription
showboolFalseSi True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour obtenir un retour visuel immédiat pendant le développement ou les tests.
show_confboolTrueAffiche le score de confiance de chaque détection à côté de son étiquette. Donne une indication du degré de certitude du modèle pour chaque détection.
show_labelsboolTrueAffiche les étiquettes de chaque détection dans le résultat visuel. Permet d'identifier immédiatement les objets détectés.

Palettes de couleurs des cartes thermiques#

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

Nom de la paletteDescription
cv2.COLORMAP_AUTUMNPalette de couleurs automne
cv2.COLORMAP_BONEPalette de couleurs os
cv2.COLORMAP_JETPalette de couleurs Jet
cv2.COLORMAP_WINTERPalette de couleurs Winter
cv2.COLORMAP_RAINBOWPalette de couleurs Rainbow
cv2.COLORMAP_OCEANPalette de couleurs Ocean
cv2.COLORMAP_SUMMERPalette de couleurs Summer
cv2.COLORMAP_SPRINGPalette de couleurs Spring
cv2.COLORMAP_COOLPalette de couleurs Cool
cv2.COLORMAP_HSVPalette de couleurs HSV (teinte, saturation, valeur)
cv2.COLORMAP_PINKPalette de couleurs Pink
cv2.COLORMAP_HOTPalette de couleurs Hot
cv2.COLORMAP_PARULAPalette de couleurs Parula
cv2.COLORMAP_MAGMAPalette de couleurs Magma
cv2.COLORMAP_INFERNOPalette de couleurs Inferno
cv2.COLORMAP_PLASMAPalette de couleurs Plasma
cv2.COLORMAP_VIRIDISPalette de couleurs Viridis
cv2.COLORMAP_CIVIDISPalette de couleurs Cividis
cv2.COLORMAP_TWILIGHTPalette de couleurs Twilight
cv2.COLORMAP_TWILIGHT_SHIFTEDPalette de couleurs Twilight décalée
cv2.COLORMAP_TURBOPalette de couleurs Turbo
cv2.COLORMAP_DEEPGREENPalette de couleurs Deep Green

Fonctionnement des cartes de chaleur#

La solution de carte de chaleur étend la classe ObjectCounter. À la première image traitée, elle crée une couche d’intensité vierge 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 sur sa boîte englobante.

Une fois par image, la couche d’intensité cumulée est normalisée, colorisée avec la palette sélectionnée, puis fusionnée avec l’image d’origine. La superposition apparaît dès qu’au moins un objet a été suivi ; jusque-là, les images s’affichent sans la superposition de la carte de chaleur.

Le résultat est une visualisation dynamique qui se construit au fil du temps et révèle les schémas de circulation, les déplacements 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 qui entrent dans cette zone et en sortent pendant la création de la carte de chaleur.

Conclusion#

La solution de carte de chaleur Ultralytics YOLO26 transforme les résultats du suivi d’objets en une superposition d’activité intuitive en quelques lignes de code. Pour aller plus loin, combine-la avec le comptage d’objets, explore les autres solutions Ultralytics ou consulte la documentation sur le mode de suivi sous-jacent.

FAQ#

  • Ultralytics YOLO26 génère des cartes de chaleur en suivant les objets d’une image vidéo à l’autre et en cumulant 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 restent longtemps accumulent une intensité plus élevée et sont rendues dans des couleurs plus chaudes. Pour connaître 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 dans l’exemple principal. L’attribut plot_im contient l’image sur laquelle la carte de chaleur est déjà superposée.

  • Oui. Transmets un argument region à Heatmap() avec des points définissant une ligne, un rectangle ou un polygone, et la solution compte les objets qui entrent dans cette zone et en sortent pendant la création de la carte de chaleur. Les résultats renvoyés comprennent in_count, out_count et les comptages par classe. Consulte le guide du comptage d’objets pour en savoir plus sur la configuration des zones.

  • Transmets l’argument classes à Heatmap() avec les indices des classes à conserver. Par exemple, classes=[0, 2] crée la carte de chaleur 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 de chaleur Ultralytics YOLO26 intègrent la détection d’objets, le suivi, le cumul de l’intensité et le rendu de la superposition dans un seul appel, tandis que les outils génériques comme OpenCV ou Matplotlib t’obligent à créer toi-même cette chaîne de traitement. La solution traite les flux vidéo en temps réel et prend en charge d’emblée le suivi persistant et les palettes de couleurs personnalisables. Pour en savoir plus sur le modèle sous-jacent, consulte la page du modèle YOLO26.

Commentaires