太田研 公開用Wiki

色情報と形状情報を用いた道路標識の自動検出

はじめに

近年開発が盛んに行われている自動車の自動運転において, 車の周囲の状況を把握することは非常に重要なことである. その中でも道路標識の把握は, 自動車が安全走行をするために必要なことの一つである. 道路標識を把握する方法として, 機械学習を用いた手法が提案されている. しかし, 機械学習は様々な物体の特徴を学習する必要があり, その学習には膨大なデータと計算コストを要する. そこで複雑な処理を用いずに, 道路標識を検出することが求められる.

道路標識はそれぞれが持つ意味によって色と形が規定されている. このことから, 色情報と形状情報を用いた検出が有効と考えられる. 様々な道路標識の中で赤色の標識は設置数が多く, また, 一時停止や進入禁止など, 様々な規制を表す標識であることからその重要度は高い. そのため今回は赤色円形の標識と一時停止の標識を検出対象とした. 本研究では, 対象標識の形状が赤色の円形と三角形であることに注目し, 色情報と形状情報を用いた基本的な画像処理での検出を行う.

提案手法

提案手法では, 入力画像が与えられるとまずその画像の表色系をHSV表色系に変換する. そして, 色情報を用いて対象標識が存在する可能性が高い赤色の領域を候補領域として抽出する. 次に候補領域のみが残された画像から, 対象標識に近い形と大きさの領域を, ノイズ除去と形状認識の処理で抽出する. 最後にテンプレートマッチングを行い, 対象標識のテンプレートに似た領域を標識として検出する.

赤色領域抽出

本研究は実環境下での使用を想定しているため, 天気や日光などによる環境光の影響を考慮する必要がある. そのため, まず入力画像の表色系をRGB表色系からHSV表色系に変換する. 図1は入力画像の例である. 表色系を変換後, 表1に示した閾値に合致する画素を赤色と定義し, 入力画像から赤色領域を抽出する. この閾値は色相と彩度のみを用い, 明度を考慮しないことである程度の照明変化に対応している. 図1から赤色領域を抽出した画像を図2に示す. さらに, 抽出した領域から赤い部分を白, それ以外の部分を黒に二値化した画像が図3である.

表1: 赤色領域抽出処理で用いた閾値
色相H <= 5, 135 <= H
彩度S >= 90
明度今回は無視
 
input.png
図1: 入力画像の例
 
red.png
図2: 赤色領域を抽出した画像
 
bin.png
図3: 抽出した領域を二値化した画像

ラベリング

ラベリングとは主に二値化画像から白の画素が連続している領域を分類する手法である. 分類後, 各領域の幅と高さの値を取得する. 図4は, 図3の二値化画像にラベリング処理をしてその結果の一部分を表示した画像である. ここで分類されたそれぞれの領域が標識検出の候補領域となる.

label_param.png
図4: ラベリング結果を表示した画像

ノイズ除去

ラベリング処理で分類した領域全てを候補領域とすると, 標識とは無関係なノイズを検出する可能性が出てくる. そこでノイズとなる領域の大きさをある程度定義し, その条件に該当する領域を画像から除去する処理を行った. 表2にノイズと見なす領域の条件を示す. ノイズ除去の例として, 図5にノイズ除去前の二値化画像を, また, 図6にノイズ除去後の二値化画像を示す. ここで図5に見られる小さな白い領域が, 図6では消えていることが確認できる.

表2: ノイズと見なす領域の条件
入力画像の50分の1以下の大きさの領域
縦横の大きさが100pixelを超える領域
 
bin.png
図5: ノイズ除去前の画像
 
noise_reject.png
図6: ノイズ除去後の画像

形状認識

ノイズ除去後, 次の処理であるテンプレートマッチングの試行回数削減と検出精度向上のために, 残った候補領域の中から対象標識に近い形の領域を抽出する. 形状認識の流れとして, まず各候補領域にクロージング処理を行う. 次に各候補領域の輪郭情報を抽出し, その情報を基に各候補領域の形状を円形, 三角形, その他の3つに分類する. 分類後, 円形または三角形と認識された領域は候補領域として残す. その他の形と認識された領域には対象標識が存在しないと考え, その領域を候補領域から除外する.

クロージング

候補領域は赤色の抽出具合によって領域内に穴が開いていたり切断されていたりする. そのまま輪郭抽出を行うと, 候補領域から充分に輪郭情報を得られない可能性がある. そこで輪郭抽出を行う前にクロージング処理を行った. クロージング処理とは, 二値化された領域に対して数回の膨張処理を行った後, 膨張処理と同じ回数の収縮処理を行う処理である. この処理を行うことで, 図形の穴埋めや輪郭の結合がある程度可能になる. 本研究では膨張処理と収縮処理を各2回行った. クロージング処理の例として, 図7にクロージング処理前の候補領域を, また, 図8にクロージング処理後の候補領域を示す. ここで, 図7に見られる欠けた輪郭部分が, 図8では補間されていることが確認できる.

label_piece.png label_closing.png
図7: クロージング前 図8: クロージング後

円形領域の認識

円形領域の認識には円形度を用いる. 円形度とはその図形がどのくらい円に近いかを示す値で以下の式で表される.

equation1.png

円形度は0から1の範囲で値をとる. この値は対象の図形が真円のとき1となり, 図形の形状が複雑になるほど小さくなる. ここでは候補領域の輪郭情報から得た面積と周囲長を用いて円形度を算出し, その値が0.67以上の領域を円形標識の候補領域とする.

三角形領域の認識

三角形領域の認識をするために, まず候補領域の輪郭情報からその候補領域に外接する最小の三角形を求める. 図9は候補領域の例であり, 図10はその候補領域の最小外接三角形を赤線で表示したものである. 次に候補領域と最小外接三角形の面積を求め, その面積比を算出する. そして, 面積比が0.50以上の領域を一時停止標識の候補領域とする.

label_piece_tri.png min_enclosing_triangle.png
図9: 候補領域例 図10: 最小外接三角形

テンプレートマッチング


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