[[太田研 公開用Wiki]] *形状情報を利用した歩行者用信号認識 [#z14b1369] *はじめに [#j5277a51] **研究背景 [#j26fd972] 近年、人とロボットの共存を目指し、開発技術の向上のための様々な実験が行われており、その中の一つにつくばチャレンジというものがある。 つくばチャレンジとは我々が普段過ごしている「実環境」において働くロボットの技術の進歩を最大の目的として、つくば市内の遊歩道などの実環境下で移動ロボットに自律走行を行わせる技術チャレンジである。現在のつくばチャレンジでは、指定されたコースでのロボットの自律走行だけでなく+αの課題が与えられており、その課題の一つに歩行者用信号の認識・及び横断歩道の横断がある。 CENTER:#ref(mercury_tukuba.png,center,70%) CENTER:&size(14){図1:自律走行ロボット}; **研究目的 [#z36c8285] 信号探索において未検出、誤認識は重大な事故につながりかねない。そのため走行予定ルート上の信号は必ず正しく認識させる必要が有る。また、信号の認識自体が低速だと、赤信号を認識しても停止命令の実行が間に合わず、横断歩道に侵入してしまうことも考えられる。そのため、信号認識には精度・速度ともに質の高いものが求められる。 太田研究室では以前より前述のつくばチャレンジに参加しており、信号探索についても様々な手法の研究を行っていた。その中でも特に色情報を主として用いることが多く、実際に高い認識精度をもつことを確認されている。 しかし、色情報のみに焦点を当てて探索を行うと類似色の物体を信号と誤認識してしまうことがあり、過去の研究に置いても避けられない問題となっていた。 そこで本研究では、信号の色のみではなく形状情報にも焦点を当てることで類似色の物体の誤認識を防ぎ、なおかつ高い認識精度を維持することを目的とした。 なお、今回探索対象となる信号は旧型のものとし、新型のLED式信号は色面積が大きく異なるため探索隊障害とする。 *テンプレートマッチング [#g7587e5f] **テンプレートマッチングについて [#y53b4238] テンプレートマッチングとはある画像内で部分画像と最も類似している箇所を探索・抽出する手法である。 以下、探索対象となる部分画像をテンプレート、探索を行う画像を入力画像とする。 手順としては、入力画像の隅から隅までテンプレートを1ピクセルずつ動かし、その位置での二画像の類似度計算を逐一行う。 最終的に入力画像全体で計算が終了した時点で類似度が最も高かった箇所が抽出される。 **類似度計算 [#yd5c704c] テンプレートマッチングの類似度計算にはいくつか種類があり、それぞれ計算量や特徴が異なるため用途や目的に応じて使い分けることができる。 今回は照度変化に受ける影響を少なく且つ極力高速な処理を目指しているためZNCCという手法を採用した。計算式は以下のようになる。 CENTER:#ref(zncc.png,center,50%) このZNCC(Zero-mean Normalized Cross-Correlation)は入力画像とテンプレートそれぞれの画素値の平均を引いた後にその正規化相互相関を求める。計算結果の値は-1.0から1.0に収まり、0に最も近くなる箇所が最も類似している(最大スコア)ということなる。 ZNCCは類似度計算の中では計算量は多めだが、その分証明変化に強いという特徴が有る。信号認識に置いては認識率を第一とするため今回はこの計算法を採用した。 *信号探索アルゴリズム [#z3c5ff5c] **探索領域 [#r7975132] 信号候補の探索でははじめに信号色の探索を行っていく。しかし入力画像内をすべて探索すると類似色の抽出量も増える上に実行時間も嵩んでしまうため、カメラの高さや横断歩道の長さを考慮した上で探索範囲を絞り込んでいく。 今回使用するカメラはロボットに搭載されており、その高さは変動することはない。 そのため信号との距離も併せて考慮することで探索範囲を大幅に絞り込み、類似色の抽出と実行時間の削減が可能となる。 横断歩道の正確な長さは不明であるが、撮影された画像群では信号位置がおおよそ一定範囲内に存在していたため、探索範囲を画像の縦1/5〜1/3、横1/4〜3/4に設定した。 CENTER:#ref(range.png,center,60%) CENTER:&size(14){図2:実際の探索範囲}; **信号候補の抽出 [#r13a0075] 入力画像を読み込んだら探索範囲内にて特定色領域の探索・抽出を行う。 今回は探索領域内で25×25の矩形領域を10ピクセルずつ動かしていき、矩形領域内の赤色、及び青色画素の数をカウントしてその数が矩形領域の約16〜69%を占めていたら探索範囲の周辺±5ピクセルを信号候補として抽出していく。 CENTER:#ref(table_hsv.png,center,50%) CENTER:&size(14){表1:探索色のHSV表}; **信号位置の確定 [#k0e7c17c] 次に前項で抽出した信号候補領域に対してテンプレートマッチングを用いることでその領域内に信号が存在するか確かめる。 通常テンプレートマッチングを行う際はテンプレートは1枚のみ用意することが多いが、今回は誤検出の可能性を減らすため 3種のテンプレートを用意した。 CENTER:#ref(template_signal.png,center,100%) CENTER:&size(14){図3:テンプレート画像}; これらは左から ・信号の外枠まで含む ・信号の点灯部分 ・白色(人型)部分 となっている。 これら3種のテンプレート(以下、テンプレート1・2・3とする)と前項で抽出した信号候補領域をそれぞれグレイスケール画像に変換する。グレイスケール画像に変換することで画像は明るさのみで表示されるため、色情報の判別を終えた本段階にてより形状情報のみに注目した形でマッチングを行うことができる。 それぞれでマッチングを実行し、スコアの最大値と最大値を更新した座標を記録していく。 この処理を探索範囲全域にて行い、最終的にテンプレート1・2の最大スコアの平均が0.45を、テンプレート3のスコアが0.8を超えていてで更に最大スコアを取った座標が±20ピクセル以内であればそこに信号があると認識する。 *実験結果 [#k13a3098] 今回は本年度のつくばチャレンジの実験走行及び本走行にて実際にロボットが走行中に撮影した画像群と、昨年度撮影された従来手法にて撮影された探索対象の写っていない画像群を実験画像として用いる。 まずはじめに走行時撮影画像群の中でも探索対象となる歩行者用信号が探索範囲内に存在しているもの(赤349枚、青437枚)を用いて認識率を確かめる。 CENTER:#ref(signal0.png,center,60%) CENTER:&size(14){図4:入力画像例(探索対象有)}; 実験結果は以下の表のようになった。 CENTER:#ref(table_result.png,center,50%) CENTER:&size(14){表2:実験結果}; このように今回使用した画像群の認識率は赤信号・青信号共に98%を上回った。 従来手法は色情報の用い方や撮影環境・機器など様々な点が異なるため純粋な比較ではないが、単純に認識率のみを見てみると赤青どちらもかなり精度が向上していることが見て取れる上に実行時間も大きな差異は見られなかった。 次に昨年撮影され、従来手法の実験にて使用された、今回探索対象となる信号の写っていない画像群10898枚を用いて誤検出の有無を調べる。なおこの画像群には従来手法にて誤検出が起きた画像も含んでいる。 CENTER:#ref(miss_.png,center,60%) CENTER:#ref(miss_.png,center,80%) CENTER:&size(14){図5:従来手法での誤検出例}; こちらの画像群では誤検出は10898枚中13枚となった。こちらは誤検出率としては約0.0012%となる。 従来手法による誤検出率は上記の表では0.08%のためほぼ0%に近くはあるが、提案手法では更に誤検出率を減らせたことが分かった。 *考察 [#db1c0d68] **未検出画像 [#rb246445] 未検出画像は赤信号にて4枚、青信号にて2枚確認された。これらの未検出の原因について考察したところ、大まかに以下の3種類に分けることが出来た。 1.日光の当たり方で画像の色が変化したもの 2.自動車のテールランプと信号で最大スコア位置が分散したもの 3.ロボットの位置変化による画像内信号サイズの変化 これらはいずれも外的要因によるものである。更にこれらは同箇所で連続して撮影された画像のうちの一枚でのみ起きていたり、動的物体によるものであった。そのため複数画像を用いた判別を行うようにすることで回避可能であると考えられる。 CENTER:#ref(notdetected.png,center,60%) CENTER:&size(14){図6:未検出画像例}; **誤検出画像 [#xf305a10] 誤検出画像は探索対象の写っていない画像群、10898枚中に13枚確認された。 こちらも原因は大まかに以下の二通りに分けることができた。 1.背景に類似色且つ類似したパターンが存在した 2.車のテールランプに反応した これらもまた未検出画像と同じく同箇所で連続して撮影された画像のうちの一枚でのみ起きていたり、動的物体によるものであったため、複数画像を用いた判別に改良することで回避可能であると考えられる。 CENTER:#ref(signal03.png,center,60%) CENTER:#ref(signal03.png,center,70%) CENTER:&size(14){図7:誤検出画像例}; *まとめ [#a864eeaf] 本研究では従来の色情報を用いた歩行者用信号認識に、形状情報による判別を加えることで精度を高めつつ、更に実行速度も維持することでつくばチャレンジの信号認識の課題に有効なシステムの開発を目的とした。 実際に本年度行われたつくばチャレンジ2018の実験走行及び本走行にて撮影された信号画像群から信号色を抽出、その後抽出された画素数が矩形領域内の一定範囲を占めていた場合そこを信号候補として抽出した。従来手法ではここまでの色情報による認識に注力していたが提案手法ではその後に信号候補に対してテンプレートマッチングを行い、形状が一致しているかの判別を加えることで誤検出の削減を目指した。 結果として今年度のつくばチャレンジでの信号画像群に提案手法を適用した場合の信号の認識率はほぼ100%となり、誤認識は1件も確認されなかった上に未検出も外的要因によるもののみであったしかし昨年度撮影された探索対象の写っていない画像群では誤検出が僅かながら確認された。 今後の課題として、まず第一にロボットに実装して実環境での動作を確認することが挙げられる。今回の実験はあくまで撮影済みの画像でのみ実験を行っているため、実際にロボットに搭載してリアルタイム検出が行えるかは定かではない。次に未検出・誤検出画像についてだが、双方の解決策として連続画像による判別の追加も有効であることが考えられるため、そういった判定も加えることで未検出・誤検出の削減を目指したい。また今回の実験結果により形状情報による判別が有効であることが判明した。今回の信号認識の探索対象は旧型歩行者用信号のみであったが、このことにより新型歩行者用信号においても形状情報を用いることで精度の高い信号認識が行えるのではないかと思われる。