ロボットが雑草を認識した後は、雑草までの距離を推定する必要があります。別のブログ記事でも記載したように今回のロボットは単眼カメラしか搭載していません。カメラがもう一つあれば、視差を利用して距離の推定が行えるのですが、別のアプローチを探る必要があります。今回採用した単眼カメラでの距離推定の処理の流れは以下のようになります。
- 今回の場合、ロボット自体その場で回転することによって相対距離を推定する
- ロボットが雑草を認識したとき、雑草は正面に位置している。ロボット自体がその場でθ回転した後、同じ雑草が画像データ中のどの位置に見えるかで相対距離を推定する
- ロボットから雑草までの距離をd、ロボットの回転角をθとする
- ロボットがθだけ回転したときに、回転前に写っていた物体が回転後の画像データ中のどの位置P(x,y)にあり、ロボットからの距離dがどれ位かを予め何ケースか計測し、d,θ,P(x,y)の関係を求めておく。そうすることで簡単な計算で物体までの距離を推定することができる
- この処理方式のポイントはd,θ,P(x,y)の関係式の導出と回転前後の画像データに含まれる同一物体の推定である。推定はガボールフィルタバンクを利用して得られた回転前後の特徴量ベクトルを求め、距離が最も小さいウィンドウを選択する