Appeler SMS WhatsApp Email

Définition SURF (Speeded-Up Robust Features)

SURF (Speeded-Up Robust Features)

SURF, acronyme de Speeded-Up Robust Features (Caractéristiques Robustes Accélérées), est un algorithme de vision par ordinateur performant et breveté (bien que certains de ses brevets principaux aient expiré dans de nombreuses juridictions, facilitant son usage) utilisé pour la détection et la description de points d’intérêt locaux dans des images numériques. Il est conçu pour être rapide et robuste aux variations courantes rencontrées dans les images, telles que les changements d’échelle, de rotation, d’illumination et de point de vue. SURF est souvent comparé à SIFT (Scale-Invariant Feature Transform) dont il s’inspire, mais il vise une amélioration significative de la vitesse de calcul tout en maintenant un niveau de performance comparable en termes de robustesse et de qualité des correspondances.

Concepts fondamentaux et principes essentiels

L’algorithme SURF se décompose en deux étapes principales : la détection des points d’intérêt et la description de ces points.
Pour la détection des points d’intérêt, SURF s’appuie sur le déterminant de la matrice Hessienne. Contrairement à SIFT qui utilise des approximations de la Laplacienne du Gaussien (LoG), SURF emploie des filtres de type boîte (box filters) pour approximer les dérivées secondes gaussiennes. L’avantage majeur de cette approche est que ces filtres peuvent être calculés très rapidement grâce à l’utilisation d’images intégrales (également appelées Summed-Area Tables). Une image intégrale permet de calculer la somme des intensités des pixels à l’intérieur de n’importe quel rectangle en seulement quelques opérations arithmétiques, indépendamment de la taille du rectangle.
La détection s’effectue à différentes échelles. SURF construit une pyramide d’échelles en augmentant progressivement la taille des filtres de type boîte plutôt qu’en sous-échantillonnant l’image, ce qui contribue à sa rapidité. Les points d’intérêt candidats sont les maxima locaux du déterminant de la Hessienne dans l’espace tridimensionnel (image et échelle). Une interpolation est ensuite réalisée pour affiner la localisation de ces points avec une précision sous-pixel.

Une fois les points d’intérêt détectés, une orientation principale leur est assignée pour garantir l’invariance à la rotation. Pour ce faire, SURF calcule les réponses à des ondelettes de Haar dans une région circulaire autour du point d’intérêt. Ces réponses sont sommées dans une fenêtre glissante orientée, et l’orientation qui maximise cette somme est choisie comme orientation principale du point.
Après avoir déterminé la localisation, l’échelle et l’orientation du point d’intérêt, un descripteur est construit. Une région carrée, alignée avec l’orientation principale et centrée sur le point d’intérêt, est sélectionnée. Cette région est divisée en sous-régions (typiquement 4×4). Pour chaque sous-région, les réponses à des ondelettes de Haar (selon les directions dx et dy, et leurs valeurs absolues |dx| et |dy|) sont calculées pour un ensemble de points régulièrement échantillonnés. La somme de ces réponses (dx, dy, |dx|, |dy|) forme un vecteur de 4 dimensions pour chaque sous-région. La concaténation de ces vecteurs pour toutes les sous-régions (4×4 sous-régions * 4 valeurs = 64 dimensions) forme le descripteur SURF standard. Une version étendue à 128 dimensions existe également, en séparant les sommes de dx et |dx| (et dy et |dy|) en fonction du signe de la dérivée, ce qui peut améliorer la discrimination.

Importance, pertinence et impact

L’introduction de SURF a eu un impact significatif sur le domaine de la vision par ordinateur. Sa principale contribution a été de fournir une alternative beaucoup plus rapide à SIFT, qui était alors l’état de l’art pour la détection de caractéristiques robustes mais dont la complexité de calcul limitait l’utilisation dans des applications temps réel ou sur des dispositifs aux ressources limitées.
La rapidité de SURF, combinée à sa robustesse, a ouvert la voie à de nouvelles possibilités applicatives. Il a permis aux chercheurs et aux développeurs d’intégrer des capacités sophistiquées de reconnaissance et de suivi dans des systèmes nécessitant des réponses rapides. Bien que des algorithmes encore plus rapides (notamment des descripteurs binaires comme ORB ou BRISK) aient émergé depuis, SURF reste une référence importante pour son équilibre entre vitesse, robustesse et précision. Son développement a également stimulé la recherche vers des détecteurs et descripteurs de points d’intérêt encore plus performants et efficaces. L’expiration progressive de ses brevets a également accru sa pertinence pour des projets open-source et commerciaux.

Applications pratiques et utilisations courantes

