社会人研究者が色々頑張るブログ

pythonで画像処理やパターン認識をやっていきます

Python+OpenCVによる白線検出(5)

はじめに

nsr-9.hatenablog.jp

これの続きです。
今回はいよいよ、車線逸脱警報を実装します。

Lane Departure Detection

Lane departure Detectionでは、消失点の座標に対してしきい値処理を行うことで、車両が車線を逸脱したか判断します。

具体的なイメージを掴むために、以下の画像を作成しました。
左の画像は通常の状態の白線検出結果であり、右の画像が車線逸脱時の白線検出結果です。

通常時 車線逸脱時

重ねると次のようになります。

上のgifを観察すると、右方向に車線を逸脱する際は、消失点が画像中心に対して左側に移動することが確認できます。
逆に左方向に車線を逸脱した際は、消失点は右側に移動します。

本論文では、画像中心に対する消失点の距離が一定以上の時に、車線逸脱警報を発報します。
とてもシンプルですね!

実行結果

以上、すべての処理を通して実行した結果を示します。

1番目の画像は通常状態での結果です。
ちょこちょこ消失点の仮説検証フェーズで棄却されている(NGが出ている)様子が見られますが、概ね正しく検出できているように思えます。
2番目の画像は右方向に車線を逸脱した際の結果です。
消失点が左側に大きく移動してており、逸脱警報がうまく動作していることが確認できます。

また、動画全部に対する出力結果をYoutubeにアップしました。

www.youtube.com

まとめ

全5回に分けて、An Efficient Lane Detection Algorithm For Lane Departure Detectionを実装しました。
Conputer Vision系の論文の中には、実装に関する記述が曖昧に濁されていて、再現実装ができないケースも多々あるのですが、 本論文は実装に必要な情報が十分に記載されており、とても助かりました。

また、当初はサクサク実装できるかな?って思いましたが、結構時間がかかってしまいました。
研究を行う上でプログラミング能力が必要なので、反省ポイントですね。

最後に、コード全体を記載!と行きたい所ですが、乗せるにはかなりのコード量になっているので、いい感じの公開方法が見つかったらそちらに載せたいと思います。

追記

2022/10/10 プロジェクト全体のファイルをアップしました!

drive.google.com