Image Registration
Le recalage d’images aligne des images d’une même scène dans un seul système de coordonnées à l’aide de correspondances entre caractéristiques ou de similarités entre pixels, ainsi que d’un modèle de transformation.
L’enregistrement d’images est le processus de vision par ordinateur qui consiste à aligner au moins deux images d’une même scène afin que chaque point physique se retrouve aux mêmes coordonnées de pixel dans chacune d’elles. Les images peuvent provenir de périodes, de points de vue ou de capteurs différents : un passage de satellite en janvier et un autre en juin, une IRM et un scanner du même patient, ou des images consécutives filmées par une caméra qui tremble. Une fois les images enregistrées, on peut les comparer pixel par pixel, les fusionner en une seule vue ou les assembler en mosaïque.
L’enregistrement désigne une image comme image fixe, ou de référence, puis transforme l’autre, l’image mobile, pour la placer dans son système de coordonnées. Il faut pour cela faire trois choix : comment mesurer l’alignement des images, quel type de transformation géométrique autoriser et comment rechercher la meilleure transformation. Une fois cette dernière estimée, l’image mobile est rééchantillonnée ; l’interpolation calcule alors les valeurs des pixels aux nouvelles positions.
Méthodes fondées sur les caractéristiques et sur l'intensité#
L’enregistrement fondé sur les caractéristiques détecte des points distinctifs, comme des coins et des taches, dans les deux images, représente chacun par un descripteur tel qu’ORB ou SIFT, puis fait correspondre les descripteurs entre les images. Les points clés appariés fournissent des paires de positions correspondantes, et un estimateur robuste comme RANSAC ajuste une transformation en rejetant les correspondances incorrectes. Les méthodes fondées sur les caractéristiques sont rapides et gèrent les grands déplacements, ce qui en fait le choix habituel pour l’assemblage de panoramas et la cartographie par drone ; l’appariement d’images appris étend ces méthodes aux scènes où les descripteurs conçus manuellement sont moins efficaces. Cet exemple déforme une photo de test selon une rotation, une mise à l’échelle et une translation connues, puis retrouve la transformation avec OpenCV :
import cv2
import numpy as np
from skimage import data
# Fixed image, and a moving copy rotated 10 degrees, scaled 1.1x, and shifted (25, -15) pixels
fixed = data.camera()
warp = cv2.getRotationMatrix2D((256, 256), 10, 1.1)
warp[:, 2] += (25, -15)
moving = cv2.warpAffine(fixed, warp, (512, 512))
# Detect and match ORB features in both images
orb = cv2.ORB_create(1000)
kp_moving, des_moving = orb.detectAndCompute(moving, None)
kp_fixed, des_fixed = orb.detectAndCompute(fixed, None)
matches = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True).match(des_moving, des_fixed)
src = np.float32([kp_moving[m.queryIdx].pt for m in matches])
dst = np.float32([kp_fixed[m.trainIdx].pt for m in matches])
# Fit a similarity transform (rotation, scale, translation) with RANSAC, rejecting wrong matches
M, inliers = cv2.estimateAffinePartial2D(src, dst, method=cv2.RANSAC)
angle, scale = np.degrees(np.arctan2(M[1, 0], M[0, 0])), np.hypot(M[0, 0], M[1, 0])
print(f"Kept {inliers.sum()} of {len(matches)} matches: rotation {angle:.2f} degrees, scale {scale:.3f}")
# Resample the moving image into the fixed image's coordinates
registered = cv2.warpAffine(moving, M, (512, 512))
cv2.imwrite("registered.png", registered)Le programme affiche Kept 497 of 567 matches: rotation 10.01 degrees, scale 0.910. La transformation estimée est l’inverse de la déformation appliquée : une rotation de 10 degrés dans le sens opposé et une échelle de 1/1.1. registered.png s’aligne sur la photo originale partout où les deux images se chevauchent.
L’enregistrement fondé sur l’intensité ignore les caractéristiques explicites et compare directement les valeurs des pixels, en ajustant la transformation pour maximiser une mesure de similarité. L’idée remonte à Bruce Lucas et Takeo Kanade, dont l’article de 1981 « An Iterative Image Registration Technique with an Application to Stereo Vision » a présenté la méthode désormais également utilisée pour le flux optique. La corrélation convient aux images issues du même capteur, tandis que l’information mutuelle, introduite pour l’enregistrement médical au milieu des années 1990, gère les modalités différentes, comme une IRM et un scanner, où le même tissu présente une luminosité différente. Un optimiseur, souvent la descente de gradient sur une pyramide d’images à résolution progressivement affinée, recherche les meilleurs paramètres ; des boîtes à outils comme le cadre d’enregistrement SimpleITK exposent séparément la métrique, l’optimiseur, la transformation et l’interpolateur.
Les méthodes d’apprentissage profond, comme VoxelMorph, publié par Guha Balakrishnan et ses collègues en 2019, entraînent un réseau neuronal convolutif à prédire un champ de déformation en une seule passe avant, remplaçant l’optimisation paire par paire, qui prend plusieurs minutes, voire plus, par une prédiction réalisée en moins d’une seconde sur un GPU.
Choisir un modèle de transformation#
La transformation doit correspondre aux différences réelles entre les images :
- Translation et transformation rigide : des décalages, plus une rotation dans le cas rigide, qui préservent les distances. Courantes pour les scans d'un même objet rigide.
- Similitude et affine : La similitude ajoute une mise à l’échelle uniforme ; l’affine ajoute une mise à l’échelle non uniforme et un cisaillement. Dans les deux cas, une seule transformation s’applique à toute l’image. Cette méthode convient aux images satellite prises à des échelles légèrement différentes.
- Projective (homographie) : modélise les changements de perspective dans les scènes planes ou avec des caméras en rotation, comme pour la numérisation de documents et les panoramas.
- Déformable : permet à chaque région de se déplacer indépendamment, comme l'exige un tissu mou qui change de forme entre deux scans.
Les modèles plus flexibles peuvent s’ajuster à presque tout, y compris aux changements réels que l’analyse doit détecter. L’enregistrement commence donc généralement par le modèle plausible le plus simple et n’ajoute de la flexibilité que si l’erreur d’alignement persiste. Les scènes avec de la profondeur et une caméra en mouvement présentent une parallaxe qu’aucune transformation 2D unique ne peut supprimer ; leur alignement repose plutôt sur la géométrie épipolaire et la reconstruction 3D.
Applications du recalage#
En télédétection et en analyse d’images satellite, l’enregistrement constitue la première étape de la détection des changements : les images d’une même zone prises à plusieurs mois d’intervalle doivent être alignées avant qu’un modèle puisse signaler une nouvelle construction ou une zone forestière défrichée, sans quoi un léger décalage semblera indiquer un changement le long de chaque bord de route. En analyse d’images médicales, l’alignement de clichés pris lors de visites différentes permet aux cliniciens de mesurer la croissance d’une tumeur ; l’alignement d’une TEP sur un scanner combine l’activité métabolique et l’anatomie ; enfin, l’enregistrement d’un atlas annoté sur un nouveau cliché transfère ses étiquettes anatomiques, méthode classique de segmentation d’images des structures cérébrales.
Les applications vidéo enregistrent les images consécutives pour estimer le mouvement de la caméra. La stabilisation supprime ce mouvement, et les algorithmes de suivi en tiennent compte pour que les mouvements de la caméra ne soient pas confondus avec ceux des objets. Le suiveur TrackTrack par défaut du suivi d’objets d’Ultralytics YOLO enregistre chaque image par rapport à la précédente en suivant des caractéristiques de coin au moyen d’un flux optique clairsemé à demi-résolution, puis ajuste une transformation de similitude avec RANSAC. Les pistes d’une caméra de drone ou de véhicule restent ainsi associées aux bons objets.










