白線認識開発

自動運転では当たり前ではあるが道路を走ることが必要である。ここで道路とはどのような領域化といえば、白線に挟まれた領域である。そのため、第一歩として白線認識手法の開発を行う。 今回は外乱の殆ど無い環境、つまり画像内に白線しかないような状況での白線認識を行ってみる。

ゴール

手法の開発を行う前に、ゴールを決めておく。つまり自動運転において認識した白線の情報に従ってどのような制御を行うのかを考察する。

もし両端の白線を正しく認識できている場合、ドライバーはどの方向にハンドルを切れば白線の間を走り続けられるだろうか? ここで白線が一直線に続いているとすると、両端の白線を無限遠に伸ばしたときの交点が、白線内を走っていった場合の到達点である。つまりこの交点を目指すようにハンドルを操作すればいい。一方で車が直進し続けた場合の到達点は、視点が車の中央からまっすぐ前方方向に向いているとすれば、画面の中心線が走行ルートとなる。したがってこの走行ルートが白線の交点に向かうよう、画面の中心線と白線の交点の差分だけハンドル操作するようにすればいい。

つまり、両端の白線の近似直線がわかれば良い。

白線の近似直線を求める

近似直線を求める簡単な方法としては、白線上の2点を見つけてその点を結べば良い。そのため、走査する領域を予め2つ以上決めておき、その各領域内で白線と考えられる1点を見つければ、白線の近似曲線を書くことができる。領域の条件としては、領域内で白線と考えられる点が1点となる必要があるため、画面に対し水平方向に走査を行っている。

問題となるのはこの領域の決定方法である。走査範囲が広ければ、他の物体を間違って白線として認識してしまう可能性があり、反対に走査範囲が狭ければ、そもそも白線を見つけられない可能性がある。これを解決するために、他の方法で操作領域を決定するか、白線検出方法を全く別のものを使用する必要がある。