Détection de ligne de voie Vue d'ensemble de la méthode traditionnelle et de la méthode d'apprentissage en profondeur + Deux documents de lecture principale LaneATT + LaneNet

La détection de ligne de voie est un module de base dans la conduite automatique, le maintien de la voie, la croisière adaptative, le changement de voie automatique ; il est également très important pour les décisions ultérieures de sortie de voie ou de planification de trajectoire des véhicules à conduite entièrement automatique.

À l'heure actuelle, il existe deux schémas principaux pour la détection des lignes de voie : les méthodes traditionnelles et l'apprentissage en profondeur .

1. Méthode traditionnelle

(1) Détection des contours + transformation de Hough
Flux de la méthode : image couleur en niveaux de gris, flou, détection des contours, transformée de Hough
Cette méthode peut généralement détecter les deux lignes de voies conduisant actuellement un véhicule dans une scène simple, et parfois des voies adjacentes (selon de la caméra frontale). Cette méthode peut utiliser le résultat de la transformation de Hough (la pente de la ligne) pour filtrer davantage les lignes des voies gauche et droite. Mais en même temps, cette méthode s'appuie également sur les résultats de la détection des contours, donc l'ajustement des paramètres (détection des contours, transformée de Hough) et d'autres astuces (sélection ROI, etc.) sont très importants.

(2) Flux de méthode de seuil de couleur : convertissez l'image en espace colorimétrique (HSV général), définissez la valeur de seuil pour chaque canal dans le nouvel espace colorimétrique (la valeur supérieure à la valeur de seuil est 1 et la valeur inférieure à la valeur est
0), et le résultat est obtenu.
Cette méthode repose sur la sélection du seuil de chaque canal, et n'a besoin d'ajuster que quelques paramètres de seuil, mais parfois la robustesse sera médiocre, par exemple, les véhicules devant le véhicule actuel peuvent tous être réglés sur 1.

(3) Flux de méthode de transformation de perspective
 : obtenir une matrice de transformation de perspective, une transformation de perspective, une détection de ligne de voie L'
avantage de cette méthode est que l'image capturée par la caméra frontale peut être convertie en une vue à vol d'oiseau, et plusieurs lignes peuvent être détecté. La clé réside dans la précision de la matrice de transformation de perspective (sans tenir compte de la détection de ligne de voie convertie).Pour la vue à vol d'oiseau convertie, la ligne de voie peut être détectée des deux manières ci-dessus.
insérez la description de l'image ici
insérez la description de l'image ici

Détection des bords, k-Means, modèle de probabilité gaussien

(1) Détection de ligne de voie Udacity

  • Étalonnage de la caméra, openCV

Raisons : erreur de fabrication du capteur, distorsion radiale non linéaire, distorsion tangentielle

Référence : https://zhuanlan.zhihu.com/p/87334006 ; https://blog.csdn.net/a083614/article/details/78579163

  • Sélection du retour sur investissement, transformation de la perspective de l'image, conversion de l'image en vue de dessus
  • Binariser et trouver des lignes de voie

insérez la description de l'image ici
insérez la description de l'image ici

Fenêtres coulissantes et ajustement polynomial

  • La méthode des moindres carrés ajuste le point central pour former la ligne de voie

(2) Détection de ligne de voie basée sur la projection

  • Calibrage d'image, perspective ROI

Image originale:

insérez la description de l'image ici

Binarisation :

insérez la description de l'image ici

  • Projeter le point binarisé sur l'abscisse

insérez la description de l'image ici

Choisissez la valeur maximale correspondante :

