[[太田研 公開用Wiki]] *移動ロボットのためのステレオカメラを用いた障害物検出の性能向上手法 [#f0a21511] #contents *はじめに [#o08b20b2] 近年のロボット技術の向上により、産業用ロボットなど特殊な環境での活動を想定されたものだけでなく、家庭用ロボットや清掃ロボットなど人間の身近な環境で活動するロボットに対する研究が進んでいる。AIへの関心の高まりからか、ロボット自身が判断し行動する自律的なロボットの研究にも注目が集まっており、昨今さまざまな企業・研究機関によって自律走行ロボットの開発・研究が進んでいる。 自律走行ロボットとは、主にカメラ、LiDARやGPSなどを用いて自己位置推定を行いながら移動ルートを走行したり、特定の人物や物体を自身で見つけることのできるロボットのことを指す。自律走行ロボットが工場などある一定の環境下で行動するには、行動範囲を制限し制御すれば可能であるが、道路を走行したり介護施設など不確定要素の多い環境下での運用を考えるならば、人々や周りの環境に危険が及ばないように配慮しなくてはならない。さらに、自律走行ロボットが指定されたルートや範囲を正しく移動するには移動方向に存在する障害物を正しく検出し、回避行動を取れなければならない。 このことから、障害物検出は自律走行ロボットに必要不可欠といえる。自律走行ロボットは大きさによってハードウェア制約がかかり搭載可能なコンピュータの性能が制限がかかることや、LiDARなどは高価であるため、開発コストも高くなってしまう。そこで、LiDARと比較し安価であるカメラを用いて障害物検出を行う。その中でも輪郭情報を用いたステレオ障害物検出手法に注目した。この手法は、障害物には輪郭(エッジ)が存在することから、エッジ周辺についてマッチングを行い、処理の高速化をソフトウェア的に実現した手法である。障害物を高速に検出することができるが、ミスマッチによる障害物の誤検出が多いなど問題点もある。 そこで本研究では、この輪郭情報を用いたステレオ障害物検出手法について考察し、性能評価と問題点の解決を目的とし研究を行う *従来手法 [#v94c14eb] **カメラキャリブレーション [#c9103592] この手法に用いたカメラは広角カメラであるので、取得したカメラ画像には歪みが生じる。そこで、前処理としてカメラの歪み補正を行う必要がある。 &ref(calibrate1.png); &ref(calibrate2.png); &ref(calibrate3.png); 上のようなチェッカーボードを用いて、カメラキャリブレーションを行う。~ チェッカーボードのコーナーを検出し、実際のチェッカーボードのサイズや、位置関係、コーナーの数をパラメータとして入力し、画像からカメラパラメータを求めて歪み補正を行う。 **特徴点抽出 [#a48081ec] 入力画像に対して縦方向のエッジのみを検出したエッジ画像に対して、閾値以上のエッジを特徴点としている。特徴点の数が多すぎるとマッチングの処理時間がかかることや、非常に近い距離での特徴点を多く取得することを少なくするために、特徴点の抽出は一定間隔を空けて抽出するようにしている。~ この特徴点の抽出は左右画像それぞれに対して行い、左右の画像で対応するエッジ点は、エッジ点の左右の情報も変わらないはずである。このことから、エッジの左右の明るさによってエッジ点を区別する。~ &ref(conve_edge_l.png); &ref(conve_edge_r.png); 上の画像(左右画像)を見てみると赤い点と青い点がそれぞれ抽出されている。赤い点はエッジの右側の方が左側に比べて明るい場合、青い点はエッジの左側が右側に比べて明るい場合を表しており、左右の画像を比較しても、同じエッジには同じ色の点が抽出されており、特徴点が区別されていることがわかる。特徴点を区別することで、特徴の異なるエッジについては処理を省くことができ、これも処理の高速化に繋がっている。 **ステレオマッチング [#wba06329] 抽出した特徴点を用いて左右の画像に対するステレオマッチングを行う。マッチング手法としてテンプレートマッチングを使用し、マッチングの類似度には正規化相互相関(NCC)を用いた。~ 正規化相互相関は明るさの変動に強く、テンプレートと比較画像の明るさが異なる場合でもマッチング可能という特性がある。~ この障害物検出手法は、屋外での活動を想定しているため正規化相互相関を用いて、明るさに強いマッチングを行う。入力画像をI(x,y)、テンプレート画像をT(x,y)とすると正規化相互相関の値は~ &ref(NCC.png); で表される。値の取りうる範囲は-1.0~1.0であり、この値が1.0に近いほど良いマッチングとなる。閾値を設定し、閾値以上で最も高い値の位置をマッチング位置とする。~ ステレオマッチングする際に左右の画像の平行化を行っているため、通常なら特徴点と同じy座標上を探索対象とすればよいが、平行化の誤差を考慮して、y座標は±α余分に探索範囲としてマッチングを行う。x座標についても、x座標点よりも左側を対象に探索を行うことによって処理の削減を行い、高速化を図っている。 **三次元復元 [#mcbe8369] マッチング結果より、対応する特徴点群を用いて3次元復元を行う。3次元復元の式は以下のようになる~ &ref(sanjigen.png); この時、2dは左右のカメラ間の距離、cは焦点距離である。 3次元復元を行う際に、上述したように平行化の誤差を考慮してy座標について±αも探索範囲としているので、左右の特徴点の位置が異なる場合が考えられる。そのため、3次元復元後の座標yについて~ &ref(sanjigen2.png); のようにし、マッチングした左右の特徴点での3次元座標の中間値をyの3次元位置として定義する。 *提案手法 [#q70c8bce] **対応点の検証 [#fa20a574] 従来手法では、左画像から抽出した点をテンプレートとし右画像の点群に対してマッチングを行うが、抽出された点群が多い場合にミスマッチが増えてしまう。~ そこで提案手法として、左画像中の点をテンプレートとし右側の対応点を探索するだけでなく、右画像中の点をテンプレートとし左側の対応点も探索することによって、対応点の検証を行い、真の対応点を求める。~ 対応点の求め方は、従来手法と同じくテンプレートマッチングを使用し、類似度にはNCCを用いた。~ &ref() &ref(teian.png); *評価実験 [#n3db6a91] **定義と条件 [#o6acbb06] 提案手法の性能向上を示すために、障害物が存在・存在しない画像を含めた約250枚の左右画像のセットを対象に評価実験を行った。~ 実験を行う際の条件として、以下のように条件を設定した。~ +画像に映る物体との実際の距離が2m以下の物体を障害物と定義 +路面に存在する模様やタイルのエッジは障害物ではないので、撮影位置より0.7m以下のエッジ点については除外 +逆光でエッジが抽出されない場合、左右画像両方に障害物が映っていない画像は除く **実験結果 [#rd5fb903] 実験結果は以下の表のようになった。 | | TP | FP | FN | TN| |従来手法| 134 | 64 | 0 | 45| |提案手法| 134 | 51 | 0 | 58| この時、結果のTP、FP、FN、TNはそれぞれ以下のことを表す。~ -TP(True Positive) : 障害物が存在し障害物を検出した場合 -FP(False Positive) : 障害物が存在せず障害物を検出した場合 -FN(False Negative) : 障害物が存在し障害物を検出しなかった場合 -TN(True Positive) : 障害物が存在せず障害物を検出しなかった場合 結果からまずわかることは、FNが0であることから、障害物が存在する場合には従来手法、提案手法共に正しく検出を行うことができているということである。~ 今回の研究目的は障害物が存在しない場合に障害物を検出してしまうことの解決であるので、精度と再現率を以下のように定義し、再度結果をまとめた。 | | 精度 | 再現率 | |従来手法 | 100% | 41.3%| |提案手法 | 100% | 53.2%| -精度 : 画像中から障害物が検出されず、実際に障害物が存在しない割合 -再現率: 実際に障害物が存在せず、画像中から障害物が検出されない割合 再現率を見てみると、従来手法では41.3%と半分以上誤検出があったが、提案手法では53.2%と全体で半分にまで誤検出を削減することができた。数値的には約12%の性能向上が見られ、提案手法は正しい対応点を検証することで、障害物の誤検出を削減することができているといえる。 *まとめ [#y6b0afdd] 本研究では、エッジ情報を用いたステレオ障害物検出手法において、障害物が存在しない場合に障害物を検出してしまう問題を解決する目的で性能向上手法の提案を行った。~ 従来手法では左側を基準としたテンプレートマッチングによって対応点を求めていたが、右側からも対応点を求め対応点が正しいか検証を行うことによって、左右の対応が等しい場合を真の対応点と定義しなおし、対応点のミスマッチの削減に成功した。~ 評価実験として、障害物が存在する画像と存在しない画像を集め実験を行った。 実験結果から、障害物が存在する場合に障害物を100%検出することができ、障害物検出手法として用いることは可能であることがわかった。~ さらに問題点であった障害物が存在しない場合に障害物を検出してしまう問題も改善することができ、約12%の性能向上が見られた。~ 同時に、相互に対応を求めるだけでは、類似物体のミスマッチには対応できないこともわかった。~ 今後の課題として、提案手法が実際に自律走行ロボットに実装可能な処理速度であるか検証を行うことが必要である。~ さらに今回実験を行った結果より、類似物体は遠距離にある場合、相互に特徴点の対応を取っても類似度が高いことから、相互に誤った対応を取ってしまい、ミスマッチしてしまう問題に対処する必要がある。~ この類似物体のミスマッチには、従来とは異なるマッチング手法を用いて特徴点の対応付けを行うことが必要ではないかと考えられ、その手法の開発が今後の課題となる。