L'industrie automobile est considérée comme un «pionnier» dans le domaine de l'application des technologies de vision industrielle et son plus grand consommateur. Selon
les analystes, l'industrie automobile représente 23% du marché des produits de vision par ordinateur en Allemagne. Et selon VDMA, pour l'Europe ce chiffre est de 21%.
Il n'est donc pas surprenant que les algorithmes de vision industrielle aient progressivement commencé à être utilisés dans les voitures elles-mêmes, et pas seulement aux stades de leur production. Actuellement, ils sont utilisés dans les technologies de pilote automatique et de reconnaissance de bande.
Dans l'article d'aujourd'hui, nous allons commencer à parler de ce que les voitures «voient» et comment elles le font, en utilisant des algorithmes et des méthodes de base comme point de départ d'un cycle d'histoire.
Bienvenue à bord! / image WayRayVoir les obstacles
À l'aide de réseaux de capteurs et de caméras, les voitures ont appris à reconnaître autour d'eux les pare-chocs, les arbres, les poteaux et les véhicules stationnés. Le principe de détermination de la distance aux objets est basé sur la
parallaxe du mouvement .
Lorsque nous nous déplaçons à gauche ou à droite, les objets au loin se déplacent moins que leurs voisins. Sur la base de ce déplacement, la distance de l'observateur est déterminée.
La technique s'appelle la structure du mouvement. Sur la
page correspondante de Wikipédia, plusieurs outils sont proposés pour reconstruire des modèles tridimensionnels à partir d'une vidéo ou d'un ensemble de photographies. Il est basé
sur l' analyse d'une paire stéréo.
Paire stéréo à deux caméras / photo cobravictor / PDLa paire stéréo vous permet d'identifier des paires de points conjugués dans l'espace, sur la base desquels une carte de distance est construite. Sur celui-ci, la distance à l'objet est indiquée par des nuances de gris - le plus loin, le plus sombre. Un exemple d'une telle image est dans le
travail de Reinhard Klette (Reinhard Klette) de l'Université de Technologie d'Auckland. Lorsque la carte est construite, une analyse du mouvement des objets (vitesse, trajectoire) est effectuée - cela est nécessaire pour déterminer les conflits probables.
L'analyse de mouvement commence par le calcul du
flux optique , qui est utilisé pour calculer la carte de déplacement. Il vous permet de suivre le déplacement des points, c'est-à-dire de les retrouver sur la deuxième image d'une paire stéréo. En règle générale, cette méthode est utilisée pour suivre des objets, détecter des collisions et en
réalité augmentée .
Parmi les méthodes simples pour déterminer le décalage,
la méthode de corrélation de phase est distinguée - c'est le calcul de la transformée de Fourier pour les deux images et la recherche de leur convolution.
La comparaison de blocs est également utilisée: un décalage est trouvé qui minimise la norme de la différence dans l'image dans la fenêtre.
L'approche classique pour calculer le flux est l'algorithme Lucas-Canada. Il est basé sur l'hypothèse que les valeurs des pixels passent d'une image à l'autre sans modifications. Ainsi, nous supposons que les pixels appartenant au même objet peuvent se déplacer sur le côté, mais leur valeur restera inchangée.
Bien sûr, dans des conditions réelles, l'éclairage change constamment, mais dans la pratique, cette hypothèse n'affecte pas beaucoup le résultat. La théorie du fonctionnement de l'algorithme Lucas-Canada est décrite en détail dans cet
article .
Cette méthode définit bien les petits décalages dans lesquels l'image ressemble à son approximation linéaire. Mais il existe d'autres approches: la méthode Gunnar Farnebak, qui calcule le flux pour l'image entière à la fois, et
l'algorithme Horn-Schrank , basé sur l'hypothèse de limiter le changement dans les projections des vecteurs de flux optiques.
Vous pouvez en savoir plus sur la construction des cartes de déplacement et de distance
ici et
ici .
Sur la base des cartes reçues, les algorithmes construisent des itinéraires et évaluent les trajectoires: éviter les collisions, manœuvrer. Les algorithmes
construisent des modèles probabilistes pour prédire les routes des objets autour.
Pendant le pilote automatique, le système établit un plan d'itinéraire approximatif jusqu'au point de destination et surveille régulièrement l'environnement. Le véhicule détermine les directions dans lesquelles il peut suivre, en tenant compte de la vitesse actuelle et de la position angulaire.
Il élimine ensuite les itinéraires qui se croisent avec des obstacles ou s'en approchent trop. La sécurité de la manœuvre est également évaluée. Par exemple, une voiture se déplaçant à une vitesse de 90 km / h ne pourra pas tourner brusquement à droite après 5 mètres.
Lorsque le chemin est sélectionné, le contrôleur de la voiture donne des commandes à l'accélérateur, aux freins, au système de direction et aux entraînements électriques.
Notez qu'il existe d'autres façons de déterminer la distance aux obstacles et d'éviter les collisions. Leur apparition et leur mise en œuvre deviendront possibles avec la diffusion de l'Internet des objets. Ces algorithmes fonctionnent différemment - leurs auteurs proposent de ne pas utiliser de caméras, mais des systèmes de communication «voiture-voiture» et «voiture-infrastructure».
Algorithme DRCA
L'algorithme décentralisé d'évitement de collision réactive
suppose que si les voitures sont à une grande distance les unes des autres, elles suivent les itinéraires prévus. Si les voitures se rapprochent, le système effectue une manœuvre pour éviter une collision. L'organigramme est le suivant:
/ Schéma fonctionnel de l'algorithme DRCAPour déterminer si les voitures entreront en collision, la DRCA utilise le concept de «cône de collision» décrit par des vecteurs vitesse. Si l'angle β entre le vecteur de position relative r
⌄ ij et le vecteur de vitesse relative v
⌄ ij est supérieur ou égal à α - l'angle entre le vecteur de position relative et l'extrémité du cône de collision, alors il n'y a pas de conflit de route.
/ Le cône de collision est l'angle entre les lignes en pointillés. Si le vecteur v est dans cette zone, alors les voitures «entrent en conflit»L'algorithme permet également de contourner les objets statiques, cependant, il ne convient pas si les véhicules se déplacent dans une formation. DRCA proposera aux voitures de gagner une distance de sécurité les unes par rapport aux autres et «cassera» le système.
Méthode du champ de force artificielle
Il peut être utilisé en combinaison avec DRCA. Il est basé sur le calcul des champs de force artificiels. Les voitures sont des particules chargées. Les particules avec la même charge repoussent, et avec le contraire - attirent. Par conséquent, des frais négatifs sont attribués aux voitures et positifs aux itinéraires souhaités. Les vecteurs de force sont calculés sur la base de ces charges, puis utilisés pour déterminer la direction du mouvement.
Plusieurs méthodes sont utilisées pour estimer les vecteurs de gravité. Yunior I. Cruz de l'Université de Washington
décrit dans son travail
une technique qui a également été proposée pour acheminer des avions à géométrie d'aile inchangée.
Une «zone de sécurité» ovale se forme autour du véhicule, à l'extérieur de laquelle l'influence des «charges» des autres véhicules devient insignifiante. La gravité du point de destination est considérée comme une constante. Tout cela nous permet d'évaluer la force de gravité qui "sent" les voitures, et à partir de ces données d'ajuster l'itinéraire.
Reconnaître les rayures
Les voitures utilisent également la vision par ordinateur pour déterminer les voies. Ils ont appris à avertir le conducteur d'une collision avec un marquage et même à corriger indépendamment la trajectoire. Les scientifiques envisagent plusieurs options pour implémenter cette fonctionnalité. Le premier est lorsque l'infrastructure fait partie de systèmes intelligents (des balises intelligentes sont utilisées), cependant, elle est associée à la complexité et au coût élevé de la reconstruction des routes. La seconde - les voitures elles-mêmes analysent la route et prennent des décisions.
Ces systèmes utilisent des caméras et des méthodes d'extraction de caractéristiques pour indiquer les limites des bandes. Tout d'abord, des lignes situées à un certain angle par rapport à l'objectif se trouvent dans l'image de la caméra. Après cela, les pixels extrêmes sont sélectionnés parmi les bandes sélectionnées à l'aide de la recherche ternaire.
Voici la sélection d'informations utiles. Le fait est que le système marque toutes les lignes qui satisfont aux conditions données. À quoi cela ressemble, vous pouvez le voir dans le travail de Luke Fletcher (Luke Fletcher) sur le
lien .
Les entreprises ont différentes approches pour résoudre ce problème. Par exemple, Suzuki utilise la transformation projective. La caméra projette deux lignes qui convergent en un point de perspective. Le système ne considère que les bandes parallèles aux bandes projetées. Cependant, cela ne sauve pas de l'identification des fissures sur l'asphalte qui longent la route.
Une autre façon d'identifier les rayures s'appelle l'oeil d'oiseau et est décrite dans le livre Morphologie mathématique et son application au traitement du signal et de l'image. L'algorithme commence par transformer l'image en une projection orthographique, comme si l'on tournait l'image verticalement. Après cela, les bandes sont également sélectionnées et les champs de distance sont calculés, par exemple, en utilisant la
transformation euclidienne .
D'autres algorithmes reposent sur la recherche de régions qui changent de couleur du noir au blanc, cependant, seule cette approche ne doit pas être utilisée, car la qualité du marquage sur les différentes routes est différente. Par conséquent, les chercheurs recommandent d'utiliser des méthodes combinées.
L'algorithme de reconnaissance avec la construction d'images binaires et de code peut être trouvé sur le lien sur
GitHub . Le projet présenté fait partie du programme
Udacity Self-Driving Car Nanodegree . Vous pouvez trouver un autre exemple avec des morceaux de code de la bibliothèque d'algorithmes OpenCV
ici .