[:ja]DSOでAR ~ 1. DSO本体インストール [:]

[:ja]昨年末にいろいろあってお蔵入りしていたARのチュートリアルを今更ながら上げておこうと思います.ARの基礎的なところから書いていたのですがブログにそんな簡単なこと書いても仕方ないので,最新のvisual odometryライブラリであるDSO(Direct Sparse Odometry)を使った応用的な部分だけ公開しておこうと思います.

流れとしては 1. DSO本体インストール, 2. ROSパッケージインストール, 3. visual odometryを使ったAR, 4. 環境のpoint cloudを使ったインタラクションAR という感じになります.基本的な部分は省いていくので,ROSのインストールとかDirect visual odometryってなんぞやとかは書きません.

環境は Ubuntu 16.04 + ROS kinetic でPCはThinkpad25,カメラはそのへんに落ちてたwebカメラです.Direct系の手法はローリングシャッターに弱いのですが,それでもまあまあ動いてしまったりします.でも,グローバルシャッターカメラを持っている人はそっちを使うようにしましょう(そんな人はこんなブログ見ないか).

ではまず,DSO本体のインストールから行きましょう.

従来のvisual SLAM/odometryライブラリといえば導入がひたすらややこしいことが多く,導入段階で挫折してしまうことが多かったですが(?)最近のものはかなり簡単に導入できるようになっています.DSOも基本的には公式リポジトリの説明に従えばすんなりと導入できると思います.

まずDSOのvisualizationに必要なPagolinをインストールします.一応optionalですが,これがないと何も表示されないのでほぼ必須です.他のvisual SLAMライブラリでも頻繁に使用されているので入れておいて損はないです.

git clone https://github.com/stevenlovegrove/Pangolin.git
apt-get install cmake libglew-dev
mkdir Pangolin/build && cd Pangolin/build
cmake ..
cmake --build .

続いてDSO本体をインストールします.

git clone https://github.com/JakobEngel/dso.git
apt-get install -y libsuitesparse-dev libeigen3-dev libboost-all-dev
apt-get install -y libopencv-dev
mkdir dso/build && cd dso/build
cmake ..
make -j

これだけDSO本体のインストールは完了です.ね,簡単でしょう?とりえあずEuRoCデータセットで動作確認しましょう.

cd
wget http://robotics.ethz.ch/~asl-datasets/ijrr_euroc_mav_dataset/machine_hall/MH_01_easy/MH_01_easy.zip
unzip MH_01_easy.zip

mav0/cam0/sensor.yamlにカメラパラメータがあるので,これを基にDSO用のパラメータファイルを作成してmav0/cam0/camera.txtに置いておきます.フォーマットの詳細はここ.基本的にカメラ行列と歪み係数を並べているだけです.

RadTan 458.654 457.296 367.215 248.375 -0.28340811 0.07395907 0.00019359 1.76187114e-05
752 480
crop
752 480

あとは実行するだけです!(パラメータやプログラム引数の詳細は公式リポジトリを見てください)

cd dso/build/bin
./dso_dataset files=~/mav0/cam0/data calib=~/mav0/cam0/camera.txt preset=0 mode=1

こんな感じで推定された移動軌跡と環境の点群が見れるはず.

次:2. ROSパッケージインストール[:]

[:ja]DSOでAR ~ 1. DSO本体インストール [:]」への2件のフィードバック

  1. たける

    こんばんは。私は大学の研究で画像処理でARを行う研究をしており、DSOを実装してみようとしています。実装するにあたり、海外のサイトばかりで英語が多く意味の解釈を間違えてしまうことが多くあるので、このサイトにはすごく助かっています。
    今、DSOのダウンロードまで終わったのですがそれ以降の↓

    mav0/cam0/sensor.yamlにカメラパラメータがあるので,これを基にDSO用のパラメータファイルを作成してmav0/cam0/camera.txtに置いておきます.フォーマットの詳細はここ.基本的にカメラ行列と歪み係数を並べているだけです

    の部分が私の勉強不足でわからないですが、詳しくわからないので教えてもらえませんか?

    camera.txtのファイルの中身を見せてもらえるとすごくありがたいです。

    返信
    1. tetro 投稿作成者

      こんにちは,
      camera.txtにはカメラの内部パラメータ(焦点距離,画像中心,歪み係数)を並べて置いておきます.
      OpenCVの記法(http://opencv.jp/opencv-2.1/cpp/camera_calibration_and_3d_reconstruction.html)で書くと以下のような感じです.

      “`
      RadTan fx fy cx cy k1 k2 p1 p2
      input_width input_height
      crop
      cropped_width cropped_height
      “`

      最後の三行は入力画像サイズと,実際に処理に使う領域サイズです.
      研究頑張ってください.

      返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください