太田研 公開用Wiki

色情報とテンプレートマッチングを用いた道路標識の検出

はじめに

近年増々注目が高まる自動車の自動運転において、車の周辺環境を適切に把握する技術は非常に重要である。認識対象として、歩行者な信号、白線など様々あるが道路標識の認識は自動車が交通規則を守り安全に走行するための重要な要素の一つである。これの認識方法には機械学習やSIFT特徴量などあるが、これらは膨大なデータや複雑な処理が必要でコストが高いことがネックである。

道路標識の認識は「どこにあるか?(検出)」→「それが何であるか?(認識)」というステップを踏んで行う。本研究では道路標識の認識の最初のステップである検出をなるべく軽くすることで標識認識全体のコストを下げることを目的とし、色情報とテンプレートマッチングを用いたシンプルな検出方法を提案する。今回は道路標識の中でも重要度が高く種類が多い赤色を含む標識を検出対象とし、検出率や精度の確認を行った。

手法

本研究ではドライブレコーダーの映像を切り取った画像から、色情報で候補となる標識を絞り込む。その後抽出した候補領域にラベリングを行い、それらにテンプレートマッチングをかけて標識を検出する。検出の大まかな流れを図1に示す。 以下に提案手法の詳細を説明する。

detection_flowchart.jpg
図1: 標識検出のフローチャート

赤色領域抽出・2値画像生成

本研究では赤色を含む標識を検出したいので、赤色の領域を抽出する。このプログラムは屋外での使用を想定している。そのため抽出前に照明条件によって色相の値が変わりにくく色抽出しやすいHSV表色系へと入力画像の表色系を変換する。

変換後、表1に示した閾値に合致する画素を赤色と判断し抽出を行う。また、今回の閾値は色相と彩度のみを用い、明度は照明条件の影響をより少なくするために無視する。

更に抽出した領域のみを残した二値画像を生成した。抽出した領域は白で示されている。

表1: 赤色領域抽出処理で用いた閾値
色相H <= 15, 158 <= H
彩度S >= 15
 
data.png
図2: 入力画像の例
 
data2.png
図3: 抽出した赤色領域を二値化した画像

ラベリング

ラベリングとは、白または黒の領域が連続した画素に同じ番号を振り分ける処理のことである。例として図なんとかの白い画素が連続した領域に番号を振ると、図なんとなのように島ごとに番号を付けることができる。図なんとかと比べてラベリング後の図なんとかは独立した領域の形やその数が分かりやすくなっていることが分かる。このようにラベリングは抽出した領域の特徴や数を調べる時に有効な方法である。

本研究ではテンプレートマッチングを行う範囲を制限しコストを削減するためにROI抽出を用いる。ROIとは画像データのうち処理対象として選ぶ領域のことであり、これを抽出することをROI抽出という。ラベルづけした番号ごとにROI抽出を行うと、標識の候補ごとに処理が可能となる。

テンプレートマッチング

テンプレートマッチングとは、入力画像にテンプレート画像を走査させ、最も類似する箇所を探索する処理のことである。ラベリングした候補領域ごとにテンプレートマッチングを行う。また処理を行う前に、候補領域を次の条件で制限を行うことで更に絞り込む。

【テンプレートマッチング除外対象条件】

このように本当に必要な箇所だけに処理をかけられるように候補領域を制限することで、計算コストを削減することができる。

今回はテンプレートとして縦:横=1:1の速度標識と駐車禁止標識の2値画像(図4)を使用した。撮影するカメラと標識の距離によって入力画像に写る標識の大きさは異なる。そこでテンプレートの大きさを候補領域の横幅に合わせて変形を行った。

template.png
図4: 使用したテンプレート画像

スコアの算出方法は、今回はシンプルに2値画像で処理を行うのでテンプレートと入力画像の重なっている部分の、白画素と黒画素の一致率で標識であるかどうかの判定を行う。49.4%一致していたら標識であると判定し、その領域の周りを四角で囲む(図5)。

result2_0.png
図5: 検出例

また、二値画像のままだと結果が分かりづらいためマッチ位置を元のカラー画像に出力をして検出結果を表示する。

result_0.png
図6: 検出例(実際に表示される画像)

実験と評価

実験方法

群馬県内の道路を走行中のドライブレコーダーで撮影された映像の中から、対象標識が写っている場面を切り抜いて入力画像とした。入力画像に対して上記で説明したアルゴリズムを実装したプログラムを実行した。

data_example.png
図7: 入力画像例

実験結果

全対象標識190個に対して、正しく検出できた数(検出数)は116個、検出できなかった標識の数(未検出数)は75個、標識で無いものを誤って標識として検出した数(誤検出数)は5個という結果になった(表2)。

表2: 実験結果
全標識数検出数未検出数誤検出数
190116755

検出に成功した例をいくつか示す。

評価

考察

以下に未検出や誤検出の原因について考察する.

未検出について

誤検出について

結論

参考文献


Counter: 1881, today: 1, yesterday: 2

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS