#author("2021-02-24T07:43:41+00:00","default:ail-wiki","ail-wiki")
#author("2021-02-24T07:50:02+00:00","default:ail-wiki","ail-wiki")
[[太田研 公開用Wiki]]

*テンプレートマッチングによる歩行者用信号機の検出 [#r115f454]
#contents

*はじめに [#n92ff20a]
**研究背景 [#p7436612]
 近年、自動車やロボットの自律走行技術への注目が高まっており、研究開発が盛んに行われている。その一例として、「つくばチャレンジ」と呼ばれる技術チャレンジが挙げられる。

 つくばチャレンジとは、ロボットの自律走行技術の向上を目的とした、つくば市内の実環境下で行われる、移動ロボットを自律走行させる技術チャレンジである。

 昨年行われたつくばチャレンジ2019では、必須課題と選択課題が用意されていた。必須課題は指定されたコースをロボットに自律走行させるというものであった。選択課題では様々な課題が用意されていた。例えば、「チェックポイント」と呼ばれる定められた地点を全て通過したり、経路封鎖看板を認識してロボットに迂回させる「チェックポイント通過と経路封鎖迂回」の課題や公園内に設置されている複数のマネキンを検出する「探索対象発見」の課題などがあった。このような課題の内の一つに歩行者用信号を認識し、ロボットに横断歩道を横断させる「歩行者用信号認識」の課題がある。

 本研究は、この歩行者用信号認識課題の達成を目標とした画像処理による信号認識アルゴリズムを提案し、評価実験を行った。

**研究目的 [#rdb6b455]
 画像処理を用いた信号認識の主な手法として、信号の灯火部分と類似した色を抽出することによって検出を行う色情報を用いた手法が挙げられる。このような手法はHSV表色系による色抽出やラベリング処理などの基本的な画像処理を用いたものであるため、処理がシンプルで計算コストが軽いという利点がある。その一方で、信号の灯火部分と同じ大きさでかつ類似した色の物体を誤認識してしまうという問題がある。

 そこで本研究では、信号機が人工物であり、撮影地点や異なる日時及び天候による環境の変化によって形状が変化しないことから、色抽出によって信号を検出する手法と、形状特徴に焦点を当てたテンプレートマッチングによって信号を検出することを目的とした。なお、検出対象は白熱電球型の歩行者用信号である。

*提案手法 [#i1f0c7f8]
 つくばチャレンジでの信号認識は、ロボットが横断歩道の手前で一時停止した状態で信号の認識を行う。そのため、画像に写る信号の大きさや見え方の変化が少ないことから、テンプレートマッチングを用いて信号の検出を行った。

 一般的にテンプレートマッチングには様々な種類のマッチング手法があるが、今回は日時や天候の違いによる照明変化の影響を受けにくいとされるZNCCという手法を用いてテンプレートマッチングを行い、マッチング精度の向上を図った。

 提案手法の大まかな処理の流れを示す。
+入力画像の色抽出
+色抽出を行った領域に対してラベリング
+入力画像の信号の領域と予め用意しておいた青信号と赤信号のテンプレート画像を用いてテンプレートマッチング

 以下で処理の詳細と用いたアルゴリズムについて述べる。

**色抽出 [#c1e88632]
 色抽出とは、入力画像内で特定の色を抽出するときに用いられるものである。
#ref(tyusyutu.png,center,60%)
CENTER:図1: 色抽出

色を用いた物体認証でよく使用されるHSVについてもここで述べる。HSV表色系は色相(Hue)、彩度(Saturation)、明度(Value)の3種類のパラメータが存在する。以下に今回用いたHSVの閾値を示す。
CENTER:表1: HSV閾値
#ref(hsv-th.png,center,100%)

また、入力画像全体に対して色抽出を行うと信号の灯火部分との類似色の誤検出が増える恐れがある。そのため、色抽出を行う範囲を縦0~1/4,横1/8~7/8に限定することで検出精度向上を図った。

**ラベリング [#e7f9715c]
ラベリングとは、主に二値化画像において白色の領域を白画素の連結情報をもとにラベルを割り振って分類する手法のこと。この処理には注目画素の上下左右の四連結を同じラベルにする処理と上下左右に加えて斜め方向の周囲八連結を同じラベルにする処理がある。今回はより正確に処理を行えるように八連結で処理を行うラベリングを用いた。
#ref(label.png,center,100%)
CENTER:図2: 八連結ラベリング
今回、この処理を色抽出した結果画像に対して行った。ラベリング処理後に分類された領域が今回信号の候補領域となる。

**テンプレートマッチング [#e7f9715c]
 テンプレートマッチングとは、テンプレート画像と呼ばれる検出したい画像パターンを入力画像全域に対して比較照合し、入力画像内でテンプレート画像と最も類似している位置を検出するマッチング手法である。

 テンプレート画像を入力画像の左上から 1 画素ずつ x 方向にずらしながら、スコアと呼ばれるテンプレート画像とどれだけ類似しているかを表す尺度を計算する。右端まで到達したら、x=0の位置に戻しかつ、y方向に1画素ずらして同様にスコアの計算を行う。本研究ではこのような処理を信号の候補領域に対してのみ行った。
 スコアの計算にはいくつかの方法があり、その内の1つに ZNCC(Zero-means Normalized Cross-Correlation) と呼ばれる手法がある。
#ref(zncc.png,center,100%)
ZNCCとはそれぞれの画素の画素値の平均を引いた相関係数を用いる。とそのためスコアの値が取りうる範囲は-1.0~1.0となり、1.0に近づくほど類似度が高くなるという特徴と、光や明るさの変化に強いマッチングを行えるという特徴を持つ。


*検出実験 [#n69f20c3]
**データセット [#p4596cdc]
 データセットとして、つくばチャレンジの実験走行会で撮影された、青信号が写っている画像331枚と赤信号が写っている画像 90枚の計331枚の画像群を用いた。画像は異なる地点及び日時天候 ( 晴れ・曇・雨 ) で撮影されたものである。
#ref(nyuryoku.png,center,100%)
CENTER:図3: 実験で用いた画像

**実験方法 [#oc5af0da]
 今回は画像群に対して提案手法と、色抽出のみの手法の2パターンの手法による検出を行い、比較実験を行った。

 色抽出のみの手法とは提案手法と同様に入力画像を色抽出し、ラベリング処理まで行う。このときの色の閾値は提案手法と同様である。この手法では、図4のように抽出した信号の候補領域内の四隅が青、または赤信号の画素値を持ち、中央の画素が人型部分の画素値を持つときに信号であると認識させた。
#ref(teian.png,center,45%)
CENTER:図4: 色のみの手法

**実験結果 [#v5fcd0f4]
 結果は以下の表のようになった。
CENTER:表2: 2つの手法による信号検出結果
#ref(result.png,center,100%)
 色のみの手法では、検出率が赤信号に関しては89%と高い結果ではあるが、青信号では63%と良くない結果となった。また、誤検出に関しては、非常に多い値となってしまった。これは色抽出時に閾値の範囲を広く取ってしまっているため、日時や天候によっての照明変化の影響を大きく受けてしまい、信号機以外の類似色を検出してしまったことが原因だと考えられる。以上のことから色抽出のみでは信号機を安定して検出することが困難だと言える。
 提案手法では、赤青信号ともに検出率が99%を超え、色のみの手法と比較して非常に高い結果となったことがわかる。また、未検出と誤検出数も赤青信号合わせて3枚ほどであった。これらのことから提案手法によって高精度で信号を検出できたと言える。

 同地点において撮影された日時天候が異なる画像に対して提案手法によって信号が検出された例を以下に示す。
#ref(succes-sun.png,center,100%)
CENTER:図5: 検出例(晴れ)

#ref(succes-cloud.png,center,100%)
CENTER:図6: 検出例(曇り)

#ref(succes-rain.png,center,100%)
CENTER:図7: 検出例(雨)

*考察 [#rf46f4ac]
**未検出例 [#ue747be1]
 今回提案手法において未検出となった例として、以下のような、信号の一部が車両によって隠れてしまったものが挙げられる。未検出となった原因として、信号機の一部が隠れたことで、テンプレート画像との類似性が取れなかったことが考えられる。

 このような画像は、同地点で撮影された数10枚の内の1∼3枚程度で起きていることから、例えば連続して撮影された 10 枚の内、7枚以上検出されていれば信号として検出するなどといった、複数画像による判別を行えば対処可能であると考えられる。
#ref(gonin.png,center,140%)
CENTER:図8: 未検出例

**誤検出例 [#q878c0a4]
 今回誤検出となった例として、以下のような、画像中の信号部分が白飛びしてしまったものが挙げられる。
 今回誤検出となった例として、以下のような画像が挙げられる。

 誤検出となった原因として、信号部分が白飛びしたことでマッチングスコアが上昇してしまったことが考えられる。このような画像は、未検出例と同様に同地点で撮影された数10枚の内の1∼3枚程度で起こっていた。そのため、 上述したように複数画像による判別を行えば対処可能であると考えられる。
 誤検出となった原因として、色抽出時に閾値を広く取っているため、類似色として判定されてしまったこと。また、バスの中でマッチした形状が信号機の人型部分と類似していると判定されてしまったことの2つが考えられる。そのため、 上述したように複数画像による判別を行えば対処可能であると考えられる。今回の場合は他にも色抽出時の閾値を調整することでも対処可能だと考えられる。
#ref(miken.png,center,80%)
CENTER:図9: 誤検出例

**今後の課題 [#d5fed428]
 エッジ画像によるテンプレートマッチングを用いた信号認識手法を提案し、実験において高精度で信号を検出できることが確認された。
 色抽出とテンプレートマッチングを用いた信号認識手法を提案し、実験において高精度で信号を検出できることが確認された。

 今回は、予めつくば市内で撮影された画像に限定して検出を行った。そのため、実環境下で信号を検出できるかどうか定かではない。したがって、ロボットに本手法を実装し、実環境下での検出に耐えうるかどうかを確認する必要がある。また、未検出や誤検出を削減するために、 考察で述べたような複数画像による信号判定処理を加えることも必要である。
本研究では信号機までの距離を考慮せずにプログラムを作成した。しかし、本来であればその信号機までの距離も考慮したプログラムが望ましいため、そのようなプログラムにするための改良が必要である。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS