車線検出の従来の手法と深層学習手法の概要 + 2 つの論文のリード リーディング LaneATT+LaneNet

車線検出は、自動運転、車線維持、アダプティブクルーズ、自動車線変更の基本モジュールであり、完全自動運転車両の後続の車線逸脱や軌道計画の決定においても非常に重要です。

現在、車線境界線検出には、従来の方法深層学習という2 つの主な方式があります。

1. 伝統的な手法

(1)エッジ検出 + ハフ変換
手法の流れ: カラー画像からグレースケールへの変換、ぼかし、エッジ検出、ハフ変換
この手法は、一般に単純なシーンで車両が現在走行している 2 つの車線を検出できます。また、場合によっては隣接する車線 (角度によって異なります) も検出できます。前方監視カメラの)。この方法では、ハフ変換の結果(ラインの傾き) を使用して、左右の車線の境界線をさらにフィルタリングできます。しかし同時に、この方法はエッジ検出の結果にも依存するため、パラメータ調整(エッジ検出、ハフ変換)やその他のトリック(ROI 選択など)が非常に重要です。

(2)色の閾値
方法の流れ:画像を色空間(一般的なHSV)に変換し、新しい色空間で各チャンネルの閾値を設定します(閾値より大きい値は1、値より小さい値は0)、結果が得られます。
この方法は各チャネルのしきい値の選択に依存しており、いくつかのしきい値パラメータを調整するだけで済みますが、現在の車両の前の車両がすべて 1 に設定されるなど、ロバスト性が劣る場合があります。

(3)透視変換
手法の流れ:透視変換行列の取得、透視変換、車線境界線検出
この手法の利点は、フロントビューカメラで撮影した画像を鳥瞰図に変換し、複数の線を表示できることです。検出されました。(変換車線検出は考慮せず)透視変換行列の精度が鍵となるが、変換鳥瞰図の場合、上記2通りの方法で車線を検出できる。
ここに画像の説明を挿入
ここに画像の説明を挿入

エッジ検出、k-Means、ガウス確率モデル

(1) Udacity 車線検出

  • カメラのキャリブレーション、openCV

理由: センサーの製造エラー、非線形の半径方向の歪み、接線方向の歪み

参考:https://zhuanlan.zhihu.com/p/87334006https://blog.csdn.net/a083614/article/details/78579163

  • ROI の選択、画像の透視変換、画像を上面図に変換
  • 二値化して車線境界線を求める

ここに画像の説明を挿入
ここに画像の説明を挿入

スライディング ウィンドウと多項式フィッティング

  • 最小二乗法により中心点をフィットさせて車線を形成します

(2) 投影による車線検出

  • 画像キャリブレーション、ROI の観点

元の画像:

ここに画像の説明を挿入

二値化:

ここに画像の説明を挿入

  • 2値化された点を横軸に投影します。

ここに画像の説明を挿入

対応する最大値を選択します。

ここに画像の説明を挿入

  • Ransac (ランダム サンプリング コンセンサス アルゴリズム) 近傍点の多項式フィッティング

ここに画像の説明を挿入

元の画像に逆投影する効果:

ここに画像の説明を挿入

実際のシナリオでは、従来の方法のロバスト性は十分ではなく、照明や隣接車両の影響に加えて、車線の中央や歩道の標識矢印も、このようなアルゴリズムでは処理が難しいという課題がありました。

2. ディープラーニング

ディープラーニングの波により、車線境界線検出が大きく進歩

車線境界線検出作業の制限 (継続的、つまり、これまでのところ一般的に存在します):

ここに画像の説明を挿入

車線検出作業のベースラインは明確ではなく、さまざまな方法やさまざまなシーンの用途には独自の制限があります。例えば:

  • 出力タイプ: マスクマスク/点セット/ベクトルライン
  • インスタンス化: 各レーンラインがインスタンスを形成するかどうか
  • 分類: 車線を分類するかどうか (単一の白、二重の黄色など)
  • 事前に定義されたパラメータ: 一定数の車線境界線のみを検出できるかどうか
  • 車線標識: 車線上の走行標識を検出するかどうか

これは、データのラベル付けとネットワークの出力形式に影響を与えます。最終的に必要となるのは、世界座標系における車線の方程式です。ニューラル ネットワークは画像レベルでの特徴の抽出により適しており、直接回帰式のパラメータにはより多くの制限があります。したがって、ネットワーク推論の出力後に実座標の問題を解決するには、比較的複雑な後処理が必要です。

車線検出の問題は多くの場合、セグメンテーション タスクとして定式化されます。入力画像が与えられると、出力はピクセルごとの予測を含むセグメンテーション マップになります。

パフォーマンス:

ここに画像の説明を挿入

