狠狠撸

狠狠撸Share a Scribd company logo
翱辫别苍3顿で厂尝础惭入门
藤本賢志(ガチ本)
2018.06.30 PyCon Kyushu
自己紹介
? 藤本賢志(ガチ本)
? 株式会社ナレッジコミュニケーション
? HoloLensアプリケーション開発
? KumaMCN
? クラッピーチャレンジ
? オペラ×ペッパー
? プログラミング教室
? ヒャッカソン
? IoTLT@熊本市
? ヘボコン熊本
? ガチラボ
? 熊本県民
@sotongshiガチ本
翱辫别苍3顿で厂尝础惭入门
Open3D[1]
とは?
? 3Dデータ処理ができるPythonライブラリ
? PCL(Point Cloud Library)みたいなやつ
? 短いコードで3Dデータ処理できる
? 点群表示、法線推定、ICP位置合わせ、3次元再構成などの例
? NYU、TUM、SUN3D、RedwoodなどのRGB-D Datasetに対応
[1] Qian-Yi Zhou, Jaesik Park and Vladlen Koltun, “Open3D: A Modern Library for 3D Data Processing”, arXiv:1801.09847, 2018
翱辫别苍3顿の导入
開発環境
? Open3D v0.1.1
? Windows 10
? Visual Studio 2017
? CMake 3.11.3
? Anaconda
? Python 3.6.5
? Python 2.7.15
Anaconda[2]
[2] https://www.anaconda.com/download/
Anacondaの環境構築[3]
? Python 3.6の環境を作る
$ conda create –n py36 python=3.6 anaconda
? Python 2.7の環境を作る
$ conda create –n py27 python=2.7 anaconda
? 環境の確認
$ conda info -e
? 環境に入る
$ activate py36
? 環境から出る
$ deactivate
? 環境の削除
$ conda remove –n py27 -–all
[3] https://qiita.com/supersaiakujin/items/50def6f33b79f9a61b18
ソースコード[4]
[4] https://github.com/IntelVCL/Open3D/releases
翱辫别苍3顿で厂尝础惭入门 PyCon Kyushu 2018
翱辫别苍3顿で厂尝础惭入门 PyCon Kyushu 2018
翱辫别苍3顿で厂尝础惭入门 PyCon Kyushu 2018
翱辫别苍3顿で厂尝础惭入门 PyCon Kyushu 2018
颁迟谤濒+厂丑颈蹿迟+叠でビルド
颁:?础苍补肠辞苍诲补3?别苍惫蝉?辫测36?尝颈产?蝉颈迟别-辫补肠办补驳别蝉へコピペ
Tutorial
Tutorial > Basic
Tutorial > Advanced
Tutorial > ReconstructionSystem
Tutorial > Misc
颁:?鲍蝉别谤蝉?补诲尘颈苍?顿辞飞苍濒辞补诲蝉?翱辫别苍3顿-0.1.1?蝉谤肠?笔测迟丑辞苍へコピペ
Tutorial > Basic > pointcloud.py
Tutorial > Basic > rgbd_tum.py
Tutorial > Basic > icp_registration.py
入力データ
Point-to-Point ICP
Point-to-Plane ICP
厂尝础惭とは?
Simultaneous Localization and Mapping
? 自己位置推定と地図作成を同時に行うこと
? 自動運転、ロボット、ドローン、AR/VRの分野で用いられる
iRobot: ルンバ ZMP: RoboCar
Microsoft: HoloLens
SLAMの歴史
? PTAM (ISMAR 2007) https://youtu.be/F3s3M0mokNc
? KinectFusion (ISMAR 2011) https://youtu.be/quGhaggn3cQ
? DTAM (ICCV 2011) https://youtu.be/Df9WhgibCQA
? SVO (ICRA 2014) https://youtu.be/2YnIMfw6bJY
? LSD-SLAM (ECCV 2014) https://youtu.be/GnuQzP3gty4
? ORB-SLAM (TRO 2015) https://youtu.be/8DISRmsO2YQ
? CNN-SLAM (CVPR 2017) https://youtu.be/z_NJxbkQnBU
SLAM
? センサーによるSLAMの分類
? LiDAR SLAM
? Monocular SLAM
? Stereo SLAM
? RGB-D SLAM
? Visual Inertial SLAM
? IMU(加速度?ジャイロ)の組み合わせ
? Deep Learning SLAM
? Deep Learning によりDepth推定したり、特徴点抽出したりなど
? 4D Fusion https://youtu.be/2dkcJ1YhYw4
? 動的なオブジェクトの再構成
Visual Odometry vs SLAM
SLAM:Tracking + Mapping + Loop Closing
? Odometry
? 内界センサ(エンコーダー、加速度?ジャイロなど)で自己位置推定
? ドリフトが蓄積する
? Visual Odometry
? 外界センサ(カメラ画像)で自己位置推定
? 内界センサよりは精度が良い
? その他
? GPS、WiFi、超音波センサ、LiDAR
? Visual Inertial Odometry
? 内界センサと外界センサの組み合わせ
Feature-based vs Direct Method
? 特徴点ベース(ORB-SLAM)
? 対応する特徴点から移動量を推定
? 直接法(LSD-SLAM)
? フレーム間の輝度差が最小となる移動量を推定
Loop Closing
? 一度見た場所を認識して、全体のグローバルマップを最適化
? Deformation-based Loop Closure for Large Scale Dense
RGB-D SLAM
? https://youtu.be/MNw-GeHHSuA
? Bundle Adjustment (バンドル調整)
? Relocalization
3次元再構成 vs SLAM
? 3次元再構成
? Photogrammetry
? 3D Reconstruction
? SfM (Structure from Motion)
? 画像群 → 動画(連続画像)
? リアルタイム性
3D Reconstruction of Central Rome
https://youtu.be/vpTEobpYoTg
厂尝础惭の导入
RGB-D Dataset[5]
? RGB-D SLAMの評価用データセット
? 6カテゴリ、47シーン
? Microsoft Kinect v1センサーによりRGB-Dデータを取得
? モーションキャプチャによる真値
? 評価ツール(Python 2.7)あり
[5] J. Sturm, N. Engelhard, F. Endres, W. Burgard and D. Cremers, "A Benchmark for the Evaluation of RGB-D SLAM Systems",
IROS, 2012, https://vision.in.tum.de/data/datasets/rgbd-dataset
評価ツール
? evaluate_toolsをダウンロード
? https://svncvpr.in.tum.de/cvpr-ros-
pkg/trunk/rgbd_benchmark/rgbd_benchmark_tools/src/rgbd_bench
mark_tools/
? コマンド実行
? rgbとdepthの関連付け
? (py27) $ python associate.py [rgb.txt] [depth.txt] > [associate.txt]
Tutorial > Basic > rgbd_odometry.py
改変
連番の読み込み
変換行列を保持
30フレームずつ点群表示
変換行列をクォータニオンと
平行移動ベクトルに分ける
Timestamp tx ty tz qx qy qz qw
i7-7700HQ、メモリ16GBで2fpsくらい…かなり遅い
https://youtu.be/D1Ua3vWUmUw
実験结果
評価方法
? evaluate_tools
? コマンド実行
(py27) $ python evaluate_ate.py [結果ファイル] groundtruth.txt --plot
evaluate --verbose > evaluate.txt
評価
? Absolute trajectory error
compared_pose_pairs 2486 pairs
absolute_translational_error.rmse 0.626998 m
absolute_translational_error.mean 0.498564 m
absolute_translational_error.median 0.439144 m
absolute_translational_error.std 0.380212 m
absolute_translational_error.min 0.027122 m
absolute_translational_error.max 1.449250 m
改善点
? リアルタイム性に欠ける
? 他の手法を試す
? キーフレーム(KF)からトラッキングする
? 前後のフレームだけではなく周辺のマップを含める
? グローバルマップ最適化(Loop Closing)
まとめ
? 翱辫别苍3顿の导入
? Tutorialを実行できた
? SLAM入門
? RGB-D Datasetを用いて実験できた
コミュニティに参加してください
? arXiv.org (246 results for all: SLAM)
? コンピュータビジョン勉強会@関東
? 名古屋CV PRML勉強会
? 3D勉強会@関東
? Deep Learning Lab
? HoloMagicians HoloLens Meetup
? KumaMCN ガチラボ
ご清聴ありがとうございました

More Related Content

翱辫别苍3顿で厂尝础惭入门 PyCon Kyushu 2018