insérez la description de l'image ici

  • Ransac (algorithme de consensus d'échantillonnage aléatoire) Ajustement polynomial des points proches

insérez la description de l'image ici

L'effet de la projection vers l'image d'origine :

insérez la description de l'image ici

Dans des scénarios réels, la robustesse de la méthode traditionnelle n'est pas bonne.En plus de l'influence de l'éclairage et des véhicules adjacents, les flèches indicatrices au milieu de la voie et du trottoir sont également des défis que de tels algorithmes sont difficiles à gérer.

2. Apprentissage en profondeur

La vague d'apprentissage en profondeur a fait de grands progrès dans la détection des lignes de voie

Limitations du travail de détection de ligne de voie (continu, c'est-à-dire généralement présent jusqu'à présent) :

insérez la description de l'image ici

La ligne de base du travail de détection de ligne de voie n'est pas claire, et différentes méthodes et différentes applications de scène ont leurs propres limites. Par exemple:

  • Type de sortie : masque masque/ensemble de points/ligne vectorielle
  • Instanciation : si chaque ligne de voie forme une instance
  • Classification : S'il faut classer les lignes de voie (simple blanc, double jaune, etc.)
  • Paramètres définis à l'avance : si seul un nombre fixe de lignes de voie peut être détecté
  • Marquages ​​de voie : S'il faut détecter les marquages ​​de conduite sur la voie

Cela affectera l'étiquetage des données et la forme de sortie du réseau, et ce qui est finalement nécessaire est l'équation de la ligne de voie dans le système de coordonnées mondial. Le réseau de neurones est plus adapté à l'extraction de caractéristiques au niveau de l'image, et les paramètres de l'équation de régression directe ont plus de restrictions. Par conséquent, un post-traitement relativement complexe est nécessaire pour résoudre le problème des coordonnées réelles après la sortie du raisonnement en réseau.

Le problème de détection de voie est souvent formulé comme une tâche de segmentation, où, étant donné une image d'entrée, la sortie est une carte de segmentation avec des prédictions par pixel.

Performance:

insérez la description de l'image ici

Pour juger Vrai ou Faux, il existe deux manières principales :

  • point final : en jugeant si la distance entre les points terminaux de la ligne et sa zone de délimitation dépasse le seuil
  • IOU: calculez directement la zone de chevauchement de IOU

IOU=(A∩B)/(A∪B)

IOU=SI/(SA+SB-SI)

Pipeline de travail :

insérez la description de l'image ici

Le pipeline de méthodes grand public actuel est divisé en plusieurs étapes et en une seule étape.

  • La multi-étape peut être divisée en deux parties, la segmentation sémantique binaire génère une carte de masque et adapte une ligne à la carte de masque. Parmi eux, la segmentation sémantique binaire adopte principalement la méthode CNN, et à travers SCNN (Spatial As Deep : Spatial CNN for Traffic Scene Understanding), CNN+RNN (Robust Lane Detection from Continuous Driving Scenes Using Deep Neural Networks), GAN (EL- GAN : Embedding Loss Driven Generateive Adversarial Networks for Lane Detection) et d'autres méthodes pour améliorer la précision de la segmentation sémantique. Pour l'ajustement de ligne de l'image de masque, la matrice de conversion apprise est utilisée pour convertir le résultat de la segmentation en perspective de la vue à vol d'oiseau, puis la méthode de sélection de points uniformes + moindres carrés est utilisée pour l'ajustement, et le l'équation d'ajustement peut être une équation cubique.
  • Pour la méthode en une étape, il s'agit de renvoyer directement les paramètres sortants, c'est-à-dire de modifier la branche sur le CNN, et d'utiliser une couche spéciale pour sortir les paramètres.

jeux de données:

  • L'équilibre des données de chaque catégorie de scène est requis, comme l'autoroute, la route auxiliaire, la route de montagne sinueuse, la nuit, le jour de pluie et d'autres données
  • Vérifiez et filtrez les images de meilleure qualité, telles que les données d'autoroute la nuit et les vidéos de conduite sous la pluie sont floues
  • Des images similaires sont dessinées et marquées, et une image peut être extraite pour 10 images. Par exemple, si plusieurs images à basse vitesse sont similaires, le taux de précision sera faussement élevé.
  • Augmentez les images de petites catégories, telles que la visualisation de l'histogramme des coefficients de ligne de voie, puis faites-les pivoter légèrement pour rendre la distribution de chaque coefficient plus raisonnable
  • Mettre à l'échelle et normaliser les données pour accélérer la convergence

Les ensembles de données de détection de ligne de voie couramment utilisés incluent TuSimple, CULane, BDD100K, etc. Parmi eux, le jeu de données TuSimple a un total de 7K images, et la scène est les données de l'autoroute américaine. CULane dispose d'un total de 133 000 éléments de données. La scène comprend huit conditions difficiles à détecter, telles que des nuits bondées et sombres. Les données sont collectées à Pékin. BDD100K a un total d'images 120M.L'ensemble de données contient une variété de tâches de perception de conduite autonome.L'ensemble de données est relativement nouveau et le taux d'adoption de l'algorithme n'est pas élevé. (Mise à jour des données)

insérez la description de l'image ici

papiers avec code https://paperswithcode.com/task/lane-detection/latest#code

insérez la description de l'image ici

insérez la description de l'image ici
insérez la description de l'image ici

Communication 1 : " LaneATT—— Gardez les yeux sur la voie : détection de voie guidée par l'attention en temps réel " détection de voie guidée par l'attention en temps réel

Adresse papier :

https://arxiv.org/pdf/2010.12035.pdf

Adresse Github :

https://github.com/lucastabelini/LaneATT

Insuffisances des méthodes existantes : maintenir l'efficacité en temps réel

LaneATT : un modèle de détection à une étape basé sur des ancres pour les voies profondes, qui est similaire à d'autres détecteurs d'objets profonds généraux, utilisant des ancres pour une étape de mise en commun des caractéristiques

Une image RVB est reçue en entrée d'une caméra frontale montée sur le véhicule :
insérez la description de l'image ici
la sortie est les lignes de délimitation des voies (voies), et pour générer ces sorties, un réseau neuronal convolutif (CNN), l'épine dorsale, génère une carte de caractéristiques puis fusionne la carte des caractéristiques pour extraire les caractéristiques de chaque ancre. Ces caractéristiques combinent un ensemble de caractéristiques globales produites par le module d'attention . En combinant des fonctionnalités locales et globales, le modèle peut plus facilement utiliser les informations d'autres voies, ce qui peut être nécessaire dans des situations telles que des occlusions ou l'absence de marquage de voie visible. Enfin, les entités combinées sont transmises à une couche entièrement connectée pour prédire le canal de sortie final.

insérez la description de l'image ici

Le réseau fédérateur génère des cartes de caractéristiques à partir d'images d'entrée. Par la suite, chaque ancre est projetée sur la carte des caractéristiques. Cette projection est utilisée pour agréger les caractéristiques concaténées avec un autre ensemble de caractéristiques créé dans le module d'attention. Enfin, en utilisant l'ensemble de fonctionnalités résultant, deux couches, l'une pour la classification et l'autre pour la régression, effectuent la prédiction finale.

Reproductibilité:

Mesure de l'efficacité du modèle : opérations de multiplication-accumulation (mac) et images par seconde (FPS)

en conclusion:

Tusimple : cette méthode atteint le deuxième F1 le plus élevé (seulement 0,02 % de différence), tout en étant beaucoup plus rapide que la méthode F1 supérieure (171 contre 30 FPS) ;

CULane : cette méthode atteint un niveau élevé parmi les méthodes en temps réel en termes de vitesse et de précision (par rapport à la méthode de pointe, la vitesse de la première est d'environ 170 FPS) ;

A atteint un F1 élevé (+93%) sur le benchmark LLAMAS.

Article 2 : " Towards End-to-End Lane Detection : an Instance Segmentation Approach " est une segmentation d'instance pour la détection de voies de bout en bout

Adresse papier :

Vers une détection de voie de bout en bout : une approche de segmentation d'instance

Adresse Github :

https://github.com/MaybeShewill-CV/lanenet-lane-detection

  1. LaneNet et H-Net deux modèles de réseau

insérez la description de l'image ici

LanNet est un modèle multitâche qui combine la segmentation sémantique et la représentation vectorielle des pixels , et utilise enfin le regroupement pour compléter la segmentation des instances des lignes de voies. H-Net a une petite structure de réseau, qui est responsable de la prédiction de la matrice de transformation H et de l'utilisation de la matrice de transformation H pour remodeler tous les pixels appartenant à la même ligne de voie (en utilisant les coordonnées y pour représenter les coordonnées x).

LaneNet

insérez la description de l'image ici

Tâche de segmentation d'instance → segmentation sémantique (une branche de LanNet) et clustering (une branche de LanNet pour extraire l'embedding express, Mean-Shift clustering)

Embedding branch : Représentation embarquée des pixels

Branche de segmentation : Deux classifications, jugeant si le pixel appartient à la ligne de couloir ou à l'arrière-plan

Formation pour obtenir le vecteur d'intégration pour le clustering

Concevoir un modèle de segmentation sémantique

1. Traiter le problème d'occlusion : restituer (estimer) les lignes de voie et les pointillés obstrués par le véhicule ;

2. Résolvez le problème de distribution d'échantillon déséquilibrée (les pixels appartenant à la ligne de voie sont bien inférieurs aux pixels appartenant à l'arrière-plan) : utilisez le poids de classe inverse borné pour pondérer la perte :
insérez la description de l'image ici

