Brevet FR2961601A1 — publié le 20111223

L'invention concerne le pilotage des drones, notamment des drones à voilure tournante tels que les hélicoptères, quadricoptères et analogues. Un exemple typique d'un tel drone est le AR.Drone de Parrot SA, Paris, France, qui est un quadricoptère équipé d'une série de capteurs (accélé- romètres et gyromètres trois axes, altimètre). Le drone est également pourvu d'une caméra frontale captant une image de la scène vers laquelle se dirige le drone, ainsi que d'une caméra de visée verticale captant une image du terrain survolé par le drone. Ce drone peut être piloté par l'utilisateur au moyen d'un dispositif de télé- commande déportée reliée au drone par une liaison radio. Il est en outre pourvu d'un système de stabilisation automatique en vol stationnaire, qui permet notamment au drone d'atteindre de manière automatique un point d'équilibre et, lorsque ce point d'équilibre est atteint, d'apporter les corrections nécessaires pour maintenir le point fixe par trimming, c'est-à-dire par correction des petites variations de translation dues aux effets externes tels que déplacement d'air et dérive des capteurs. L'altimètre, qui est un télémètre à ultrasons disposé sous le drone, fournit une mesure de la vitesse verticale qui permet d'asservir la force de poussée afin de stabiliser le drone en hauteur. D'autre part, les capteurs inertiels (accéléromètres et gyromètres) permettent de mesurer les vitesses angulaires et les angles d'attitude du drone avec une certaine précision, et peuvent donc être utilisés pour asservir dynamiquement la direction de poussée du drone dans la direction opposée à celle de la gravité. Pour l'établissement du vol stationnaire, subsiste le problème consistant à annuler la vitesse linéaire du drone. Malheureusement, les accéléromètres à bas coût utilisés sont généralement trop bruités pour donner une estimation satisfaisante de la vitesse du drone après une double intégration du signal. Le WO 2009/109711 A2 (Parrot) propose d'utiliser à cet effet l'image de la caméra à visée frontale, et d'estimer la vitesse horizontale du drone par analyse de la succession des images captées par cette caméra et identification du déplacement de différents points caractéristiques de l'image. Cette technique se heurte cependant à un manque de précision, notamment pour les vitesses les plus faibles (lorsque le drone se déplace vers l'avant avec une vitesse faible, la scène captée ne présente que très peu de changements d'une image à la suivante). Elle est d'autre part extrêmement dépendante de la présence ou non de points d'intérêt caractéristiques dans la scène captée par la caméra : dans le cas d'une image uni-forme, telle qu'un mur ou le ciel en extérieur, la quasi-absence de points caractéristiques rend cette technique inopérante. La présente invention repose sur l'utilisation de l'image fournie non plus par la caméra à visée frontale, mais par la caméra à visée verticale, pour évaluer la vitesse horizontale du drone. L'identification du déplacement de différents points de l'image captée par cette caméra reste toutefois une tâche difficile, fortement dépendante à la fois (i) de la nature de la scène (plus ou moins contrastée, plus ou moins changeante), (ii) de la vitesse et (iii) des contraintes de complexité limitée des calculs. En particulier, si l'on souhaite réaliser un asservissement de stabilisation automatique en vol stationnaire, il convient de disposer d'une mesure de vitesse qui soit à la fois précise, sensible (car les vitesses linéaires autour du point d'équilibre peuvent être très faibles) et disponible en temps réel de manière à disposer d'un asservissement efficace et réactif. On notera toutefois que l'invention n'est pas limitée à l'évaluation de la vi- tesse pour la stabilisation en vol stationnaire du drone, mais qu'elle est applicable de façon plus générale dans toutes les configurations de vol du drone, donc même avec des valeurs de déplacement proches de la vitesse maximale de celui-ci (de l'ordre de 5 m/s). II existe divers algorithmes permettant d'estimer une vitesse de déplace- ment d'une scène captée par une caméra vidéo. Un premier type d'algorithme est l'algorithme dit "à flot optique", dont les bases sont notamment décrites par : [1] LUCAS B.D. et KANADE T., "An Iterative Image Registration Tech-nique with an Application to Stereo Vision", Proc. DARPA Image Un- derstanding Workshop, pp. 121-130, 1981 et [2] HORN B.K.P. et SCHUNK B., "Determining Optical Flow", Art/tic/al Intelligence, (17):185-204,1981. La méthode à flot optique présente l'avantage de n'imposer que très peu de contraintes sur la scène (peu de contraste, peu de contenu). En outre, par une approche "multirésolution" il est possible d'estimer des vitesses élevées comme des vitesses faibles. En revanche, cette méthode est sensible aux rotations et aux changements d'attitude, et elle ne permet pas de vérifier intrinsèquement la qualité du résultat délivré, c'est-à-dire que l'algorithme délivre toujours un résultat dès lors que suffisamment de points présentent un gradient élevé, mais ce résultat est délivré même s'il n'a pas de sens. En résumé, la méthode à flot optique est une méthode "tout-terrain", pouvant fonctionner pour une très large plage de vitesses, mais elle délivre un résultat qui n'est pas toujours fiable, ni très précis notamment pour les fai- bles vitesses. Un autre type d'algorithme est celui des algorithmes dits "détecteurs de coins" ou "à détection de point d'intérêt", dont les bases sont exposées par exemple par : [3] ROSTEN E. et DRUMMOND T., "Fusing Points and Lines for High 15 Performance Tracking", IEEE International Conference on Computer Vision, pp. 1508-1511, 2005, et [4] ROSTEN E. et DRUMMOND T., "Machine Learning for High-Speed Corner Detection", European Conference on Computer Vision, pp. 430-443, 2006. 20 L'algorithme détecteur de coins est précis et robuste, il tient compte des rotations et il est susceptible de détecter et d'éliminer des résultats d'évaluation aberrants. De plus, la précision absolue est constante quelle que soit la vitesse (à l'opposé de la méthode à flot optique), ce qui permet d'obtenir d'excellents résultats notamment pour les vitesses faibles, avan- 25 tage particulièrement appréciable si l'ont veut utiliser ces résultats pour un asservissement et une stabilisation en vol stationnaire. En revanche, cette méthode impose des contraintes beaucoup plus fortes sur la scène en termes de contraste et de texture, qui ne le rendent pas applicable à toutes les situations susceptibles d'être rencontrées. 30 Enfin, dans tous les cas, l'utilisation du résultat du calcul pour asservir certaines commandes de pilotage automatique du drone impose de disposer de cette donnée quasiment en temps réel, en tous cas de façon suffisamment rapide pour pouvoir assurer le pilotage automatique du drone avec toute la réactivité recherchée. Cette contrainte limite les possibilités de mise en oeuvre des algorithmes conventionnels, souvent conçus pour être exécutés sur des ordinateurs munis de processeurs rapides et de capacités mémoire importantes. L'un des buts de l'invention est de proposer un nouveau procédé qui combine les avantages des deux techniques précitées, flot optique et détection de coins, notamment - mais non exclusivement - dans le cadre d'une détection de vitesse pour un asservissement en vol stationnaire du drone. Un autre but de l'invention est de pouvoir bénéficier de ces avantages même dans le cas de scènes dont le contraste peut être très faible et le bruit élevé, ou dont les formes identifiées dans l'image peuvent changer d'apparence de façon imprévisible, comme cela est le cas du terrain très changeant et imprévisible survolé par un drone. Un autre but encore de l'invention est de proposer un procédé de mesure de la vitesse horizontale qui puisse être implémenté de manière à délivrer une mesure en temps réel de la vitesse au moyen d'un calculateur embarqué incorporé au drone, donc disposant de possibilités limitées en termes de puissance de calcul. L'invention propose à cet effet un procédé d'évaluation de la vitesse de translation horizontale d'un drone comprenant un altimètre apte à mesurer l'altitude du drone par rapport au terrain survolé par ce drone, et une caméra vidéo à visée verticale pointant vers le bas et apte à capter des images numériques successives d'une scène du terrain. Ce procédé opère par estimation du déplacement de la scène captée par 25 la caméra d'une image à la suivante, et application à ce déplacement es- timé d'un facteur d'échelle fonction de l'altitude mesurée. L'estimation du déplacement comprend, d'une manière en elle-même connue : la mise à jour périodique et continue d'une représentation multirésolution de type pyramide d'images, modélisant à différentes résolutions 30 successivement décroissantes une même image captée de la scène ; et, pour chaque nouvelle image captée, l'application à cette représentation multi-résolution d'un algorithme itératif de type flot optique d'estimation du mouvement différentiel de la scène d'une image à la suivante, De façon caractéristique de l'invention, le procédé comprend en outre : 35 l'obtention, à partir des données produites par l'algorithme à flot optique, d'au moins un paramètre de texturation représentatif du niveau des micro-contrastes de la scène captée ; l'obtention d'une approximée de la vitesse de translation horizontale du drone ; l'application au(x) paramètre(s) de texturation et à l'approximée de vitesse d'une première batterie de critères prédéterminés ; et, si cette première batterie de critères est vérifiée, le basculement de l'algorithme à flot optique vers une algorithme de type détecteur de coins pour l'estimation du mouvement différentiel de la scène d'une image à la suivante. Très avantageusement, le paramètre de texturation est un paramètre dé- rivé de la matrice -EIz EIxIY E E des composantes du gradient de 112 E l'image, où I, et I,, sont les composantes du gradient de l'image, et E est l'ensemble des points pour lesquels le gradient présente une norme supérieure à un premier seuil utile prédéterminé. Ce paramètre peut notamment être la valeur de la trace de cette matrice, et le cardinal de l'ensem- ble E des points pour lesquels le gradient présente une norme supérieure à un premier seuil utile prédéterminé. La première batterie de critères prédéterminés pour décider le bascule-ment de l'algorithme à flot optique vers l'algorithme détecteur de coins peut en particulier comprend cumulativement les conditions suivantes : valeur de la trace supérieure à un deuxième seuil donné ; et valeur du cardinal supérieur à un troisième seuil donné ; et estimée de la vitesse inférieure à un quatrième seuil donné. Si l'algorithme sélectionné est l'algorithme détecteur de coins et si l'approximée de la vitesse est inférieure à un cinquième seuil, il est avanta- geusement prévu en outre une adaptation de l'algorithme détecteur de coins par modification, pour au moins certains trackers sélectionnés, des paramètres de recherche du tracker et des dimensions de la zone de recherche dans l'image dans un sens restrictif. Il est en outre avantageuse-ment prévu d'activer dans ce cas un mode autopiloté d'asservissement en position du drone. Selon un second aspect de l'invention, le procédé comprend également, après basculement vers l'algorithme détecteur de coins : l'obtention, à partir des données produites par l'algorithme détecteur de coins, d'au moins un paramètre de risque d'échec de l'estimation du mouvement différentiel de la scène d'une image à la suivante par l'algorithme détecteur de coins ; l'obtention d'une approximée de la vitesse de translation horizontale du drone ; l'application au(x) paramètre(s) de risque d'échec et à l'approximée de vitesse d'une seconde batterie de critères prédéterminés ; et, si la seconde batterie de critères est vérifiée, basculement in-verse avec retour à l'algorithme à flot optique pour l'estimation du mouvement différentiel de la scène d'une image à la suivante. Le paramètre de risque d'échec peut notamment comprendre le nombre de trackers ver- rouillés utilisés par l'algorithme détecteur de coins. La seconde batterie de critères prédéterminés pour décider le bascule- ment inverse avec retour vers l'algorithme à flot optique peut en particulier comprendre alternativement les conditions suivantes : nombre de trackers verrouillés inférieur à un sixième seuil donné ; ou estimée de la vitesse 15 supérieure à un septième seuil donné. Enfin, le procédé peut prévoir le comptage du nombre d'images successives captées depuis le basculement d'un premier algorithme, algorithme à flot optique ou algorithme détecteur de coins, vers l'autre algorithme, et le conditionnement du retour au premier algorithme à un nombre minimal 20 d'images comptées depuis le basculement vers cet autre algorithme. 0 On va maintenant décrire un exemple de mise en oeuvre de l'invention, en 25 référence aux dessins annexés. La Figure 1 est une vue d'ensemble montrant le drone et l'appareil de télécommande associé permettant son pilotage à distance. La Figure 2 est une représentation schématique d'une pyramide d'images, c'est-à-dire d'une représentation multirésolution de la scène captée par la 30 caméra à visée verticale. La Figure 3 est un organigramme général des différentes étapes d'un algorithme de type à flot optique. La Figure 4 est un organigramme général des différentes étapes d'un algorithme détecteur de coins. La Figure 5 illustre les étapes essentielles de l'algorithme de sélection de l'estimateur (flot optique ou détecteur de coins) selon l'invention, en fonction d'un certain nombre de critères de basculement d'un algorithme vers l'autre. 0 On va maintenant décrire un exemple de mise en oeuvre de l'invention. Sur la Figure 1, la référence 10 désigne de façon générale un drone, qui est par exemple un quadricoptère tel que le modèle AR.Drone de Par- rot SA, Paris, France. Ce drone 10 comporte quatre rotors coplanaires 12 dont les moteurs sont pilotés indépendamment par un système intégré de navigation et de contrôle d'attitude. Le drone 10 comporte également une première caméra 14 à visée frontale permettant d'obtenir une image de la scène vers laquelle se dirige le drone, ainsi qu'une seconde caméra 16 à visée verticale pointant vers le bas, apte à capter des images numériques successives du terrain 18 sur-volé par le drone. L'angle de vue de cette caméra, schématisé en 20, est par exemple de 64° de diagonale, avec une résolution de 176 x 144 pixels (ces valeurs n'étant bien entendu données qu'à titre illustratif). Le drone 10 est également pourvu d'un altimètre à ultrasons 22, émettant en direction du sol un faisceau 24 permettant de connaître à tout moment l'altitude du drone par rapport au sol. Cette information servira notamment à estimer un facteur d'échelle à appliquer à l'image captée par la caméra 16, de manière à pouvoir transformer le déplacement de la scène sur l'image captée en une information de vitesse par rapport au terrain 18. Enfin, le drone comporte des capteurs inertiels (accéléromètres et gyromètres) permettent de mesurer les vitesses angulaires et les angles d'attitude du drone avec une certaine précision. Le drone 10 peut être piloté par un appareil de télécommande distant 26, par exemple un appareil pourvu d'un écran tactile 28 affichant l'image embarquée par la caméra frontale 14, avec en superposition un certain nombre de symboles permettant l'activation de commandes de pilotage par simple contact du doigt 30 d'un utilisateur sur l'écran tactile 28. L'appareil de télécommande 26 est également pourvu de capteurs d'inclinai- son permettant de contrôler l'attitude du drone par des inclinaisons cor- respondantes de l'appareil de télécommande selon des axes de roulis et de tangage. Le drone est également pourvu d'un système de stabilisation autonome en vol stationnaire en l'absence de toute commande extérieure appliquée 5 par un utilisateur. Ce système permet d'apporter les corrections nécessaires pour maintenir l'équilibre du point fixe par des commandes de trimming appropriées, c'est-à-dire des commandes de correction des minimes variations de translation dues aux effets externes tels que déplacements d'air et dérive des 10 capteurs. Pour pouvoir fonctionner, ce système de stabilisation automatique nécessite une information de vitesse, notamment de la vitesse de translation linéaire horizontale du drone. L'invention propose d'utiliser la caméra vidéo à visée verticale 22 dont est 15 pourvu le drone pour déduire la direction et l'amplitude de cette vitesse linéaire à partir du mouvement de formes détectées et suivies entre les images successives, en fonction des transformations de l'image de la scène captée par cette caméra. On formulera les hypothèses suivantes : 20 - en premier lieu, on supposera que la scène est une scène "plate", c'est-à-dire que le terrain 18 est horizontal. En effet, le télémètre embarqué fournit une mesure de la distance du drone à la scène (terrain 18), mais la technologie utilisée (ultrasons) ne permet pas de déterminer en quel point précis de l'image cette distance a été évaluée. On 25 supposera donc que l'altitude varie peu dans la scène par rapport à la donnée du télémètre, et on considérera que tout point de la scène se situe à une même distance du plan focal de l'image, en négligeant l'influence de la profondeur de la scène. Concrètement, cette hypothèse est généralement correcte si la caméra et son télémètre sont orientés 30 face au sol ; en second lieu, on supposera que l'illumination de la scène, et implicitement la réponse de la caméra, sont constantes ; - enfin, on supposera que la scène observée est rigide, afin de limiter les difficultés de l'estimation de vitesse à partir d'une suite d'images. Algorithme à base de flot optique constant On va décrire les caractéristiques principales de ce type d'algorithme, qui est en lui-même connu, notamment d'après les publications [1] et [2] indi- quées plus haut, auxquelles on pourra se référer pour plus de détails. On peut notamment utiliser la méthode d'estimation de Lucas-Kanade, qui est particulièrement simple et rapide, dès lors que l'on est en présence d'un flot optique localement constant, c'est-à-dire dont le mouvement est le même pour chaque point de la scène captée par la caméra (hypothèse qui est vérifiée si la scène est parfaitement plane, si le mouvement est parallèle au plan focal de la caméra et sans rotation autour de l'axe optique, et avec une illumination constante de la scène). L'inconvénient de cette méthode est qu'elle repose sur une approximation de Taylor du signal image, ce qui réduit à quelques pixels seulement la vi-15 tesse maximale détectable de façon fiable. Pour pallier cet inconvénient, on peut augmenter la vitesse maximale théorique détectable par une approche multirésolution, en créant une série de réductions successives de l'image originelle. Cette approche, également dénommée "pyramide d'images" est schématisée Figure 2 : à par- 20 tir de l'image complète (niveau 0), de résolution 176 x 144 pixels dans cet exemple, on reprend la même image à des réductions successives d'un facteur de 2 : niveau 1 sur 88 x 72 pixels, niveau 2 sur 44 x 36 pixels et niveau 3 sur 22 x 18 pixels. La précision du flot optique estimé sera inversement proportionnelle à la 25 réduction effectuée, en revanche la vitesse maximale détectable correspondante augmente proportionnellement avec le niveau de réduction. L'approche multirésolution consiste à estimer le flot optique constant dans la plus basse résolution (ici, le niveau 3) puis à réinjecter ce résultat en tant que prédiction à la résolution suivante (niveau 2). L'avantage de ta- 30 vailler sur une version grossière de l'image (par exemple le niveau 3) réside dans le fait qu'on n'autorise qu'un très petit déplacement dans l'image et que le suivi des points est alors très rapide. On peut alors utiliser l'in-formation de mouvement ainsi obtenue pour prédire le mouvement sur l'image de niveau inférieur. On progresse ainsi de niveau en niveau jus- 35 qu'à arriver à une précision suffisante. Concrètement, il suffit de commen- cer l'estimation au niveau 3 (trois réductions successives) et finir au ni-veau 1 (une réduction), ce qui permet extrêmement rapidement d'obtenir un résultat précis. L'abandon du niveau 0 (image complète) permet d'économiser environ 75 % des calculs, ce qui assure un compromis efficace entre temps de calcul et précision du résultat. La prédiction utilisée au niveau le plus bas (ici le niveau 1) sera la dernière vitesse estimée, remise à l'échelle de cette résolution. Comme une erreur à basse résolution se traduit par une erreur plus élevée lorsque la résolution augmente, il convient de tester la vraisemblance de chaque prédiction, en vérifiant que les estimations successives sont dans la même direction que l'estimation passée et qu'un signal lissé, quand elles sont plus grandes qu'un certain seuil. Ce signal lissé est obtenu par un lissage exponentiel des déplacements de la caméra ; il est également atténué afin de tendre vers zéro s'il n'est pas mis à jour pen- dant une durée suffisante en cas d'échec de l'estimation de vitesse ; dans le cas contraire, ce signal deviendrait lui-même aberrant. La Figure 3 résume sous forme d'organigramme les différentes étapes mises en oeuvre par l'algorithme de flot optique que l'on vient d'exposer. Après avoir estimé le flot optique constant (Ex, Fy) par application de cet algorithme, pour en déduire une estimation du déplacement entre deux images il suffit d'un changement de repère (pour se placer dans un repère autre que le repère propre de la caméra) et d'un changement d'échelle (faisant intervenir la focale Focale de la caméra et la distance Altitude à la scène) : Tx Ty T, Il convient également de compenser une rotation éventuelle entre les images utilisées pour estimer le flot optique. Ces informations de rotation sont délivrées par la centrale inertielle, et les erreurs qu'elles sont susceptibles d'introduire (rotations qui ajoutent une composante le long de l'intersection entre le plan image et le plan perpendiculaire à l'axe de rotation) peuvent Focale Rimageiscène. Altitude Y 0 être compensées en ajoutant au flot estimé le déplacement du centre op-tique dû à la rotation entre les deux images : Ffinal = F, FY + G -( prof ( Rratation. cy Focale ) Rrotation étant la rotation à compenser, prof étant la fonction qui projette un point de l'espace sur l'écran, (Ca, Gy) étant le centre de l'image, et G étant le gain de la compensation. La compensation peut être optimisée en calculant un gain G optimal sur une très grande base. Le gain optimal obtenu, inférieur à l'unité, ne sera optimal qu'en moyenne, le gain idéal pour les translations nulles étant égal à l'unité. II peut être donc plus efficace de conserver le gain unité pour une situation de vitesse nulle (asservissement de point fixe en vol stationnaire). La compensation de rotation permet de rendre le calcul robuste aux rotations rencontrées en vol stationnaire, et surtout de conserver un modèle linéaire de mouvement qui permette d'appliquer la prédiction de façon quasi-transparente en termes de calcul (le décalage de l'image entière revenant à décaler un pointeur). Algorithme à base de détection de coins On va décrire les caractéristiques principales de ce type d'algorithme, qui est en lui-même connu, notamment d'après les publications [3] et [4] indiquées plus haut, auxquelles on pourra se référer pour plus de détails. Cet algorithme opère par estimation du mouvement de différents points d'intérêt ("coins") dans l'image. Il utilise à cet effet une structure dite "tracker" en charge de suivre un point d'intérêt, qui héberge les informations nécessaires pour retrouver ce dernier dans l'image suivante. Lorsqu'un tracker parvient à suivre un point d'une image à la suivante, on dira qu'il est "verrouillé", dans le cas contraire il est "perdu". Une première analyse de l'image permet de détecter les points d'intérêt, par exemple au moyen d'un détecteur de coins de type FAST (Feature from Accelerated Segment Test). L'algorithme place ensuite des trackers sur ces coins après avoir vérifié que leur contenu est valide, ou cherche la nouvelle position d'un tracker sur l'un de ces points, l'hypothèse étant qu'un point d'intérêt sur une image reste souvent un point d'intérêt sur les images suivantes. La zone de recherche d'un tracker dans une nouvelle image est donc restreinte à la liste des positions d'intérêt. Elle est égale-ment restreinte en fonction des mouvements précédents du tracker, par soucis d'optimisation du temps de calcul et de robustesse. Le détecteur de coins FAST est optimisé pour réduire le nombre d'accès mémoire, avec un seuil de contraste fixe et un rayon de parcours fixe, et une acquisition sur une version de l'image réduite à 50 %. Les positions répondant au détecteur sont stockées dans une table, et marquées sur une image. La table permet d'accéder rapidement aux coins sans contrainte sur la position de ceux-ci (pour le placement des nouveaux trackers), et l'image permet d'y accéder de façon aléatoire (pour la recherche d'un tracker placé). L'étape suivante consiste à prédire la position future du tracker, par un double lissage exponentiel. Quand le tracker est très lent, sa position pré-dite sera identifiée à sa position courante. Le rectangle de recherche du tracker changera de taille en fonction de la distance entre la position pré-dite et la position réelle à l'image précédente. Le rayon de recherche est réduit quand il est trop grand, et il est augmenté quand il est trop proche de la distance réelle (le rayon maximum étant utilisé à chaque nouveau tracker placé). Lorsqu'un tracker est placé sur une image, on enregistre une fraction d'image ou "patch" de taille fixe (7 x 7 pixels par exemple) autour de sa position, et c'est cette fraction d'image que l'on recherchera dans les ima- ges suivantes. La distance utilisée pour comparer différentes fractions d'image est la somme des différences absolues : distance (tracker, I, , (x, y)) = I tracker -> patch(u, v) - I, (x + u, y + v) Pour rechercher un tracker, on parcourt en spirale les positions autour de la position prédite et pour chaque coin on calcule la distance au descripteur, qui est comparée à trois seuils : un seuil haut, en dessous duquel on autorise le test des voisins de la 5 position en cours, en 8-connexité, même si ce ne sont pas des positions d'intérêt ; - un seuil bas, en dessous duquel on arrête la recherche après une recherche au demi-pixel ; et un seuil moyen, qui autorise une recherche au demi-pixel afin de pas-10 ser le seuil bas. Le détecteur de coins ne répondant pas seulement à de véritables coins dans l'image, il se peut que des positions non désirables soient parfois classées comme étant intéressantes. Ces positions non désirables sont celles autour desquelles la somme des 15 différences absolues est quasiment constante et bruitée au lieu de présenter un minimum très marqué, comme pour un véritable coin. On imposera donc un contraste minimum, puis on pratiquera un test sur chaque fraction d'image envisagée comme descripteur. La fraction d'image binarisée permettra de déterminer par le test si le contenu est monodimension- 20 nel, et de rejeter ou d'accepter la fraction d'image analysée. La Figure 4 résume sous forme d'organigramme les différentes étapes mises en oeuvre par l'algorithme détecteur de coins que l'on vient d'exposer. Une fois ces opérations effectuées, il peut être intéressant, dans le cadre 25 d'une estimation de vitesse destinée à un asservissement en point fixe, de modifier la détection des coins pour l'adapter aux très faibles vitesses, de la manière que l'on va décrire, et qui sera désignée "mode gold". En effet, lorsque la vitesse est faible, l'estimation est plus bruitée ; la précision des trackers reste limitée au demi-pixel, et l'erreur en vitesse aug- 30 mente donc avec l'altitude. Il peut être alors préférable d'asservir la position de la caméra à une position fixe plutôt que d'annuler la vitesse. En d'autres termes, pour éviter les dérives (accumulation d'erreurs, vent, etc.) on préfère asservir le drone en position plutôt qu'en vitesse, de manière que cet asservissement soit indépendant de la valeur de la vitesse 35 (valeur elle-même très faible). Pour assurer un asservissement par rapport à une position, comme les trackers n'ont pas de mémoire (il n'est pas possible de retrouver un tracker perdu), il est nécessaire de s'appuyer sur des trackers présentant une durée de vie longue. Lorsque la vitesse de la caméra est faible, on peut donc faire passer certains trackers dans un mode spécial les rendant plus durables. L'algorithme utilisé sera certes plus complexe, mais cette complexité sera compensée par une zone de recherche plus réduite. On met en oeuvre pour cela une recherche exhaustive par le tracker sur un rayon limité, suivie d'une recherche au demi-pixel. On applique de plus un filtrage passe-bas sur la fraction d'image de référence du tracker, ainsi que sur les fractions d'image avec lesquelles ce tracker va être comparé, ceci de manière à augmenter la robustesse aux phénomènes parasites d'échantillonnage tels que l'aliasing (repli de spectre) et le moiré. Pour passer au mode "gold", il faut que la quantité de mouvement moyenne des trackers soit inférieure à un seuil donné, les trackers ver-rouillés depuis un nombre minimal d'images étant alors changés en trackers "gold", en favorisant les trackers centraux. Quand un tracker au moins passe en mode "gold", on estimera une translation supplémentaire, qui ne sera pas convertie en une vitesse. Lasser- vissement visera alors à ramener la caméra à la position visée lors de l'établissement du mode "gold" au lieu de compenser les derniers déplacements. On tentera régulièrement d'ajouter des trackers "gold", même si l'ajout de trackers implique la mise à jour de la position de référence avec la position en cours. L'étape finale de l'évaluation de la vitesse par l'algorithme détecteur de coins consiste à estimer la translation d'une image à la suivante. L'algorithme de tracking fournissant les déplacements à l'image de plu-sieurs points de la scène, dès lors que l'on suppose que la scène est plane (ce qui est une hypothèse raisonnable puisque la caméra fait face au sol) il ne manque que l'information de profondeur pour ces points. Le déplacement de la caméra est déduit du mouvement des trackers en minimisant la somme des erreurs de reprojection aux moindres carrés itérativement repondérés (les erreurs de reprojection étant les distances entre les positions trouvées dans l'image la plus récente et la position théori- que après le déplacement de la caméra). Plutôt que d'estimer la vitesse instantanée, on peut aussi estimer le dé-placement entre les instants d'acquisition de la dernière image et d'une image plus ancienne, dès lors que la quantité de mouvement des trackers est supérieure à un seuil. Ceci a pour effet de diminuer le nombre de trac- kers disponibles pour le calcul, mais réduit en proportion l'importance du bruit sur le positionnement des trackers, tout en lissant la valeur de la vitesse finalement estimée. Sélection de l'algorithme le mieux adapté Comme on l'a exposé en introduction, chacun des deux algorithmes, flot optique et détecteur de coins, présente ses propres avantages et inconvénients. L'originalité de la présente invention consiste à utiliser ces deux algorith- mes de manière alternative, en choisissant celui qui, à un moment donné, est le mieux adapté aux différentes contraintes (vitesse faible ou élevée, scène plus ou moins contrastée et texturée, etc.). À chaque nouvelle image traitée, on se posera la question du changement d'algorithme pour la prochaine image, en déterminant celui des algorith-20 mes qui, a priori, donnera les meilleurs résultats. Cependant, l'alternance ne se fait pas sans un coût supplémentaire en termes de temps de calcul, et il est important de déterminer également si en cas de changement le nouvel algorithme pourra fonctionner de manière optimale dès le premier couple d'images successives fourni. 25 On a vu que chacun des deux algorithmes nécessite une phase de pré-traitement, appliquée en début de chaîne, et une phase de mise à jour, en fin de chaîne. Ainsi : l'algorithme à base de flot optique crée une pyramide d'images à partir de chaque capture de la caméra, et en fin de traitement met à jour l'an-30 cienne version de cette pyramide d'images ; l'algorithme détecteur de coins, quant à lui, nécessite comme prétraitement l'acquisition des coins dans une version réduite de l'image, et comme mise à jour le replacement des trackers sur des coins avant l'image suivante. L'algorithme détecteur de coins ne peut donc pas fonctionner si des coins n'ont pas déjà été acquis à l'image précédente : sans coin, aucun tracker ne pourra être placé, et donc aucun tracker ne pourra être suivi à l'image d'après. Et conserver des trackers anciens n'est pas envisageable, car ce- la impliquerait de les rechercher dans une zone d'image trop étendue, et qui a pu également entre temps subir des rotations. Or l'acquisition des coins, même sur une image réduite, est une opération coûteuse en temps de calcul, dont on doit pouvoir se dispenser si elle n'est pas utile, c'est-à-dire si on considère que c'est l'algorithme de flot op- tique qui est le mieux adapté. On notera en revanche que les prétraitements de l'algorithme de flot optique sont rapides, et que les mises à jour sont très économes en temps de calcul puisqu'elles peuvent s'effectuer au moyen de simples échanges de pointeurs. La première réduction d'image (passage du niveau 0 au niveau 1), bénéficie de plus aux deux algorithmes, et elle n'est donc jamais inutile. On choisira donc d'exécuter systématiquement les prétraitements et mi-ses à jour de l'algorithme de flot optique, mais en revanche de n'exécuter ceux de l'algorithme détecteur de coins que dans le cas où ce dernier est le mieux adapté, notamment dans le cas où la vitesse est faible. Par ailleurs, l'algorithme employé par défaut sera le flot optique, puisque c'est celui qui s'adapte le mieux à tous les types de scènes. Enfin, on attribuera à chaque algorithme à un "crédit", c'est-à-dire un nombre d'images minimal, après basculement d'un algorithme vers un autre, avant lequel on interdira tout basculement inverse vers le premier algorithme. Ce crédit sera typiquement de 10 images pour conditionner un basculement du flot optique vers le détecteur de coins, mais de quelques images seulement pour le basculement inverse (pour que le prétraitement d'acquisition des coins, relativement long, ne retarde pas trop le calcul de la vitesse). On va maintenant décrire, en référence à la Figure 5, l'algorithme de sélection de l'algorithme estimateur le mieux adapté. Comme on l'a indiqué plus haut, la création de la pyramide d'images et sa mise à jour sont effectuées de façon systématique, à chaque nouvelle 35 image (bloc 100). Si un nombre minimal d'images se sont écoulées (crédit épuisé, test 102) et si l'algorithme sélectionné est le flot optique (test 104), la problématique est alors celle de la transition du flot optique vers le détecteur de coins. Il convient pour cela de déterminer si la scène et le mouvement sont adaptés au détecteur de coins. L'algorithme de flot optique (bloc 106) connaît déjà une version de la vitesse estimée, utilisée pour les prédictions et les tests de cohérence. Cette donnée est une bonne indication de la tendance, rapide ou lente, du mouvement. Elle est robuste aux erreurs grossières de l'algorithme et pourra même être réinjectée comme prédiction pour l'algorithme détecteur de coins. En variante ou en complément, cette estimée de la vitesse peut être obtenue à partir d'informations fournies par la centrale inertielle. Comme on l'a indiqué plus haut, seul l'algorithme détecteur de coins nécessite un contenu particulier pour fonctionner. L'implémentation d'un estimateur de contenu de scène serait toutefois difficile et représenterait un surcoût en termes de complexité, s'il fallait l'utiliser uniquement pour évaluer l'intérêt de basculer de l'algorithme à flot op-tique vers l'algorithme à détecteur de coins. On utilise plutôt un "sous-produit" de la méthode d'estimation du flot opti- que. Cette méthode implique en effet le calcul à chaque image de la for-mule de Lucas-Kanade : Fx Ix et I,, étant les composantes du gradient de l'image, et E étant l'ensemble des points pour lesquels le gradient présente une norme supérieure à un premier utile prédéterminé. Dans cette formule, la matrice carrée centrale à inverser : qui est la matrice des composantes du gradient de l'image, est calculée en tout état de cause. On va utiliser la valeur de la trace de cette matrice, qui donnera une estimation de la norme moyenne du gradient sur E. Si E contient suffisamment de points (c'est-à-dire si son cardinal est supérieur à un seuil donné) et que la valeur de cette trace est suffisamment élevée, alors on a une bonne indication que la scène captée est texturée, c'est-à-dire qu'elle contient suffisamment de micro-contrastes pour une mise en oeuvre satisfaisante de l'algorithme. Les seuils de décision seront ajustés sera choisi en fonction du seuil de contraste utilisé dans le détecteur de coins. Mathématiquement, il n'est pas certain qu'un fort gradient moyen garantisse la présence de coins, mais statistiquement l'indicateur fonctionne efficacement et surtout n'implique aucun calcul supplémentaire. Cet "indicateur de texture" de la scène n'étant pas à lui seul une mesure d'une qualité de scène qui puisse garantir un nombre suffisant de trackers en cas d'utilisation du détecteur de coins, il est nécessaire de le combiner avec d'autres paramètres. On choisira comme paramètre représentatifs : - le nombre de points (cardinal de E) utilisé pour l'indicateur de texture, qui indique si la zone d'intérêt est bien répartie dans l'image, et - l'estimée de la vitesse (la vitesse donnée par le signal lissé, moyennée sur plusieurs images), qui permet de savoir si l'on va "globalement vite" ou "globalement lentement". Ainsi, si les trois conditions suivantes sont cumulativement réunies (test 25 108) : score de l'indicateur de texture (trace de la matrice) supérieur à un premier seuil, et nombre de points utilisé (cardinal de E) supérieur à un deuxième seuil, et 30 - estimée de vitesse inférieure à un troisième seuil donné, alors on décidera de basculer (bloc 110) vers l'algorithme détecteur de coins. Le traitement de l'image courante s'achève par la mise à jour de la pyramide d'images, qui est comme on l'a indiqué plus haut (bloc 112) opéré de 35 façon systématique. On va maintenant se placer dans l'hypothèse où l'algorithme courant sélectionné est le détecteur de coins (bloc 114). La question est alors de savoir s'il est préférable de revenir à l'algorithme à flot optique, ou bien de rester avec algorithme détecteur de coins et, dans ce dernier cas, s'il convient ou non d'activer le mode "gold" expliqué plus haut pour certains trackers. Dans la mesure où l'algorithme détecteur de coins ne fait pas usage de la formule de Lucas-Kanade, on ne dispose plus de l'indicateur de texturation de la scène que l'on avait utilisé lorsqu'on était avec l'algorithme de flot optique. On peut cependant se baser sur le fonctionnement de l'algorithme détecteur de coins pour déterminer s'il est toujours apte à traiter l'image courante. Le nombre de trackers verrouillés en fin de traitement n'est pas un indica- teur de la qualité de l'estimation de la translation (et donc de l'évaluation de la vitesse) : il est possible en effet d'obtenir une mauvaise estimation avec beaucoup de trackers, ou une excellente estimation avec un unique tracker. De la même manière, le score de similarité obtenu par un tracker avec la zone d'image sur laquelle il est déplacé n'est pas lié à l'erreur de placement. Ce n'est qu'en multipliant le nombre de trackers qu'on pourra garantir, en moyenne, un résultat satisfaisant. Le nombre de trackers verrouillés fournit donc un indicateur du risque que l'algorithme détecteur de coins échoue à long terme, situation que l'on pourra éviter en basculant directement vers l'algorithme à flot optique (qui n'échoue quasiment jamais, au prix d'une légère augmentation d'erreur). On repassera donc à l'algorithme à flot optique si l'une ou l'autre des deux conditions suivantes est remplie (test 116) : - l'estimée de la vitesse lissée est supérieure à un seuil donné, ou - le nombre de trackers verrouillés est inférieur à un autre seuil donné. 30 Si l'une ou l'autre de ces conditions est vérifiée, on commandera le bascu- lement inverse (bloc 118) vers l'algorithme à flot optique. Le traitement de l'image s'achèvera, comme précédemment, par la mise à jour de la pyramide d'images (bloc 112), opérée systématiquement quel que soit le type d'algorithme courant. Si, au test 116, on avait considéré que l'algorithme détecteur de coins devait être maintenu, alors on vérifie si le mode "gold" est activé (test 120) : - dans l'affirmative, la situation qui prévaut est conservée, avec l'algo- rithme détecteur de coins maintenu en l'état (bloc 110) ; - dans la négative, on estime (test 122) la quantité de mouvement moyenne des trackers, et si celle-ci est inférieure à un seuil donné (i) les trackers verrouillés depuis un nombre minimal d'images seront alors passés en mode "gold", (ii) les positions de référence seront enregis- trées et (iii) l'algorithme sera maintenu en mode détecteur de coins (bloc 124). Ici encore, le traitement de l'image s'achève par la mise à jour de la pyramide d'images (bloc 112). REVENDICATIONS1. Un procédé d'évaluation de la vitesse de translation horizontale d'un drone (10), notamment d'un drone à voilure tournante apte au vol stationnaire autopiloté, ce drone comprenant : - un altimètre (22), apte à mesurer l'altitude du drone par rapport au ter-5 rain (18) survolé par ce drone ; et - une caméra vidéo à visée verticale (16), pointant vers le bas et apte à capter des images numériques successives d'une scène dudit terrain, ledit procédé comprenant l'estimation du déplacement de la scène captée par la caméra d'une image à la suivante, et l'application à ce déplacement 10 estimé d'un facteur d'échelle fonction de l'altitude mesurée, l'estimation du déplacement comprenant : - la mise à jour périodique et continue d'une représentation multi- résolution de type pyramide d'images, modélisant à différentes résolu- tions successivement décroissantes une même image captée de la 15 scène ; et - pour chaque nouvelle image captée, l'application à ladite représentation multi-résolution d'un algorithme itératif de type flot optique d'estimation du mouvement différentiel de la scène d'une image à la sui-vante, 20 procédé caractérisé en ce qu'il comprend en outre : l'obtention, à partir des données produites par l'algorithme à flot optique (106), d'au moins un paramètre de texturation représentatif du ni-veau des micro-contrastes de la scène captée ; - l'obtention d'une approximée de la vitesse de translation horizontale du 25 drone ; - l'application au(x)dit(s) paramètre(s) de texturation et à ladite approximée de vitesse d'une première batterie de critères prédéterminés (108) ; et si ladite première batterie de critères est vérifiée, le basculement (110) 30 de l'algorithme à flot optique vers une algorithme de type détecteur de coins pour l'estimation du mouvement différentiel de la scène d'une image à la suivante. 2. Le procédé de la revendication 1, dans lequel ledit au moins un para-mètre de texturation est un paramètre dérivé de la matrice des composantes du gradient de l'image, où IX et I,, sont les composantes du gradient de l'image, et E est l'ensemble des points pour lesquels le gradient présente une norme supérieure à un premier seuil utile prédéterminé. 3. Le procédé de la revendication 2, dans lequel ledit au moins un para-mètre de texturation est la valeur de la trace de ladite matrice des composantes du gradient de l'image. 15 4. Le procédé de la revendication 2, dans lequel ledit au moins un para-mètre de texturation est le cardinal dudit ensemble E des points pour les-quels le gradient présente une norme supérieure à un premier seuil utile prédéterminé. 20 5. Le procédé des revendications 3 et 4 prise en combinaison, dans lequel ladite première batterie de critères prédéterminés (108) pour décider le basculement de l'algorithme à flot optique vers l'algorithme détecteur de coins comprend cumulativement les conditions suivantes : - valeur de ladite trace supérieure à un deuxième seuil donné ; et 25 - valeur dudit cardinal supérieur à un troisième seuil donné ; et - estimée de la vitesse inférieure à un quatrième seuil donné. 6. Le procédé de la revendication 1, dans lequel si l'algorithme sélection-né est l'algorithme détecteur de coins et si l'approximée de la vitesse est 30 inférieure à un cinquième seuil, le procédé comprend en outre une adaptation de l'algorithme détecteur de coins par modification (124), pour au moins certains trackers sélectionnés, des paramètres de recherche du 112 E EI.,I, 10 tracker et des dimensions de la zone de recherche dans l'image dans un sens restrictif. 7. Le procédé de la revendication 1, comprenant en outre, si l'algorithme sélectionné est l'algorithme détecteur de coins et si l'approximée de la vitesse est inférieure à un cinquième seuil, l'activation d'un mode autopiloté d'asservissement en position du drone. 8. Le procédé de la revendication 1, comprenant également, après bascu-10 lement vers l'algorithme détecteur de coins : l'obtention, à partir des données produites par l'algorithme détecteur de coins, d'au moins un paramètre de risque d'échec de l'estimation du mouvement différentiel de la scène d'une image à la suivante par l'algorithme détecteur de coins ; 15 - l'obtention d'une approximée de la vitesse de translation horizontale du drone ; l'application au(x)dit(s) paramètre(s) de risque d'échec et à ladite approximée de vitesse d'une seconde batterie de critères prédéterminés (106) ; et 20 si ladite seconde batterie de critères est vérifiée, basculement inverse (118) avec retour à l'algorithme à flot optique pour l'estimation du mouvement différentiel de la scène d'une image à la suivante. 9. Le procédé de la revendication 8, dans lequel ledit paramètre de risque 25 d'échec comprend le nombre de trackers verrouillés utilisés par l'algorithme détecteur de coins. 10. Le procédé de la revendication 9, dans lequel ladite seconde batterie de critères prédéterminés pour décider le basculement inverse avec retour 30 vers l'algorithme à flot optique comprend alternativement les conditions suivantes : - nombre de trackers verrouillés inférieur à un sixième seuil donné ; ou - estimée de la vitesse supérieure à un septième seuil donné. 11. Le procédé de la revendication 1, comprenant en outre le comptage du nombre d'images successives captées depuis le basculement d'un premier algorithme, algorithme à flot optique ou algorithme détecteur de coins, vers l'autre algorithme, et le conditionnement (102) du retour au premier algorithme à un nombre minimal d'images comptées depuis ledit basculement vers cet autre algorithme.