True か False を判断する場合、主に 2 つの方法があります。

  • 終点:線の端点とその周囲の領域との距離が閾値を超えているかどうかを判定する
  • IOU:IOUの重複面積を直接計算

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

IOU=SI/(SA+SB-SI)

作業パイプライン:

ここに画像の説明を挿入

現在主流のメソッド パイプラインは、マルチステージとシングルステージに分かれています。

  • マルチステージは 2 つの部分に分けることができます。バイナリ セマンティック セグメンテーションはマスク マップを生成し、マスク マップにラインを適合させます。このうち、バイナリ セマンティック セグメンテーションは主に CNN 手法を採用しており、SCNN (Spatial As Deep: 交通シーン理解のための空間 CNN)、CNN+RNN (ディープ ニューラル ネットワークを使用した連続運転シーンからの堅牢な車線検出)、GAN (EL- GAN: Embedding Loss Driven Generateive Adversarial Networks for Lane Detection) やセマンティック セグメンテーションの精度を向上させるその他の方法。マスク画像のラインフィッティングは、学習した変換行列を用いてセグメンテーション結果を鳥瞰図のパースに変換した後、均一点選択+最小二乗法を用いてフィッティングを行い、フィッティング方程式は 3 次方程式にすることができます。
  • シングルステージ方式の場合、出力パラメータを直接返す、つまり CNN 上のブランチを変更し、特別なレイヤーを使用してパラメータを出力します。

データセット:

  • 高速道路、脇道、ワインディングロード、夜間、雨天など、シーンカテゴリーごとのデータバランスが必要です。
  • 夜間の高速道路データや雨天走行のビデオがぼやけてしまうなど、より高品質な写真をチェックしてフィルタリングします。
  • 似たような絵を描いてマークし、10枚ごとに1枚の絵を抽出することができますが、例えば低速の複数の絵が似ている場合、誤って正解率が高くなってしまいます。
  • 車線の係数のヒストグラムを表示するなど、小さなカテゴリの画像を拡大し、少し回転して各係数の分布をより合理的にします。
  • データをスケーリングおよび正規化して収束を高速化します

一般的に使用される車線境界線検出データセットには、TuSimple、CULane、BDD100K などが含まれます。このうち、TuSimple データセットには合計 7K の写真が含まれており、シーンは米国の高速道路データです。CULane には、北京で収集された、混雑や暗い夜など、検出が困難な 8 つの状況を含む合計 133,000 個のデータがあります。BDD100K には合計 1 億 2,000 万枚の画像が含まれており、このデータ セットにはさまざまな自動運転認識タスクが含まれています。このデータ セットは比較的新しく、アルゴリズムの採用率は高くありません。(データ更新)

ここに画像の説明を挿入

コード付きの論文 https://paperswithcode.com/task/lane-detection/latest#code

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入

論文 1: 「LaneATT——Keep your Eyes on the Lane: リアルタイムの注意誘導車線検出」 リアルタイムの注意誘導車線検出

用紙のアドレス:

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

Githubアドレス:

https://github.com/lucastabelini/LaneATT

既存の手法の不十分な点: リアルタイム効率の維持

LaneATT: ディープレーン用のアンカーベースの単一ステージ検出モデル。他の一般的なディープオブジェクト検出器と同様で、特徴プーリングステップにアンカーを使用します。

車両に搭載された前面カメラから RGB 画像が入力として受信されます。
ここに画像の説明を挿入
出力は車線境界線 (車線) であり、これらの出力を生成するために、バックボーンである畳み込みニューラル ネットワーク (CNN) が特徴マップを生成します次に、特徴マップをマージして各アンカーの特徴を抽出します。これらの機能は、 attention モジュールによって生成される一連のグローバル機能を組み合わせたものですローカル特徴とグローバル特徴を組み合わせることで、モデルは他の車線からの情報をより簡単に使用できるようになります。これは、オクルージョンや目に見える車線標識がない場合などの状況で必要となる場合があります。最後に、結合された特徴が完全に接続された層に渡されて、最終的な出力チャネルが予測されます。

ここに画像の説明を挿入

バックボーン ネットワークは入力画像から特徴マップを生成します。続いて、各アンカーが特徴マップ上に投影されます。この投影は、アテンション モジュールで作成された別のフィーチャ セットと連結されたフィーチャを集約するために使用されます。最後に、結果の特徴セットを使用して、分類用と回帰用の 2 つのレイヤーで最終的な予測を行います。

再現性:

モデル効率の測定: 積和演算 (Mac) および 1 秒あたりのフレーム数 (FPS)

結論は:

Tusimple: このメソッドは、2 番目に高い F1 (わずか 0.02% の差) を達成しますが、トップの F1 メソッド (171 対 30 FPS) よりもはるかに高速です。