SURF est utilisé dans une vaste gamme d’applications en vision par ordinateur. Voici quelques exemples concrets :
La reconnaissance d’objets : SURF permet d’identifier des objets spécifiques dans une image ou une vidéo en comparant les descripteurs SURF de l’objet cible (préalablement stockés) avec ceux extraits de la scène courante. Par exemple, une application pourrait reconnaître des marques de produits sur une étagère ou des monuments dans des photos de touristes.
L’assemblage d’images (Image Stitching) : Pour créer des panoramas, SURF détecte des points correspondants dans des images qui se chevauchent. Ces correspondances permettent ensuite d’estimer les transformations géométriques nécessaires pour aligner et fusionner les images.
Le suivi d’objets (Object Tracking) : Un objet peut être suivi dans une séquence vidéo en détectant et en appariant ses caractéristiques SURF d’une trame à l’autre.
La reconstruction 3D (Structure from Motion – SfM) : En identifiant des points correspondants dans de multiples vues d’une scène ou d’un objet, SURF contribue à estimer la géométrie 3D de la scène et les positions des caméras.
La localisation et cartographie simultanées (SLAM) : En robotique, SURF aide les robots à construire une carte de leur environnement tout en déterminant leur propre position au sein de cette carte. Les points d’intérêt robustes servent de repères.
La recherche d’images par le contenu (CBIR) : Les descripteurs SURF peuvent être utilisés pour indexer de grandes bases de données d’images et retrouver des images visuellement similaires à une image requête.
La réalité augmentée (AR) : SURF peut être employé pour détecter des marqueurs ou des objets réels dans le flux vidéo d’une caméra, permettant de superposer des informations ou des objets virtuels de manière cohérente avec la scène.

Différentes nuances, interprétations, perspectives ou variations

Il existe plusieurs variations et considérations autour de SURF. La version la plus courante du descripteur a 64 dimensions (SURF-64), mais une version étendue à 128 dimensions (SURF-128) est également proposée. Cette dernière est plus discriminante mais nécessite plus de mémoire et de temps de calcul pour l’appariement.
Une autre variante est U-SURF (Upright SURF). Cette version omet l’étape de calcul de l’orientation principale. Les descripteurs sont calculés par rapport à une orientation fixe. U-SURF est plus rapide que SURF standard mais n’est pas invariant à la rotation de l’image. Il est utile dans les applications où l’orientation des objets est contrainte ou connue.
Le comportement de SURF est influencé par plusieurs paramètres, tels que le seuil pour le déterminant de la Hessienne (qui contrôle la sensibilité du détecteur et donc le nombre de points détectés), le nombre d’octaves et de couches par octave (qui définissent la plage d’échelles explorée). Le choix optimal de ces paramètres dépend de l’application spécifique et des caractéristiques des images traitées.
En termes de performance, SURF est généralement considéré comme étant 3 à 7 fois plus rapide que SIFT. Sa robustesse est souvent jugée comparable à celle de SIFT pour de nombreuses transformations, bien que SIFT puisse parfois surpasser SURF sous des changements de point de vue très importants ou des déformations affines extrêmes. Des descripteurs plus récents, notamment les descripteurs binaires comme ORB, BRISK, et AKAZE, sont encore plus rapides que SURF, mais peuvent offrir une robustesse moindre, en particulier aux changements d’échelle et de rotation importants. Le choix entre SURF et d’autres algorithmes dépend donc d’un compromis entre vitesse, robustesse, précision et contraintes de l’application.

Concepts étroitement liés, termes synonymes ou antonymes pertinents

SURF s’inscrit dans la famille des algorithmes de détection et description de points d’intérêt locaux.
Les concepts étroitement liés incluent :
SIFT (Scale-Invariant Feature Transform) : L’algorithme qui a largement inspiré SURF, connu pour sa grande robustesse. SURF est souvent vu comme une optimisation de SIFT en termes de vitesse.
Points d’intérêt (Interest Points, Keypoints, Features) : Les emplacements saillants dans une image qui sont distinctifs et répétables sous diverses transformations.
Descripteurs locaux (Local Descriptors) : Vecteurs numériques qui caractérisent l’apparence d’une petite région autour d’un point d’intérêt.
Images intégrales (Integral Images / Summed-Area Tables) : Une structure de données clé utilisée par SURF pour accélérer le calcul des filtres de type boîte.
Matrice Hessienne : Une matrice de dérivées secondes utilisée par SURF pour détecter les points d’intérêt en tant que maxima de son déterminant.
Ondelettes de Haar (Haar Wavelets) : Des fonctions simples utilisées par SURF pour construire les descripteurs et déterminer l’orientation.
Robustesse : La capacité d’un algorithme à maintenir ses performances malgré des variations dans les données d’entrée (illumination, échelle, rotation, etc.).
Autres détecteurs/descripteurs : ORB (Oriented FAST and Rotated BRIEF), BRISK (Binary Robust Invariant Scalable Keypoints), AKAZE (Accelerated KAZE), KAZE, FAST (Features from Accelerated Segment Test), BRIEF (Binary Robust Independent Elementary Features). Ces algorithmes proposent différents compromis entre vitesse, robustesse et complexité.
Il n’y a pas d’antonymes directs pour SURF, mais on pourrait contraster les descripteurs locaux comme SURF avec les descripteurs globaux (qui caractérisent l’image entière) ou les approches basées sur l’apprentissage profond (deep learning) qui apprennent les caractéristiques à partir des données.

