Python+OpenCVによる白線検出(5)
はじめに
これの続きです。
今回はいよいよ、車線逸脱警報を実装します。
Lane Departure Detection
Lane departure Detectionでは、消失点の座標に対してしきい値処理を行うことで、車両が車線を逸脱したか判断します。
具体的なイメージを掴むために、以下の画像を作成しました。
左の画像は通常の状態の白線検出結果であり、右の画像が車線逸脱時の白線検出結果です。
通常時 | 車線逸脱時 |
---|---|
重ねると次のようになります。
上のgifを観察すると、右方向に車線を逸脱する際は、消失点が画像中心に対して左側に移動することが確認できます。
逆に左方向に車線を逸脱した際は、消失点は右側に移動します。
本論文では、画像中心に対する消失点の距離が一定以上の時に、車線逸脱警報を発報します。
とてもシンプルですね!
実行結果
以上、すべての処理を通して実行した結果を示します。
1番目の画像は通常状態での結果です。
ちょこちょこ消失点の仮説検証フェーズで棄却されている(NGが出ている)様子が見られますが、概ね正しく検出できているように思えます。
2番目の画像は右方向に車線を逸脱した際の結果です。
消失点が左側に大きく移動してており、逸脱警報がうまく動作していることが確認できます。
また、動画全部に対する出力結果をYoutubeにアップしました。
まとめ
全5回に分けて、An Efficient Lane Detection Algorithm For Lane Departure Detectionを実装しました。
Conputer Vision系の論文の中には、実装に関する記述が曖昧に濁されていて、再現実装ができないケースも多々あるのですが、
本論文は実装に必要な情報が十分に記載されており、とても助かりました。
また、当初はサクサク実装できるかな?って思いましたが、結構時間がかかってしまいました。
研究を行う上でプログラミング能力が必要なので、反省ポイントですね。
最後に、コード全体を記載!と行きたい所ですが、乗せるにはかなりのコード量になっているので、いい感じの公開方法が見つかったらそちらに載せたいと思います。
追記
2022/10/10 プロジェクト全体のファイルをアップしました!