Skip to content

Latest commit

 

History

History
61 lines (47 loc) · 3.36 KB

File metadata and controls

61 lines (47 loc) · 3.36 KB

特徴点抽出について

開発方針としては、はじめに思いついたとおりに実装してみる。次に、抽象化したクラスに落とし込むようにする。

要パフォーマンスチェック。

プレ実装

曲率画像の生成

OpenCVの画像演算系を使って実装した。パフォーマンスの計測は指定いないが、結構重そうな感じがする。 曲率画像は、大きいカーネルサイズで計算したほうが、トラッキングの成績が良かった。 現状はカーネルサイズ31を利用。カーネルサイズが7以上の場合、周りを0でPaddingされるので意味がないらしいが、出力された曲率画像は変わるので何か変わっているはず。

曲率ピークピック

画素中心からの8近傍探索を繰り返すことでピークピックを行う。 端の処理でバグがあるぽい?たまにジャンプ?端ワープが見られる。 時間がかかるかを思っていたが、意外と処理できている。OpenMPかなにかで並列化できればより高速に処理できると思われる。

Dominant flow estimation

ここではopencv_contribに入っているFeature descripter(Belief, 32bit)を利用している。 たまに、Featureマッチングに失敗することもある。その場合は恒等変換の単位行列を返すようにしている。 なのでOpenCV contribも入れておく必要あり。以下メモ。

  1. ダウンロード:今はバージョン、3.4.9を利用するのでこのソースコードを落とす。
wget https://github.com/opencv/opencv/archive/3.4.9.tar.gz
wget https://github.com/opencv/opencv_contrib/archive/3.4.9.tar.gz
  1. もろもろ設定してコンパイル
tar zxvf opencv-3.4.9.tar.gz
tar zxvf opencv_contrib-3.4.9.tar.gz

cd opencv-3.4.9
mkdir build; cd build
cmake-gui .. # EXTRAで検索して/path/to/opencv_contrib/modulesを設定、もう一回configureする。
make -j12
sudo make install

SLAM Problem

  • 初期化:基礎行列の分解で行う。
  • BA:部分空間ガウスニュートンを利用するが、その初期値の計算も必要になる。
  • BA:初期値は、カメラ系:P3P、特徴点位置:三角測量=>このあとに最適化するBAを実行する

カメラについて検討

Jetson nano camera IMX291 3000円くらい

もろもろの要因で、そのまま画像を使うのは性能低下につながる?

  • モーションブラー : 露光時間が長いと発生する。ノイズ量をトレードオフ。露光時間を短くすると解決するが、得られる生画像は暗くなり、明るさ補正するとノイズが目立つようになる。
  • ローリングシャッター : 画像サイズを1280x720くらいにすると目で見えないくらいの影響になる。静止画でどうなるかは未検証。
  • ノイズ : 露光時間を長くするとあまり気にならなくなる。だが、ブラーを抑えるために0露光時間は短くしたい。

現状のセッティング

  • 露光時間短め
  • 解像度低め
  • カメラのゲインを高め:ノイズが目立つ原因