近年,ロボットは産業分野のみならず,家庭向けロボットなど多くの分野で働くロボットの研究・開発が行われている.ロボットが人間の生活する環境で働くためには,様々な機能が必要になる.例えば,ロボットが自らの居場所を認識して,自律的に移動するロボットや,特定の人や物を認識する技術は必要不可欠な技術の一つである.
実環境上で動く自律走行ロボットの研究・開発の場としてつくば市内で行われている「つくばチャレンジ[1]」がある.つくばチャレンジは,様々な研究者・技術者が参加し, つくば市内の遊歩道等の実環境上で自律走行ロボットの実験を行う公開実験となっている.
昨年行われたつくばチャレンジ2016 では, 図1 に示すコースをロボットに自律走行させてスタートからゴールまでを走行させることが主な課題となっている. また, つくばチャレンジでは走行コース内には探索エリアが設けられており, その中に4 名存在する「特定の服装をした人物」を探索するという課題が設定されている. 筆者らはこのつくばチャレンジ2016 に参加し, 課題を達成するためのロボットの開発を行った.
本研究では,つくばチャレンジ2016 の課題の一つである「特定の服装をした人物の探索」という課題を達成するための,探索対象検出アルゴリズムを設計・実装した.
探索対象を図2 に示す.また,つくばチャレンジ2016 における探索エリアのコースを図3 に示す.図2 のようにつくばチャレンジにおける探索対象は,緑色のジャンパーの上にオレンジまたは青のベストを着用しており,そのすぐ脇には立て看板が設置されている.探索対象は4 名配置されており,図3 の斜線部分が探索エリアとなっている.つくばチャレンジ2016 からは,探索対象の配置は屋外のみならず屋内にも配置されることが予想された.探索対象を発見した際には,その対象の人の1.5m 以内のところに達して,3 秒以上停止する必要がある.ロボットが探索対象以外の人やものを探索対象として認識しても課題達成の判断には反映され
ないが,つくばチャレンジ2016 では探索対象以外を検出して,停止した場合にはその回数を誤認識として記録に残すことになっている.
探索対象の色は特徴のある色であるため,カメラを用いた色検出は有効な手段の一つである.しかしながら,実環境上には似たような色が多く存在するため単純な色の識別だけでは誤検出が多くなってしまう.そこで,本手法では探索対象の特定色領域の面積比と重心の位置関係を利用することで誤検出の削減を試みた.また,カメラ画像からの色情報とレーザーレンジファインダ(以下LRF と略) から得られる形状情報を統合することでより安定した探索対象の検出を目指した.
つくばチャレンジ本来の趣旨であれば人物を探索すべきであるが,探索対象となっている人物はカメラに写るベストの色情報やLRF で得られる形状情報が大きく変化しやすい.そこで,本手法では処理をできるだけシンプルに構成するという設計趣旨から色情報の変化が小さく,形状情報が安定して得られる立て看板の検出を試みた.本手法では色と形状情報を組み合わせた看板の検出というシンプルな手法による検出精度を向上させることを目的とする.
つくばチャレンジにおける人物検出手法の例としては[2, 3, 4, 5] が挙げられる.[2, 3] の手法では,ディープラーニングを用いて探索対象である人や立て看板の検出を行っている.ディープラーニングによる人や物体の認識は実環境上での検出において一つの手段になり得る.しかしながら,その学習には膨大な量の学習データが必要であり,学習だけでなく,実際の検出時にも計算コストを要するため高性能なGPU が必要となる.つくばチャレンジにおける立て看板のように,ある決まった特定の物体は色や形状がある程度安定して検出できる.これらの情報を用いることで,ディープラーニングのような複雑な処理をともなう方法を用いずとも,実環境上での特定物体を検出することは可能であると考える.
一方,[4, 5] の手法では,カメラ画像からの色情報とLRF で得られる形状情報を統合することで探索対象の検出を試みている.[4] の手法では,立て看板と人物それぞれの幅に相当する物体をLRF の距離情報を用いて検出し,その方向に対して全方位カメラ画像から色検出を行い,探索対象が身につけている帽子(オレンジ) とベストの色(オレンジまたは青),看板の色
を検出した場合探索対象が存在すると判断している.しかし,探索対象となっている人物はカメラに写るベストの色情報やLRF で得られる形状情報が大きく変化しやすい.[4] では形状情報で立て看板と人物の形状に相当するペアを検出できなければ色情報による判定も行わないため安定した検出率を確保することが困難であった.
[5] の手法では,色情報の変化が小さく形状が一定である立て看板を検出することで安定した検出を目指している.前述の手法とは異なりカメラ画像からの特定色領域の抽出を先に行い,立て看板に該当する色情報を検出した方向に看板の幅に相当する物体をLRF で得られる形状情報で確認した場合に探索対象であると判断している.この手法では,[4] で用いている双曲面ミラーを用いた全方位カメラではなく,USB カメラ3 台を3 方向に向けて設置している.双曲面ミラーを用いた全方位カメラでは,1 つのカメラに双曲面ミラーを取り付けて360◦ の映像を撮影する.ミラーに写った像を1 台のカメラで表現するため,ミラーのサイズやカメラ
の解像度によっては図4 のように解像度の低い画像になってしまい,また, 認識に不要な路面が多く写ってしまうため小領域の色情報の判定が困難である.[5] の手法では,USB カメラを3 台用いてロボットの周囲の画像を取得することで,双曲面ミラーを用いた全方位カメラよりも安定した色情報の抽出を実現している.しかしながら,特定色領域の抽出に用いる色の参照値の選定が不十分であったため,天候の変化等による照明条件の変化に対応できず,探索対象を検出できないケースが見られた.また,つくばチャレンジでは,探索対象を検出した際にはその1.5m手前に停止するという規定がある.しかし,単純にカメラで検出した看板の方向
に移動するため,本来の探索対象である人物から1.5m 以上離れた位置に停止してしまう可能性がある.
以上の関連研究を考慮し,本研究では,色情報・形状情報がともに安定して得られる看板の検出を試みた.はじめに,つくばチャレンジの実際の画像をもとにカメラ画像からの特定色領域の抽出で検出するべき色範囲の設定を行った.また,特定色領域の抽出では看板のオレンジ色領域と水色領域の2 種類を抽出し,その2つの面積比と重心の関係を確認することで誤検出の削減を試みた.つくばチャレンジ2016 では,探索対象の誤検出もカウントされるため誤検出を可能な限り削減する工夫が必要であった.探索対象である人物と看板は移動しないため,検出された対象位置が一定であるかを確認し,5 フレーム連続で一定の位置に看板を検出し
た際にアプローチするという手法を採用した.さらに,探索対象へのアプローチの際には立て看板の隣に存在するであろう人物の形状を確認し,人物と看板の中間点から看板と人物の向きに直交する方向に対して目標地点を設定した.これにより,対象にアプローチした際に人物から1.5m 以上離れるような状況を回避した.
以上のように,ディープラーニングのような複雑な手法を用いるのではなく,色情報と形状情報を組み合わせたシンプルな手法を用いることにより,計算コストを抑えつつ,連続する数枚の画像を用いての検証をリアルタイムに行うことで,最小限のハードウェア構成での検出精度の向上を可能にしていく.以降で本手法の詳細を述べる.
つくばチャレンジ2016 のために開発したロボットの外観を図5 に,仕様を表1に示す.ベースとして用いたロボットはリバスト社[6] が開発を行っている屋外用移動ロボット「Mercury」シリーズのロボットである.ロボットには複数のセンサが取り付けられているが,-70◦,0◦,70◦ の方向に向けた(ロボットの正面を0◦ とする)3 台のUSB カメラと高さ600mm の位置のLRF とを用いて検出を行っている.看板の検出に使用したUSB カメラの仕様を表2,LRFの仕様を表3 に示す.
USB カメラはImagingSource 社製のUSB カメラ「DFK22AUC03」(解像度744× 480)にtamron 社製の広角レンズ「13FM28IR」を装着して使用した.LRF とは,レーザー光を照射して物体に反射させ,その反射光を検出することで,レーザー光を発射してから反射光を検出するまでの時間から物体までの距離を計測するセンサの一つであり,SICK 社製の「LMS151」(最大計測距離50m) を使用している.LRF はロボットを中心とした前方270◦ の範囲を0.5◦ 間隔で計測し,合計541 点の距離情報が得られる.LRF から得られるデータを可視化すると図6bのようになる.本ロボットの自律走行時にはこのような距離情報から得られる環境地図を予め作成しておき, 実際の自律走行時の環境地図と照合することによって自律走行を行っている. 看板の検出には,LRF から得られる距離情報から物体の形状を取得している.
ロボットの制御にはVecow社製PC「ECS4000-PoER」を用いた.OSはUbuntu14.04(64bit) を使用し,ソフトウェアはC++で記述した.既存のソフトウェアとしてはモジュール間通信にROS(indigo)[7],画像処理にOpenCV(2.4.11)[8],ファイルの入出力やTCP 通信等にBoost(1.56.0)[9] を利用している.
以上のハードウェア構成で,要求される機能を十分に実現できることを前提に,できる限りシンプルなアルゴリズムを採用した.
外形寸法 | W610×L634×H800mm |
ホイール径 | 300mm |
総重量 | 70.0kg |
動力源 | DCモーター×4 |
最大速度 | 800mm/s |
センサ | LRF×2 (LMS151,TiM551) エンコーダ×4 USBカメラ×1 9軸ジャイロセンサ×1 |
バッテリー | Li-ion(7S20Ah) |
制御用CPU | Intel i7 5650U |
解像度 | 744×480 |
FPS | 30fps |
シャッター方式 | グローバルシャッター |
視野角 | 約94.2° |
計測範囲 | 270° |
分解能 | 0.5° |
計測周期 | 50Hz |
計測距離 | 50m |
カメラ画像から色情報を抽出して立て看板の探索を行う方法について述べる.入力画像は3 方向に向けているカメラから得られる画像を使用した.実環境上には,似たような色が多く存在しており, 看板のオレンジ1 色の抽出では誤検出が多くなってしまう可能性がある. そこで, 本手法では看板のオレンジと看板下部の水色の2 色を抽出し, それぞれの領域の関係を比較することで検出精度の向上を図った.以降でカメラ画像からの特定色領域の抽出方法について述べる.
実環境で撮影された画像は, 撮影時の場所や天候・時間帯により照明条件が変化する. カメラ画像から特定の色を抽出する色の値を1 点に限定してしまうと, 照明条件の変化によって色抽出に失敗してしまう可能性がある. そこで, 様々な天候や場所・時間帯で撮影されたつくばチャレンジの実験走行会での画像をもとに, 看板のオレンジ色と水色の色分布を解析して, 照明条件の変化に対応した色抽出の範囲を作成した.
具体的には, はじめに図7 のようなつくばチャレンジの実験走行中に得たカメラ画像から立て看板のオレンジ領域,水色領域のパッチ画像をそれぞれ数百枚作成し,色の分布を調べた.画像上の色はRGB 表色系からHSV 表色系に変換し,色相(以下H と表記) と彩度(以下S と表記) の関係を調べた.なお,RGB 表色系からHSV 表色系への変換はOpenCV に実装されているcvtColor 関数を用いた.立て看板のオレンジ領域と水色領域の色相と彩度の分布図を図8 に示す.この色分布を元に図9 のような多角形の色領域を設定した.探索時にはこの領域内に含
まれる色のみを抽出する.なお,つくばチャレンジ2016 では,探索対象は屋外だけでなく,屋内にも配置される可能性があるため,屋外用の色領域と屋内用の色領域の2 種類を作成し,走行する場所に応じてこれらを切り替えて探索を行った.
図9 に示す色領域画像はそれぞれ横軸がH,縦軸がS を表しており,H は-30~150,S は0~255 の範囲である.看板のオレンジ色の範囲はHが0~10 と170~180 付近の2 パターンに別れるため,H > 150 に対してはH-181 をすることでオレンジ色の範囲を一つの多角形で表現できるようにした.
入力画像の例を図10 に示す.特定色領域の抽出は,3 方向に向けられたUSBカメラから得られる画像それぞれに対して行う.立て看板は地面に置かれるため画像の上部に写ることはほとんど起こり得ない.そこで,ここでは画像の右方向をx,下方向をy,左上の座標を(x; y) = (0; 0) としたときにオレンジ色の抽出をy ≧ 240,水色の抽出をy ≧ 285 と設定することで誤検出の削減および処理の高速化を図った.
色情報を用いた特定色領域の抽出の手順は以下のとおりである.
はじめに,入力画像をHSV 表色系に変換しオレンジの色領域内と水色の色領域内の画素を抽出し,図11 のような二値画像を作成する.ここで抽出される色の中には白に近い明るい色が含まれるため,入力画像のRGB の3 成分の全てが200 を超えるものは除外するように設定した.また,二値画像を作成する際に膨張収縮処理を施すことで細かいノイズを取り除いている. 次に,色抽出により生成された二値画像に対してラベリング処理を行う.ラベリングで得られた領域の内オレンジ領域は画素数100 以下,水色領域は画素数30以下のものを除外することで処理の高速化と誤検出の削減を行った.ラベリングされた領域からオレンジ領域と水色領域それぞれの矩形領域と各矩形領域の面積(画素数) を取得し以降の処理を行っていく. 続いて,オレンジの矩形領域Roi と水色の矩形領域Rbj の面積比を計算する.図10で示したように探索対象の番号を示すボードが看板の前面に貼られる状況がある.このような状況に対応するためにつくばチャレンジの実験走行会から得られた画像をもとにオレンジ領域と水色領域の面積比の閾値を設定した. オレンジ領域Roi と水色領域Rbj の重心(mo,mb) の位置関係を図12に示す.実際の水色領域の重心のズレに対応する範囲の設定は実際の画像をもとに実験的に求めたものである.
以上の処理を3 方向に向けたカメラから得られるそれぞれの画像に対して適用し看板の探索を行い,看板が存在する場合その方向(ロボットの正面を0◦,反時計回りを正方向とする) を求める.そこで,3 方向に向けたカメラの画像上の座標と実空間上の方向の対応を取るためにキャリブレーションを行った.画像のx 座標に対応する実空間上の角度を解析したものが図13 になる.グラフの横軸は,各カメラから得られる画像の右方向をx,下方向をy,左上の座標を(x,y) = (0,0) としたときのx 座標であり,縦軸はそれに対応する実空間上の方向である.この対応を元にして画像上の看板の中心部のx 座標から看板の存在する方向を求めた.
本手法を適用してカメラ画像を解析し求められる情報は対象の方向のみであり対象までの距離は得ることができない.そのため,距離の計測にはLRF を用いることにした.
本手法は単純に看板を検出した方向に移動してしまうと図14b のように本来の探索対象である人物から1.5m 以上離れた地点に停止してしまう可能性がある.そこで,LRF から得られる点群をクラスタリングし,立て看板の形状に相当するクラスタと人物の形状に相当するクラスタをそれぞれ抽出して図14c のように人物と看板の中間点から看板と人物の向きに直交する方向に対して目標地点を設定した.LRF による特定形状の抽出法は以下の通りである.