レーン認識とレーン曲率の算出

現在車両のレーンを切り出すためには、以下の手順を従います。

1) たくさんのチェスボード画像からカメラのキャリブレーションマットリックスを求める。

2) キャリブレーションマットリックスを使い、画像のゆがみをとる。

3) レーン境界が目立つように適切な色空間とgradientフィルタを適用する。

4) 透視変換を使い、レーン画像を鳥観図に変換する。

5) スライディングウィンドウを使って、レーン境界を見つける。

6) レーンの左右境界を2次式にフィッティングする。

7) レーンの中心線からレーン曲率を算出する。

8) レーンの境界線をもと画像上を上塗りする。

 

3) レーン境界が目立つように適切な色空間とgradientフィルタを適用

 色空間によってレーン境界の見え方が変わります。

f:id:gzhang:20190222152117p:plain

4つの色空間のそれぞれのチャンネルで見えるレーン境界

HLS空間のSチャンネルは、レーン境界の検出に強いように見えるようです。HLS空間の各チャンネルについて諧調別に調べると

f:id:gzhang:20190222171246p:plain

HLS空間における諧調別画像情報

HLS空間のHチャンネルから0から30、Lチャンネルから105から255、Sチャンネルから170から255諧調のピクセルを選び出すと、レーン情報を取り出すことができそうです。

f:id:gzhang:20190222171510p:plain

HLS空間の各チャンネルから指定諧調の情報のみを取り出した結果

 HLSのSチャンネルに対してSobelフィルタを適用したうえ、スレッショルドをかけた結果を確認します。

f:id:gzhang:20190223131827p:plain

Sobelフィルタ適用時スレッショルドの違いによる出力画像の違い

色空間でフィルタリングした結果とSobelフィルタでフィルタリングした結果を結合します。

f:id:gzhang:20190223132121p:plain

色空間でフィルタリングした結果とSobelフィルタでフィルタリングした結果の結合

4) 透視変換を使い、レーン画像を鳥観図に変換

 元画像において、投影変換する領域を指定して、投影変換を実施します。

f:id:gzhang:20190223134311p:plain

投影変換の領域を指定

f:id:gzhang:20190223135241p:plain

投影変換の結果

 投影変換の結果に3)の処理を適用すると、道路部分の投影変換した画像を得ることができます。

f:id:gzhang:20190223170919p:plain

3)の処理を適用した投影変換結果

5) スライディングウィンドウを使って、レーン境界を見つける

  スライディングウィンドウで投影変換した道路について境界線を見つけることができます。

f:id:gzhang:20190223185306p:plain

スライディングウィンドウで見つける道路境界



ソースコード

github.com