Origine, historique ou évolution

SURF a été présenté pour la première fois en 2006 par Herbert Bay, Tinne Tuytelaars, et Luc Van Gool, chercheurs à l’ETH Zurich et à l’Université de Leuven. Leur article fondateur, « SURF: Speeded Up Robust Features », a été publié lors de la Conférence Européenne sur la Vision par Ordinateur (ECCV) en 2006.
Le développement de SURF a été motivé par le besoin d’un détecteur de caractéristiques aussi performant que SIFT (introduit par David Lowe en 1999 et finalisé en 2004), mais significativement plus rapide pour permettre des applications en temps réel. Les auteurs de SURF se sont inspirés de SIFT mais ont introduit des innovations cruciales pour l’accélération, notamment l’utilisation d’images intégrales pour le calcul des réponses des filtres de type boîte approximant les dérivées secondes gaussiennes, et l’utilisation d’un détecteur basé sur le déterminant de la Hessienne.
Initialement, comme SIFT, SURF était couvert par des brevets, ce qui a pu freiner son adoption dans certains projets commerciaux ou open-source. Cependant, nombre de ces brevets fondamentaux ont depuis expiré (par exemple, le brevet américain US7986843B2 pour SURF, déposé en 2007, a expiré), levant ces restrictions et facilitant une utilisation plus large de l’algorithme. L’influence de SURF est notable, car il a démontré qu’il était possible d’atteindre une robustesse élevée avec une efficacité de calcul considérablement améliorée, pavant la voie à de nouvelles recherches dans ce domaine.

Avantages, inconvénients, défis ou limitations

SURF présente un ensemble distinct d’avantages et d’inconvénients.
Avantages :
Vitesse : SURF est significativement plus rapide que SIFT, ce qui le rend plus adapté aux applications temps réel. Cet avantage provient principalement de l’utilisation des images intégrales et de l’approximation des filtres gaussiens par des filtres de type boîte.
Robustesse : Il offre une bonne robustesse aux changements d’échelle, de rotation, de variations d’illumination, et aux légers changements de point de vue.
Distinction : Ses descripteurs (surtout la version 128-D) sont relativement discriminants, permettant un bon appariement des points.
Efficacité des images intégrales : Permet un calcul constant des réponses des filtres, indépendamment de leur taille.

Inconvénients :
Robustesse inférieure à SIFT dans certains cas : Bien que robuste, SURF peut être moins performant que SIFT face à des déformations affines très importantes ou des changements de point de vue extrêmes.
Sensibilité aux flous importants : Comme beaucoup de détecteurs basés sur les gradients ou les dérivées secondes, sa performance peut se dégrader sur des images très floues ou peu texturées.
Complexité relative : Bien que conçu pour être rapide, l’algorithme lui-même n’est pas trivial à implémenter correctement.
Brevets (historiquement) : L’existence de brevets a été une contrainte, bien que cette situation se soit largement améliorée avec leur expiration.
Moins rapide que les descripteurs binaires : Des algorithmes plus récents comme ORB ou BRISK offrent une vitesse de calcul et d’appariement encore supérieure, bien qu’ils puissent être moins robustes que SURF dans certaines conditions. Ces descripteurs binaires sont aussi plus légers en termes de stockage.

Défis :
Optimisation pour plateformes embarquées : Malgré sa rapidité par rapport à SIFT, l’optimisation de SURF pour des plateformes aux ressources très limitées (microcontrôleurs, DSP) reste un défi.
Gestion des artefacts de compression : Les artefacts introduits par une forte compression d’image (JPEG par exemple) peuvent affecter négativement la détection et la description des points SURF.

Limitations :
Nature locale : SURF, comme SIFT, est un descripteur local. Il ne capture pas d’information contextuelle ou sémantique globale de l’image. Il peut donc échouer à distinguer des structures répétitives à grande échelle ou à comprendre le contenu global d’une scène.
Occlusions : Des occlusions importantes d’un objet peuvent empêcher la détection d’un nombre suffisant de points d’intérêt pour une reconnaissance fiable.
Dépendance à la texture : SURF fonctionne mieux sur des images texturées. Sur des régions uniformes ou avec des gradients très faibles, il détectera peu ou pas de points d’intérêt.

En conclusion, SURF représente une avancée majeure dans le domaine des caractéristiques locales, offrant un excellent compromis entre vitesse et robustesse qui a permis son adoption dans de nombreuses applications pratiques de la vision par ordinateur. Bien que de nouveaux algorithmes, notamment ceux basés sur l’apprentissage profond, gagnent en popularité, SURF reste un outil pertinent et une référence importante pour de nombreuses tâches.