3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ADOPに新たなSceneを追加する

Posted at

ADOPに新たなSceneを追加して学習させるための手順

※ADOPとは以下のことです
https://github.com/darglein/ADOP

用意するもの

  • colmp 3.7 (バージョンとっても重要)
  • build済みのADOP

概要

colmapで点群を作成し、それをADOPビルド時に作られる./build/bin/colmap2adopを利用してインポート
そのあと、同じくADOPビルド時に作られる./build/bin/train_adopを利用して学習を開始する。

手順

1. colmapで画像から点群を作成する。

以下の手順に沿ってcolmapをインストールします。
https://colmap.github.io/install.html

winやmacでビルド済みのものを取得すると一番簡単です。
linuxの場合はコードからビルドする必要があります。

※注意
apt install colmap でlinuxは実はインストールできたりしますが、この場合3.6が入ってしまいADOPには適合しません。
必ず最新の3.7をインストールしましょう。

インストール出来たら、点群化する対象の画像を用意して、colmapの「Automatic reconstruction」を使って点群を作成します。
具体的な使い方は以下がわかりやすいです。
https://blog.goo.ne.jp/yoossh/e/d1278b39229eca47774fe5646a2bb2d7

colmap2adopでadopにインポートする

以下に沿いながらSceneにインポートします。
https://github.com/darglein/ADOP/blob/main/scenes/README.md

export SCENE_BASE=/local.home/Projects/ADOP/additional_material/colmap/Playground/

build/bin/colmap2adop --sparse_dir SCENE_BASE/sparse/0/ \
    --image_dir scenes/tt_playground/images/ \
    --point_cloud_file SCENE_BASE/dense_point_cloud.ply \
    --output_path scenes/playground_test \
    --scale_intrinsics 1 --render_scale 1 

この時point_cloud_file の値は、colmapで作成された、./dense/0/fused.plyを指定します。
image_dir は、点群に使った画像のディレクトリ
output_path は、Sceneディレクトリ(あらかじめ作成する必要はない)
scale_intrinsics は、レンダリングのスケールを指定します。

問題なく変換がうまくいったら、次は学習に移ります。

train_adopで学習を始める

まずは学習のためのconfigファイルを作成します。
ADOP/configにあらかじめ2つのconfigファイルがあります。

ここに、学習時の設定を入れます。
すでにあるcomfigファイルを複製して作成しましょう。
以下の条件に近いものを複製して作るとよいです。

configs/train_boat.ini ・・・露出値のバリエーションが多いシーンを撮影する場合
configs/train_tank_and_temples_multi.ini ・・・屋内シーンや露出値が近い画像の場合

編集対象の値

  • name ・・・名称
  • output_file_type・・・画像の拡張子
  • scene_name・・・colmap2adopで作ったsceneディレクトリ名

マシンのスペックが高くない場合(メモリエラーなどが発生するときは以下を表記の値に変更する)

train_crop_size = 256
inner_batch_size = 8
batch_size = 2

ここまで変更ができたら、以下コマンドで学習を開始します。
train_your-project.ini はご自身の環境に合わせて変更してください)

./build/bin/adop_train --config configs/train_your-project.ini

問題なければ学習が始まります。

もし、メモリエラーが起きてしまうときは

最後の render_scaleの値を 0.5などに下げてcolmap2adopをやり直すとよいです。
画像の大きさなどが小さくなり、メモリの消費量が減り、学習に使えるようになります。

もし以下のようなエラーが出る場合は、colmapから出力したplyファイルに問題がある可能性が高いです。
colmapのバージョンが問題ないか確認しましょう。

Assertion 'point_cloud_cuda->t_normal.defined() || !params->render_params.check_normal' failed!
  File: /home/bros/ADOP/src/lib/data/NeuralScene.cpp:28
  Function: NeuralScene::NeuralScene(std::shared_ptr<SceneData>, std::shared_ptr<CombinedParams>)
abort (core dumped)

ubuntu内ではなく、windowsでcolmapを動かして持ってきても問題ないので、別環境で動かしてみるのも有効です。

あとは待ちましょう

400エポックほど学習を繰り返すので、あとは待ちます。
公式曰く、12~24時間ほどかかるとのことなので、放っておきましょう。

学習が終われば、
./build/bin/adop_viewer --scene_dir scenes/newscene(newsceneは自身の環境によって変えてください)
で動きます。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?