Location via proxy:
[ UP ]
[Report a bug]
[Manage cookies]
No cookies
No scripts
No ads
No referrer
Show this form
Submit Search
SLAM開発における課題と対策の一例の紹介
•
7 likes
•
2,566 views
M
miyanegi
Follow
第6回 3D勉強会@関東 発表スライド https://3dvision.connpass.com/event/156241/
Read less
Read more
Report
Share
Report
Share
1 of 37
Download now
Download to read offline
More Related Content
SLAM開発における課題と対策の一例の紹介
1.
SLAM開発における課題と 対策の一例の紹介 3D勉強会 #6 井上
2.
自己紹介 井上 株式会社Preferred Networks エンジニア 学生
SfMをフルスクラッチで書く 1社目 MVSをフルスクラッチで書く 2社目 SLAMをフルスクラッチで書く 2
3.
SLAMは楽しい 3
4.
SLAMの開発はつらい 4
5.
どうしてつらいか? 真値が取れない 大量のハイパーパラメーター テストしにくい 5
6.
真値が取れない POINT 01 6
7.
カメラポーズ・点群はどの程度正しい? 評価のための真値が必要 7 01 真値が取れない 画像出典:colmap.github.io
8.
真値をとるためにはコストがかかる 真値あり公開データセットを使う or コストをかけて真値を取る 01 真値が取れない 8
9.
データセット例 1/2 KITTI [IJRR
2013] 屋外、ステレオ、 LiDAR、GPS、IMU EuRoC [IJRR 2016] 屋内、ステレオ、IMU、 モーションキャプチャ、 レーザースキャナ 01 真値が取れない 9 画像は論文またはプロジェクトページから引用
10.
データセット例 2/2 TUM RGB-D
[IROS 2012] 屋内、RGB-D、 モーションキャプチャ ICL-NUIM [ICRA 2014] 屋内、CG 01 真値が取れない 10 画像は論文またはプロジェクトページから引用
11.
データセット例 まとめ • センサ構成がマッチしている場合には積極的に 使いたい •
他手法との比較にも重宝する • これだけで評価が十分ということにはならない Dataset ステレオ Depth Map IMU カメラ姿勢 構造 屋内外 KITTI ○ - ○ 3D (GPS) 点群 屋外 EuRoC ○ - ○ 6D (mocap) 点群 屋内 TUM RGB-D - Dense - 6D (mocap) - 屋内 ICL-NUIM - Dense - 6D (synthetic) サーフェス 屋内 01 真値が取れない 11
12.
真値を取る方法(カメラポーズ) 画像出典:optitrack.jp モーションキャプチャ 100Hz 0.1mm 画像出典:www.topcon.co.jp トータルステーション 10Hz 1~5mm 01 真値が取れない 12※ 数値は大雑把な目安です。製品によって異なります。以降同様。
13.
真値を取る方法(構造) 画像出典:velodynelidar.com LiDAR 10~50Hz 30~100mm 画像出典:faro.com レーザースキャナー 0.001Hz 1mm w/RGB 01 真値が取れない 13
14.
真値を取る方法 まとめ • 得意不得意があり、解きたい問題ごとに 最適なセンサーを選ぶ必要がある •
センサー間のレジストレーション等泥臭い作業が必要 カメラポーズセンサー 対象 精度 測定速度 測定範囲 価格 モーションキャプチャー 位置+回転 0.1mm 100Hz 10m 数百万円 トータルステーション 位置 1~5mm 10Hz 5000m 数百万円 構造センサー 色 動物体 精度 測定速度 測定範囲 価格 LiDAR - ○ 30~100mm 10~50Hz 200m 数百万円 レーザースキャナー ○ - 1mm 0.001Hz 1000m 数百万円 01 真値が取れない 14
15.
まとめ 最初は公開データセットで評価しつつ、 目的のシーンで真値を計測し評価をする 01 真値が取れない 15
16.
大量のハイパーパラメーター POINT 02 16
17.
SLAMはハイパーパラメーターだらけ 画像サイズ 特徴点数 イテレーション回数LM法のlambda 外れ値しきい値 画像ピラミッドレイヤー数 ロバストコスト関数選択 各種Priorの重み VisionとIMUのバランス 初期復元ペアの選び方RANSAC試行回数 収束判定条件 自動で最適化する 02
大量のハイパーパラメーター 17 etc.
18.
18 出典:https://github.com/optuna/optuna 02 大量のハイパーパラメーター
19.
import optuna from subprocess
import run def objective(trial): threshold = trial.suggest_uniform('threshold', 0.1, 10.0) iter = trial.suggest_int('iter', 50, 300) score = run( ['your/slam/binary', f'{threshold}', f'{iter}'], capture_output=True, text=True).stdout return score study = optuna.create_study() study.optimize(objective, n_trials=100) 19 02 大量のハイパーパラメーター 探索するパラメーターの 種類と範囲を指定 SLAMを実行して 評価結果を返す 公式ドキュメントや講演資料を参照 • https://optuna.readthedocs.io/ • https://www.slideshare.net/pfi/pydatatokyo-meetup-21-optuna
20.
1. 復元から評価まで自動化する 2. 最大(小)化したい評価指標を定義 20 02
大量のハイパーパラメーター 実績:手動調整より10%向上
21.
まとめ ハイパーパラメーターの調整は自動化できる 課題 • 評価指標をどう定義するか? 21 02 大量のハイパーパラメーター
22.
テストしにくい POINT 03 22
23.
モジュールの結合度が高くなりがち 23 03 テストしにくい 画像出典:ORB-SLAM [TRO
2015]
24.
モジュールの結合度が高くなりがちで ユニットテストがしにくい = バグを発見できない 24 バグを減らすテクニックを併用する 03 テストしにくい
25.
バグを減らすテクニック 静的解析ツール・Sanitizer(省略) 代数計算ツール 継続的な性能のトラッキング 25 03 テストしにくい 𝝏𝒚 𝝏𝒙
26.
代数計算ツール SLAMではGauss-Newton法をよく使う = ヤコビ行列を書く必要がある 26 03 テストしにくい 𝑟
𝑥 = 𝑦 − 𝑓 𝑥 J = 𝜕𝑟 𝑥 𝜕𝑥 𝑥 ← 𝑥 − JT J −1 JT 𝑟 𝑥
27.
27 03 テストしにくい 微分計算を自動化 Octave Mathematica
MATLAB
28.
28 03 テストしにくい https://colab.research.google.com/drive/1wflhGRVzdlosxHsC63HX2WvXrCG-b8p0
29.
代数計算ツール まとめ 考慮できないものもある • リー群の群作用の偏微分 •
浮動小数点数の計算誤差 • SIMD 最終的には、手で書いた微分と数値微分の 計算結果が一致するかテストしている 29 03 テストしにくい
30.
継続的な性能のトラッキング 30 03 テストしにくい コーディング 単体テスト
レビュー マージ 統合テスト 毎時 毎週 テスト結果をどう管理する?
31.
31 03 テストしにくい 出典:https://github.com/mlflow/mlflow
32.
32 03 テストしにくい 👇 ハイパラ
👇 評価結果 試行 👉
33.
33 03 テストしにくい 👆 各試行の結果
34.
34 03 テストしにくい 👇 ハイパラ
vs. 評価結果
35.
まとめ 積極的に自動化してバグが混入する余地を減らす 混入してもすぐに検出できるシステムを構築する 35 03 テストしにくい
36.
SLAMの開発はつらいが 軽減する方法はある 楽しくSLAM開発! 36
37.
参考文献 • The KITTI
Vision Benchmark Suite http://www.cvlibs.net/datasets/kitti/ • The EuRoC MAV Dataset https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets • RGB-D SLAM Dataset and Benchmark https://vision.in.tum.de/data/datasets/rgbd-dataset • The ICL-NUIM dataset https://www.doc.ic.ac.uk/~ahanda/VaFRIC/iclnuim.html • LiDAR Comparison Chart https://autonomoustuff.com/lidar-chart/ 37
Download now