近年,店舗や倉庫内など限定された環境下において自律走行ロボットの活躍の幅は日々幅広くなっている.一方,実際の市街地で完全な自律走行を行うには技術的な課題が多く残っており,市街地での自律走行を目的とした研究開発が盛んに行われている.その一例として,2007年から毎年茨城県つくば市内で開催されている「つくばチャレンジ」と呼ばれる技術チャレンジがある.
つくばチャレンジとは,人々が実際に生活している市街地や公園,駅,などの実環境下における公開実験会である.このつくばチャレンジは実環境下における自律走行技術の進歩を目的としており,大学の研究室や企業など様々な組織の研究者が参加している.また,参加チームそれぞれが開発及び研究を行っており,参加者同士が互いに知識や技術,経験を共有することによって全体の自律走行技術の進歩を目的としている.
以下からはつくばチャレンジ2022のコースや課題内容をもとに本研究の背景を説明する.
つくばチャレンジでは必須課題と選択課題がある.必須課題は参加する全チームが取り組む課題であり,図1に示された課題ルートの約2kmを自律走行するという課題である.選択課題では次の4つの課題が課された[1].
この中でも実環境下での自律走行において,歩行者用信号機の状態の認識は安全面からも重要な要素であると考え,本研究では「信号認識横断」に着目した.
自律走行ロボットで「信号認識横断」のためのソフトウェアを動作させるにあたり,いくつかの留意点がある.まず,自律走行ロボットはバッテリーで駆動するため搭載できる計算資源には限りがあり,限られた計算資源を自律走行に必要な他のソフトウェアと分け合う必要もある.また,信号機の認識は移動中に行うためリアルタイム性も重視しなければならない.
そこで本研究では画像特徴量とサポートベクターマシン(SVM)の組み合わせにより,高精度かつ軽量でリアルタイム性の優れた検出手法の開発を目指した.また,つくばチャレンジでの性能向上,将来的にはつくばチャレンジの環境下以外の歩行者用信号機でも検出を行うことができる性能を目指し,本研究では検出性能のみでなく汎化性能も重視した.
本研究では,複数の画像特徴量や特徴量同士を組み合わせたものなどでの性能をそれぞれ比較した.また,サポートベクターマシン(SVM)はいくつかのハイパーパラメータを設定する必要があるが検出性能と汎化性能に対して最適な値をグリッドサーチ,ホールドアウト法,層化k分割交差検証を組み合わせて求めた.
なお,本研究における検出対象は,図2に示すような白熱電球型の歩行者用信号機に限定する.
先行研究[2]では,画像中から歩行者用信号機の状態を検出するにあたり,HOG特徴量とサポートベクターマシン(SVM)を用いた手法を提案している.この手法では誤検出率が1\%未満であり,GPUを搭載できないようなロボットにおいても有効な手法であると述べている.
また,先行研究[3]では,屋外の看板検出においてHOG特徴やLBP特徴を用いている.
本研究ではこれらの先行研究をもとに,色相特徴,HOG特徴,LBP特徴の3種類を用いて歩行者用信号機の検出を行うこととした.さらに,HOG特徴やLBP特徴は画像中の色情報は使用されないため,信号機の特徴的な色情報が活用されない.そこで,本研究では先に述べた3種類に加え,HOG特徴と色相特徴を組み合わせた特徴量,LBP特徴と色相特徴を組み合わせた特徴量の計5種類で性能の比較を行った.
なお以下からは,HOG特徴と色相特徴を組み合わせた特徴量を「HOG特徴+色相特徴」,LBP特徴と色相特徴を組み合わせた特徴量を「LBP特徴+色相特徴」と呼称する.
また,先行研究や本研究で用いているサポートベクターマシン(SVM)は2つのハイパーパラメータを設定する必要がある. そこで,それぞれの特徴量ごとに検出性能と汎化性能に対して最適な値をグリッドサーチ,ホールドアウト法,層化k分割交差検証を組み合わせて求めた.
以下の手順でサポートベクターマシン(SVM)の学習を行う.この学習手順は先行研究と同様である.
以下の手順で画像中から歩行者用信号機の状態を検出する.
実際に歩行者用信号機を検出すると,画像中の該当部分を青い矩形で囲む処理を行っている.以下に具体例の画像を示す.
信号の灯火色の抽出する処理においてはHSV色空間に変換し,抽出を行っている.
HSV色空間とは,色彩の情報を色相(Hue),彩度(Saturation),明度(Value)によって表現したものである.HSV色空間に変換することにより,いくつかの利点がある.まず,明るさの変化を受けにくくなる.また,特定の色の抽出や,色合いの変更などの画像処理が容易になる.これは,カラー画像の場合,画像内の明度の情報は比較的変化し易いが,色相や彩度の情報は比較的安定する.そのため,HSV色空間に変換後,信号の灯火色の抽出を行う[4].
本研究では以下のしきい値で信号の灯火色を抽出した.なおOpenCVにおいては,色相(Hue)は0~179,彩度(Saturation)と明度(Value)は0~255の範囲で指定を行う.
色相(Hue) | 彩度(Saturation) | 明度(Value) | |
赤信号 | 0~20, 160~179 | 70~255 | 100~255 |
青信号 | 60~100 | 60~255 | 0~255 |
上記の条件で抽出を行った後に,メディアンフィルタを画像全体に適用し,ノイズの除去を行う.また,領域の欠損部分を埋める膨張収縮処理も行う.
ラベリング処理とは,複数のブロブが画像内に存在する場合に,各ブロブに一意の識別子(番号)をつけて識別する処理である.この処理により,それぞれのブロブ(ここでは候補領域になるもの)を個別に抽出して扱うことができる[4].
信号の灯火色(赤または緑)を抽出した後の画像に対して,このラベリング処理を行っていく.処理後に,ラベリング領域のサイズの確認を行う.
歩行者用信号機は基本的に道路を挟んだ場所に設置されているため,画像中に極端に大きく写ることはない.そのため,ラベリング領域のサイズの確認を行い,極端に大きいものや極端に小さいものを排除することで,検出にかかる時間を削減できる.本研究では,ラベリング領域の縦幅・横幅がともに5~40ピクセルの領域のみを候補領域として扱った.
画像特徴量とは,画素に含まれる様々な数値を特定のアルゴリズムを用いて計算を行い,画像の特徴を数値として表現したものである.ここでは色相特徴,HOG特徴,LBP特徴,HOG 特徴+色相特徴,LBP特徴+色相特徴の5種類の特徴量について説明する.
色相値の出現頻度をヒストグラム化した特徴量である.
1つの局所領域内におけるエッジ方向ごとのエッジ強度に注目した特徴量である[5].本研究では,図12のように画像を4つの局所領域に分割する.その後,局所領域内でのエッジ方向のヒストグラムを作成し,4つのヒストグラムを結合したものを特徴量として扱う.
中心画素とその周囲の画素との輝度の差を比較し,相対値をヒストグラム化した特徴量である.まず,LBP(Local Binary Pattern)では,中心画素とその周辺画素との輝度の差を計算し,その符号によって0,1の2値パターンを割り当てる[6].
図13をもとに具体的に説明する.まず中心画素の輝度値を95としたときにその周囲の画素の輝度値が95より大きい場合は1,小さい場合は0とする.これを2進数の位として扱う.左上を最下位ビットとし反時計周りに1周していった値がLBP値となる.図13の例だと,LBP値は01000011となり,16進数で43, 10進数で67となる.
本研究では,図14のように画像を4つの局所領域に分割し,局所領域内でLBP値の計算を行う.その後,計算したLBP値をもとにヒストグラムを作成し,4つのヒストグラムを結合したものを特徴量として扱う.
HOG特徴, LBP特徴それぞれと色相特徴のヒストグラムを結合したものである.HOG特徴とLBP特徴はともに画像中の色情報を使用しない.つまり,候補領域の判定を行う際には信号機の特徴的な色は全く活用されない.
そこで,色相特徴と組み合わせることにより,HOG特徴やLBP特徴でも信号機の特徴的な色を判別に使用できるようになり,それぞれの単体よりも検出性能が向上が期待できると考え,採用した.
サポートベクターマシン(SVM)とは2クラス分類問題の代表的手法であり,未知データに対して高い予測精度を持つ識別器が構築できることで知られている. マージン最大化という基準を用いて,データからできるだけ離れた決定境界を学習する.本研究で用いているSVMでは,誤分類の許容度合いをコストパラメータCとして設定する必要がある.Cを大きくすると誤分類が許容されにくくなり,小さくすると許容されやすくなる[7].図15にコストパラメータCを変化させたときのイメージ図を示す.
また,複雑な決定境界を学習させる場合は,カーネル関数を用いて高次元空間で学習した決定境界を利用する.カーネル関数は様々なものがあるがここではRBFカーネルを使用する.RBFカーネルではパラメータγを設定する必要がある.γを大きくすると複雑な決定境界となり,小さくすると単純な決定境界になる[8].図16にRBFカーネルのハイパーパラメータγを変化させたときのイメージ図を示す.