Change Detection
La détection des changements compare des images d’une même scène prises à différents moments pour cartographier ce qui est apparu, a disparu ou s’est déplacé, des satellites aux usines.
La détection de changements consiste à repérer les différences significatives entre des images d’une même scène prises à des moments différents. Elle compare au moins deux observations et indique où un changement s’est produit, sous forme de carte binaire des changements, de classes « de-vers » comme forêt vers terres cultivées ou de liste d’objets apparus, disparus ou déplacés. La détection bitemporelle compare deux dates, tandis que les méthodes multitemporelles analysent une série temporelle complète pour distinguer les changements durables des cycles saisonniers et du bruit ponctuel. Cette tâche est essentielle à la télédétection et à l’analyse d’images satellitaires, et les mêmes principes sont utilisés pour la soustraction de l’arrière-plan dans les caméras de sécurité fixes et pour la comparaison avec une référence dans l’inspection industrielle.
Fonctionnement de la détection de changements#
Deux images ne peuvent être comparées correctement que si les pixels correspondants représentent le même point au sol. Le recalage d’images les aligne, car un décalage d’un seul pixel crée de faux changements le long de chaque bord, et la normalisation radiométrique élimine les différences d’angle du soleil, d’exposition, de brume et de réponse du capteur. Une étape de comparaison calcule ensuite une mesure de différence pour chaque pixel ou région, un seuil distingue les changements du bruit, puis un post-traitement supprime les pixels isolés et fusionne les autres en régions.
La comparaison la plus simple est la différenciation d’images. Cet exemple compare deux images d’un parking filmé d’en haut, prises à 2,7 secondes d’intervalle, et laisse la méthode d’Otsu choisir le seuil :
import cv2
import numpy as np
# Two frames of a parking lot filmed from above, 81 frames (2.7 seconds) apart
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/solution_ci_parking_demo.mp4")
_, before = cap.read()
cap.set(cv2.CAP_PROP_POS_FRAMES, 81)
_, after = cap.read()
# Convert to grayscale and blur to suppress noise, then difference pixel by pixel
before = cv2.GaussianBlur(cv2.cvtColor(before, cv2.COLOR_BGR2GRAY), (5, 5), 0)
after = cv2.GaussianBlur(cv2.cvtColor(after, cv2.COLOR_BGR2GRAY), (5, 5), 0)
diff = cv2.absdiff(before, after)
# Otsu's method picks the change threshold, and an opening removes isolated noisy pixels
_, change_map = cv2.threshold(diff, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
change_map = cv2.morphologyEx(change_map, cv2.MORPH_OPEN, np.ones((5, 5), np.uint8))
print(f"{100 * (change_map > 0).mean():.1f}% of pixels changed")
cv2.imwrite("change_map.png", change_map)L’exemple affiche 5.2% of pixels changed. La carte enregistrée met en évidence la voiture bleue qui se gare, les deux positions d’une camionnette blanche qui traverse le parking et une voiture qui quitte le bord gauche de l’image, tandis que les voitures garées, les lignes peintes et le revêtement restent noirs.
Approches par pixels, par objets et par apprentissage#
La différenciation des pixels fonctionne lorsque les deux images proviennent du même capteur et ont été prises sous un éclairage similaire. Les rapports remplacent les différences pour les images radar, dont le bruit de chatoiement est multiplicatif, et l’analyse des vecteurs de changement traite chaque pixel multispectral comme un vecteur dont le changement a une amplitude et une direction. La comparaison après classification classe indépendamment chaque date puis compare les étiquettes, ce qui produit des classes « de-vers » et tolère des capteurs différents, mais cumule les erreurs des deux classifications.
Les méthodes d’apprentissage profond font passer les deux images dans un réseau neuronal convolutif siamois à poids partagés et décodent la différence de leurs cartes de caractéristiques en une carte des changements. Cette architecture a été popularisée en 2018 par les réseaux siamois entièrement convolutifs de Daudt et ses collègues ; des modèles ultérieurs ajoutent des mécanismes d’attention et des transformers. LEVIR-CD, publié par Hao Chen et Zhenwei Shi en 2020, est un jeu de référence largement utilisé. Il contient 637 paires d’images Google Earth de 1 024×1 024 pixels, à 0,5 mètre par pixel, et 31 333 changements de bâtiments annotés.
La détection de changements au niveau des objets compare les détections plutôt que les pixels, ce qui ignore les ombres et les variations saisonnières de couleur. Un modèle de boîtes englobantes orientées Ultralytics YOLO26 préentraîné sur les images aériennes DOTA renvoie des boîtes pivotées pour les avions, les navires, les réservoirs de stockage et les véhicules. La mise en correspondance des résultats de détection d’objets de deux dates révèle ainsi ce qui est arrivé et ce qui est parti.
Détection de changements et tâches apparentées#
- Détection d’anomalies : Signale les observations qui s’écartent d’une notion apprise de la normalité, souvent à partir d’une seule image. La détection de changements nécessite une observation de référence, et un changement comme un nouveau bâtiment est généralement attendu.
- Suivi d’objets et flux optique : Suivent le mouvement entre des images vidéo consécutives. La détection de changements compare l’état d’une scène à deux moments, souvent espacés de plusieurs mois ou années.
- Dérive des données : Désigne l’évolution au fil du temps de la distribution statistique des entrées reçues par un modèle déployé, ce qui réduit sa précision.
Applications concrètes#
- Surveillance de la déforestation et de la couverture des sols : Les cartes annuelles de perte du couvert arboré produites à partir d’images Landsat à une résolution de 30 mètres, publiées par l’Université du Maryland depuis 2013, constituent la base de Global Forest Watch.
- Évaluation des dommages causés par les catastrophes : La comparaison d’images satellitaires ou de drones avant et après un événement cartographie les terres inondées, les zones brûlées et les bâtiments effondrés ; le jeu de données xBD évalue les dommages aux bâtiments sur une échelle à quatre niveaux à partir de paires d’images avant-après.
- Inspection industrielle : Une caméra fixe compare chaque assemblage à une image de référence d’une pièce conforme afin de détecter les vis manquantes, les composants mal positionnés ou les corps étrangers.
- Sécurité et surveillance : La soustraction de l’arrière-plan, forme vidéo de la détection de changements, modélise la scène statique au niveau de chaque pixel et traite les écarts comme des objets en mouvement au premier plan. C’est le mécanisme qui déclenche les alertes de mouvement des caméras fixes.