p est la probabilité que la catégorie correspondante apparaisse dans l'échantillon global, c est l'hyperparamètre (1.02 dans l'article) " A Deep Neural Network Architecture for Real-Time Semantic Segmentation "

Incorporation de pixels :

Afin de distinguer à quelle voie appartient le pixel sur la ligne de voie, embedding_branch initialise un vecteur d'incorporation pour chaque pixel, et lors de la conception de la perte, rend la distance du vecteur de représentation appartenant à la même ligne de voie aussi petite que possible, et le vecteur de représentation distance appartenant aux différentes lignes de voies aussi grande que possible.

La fonction de perte dans cette partie est composée de trois parties :

insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici

C : le nombre de lignes de couloir ; Nc : le nombre de pixels appartenant à la même ligne de couloir ; μc : le vecteur moyen de la ligne de couloir ; xi est le vecteur pixel (pixel embedding) ; [x]+=max(0, X).

H-Net :

La sortie de LaneNet est une collection de pixels pour chaque ligne de voie, et une ligne de voie doit être régressée en fonction de ces points de pixel. L'approche traditionnelle consiste à projeter l'image dans la vue à vol d'oiseau, puis à utiliser un polynôme d'ordre 2 ou 3 pour l'ajustement. Dans cette méthode, la matrice de transformation H n'est calculée qu'une seule fois, et la même matrice de transformation est utilisée pour toutes les images, ce qui conduit à des erreurs sous les variations du niveau du sol (montagne, colline).

Afin de résoudre ce problème, l'article forme un réseau de neurones H-Net qui peut prédire la matrice de transformation H. L'entrée du réseau est une image et la sortie est la matrice de transformation H :

insérez la description de l'image ici

Contraignez la matrice de transposition en définissant 0, c'est-à-dire que la ligne horizontale reste horizontale sous la transformation. (c'est-à-dire que la transformation de la coordonnée y n'est pas affectée par la coordonnée x)

La matrice de transposition H n'a que 6 paramètres, donc la sortie de H-Net est un vecteur à 6 dimensions. H-Net est composé de 6 couches de réseau convolutif ordinaire et d'une couche de réseau entièrement connecté. Sa structure de réseau est illustrée dans la figure :

insérez la description de l'image ici

en conclusion:

H-Net est préférable à l'utilisation d'une matrice de transformation fixe, l'utilisation d'un ajustement polynomial du troisième ordre est préférable à un ajustement du second ordre et l'utilisation d'une transformation de perspective est préférable à l'absence d'utilisation.

Défis rencontrés par l'apprentissage en profondeur pour la reconnaissance des lignes de voie :

(1) La structure morphologique élancée de la ligne de voie nécessite une fusion plus puissante des caractéristiques de haut niveau et de bas niveau pour obtenir simultanément la relation de structure spatiale globale et la précision de positionnement des détails.

(2) Il existe de nombreuses incertitudes quant à la forme des lignes de voie, telles que le fait d'être bloqué, usé et discontinu lorsque la route change . Le réseau doit avoir une forte capacité d'inférence pour ces situations.

(3) Lorsque le véhicule dévie ou change de voie, la voie de son propre véhicule changera et la ligne de voie passera également à la ligne gauche/droite . Certaines méthodes d'attribution à l'avance de numéros de série fixes aux lignes de voie entraîneront une ambiguïté dans le processus de changement de voie.

sur

Je suppose que tu aimes

Origine blog.csdn.net/weixin_48936263/article/details/123902963
conseillé
Classement