#author("2022-03-01T15:10:35+00:00","default:ail-wiki","ail-wiki") #author("2022-03-02T07:41:52+00:00","default:ail-wiki","ail-wiki") [[太田研 公開用Wiki]] *色情報と形状情報を用いた道路標識の自動検出 [#ob038994] *色情報と形状情報を用いた道路標識の自動検出 [#jaeac04c] #contents *はじめに [#h486fbac] *はじめに [#n1ca3008] 近年開発が盛んに行われている自動車の自動運転において, 車の周囲の状況を把握することは非常に重要なことである. その中でも道路標識の把握は, 自動車が安全走行をするために必要なことの一つである. 道路標識を把握する方法として, 機械学習を用いた手法が提案されている. しかし, 機械学習は様々な物体の特徴を学習する必要があり, その学習には膨大なデータと計算コストを要する. そこで複雑な処理を用いずに, 道路標識を検出することが求められる. 道路標識はそれぞれが持つ意味によって色と形が規定されている. このことから, 色情報と形状情報を用いた検出が有効と考えられる. 様々な道路標識の中で赤色の標識は設置数が多く, また, 一時停止や進入禁止など, 様々な規制を表す標識であることからその重要度は高い. そのため今回は赤色円形の標識と一時停止の標識を検出対象とした. 本研究では, 対象標識の形状が赤色の円形と三角形であることに注目し, 色情報と形状情報を用いた基本的な画像処理での検出を行う. *提案手法 [#n6f45582] *提案手法 [#m085e84f] 提案手法では, 入力画像が与えられるとまずその画像の表色系をHSV表色系に変換する. そして, 色情報を用いて対象標識が存在する可能性が高い赤色の領域を候補領域として抽出する. 次に候補領域のみが残された画像から, 対象標識に近い形と大きさの領域を, ノイズ除去と形状認識の処理で抽出する. 最後にテンプレートマッチングを行い, 対象標識のテンプレートに似た領域を標識として検出する. **赤色領域抽出 [#o04d73be] **赤色領域抽出 [#i065c444] 本研究は実環境下での使用を想定しているため, 天気や日光などによる環境光の影響を考慮する必要がある. そのため, まず入力画像の表色系をRGB表色系からHSV表色系に変換する. 図1は入力画像の例である. 表色系を変換後, 表1に示した閾値に合致する画素を赤色と定義し, 入力画像から赤色領域を抽出する. この閾値は色相と彩度のみを用い, 明度を考慮しないことである程度の照明変化に対応している. 図1から赤色領域を抽出した画像を図2に示す. さらに, 抽出した領域から赤い部分を白, それ以外の部分を黒に二値化した画像が図3である. CENTER:表1: 赤色領域抽出処理で用いた閾値 |色相|H <= 5, 135 <= H| |彩度|S >= 90| |明度|今回は無視| #br #ref(input.png,center,80%) CENTER:図1: 入力画像の例 #br #ref(red.png,center,40%) CENTER:図2: 赤色領域を抽出した画像 #br #ref(bin.png,center,40%) CENTER:図3: 抽出した領域を二値化した画像 **ラベリング [#y9bb3c3c] ラベリングとは主に二値化画像から白の画素が連続している領域を分類する手法である. 分類後, 各領域の幅と高さの値を取得する. 図4は, 図3の二値化画像にラベリング処理をしてその結果の一部分を表示した画像である. ここで分類されたそれぞれの領域が標識検出の候補領域となる. **ラベリング [#u68bdbfb] ラベリングとは主に二値化画像から白の画素が連続している領域を分類する手法である.分類後, 各領域の幅と高さの値を取得する. 図4は, 図3の二値化画像にラベリング処理をしてその結果の一部分を表示した画像である. ここで分類されたそれぞれの領域が標識検出の候補領域となる. #ref(label_param.png,center) CENTER:図4: ラベリング結果を表示した画像 **ノイズ除去 [#i6436a17] **ノイズ除去 [#ga29dedc] ラベリング処理で分類した領域全てを候補領域とすると, 標識とは無関係なノイズを検出する可能性が出てくる. そこでノイズとなる領域の大きさをある程度定義し, その条件に該当する領域を画像から除去する処理を行った. 表2にノイズと見なす領域の条件を示す. ノイズ除去の例として, 図5にノイズ除去前の二値化画像を, また, 図6にノイズ除去後の二値化画像を示す. ここで図5に見られる小さな白い領域が, 図6では消えていることが確認できる. CENTER:表2: ノイズと見なす領域の条件 |入力画像の50分の1以下の大きさの領域| |縦横の大きさが100pixelを超える領域| #br #ref(bin.png,center,40%) CENTER:図5: ノイズ除去前の画像 #br #ref(noise_reject.png,center,40%) CENTER:図6: ノイズ除去後の画像 **形状認識 [#d252950a] **形状認識 [#s248467a] ノイズ除去後, 次の処理であるテンプレートマッチングの試行回数削減と検出精度向上のために, 残った候補領域の中から対象標識に近い形の領域を抽出する. 形状認識の流れとして, まず各候補領域にクロージング処理を行う. 次に各候補領域の輪郭情報を抽出し, その情報を基に各候補領域の形状を円形, 三角形, その他の3つに分類する. 分類後, 円形または三角形と認識された領域は候補領域として残す. その他の形と認識された領域には対象標識が存在しないと考え, その領域を候補領域から除外する. ***クロージング [#s9053e67] ***クロージング [#n3646a8e] 候補領域は赤色の抽出具合によって領域内に穴が開いていたり切断されていたりする. そのまま輪郭抽出を行うと, 候補領域から充分に輪郭情報を得られない可能性がある. そこで輪郭抽出を行う前にクロージング処理を行った. クロージング処理とは, 二値化された領域に対して数回の膨張処理を行った後, 膨張処理と同じ回数の収縮処理を行う処理である. この処理を行うことで, 図形の穴埋めや輪郭の結合がある程度可能になる. 本研究では膨張処理と収縮処理を各2回行った. クロージング処理の例として, 図7にクロージング処理前の候補領域を, また, 図8にクロージング処理後の候補領域を示す. ここで, 図7に見られる欠けた輪郭部分が, 図8では補間されていることが確認できる. CENTER:&ref(label_piece.png,center,60%); &ref(label_closing.png,center,45%); CENTER:図7: クロージング前 図8: クロージング後 ***円形領域の認識 [#qd691098] ***円形領域の認識 [#c369cb88] 円形領域の認識には円形度を用いる. 円形度とはその図形がどのくらい円に近いかを示す値で以下の式で表される. #ref(equation1.png,center,15%) 円形度は0から1の範囲で値をとる. この値は対象の図形が真円のとき1となり, 図形の形状が複雑になるほど小さくなる. ここでは候補領域の輪郭情報から得た面積と周囲長を用いて円形度を算出し, その値が0.67以上の領域を円形標識の候補領域とする. ***三角形領域の認識 [#u5764eaa] ***三角形領域の認識 [#p6ba3339] 三角形領域の認識をするために, まず候補領域の輪郭情報からその候補領域に外接する最小の三角形を求める. 図9は候補領域の例であり, 図10はその候補領域の最小外接三角形を赤線で表示したものである. 次に候補領域と最小外接三角形の面積を求め, その面積比を算出する. そして, 面積比が0.50以上の領域を一時停止標識の候補領域とする. CENTER:&ref(label_piece_tri.png,center,44%); &ref(min_enclosing_triangle.png,center,45%); CENTER:図9: 候補領域例 図10: 最小外接三角形 **テンプレートマッチング [#a2163d47] **テンプレートマッチング [#aca07610] 形状認識後, 円形または三角形と認識された候補領域に対してテンプレートマッチングを行うことで, 入力画像から検出対象である道路標識を検出する. テンプレートマッチングとは, 検出したい物体をテンプレート画像としてあらかじめ用意し, 対象画像内からテンプレート画像と同じ物体を探し出す手法である. テンプレート画像を対象画像上で1画素ずつ移動させながら画素値の類似度を計算し, 類似度の高い画像領域を対象物体として検出する. 類似度の計算にはいくつかの手法があるが, 画素の濃度値の変化の影響を受けにくい手法として, 今回はZNCCという手法を用いた. 本手法では計算コストを削減するために, 対象画像全体ではなく, 候補領域ごとにテンプレートマッチングを行う. このとき情景画像に写る道路標識の大きさは, 撮影するカメラと道路標識間の距離によって異なる. そのため, 一つの大きさのテンプレートでは複数の対象標識を検出できないことがある. そこで, テンプレートの大きさを候補領域の幅と高さに合わせて変更し, マッチングを行う. 本研究はテンプレートとして, 円形の候補領域には図11の画像を, 三角形の候補領域には図12の画像を使用した. それぞれに対して表3の閾値を与え, テンプレートとの類似度が閾値以上の候補領域を対象標識として検出する. CENTER:&ref(temp_circ.png,center); &ref(temp_stop.png,center,20%); CENTER:図11: 赤色円形の標識用 図12: 一時停止標識用 #br CENTER:表3: テンプレートマッチングの閾値 |赤色円形の標識|0.5| |一時停止標識|0.7| #br *評価実験 [#a75985d0] **実験方法 [#ke1a79fc] *評価実験 [#g800ce5d] **実験方法 [#u6815401] 群馬県内でドライブレコーダーにより撮影された自動車前方の像の中から, 対象標識が1枚以上写った画像を305枚生成し, データセットとした. データセットの例を図13,14に示す. データセットに対して上記の提案手法を実装したプログラムを実行し, 検出率等の検証を行った. #ref(input_ex1.png,center) CENTER:図13:赤色円形標識を含むデータセット例 #br #ref(input_ex2.png,center) CENTER:図14:一時停止標識を含むデータセット例 #br **実験結果 [#i3b3b516] **実験結果 [#def18d23] 実験結果を表4に示す. CENTER:表4: 実験結果 |CENTER:総標識数|CENTER: 検出数 |CENTER:未検出数|CENTER:誤検出数| |CENTER:521|CENTER:341|CENTER:180|CENTER:4| #br ここで, 表4の総標識数は, データセット305枚に含まれる赤色円形標識と一時停止標識の 総数である. 検出数は正しく標識を検出できた数, 未検出数は正しく標識を検出できなかった数を表す. 誤検出数は木や看板など, 道路標識以外のものを標識として検出した数を表す. そして, 表4の結果より, 検出率と検出精度を算出した結果を表5に示す. CENTER:表5: 実験結果(検出率と検出精度) |CENTER:検出率|CENTER:検出精度| |CENTER:65.5%|CENTER:98.8%| #br 検出率とは, 総標識数に対する検出数の割合を示したものであり, 以下の式で表される. #ref(equation2.png,center,15%) また, 検出精度とは, 検出数と誤検出数に対する検出数の割合を示したものであり, 以下の式で表される. #ref(equation3.png,center,15%) #br 以上の結果より, 総標識数521枚に対して検出率は65.5%となり, 検出精度としては98.8%という結果になった. 検出に成功した例を図15, 16に示す. なお, 赤色円形の標識を検出した場合はその領域を青色の矩形で表し, 一時停止の標識の場合は赤色の矩形で表している. #ref(result267.png,center,80%) CENTER:図15: 検出成功例(赤色円形の標識) #br #ref(result295.png,center,80%) CENTER:図16: 検出成功例(一時停止標識) #br *考察 [#vede913b] *考察 [#d9179f91] 実験結果より, 対象標識を検出できなかった原因, および対象標識以外のものを誤検出した原因についての考察を述べる. 図17は, 赤色部分を抽出できなかったため未検出が出た入力画像とその画像の赤色領域抽出処理後の画像である. 赤色を含む道路標識は紫外線の影響を受けやすく, 他の色の標識に比べて劣化が早い特徴がある. そのため, 色あせてしまった標識からは赤色部分を抽出できずに未検出となる. ある程度の退色具合であれば, 赤色抽出の閾値を変更することにより抽出できる可能性がある.しかし, 図18のような完全に赤色部分が存在しない標識の色抽出を行うことは, 本手法では現状困難であると考えられる. #ref(consideration_301.png,center) CENTER:図17:劣化した標識を含む情景画像と赤色領域抽出処理後の画像 図18は, 輪郭情報を抽出できなかったため未検出が出た入力画像とその画像の赤色領域抽出処理後の画像である. 本手法では, 色抽出して得られた領域から輪郭情報を抽出し, その形状を認識する. しかし, 図18のような色抽出が不充分な画像では, 標識部分の領域の輪郭が欠損することがある. 輪郭が欠損すると, 円形認識の場合は円形度が0に近づいてしまい, 三角形領域の場合は対象領域に適した形の最小外接三角形が求められなくなる. これにより, 対象領域が候補領域として認識されないため未検出となる. これの改善策として, 色抽出の閾値変更, また欠損した輪郭を補間する処理の追加等が考えられる. #ref(consideration_242.png,center) CENTER:図18:輪郭抽出に失敗した入力画像と赤色領域抽出処理後の画像 図19は, 未検出および誤検出が出た入力画像とその画像のラベリング処理後の画像である. 未検出の原因としては, 下の標識が赤い葉と重なり, その部分の領域が一体となったことから未検出になったと考えられる. 赤い葉を一時停止の標識と誤検出した原因として, その部分の赤い領域の形状が逆三角形であり, 一時停止標識の形と類似していることから誤検出になったと考えられる. #ref(consideration_298.png,center) CENTER:図19:未検出および誤検出が出た入力画像とラベリング処理後の画像 *むすび [#l103e2f6] *むすび [#df496376] 本稿では, 色情報と形状情報を用いた道路標識の検出手法を提案した. 提案手法では, まず照明による影響を軽減するために情景画像の表色系を変換し, 色情報に基づいて対象標識の候補領域を抽出する. 次にノイズ除去と形状認識により, 候補領域の中から対象標識に近い形と大きさの領域を抽出する. 最後にテンプレートマッチングを用いて, テンプレートと類似度が高い候補領域を対象標識として検出する. 本手法は基本的な画像処理のみで構成されていることから, 計算コストがあまりかかることなく検出を行うことができる. 実際にドライブレコーダーで撮影した映像から切り抜いた画像を用いた実験により, 提案手法は65.5%の検出率で対象標識を検出でき, その検出精度に関しては98%を超える高精度であることが確認できた. しかし, 色抽出の段階で対象標識の色情報が抽出できない画像に対しては検出できないという欠点がある. また, ある程度色情報を抽出できても, 標識の輪郭部分が欠けている場合はその形状を認識することができず検出ができないこともある. 今後の課題として, 色情報と輪郭情報が抽出できない場合でも, 対象標識を検出することができる処理を追加する必要がある. また, 今回は赤色を含む円形標識と一時停止の標識を検出対象としたが, 他の色や形状の標識に対しても本手法を応用できると考えられる. さらに本研究の発展として, 検出の次の段階である道路標識の認識を低い計算コストで行える手法を考案することが望まれる. ----- #counter