#author("2021-02-19T03:17:31+00:00","default:ail-wiki","ail-wiki") #author("2021-02-19T03:24:40+00:00","default:ail-wiki","ail-wiki") [[太田研 公開用Wiki]] *画像による遠方の物体を利用した自律走行ロボットの方向補正手法の研究 [#y809988a] #contents *はじめに [#z7a60fe1] **研究背景 [#v8e26a5f] 自律走行ロボットが走行する際に内界センサだけで走行しようとすると, 地面の凹凸等によって進行方向にずれが生じ曲がってしまい, 走行中の道から外れて進んでしまうように角度は走行において重要な要素である. &br; そこで本研究では, 画像を利用して自律走行ロボットの進行方向のずれを補正し道から外れないようにする手法について研究を行った. **研究目的 [#deee2aa5] 自律走行ロボットにおいて進行方向がずれてしまい道から落ちてしまうと予定していたルートに復帰できない, 事故になるなどの問題が起きる. そこで進行方向を補正し, 道から外れないようにすることを目的とする. &br; 教示画像群において撮影前後の画像を見比べると, 進行方向の遠方の物体はあまり見え方に変化がないが, 画像左右に見える物体や人間等の動的物体は見え方が大きく変化する. このことから少しの撮影位置のずれによって大きく見え方が変わってしまう信頼度の低い近い物体のデータの影響を下げ, 位置や角度で変化しにくい画像内の遠方の物体のデータを重視して画像照合の安定化を図る. *ロボットの方向補正 [#af17b487] 画像でロボットの方向補正を行うには, 予め走行するルートを走行し一定間隔で撮影した教示画像群と走行中に撮影した入力画像で照合を行い, 画像間のずれを調べることでできる. ここで, 実際の走行で教示画像群を撮影したルートと平行にずれたルートで走行しているときは, 下図のようにずれた分画像の見え方が変わる. しかし, 画像の奥に見える建物のような遠方の物体は他の近い物体と比べて変化が小さい. &br; これを利用して研究目的で述べたように道から外れないような方向補正を行うために, 進行方向にある遠方の物体のデータを重視し教示画像に重みを付ける. CENTER:#ref(sayu_heiko.jpg,center,50%) CENTER:&size(14){図1:進行方向に平行にずれた位置で撮影した画像};~ *テンプレートマッチング [#e65279fe] ブロックマッチングとは, テンプレートマッチングの手法の一つである. テンプレートマッチングとは, ある探したいものが映っているテンプレート画像と類似した部分がより大きい比較画像に映っているのかを探索する手法のことで, SAD, SSD, NCC, ZNCCなどの類似度を計算する方法がいくつかある. 今回の実験ではブロックマッチングの一種で遮蔽に強い手法であるABMを使用した. **ABM [#f4152042] 走行中に撮影した入力画像と教示画像を照合する際に, 入力画像から作ったテンプレート画像や教示画像の中に人間が映っていたり教示画像と比べて少し角度がついた位置で 撮影して木などでその奥の建物などが隠れてしまうことがある. このとき, 先のZNCCでテンプレートマッチングをしてしまうと人間等によって類似度のスコア全体が低くなってしまう. &br; 照合においては, テンプレートマッチングの一種であるため, テンプレート画像を比較画像上で少しずつずらしながら類似度のスコアが最も高い位置を探すが, 照合の際には図\ref{ABM}より, 左上のブロックは左上のブロック位置でスコアを計算し, 上のブロックは上のブロック位置でスコアを計算し, といったようにして行う. このように, テンプレート画像をブロック領域に分割し, 各ブロックごとに対応するブロックとZNCCで照合を行い, ブロックの平均値を類似度のスコアとすることで スコアが低くなるのは遮蔽がある一部のブロックだけとなる. これによってテンプレート画像や, 教示画像の一部が遮蔽されてしまっていても安定したスコアを出すテンプレートマッチングを行うことができる. CENTER:#ref(ABM.png,center,50%) CENTER:&size(14){図2:ABM};~ *重み [#j49a8786] 重みとは, 単純に通常のABMで照合するよりも精度が上昇することを見込んで教示画像を一定の大きさのブロックに分割し, それぞれに付けたその物体が撮影位置の変化によって どれくらい見え方が変わるのかという尺度のことである. &br; 道を外れないようにしつつ真っ直ぐ走行するためには, 進行方向にあると考えられる遠方の物体に向けて走行すればよいので 照合において遠方の物体を画像上で見分ける必要がある. しかし, 重みの付与には1m毎に撮影した画像を使うので, 人力で行うには枚数が多すぎて困難であるためプログラムから自動で実行する. &br; 撮影位置がずれても遠方の物体の見え方は大きく変わらないが, 近い物体の見え方は大きく変わって映る. また, 人間や車などの動的物体も大きく変わって映る. &br; これを利用して予め教示画像群に遠方の物体は重みを大きく, 近い物体には重みを小さく付けて照合を行うことで誤差を減らすことができ照合の安定を求めることができる. &br; 重みを付与したときの画像を以下の図に示す. 今回の実験では, 次節の重みの付け方で述べるが, 遠方の物体や近い物体を完璧には見つけることができず, 大まかな設定となってしまう. &br; よってここでは赤い枠のブロックを高い重み, 黄色の枠のブロックを中くらいの重み, 青色の枠のブロックを低い重みとして 多くの段階に分けずに3段階で設定した. CENTER:#ref(omomi.png,center,50%) CENTER:&size(14){図3:重みを付与した画像};~ *実験結果 [#u9d4f6c8] 実験には教示画像群をルート0として前方へ1mごとに10m分撮影し, そこと左に平行に2mずつ話したルート1,2,3において正面、左右10度、左右20度で撮影し, ルート1の正面の画像群, といったようにして教示画像群を含む20個の画像群を作成した. 入力画像は640×360とする. &br; 画像群から入力画像を選び, 教示画像群とそれぞれ照合させて最も高いスコアが得られた領域を持つ画像を探した. このとき重みを付けたものと付けないものでそれぞれ照合し, 遠方の物体を利用して安定した照合ができているかを確認する. このとき全体の結果では照合を行った際, 明らかに間違っていると考えられる照合の数について考えた. CENTER:#ref(kekka_0.jpg,center,50%) CENTER:&size(14){図4:ルート2左10度傾けた画像群との結果画像};~ CENTER:#ref(jikkenkekka.png,center,50%) CENTER:&size(14){表1:間違った照合の数};~ *考察 [#w5dc9f63] 図5は, ルート2の右に20度ずらして撮影した画像群と照合したもので重みなしでは間違った照合がされたが, 重み有りでは照合により遠方の物体を中心とした照合に成功したものである. 図5は, ルート2の右に20度ずらして撮影した画像群と照合したもので重みなしでは間違った照合がされたが, 重み有りでは照合により遠方の物体を中心とした照合に成功したものである. &br; 重みなし照合ではテンプレートに映る建物が角度によって教示画像ではほぼ映らないためうまく照合ができない. しかし重み有り照合では重みデータにより, 重みによって遠方の物体が確認できるためテンプレートに映る遠方の物体を利用したこと, それ以外の近い物体に対し低い重みを付けられたことから遠方の物体を中心とした照合に成功している. CENTER:#ref(kousatu_1.png,center,50%) CENTER:&size(14){図5:右に20度傾けたルート2のある画像との照合};~ また図6のように, ルート2, 3の左に20度ずらして撮影した画像群との照合がほぼ失敗した. また図6のように, ルート2, 3の左に20度ずらして撮影した画像群との照合がほぼ失敗した. &br; これはテンプレートを取るときに一律で画像中央からとるため角度がついて右側に映るはずの遠方の物体が画像に映らなくなり, 照合が困難になってしまうことから起きている. よってロボットが10度程度のずれであれば問題ないが, 20度程度の角度と教示画像群を撮影した経路と一定以上の平行距離がある状態ではこの照合方法で向き補正することは困難ということがわかった. CENTER:#ref(kousatu_2.png,center,50%) CENTER:&size(14){図6:左に20度傾けたルート3のある画像との照合};~ *まとめ [#y89c6206] 本論文では, 自律走行ロボットが走行する際に道から外れないようにするために遠方の物体を利用した重みを付けた教示画像を用いてテンプレートマッチングによる画像照合の実験を行い, 評価した. テンプレートマッチングには遮蔽に強いブロックマッチングであるABMを使用し, ABMのブロックごとの照合には照度変化に強いZNCCを使用した. 今回の実験では, 道から外れないようにすることを考えるため, 教示画像群を撮影したルートと平行に離れたルートの画像群や, 教示画像群を撮影したルートとは角度が付いた画像群を用意した. ABMでの照合に当たって遠方の物体には高い重みを, 動的物体や近い物体には低い重みをつけたものとの照合と, 付けない照合を行った. 結果として, 重みを付けたことによって遠方の物体のデータを重視して近い物体のデータの影響を小さくすることができ, 安定した道から外れないような照合ができた. 今回は重みを付与した結果画像を目視し, 全体的に結果が良かったため問題なかったが, 重みを付与した結果に問題がないかを別の画像と重みを付与を行い, 結果同士を照合してより重み付与を安定させた方が良い. 今後の課題としては, ブロックマッチングは性質上通常のテンプレートマッチングと比べて実行時間が長いため, それを改善するために重みのブロック分けするときのブロックの大きさなどを工夫することにより実行速度の向上をさせることである. *参考文献 [#kccbe4c0] [1]斉藤文彦, ブロック照合投票処理を用いた遮へいに強い画像マッチング, 電子情報通信学会論文誌 2001/10 Vol. J84-D-II No.10 [2]山城容一郎, ビューシーケンスに基づく証明変化に頑健な屋内外ナビゲーション, 日本ロボット学会誌 Vol.27 No.7, pp.768~773, 2009 [3]松本吉央, ビューベストアプローチに基づく移動ロボットナビゲーション, 日本ロボット学会誌 Vol.20 No.5, pp506~514, 2002 [4]OpenCV : http://opencv.org/