CULane: この方式は、リアルタイム方式の中で速度・精度ともに高いレベルを実現しています(最先端方式と比較すると、前者の速度は約170FPS)。

LAMAS ベンチマークで高い F1 (+93%) を達成しました。

論文 2: 「エンドツーエンド レーン検出に向けて: インスタンス セグメンテーション アプローチ」は、エンドツーエンド レーン検出のためのインスタンス セグメンテーションです。

用紙のアドレス:

エンドツーエンドのレーン検出に向けて: インスタンス セグメンテーション アプローチ

Githubアドレス:

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

  1. LaneNetH-Net の2 つのネットワーク モデル

ここに画像の説明を挿入

LanNetは、セマンティック セグメンテーションとピクセルのベクトル表現を組み合わせたマルチタスク モデルで、最後にクラスタリングを使用して車線のインスタンス セグメンテーションを完了します。H-Net には小さなネットワーク構造があり、変換行列 Hを予測し、変換行列 H を使用して同じ車線の境界線に属するすべてのピクセルを再モデル化します(y 座標を使用して x 座標を表します)。

レーンネット

ここに画像の説明を挿入

インスタンス セグメンテーション タスク → セマンティック セグメンテーション (LanNet の分岐) およびクラスタリング (埋め込みエクスプレスを抽出する LanNet の分岐、平均シフト クラスタリング)

埋め込み分岐: ピクセルの埋め込み表現

分割分岐: 画素が車線境界線に属するか背景に属するかを判定する2分類

クラスタリング用の埋め込みベクトルを取得するためのトレーニング

セマンティック セグメンテーション モデルの設計

1. オクルージョンの問題に対処します。車両によってオクルージョンされている車線と点線を復元 (推定) します。

2. 不均衡なサンプル分布の問題を解決します (車線の境界線に属するピクセルが背景に属するピクセルよりもはるかに少ない): 損失の重み付けに有界逆クラス重みを使用します。
ここに画像の説明を挿入

p はサンプル全体に対応するカテゴリが出現する確率、c はハイパーパラメータ (論文では 1.02) 「リアルタイム セマンティック セグメンテーションのためのディープ ニューラル ネットワーク アーキテクチャ

ピクセル埋め込み:

車線上のピクセルがどの車線に属するかを区別するために、embedding_branch はピクセルごとに埋め込みベクトルを初期化し、損失を設計する際に、同じ車線に属する表現ベクトルの距離をできるだけ小さくし、表現ベクトルを異なる車線に属する距離をできるだけ長くします。

この部分の損失関数は 3 つの部分で構成されます。

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

C:車線の数、Nc:同一の車線に属する画素数、μc:車線の平均ベクトル、xi:画素ベクトル(画素埋め込み)、[x]+=max(0,バツ)。

エイチネット:

LaneNet の出力は各車線のピクセルのコレクションであり、車線はこれらのピクセル ポイントに基づいて回帰する必要があります。従来のアプローチでは、画像を鳥瞰図に投影し、2 次または 3 次の多項式を使用してフィッティングします。この方法では、変換行列 H が 1 回だけ計算され、同じ変換行列がすべての画像に使用されるため、地表レベル (山、丘) の変動により誤差が生じます。

この問題を解決するために、この論文では、変換行列 H を予測できるニューラル ネットワーク H-Net をトレーニングします。ネットワークの入力は画像で、出力は変換行列 H です。

ここに画像の説明を挿入

0 を設定して転置行列を制約します。つまり、変換下でも水平線は水平のままです。(つまり、座標 y の変換は座標 x の影響を受けません)

転置行列 H にはパラメータが 6 つしかないため、H-Net の出力は 6 次元ベクトルになります。H-Net は、6 層の通常の畳み込みネットワークと 1 層の全結合ネットワークで構成されており、そのネットワーク構造は次の図に示すようになります。

ここに画像の説明を挿入

結論は:

H-Net は固定変換行列を使用するよりも優れており、3 次多項式近似を使用することは 2 次多項式近似よりも優れており、透視変換を使用しないよりも透視変換を使用する方が優れています。

車線境界線認識のためのディープラーニングが直面する課題:

(1) 車線の細長い形態構造では、大域的な空間構造関係と細部の位置決め精度を同時に取得するために、高レベルの特徴と低レベルの特徴のより強力な融合が必要です。

(2) 車線の形状には、道路が変わると詰まったり、磨耗したり、途切れたりするなど、不確実な部分が多いネットワークには、このような状況に対応する強力な推論能力が必要です。

(3) 車両が逸脱または車線変更を行うと、自車の車線が切り替わり、車線境界線も左右の境界線に切り替わります車線の境界線に固定のシリアル番号を事前に割り当てる方法によっては、車線変更のプロセスが曖昧になることがあります。

以上

おすすめ

転載: blog.csdn.net/weixin_48936263/article/details/123902963