Online: 1
近年,車の自動運転に注目が集まっており,活発に研究が行われている.自動運転を行うには道路や標識などの周囲の環境を認識する必要があり,さらに安全に走行するには信号や横断歩道を正確に認識し,判断しなければいけない.
横断歩道前での一時停止,横断歩道走行中の制御を行うことで事故を防ぎ,自動 運転の安全性を高めることができるので,本研究では横断歩道を認識することの 重要性に着目した.
本研究では横断歩道の特徴的なパターンをエッジ画像などを用いて高速に認識することを目的とする.
人間の目やカメラに物が映るときに,近くにある物は大きく,遠くにある物は 小さく見える.
横断歩道をカメラで撮影した画像や映像では下の図1,図2のように,カメラの高さや角度,距離によって線の太さや角度などの横断歩道のパターンが,その状況によって毎回変わってしまう.
したがって,一定のパターンを使って横断歩道を認識することができない.
同一直線上の四点 A, B, C, D に対して複比を,
とする.
図3のようにある点Oから伸びる4本の直線がある. これらの直線とA, B, C, D で交わる別の直線がある場合,複比[ABCD]はその直線の取り方によらない.
よって図3の場合,直線l上の点A, B, C, Dと直線m上の点a, b, c, dで
となる.
横断歩道と 4 点以上で交わるある直線を考える.
このとき,その直線と横断歩 道との連続する任意の4つの交点をそれぞれ順番にA, B, C, Dとする.
画面に映るA, B, C, Dに対応する点をそれぞれa, b, c, dとする.また,A-a, B-b, C-c, D-dを結ぶ直線が交わる点をOとする.
このとき,実際の横断歩道と交わる線上の 4 交点 A, B, C, D から計算する複比 [ABCD]と,画像に映った横断歩道と交わる任意の線上のA, B, C, Dと対応する 4交点a, b, c, dから計算する複比[abcd]が一致する.
このように複比を用いることでどのような角度から横断歩道を撮影しても,見え方の変化に関係なく横断歩道を検出することができる.
以下の手法で横断歩道の検出を行う.
1. 画像に映った横断歩道の直線を検出する
2. ある任意の直線と検出した横断歩道の直線が交わる点の座標を求める
3. 連続した4つの点の座標から複比を計算する
4. 計算した複比が実際の横断歩道の複比と一致すれば, 横断歩道と認識する
詳しい手順を以下に説明する.
まず,精度を極上げるために使用する画像に 7×7 のガウシアンフィルタを適用してノイズを除去し,画像をグレイスケール化する.
OpenCVの cv2.Canny() という関数を使い画像からエッジを検出し,生成された エッジ画像からOpenCVの cv2.HoughLinesP() という関数を用いて直線を検出する.
これらの関数について以下に説明する.
横断歩道とは法令上,
「道路標識又は道路標示により歩行者の横断の用に供するための場所であることが示されている道路の部分(道路交通法第2条第4項第1号)」
であり,以下のように定められている.
• 白線の幅: 0.45 - 0.5[m]
• 白線の間隔: 0.45 - 0.5[m]
上記より横断歩道の複比は
[ABCD] = AC CB × AD DB = 2 1 × 3 2 = 1.33333....... (5)
と求められるので,画像上の横断歩道から計算した複比がこの値と一致すればその部分を横断歩道として認識する.
#ref(): File not found: "LDL.eps" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "sunny_bovw.png" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "bovw_zengo.png" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "cloud_hom.png" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "sunny_hom.png" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "cloud_miss.png" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "00122.png" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "00125.png" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "hom_zengo.png" at page "複比を用いた横断歩道パターンの認識"
#ref(): File not found: "hom_pitta.png" at page "複比を用いた横断歩道パターンの認識"
本研究では画像上の 4 つの点から複比を計算し,その値が横断歩道の複比と一致した場合にその部分が横断歩道であると判断し,計算を行ったそれぞれの場所で横断歩道を認識することに成功した.
この動作を直線上のすべての連続した4点で一度に行い,検出された範囲をすべてつなぎ合わせれば横断歩道全体を認識することができる.
この方法を使えば横断歩道の一部が欠けていたり,横断歩道上に人や物で部分的 に遮られて一部が認識できなくても,その周りが横断歩道として認識されていれば横断歩道全体の範囲がわかるので,一部が欠けていても問題ない.
道路上の標識や線は形や大きさが法律で決められているので横断歩道と同じパターンのものが道路上にあることはない.
したがって,誤検出をすることは考え にくい. しかし,道路外の部分に建物の模様や窓枠などの等間隔のものがあった場合,複比を計算したときに横断歩道の複比と一致し,横断歩道として誤認識してしまう恐れがある.
道路レーンを検出するプログラムなどを一緒に使い,画像に写った道路以外の範 囲を除外することで道路の中だけで直線の交点が求まるようにすればこの問題を解決でき,精度を極められる.
本研究では画像上の 4 つの点から複比を計算し,その値が横断歩道の複比と一致した場合にその部分が横断歩道であると判断し,計算を行ったそれぞれの場所で横断歩道を認識することに成功した.
Online: 1