Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Open3DでSLAM入門 PyCon Kyushu 2018

PyCon Kyushu 2018で登壇した資料です。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Open3DでSLAM入門 PyCon Kyushu 2018

  1. 1. Open3DでSLAM入門 藤本賢志(ガチ本) 2018.06.30 PyCon Kyushu
  2. 2. 自己紹介 • 藤本賢志(ガチ本) • 株式会社ナレッジコミュニケーション • HoloLensアプリケーション開発 • KumaMCN • クラッピーチャレンジ • オペラ×ペッパー • プログラミング教室 • ヒャッカソン • IoTLT@熊本市 • ヘボコン熊本 • ガチラボ • 熊本県民 @sotongshiガチ本
  3. 3. Open3DでSLAM入門
  4. 4. 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
  5. 5. Open3Dの導入
  6. 6. 開発環境 • Open3D v0.1.1 • Windows 10 • Visual Studio 2017 • CMake 3.11.3 • Anaconda • Python 3.6.5 • Python 2.7.15
  7. 7. Anaconda[2] [2] https://www.anaconda.com/download/
  8. 8. 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
  9. 9. ソースコード[4] [4] https://github.com/IntelVCL/Open3D/releases
  10. 10. Ctrl+Shift+Bでビルド
  11. 11. C:¥Anaconda3¥envs¥py36¥Lib¥site-packagesへコピペ
  12. 12. Tutorial
  13. 13. Tutorial > Basic
  14. 14. Tutorial > Advanced
  15. 15. Tutorial > ReconstructionSystem
  16. 16. Tutorial > Misc
  17. 17. C:¥Users¥admin¥Downloads¥Open3D-0.1.1¥src¥Pythonへコピペ
  18. 18. Tutorial > Basic > pointcloud.py
  19. 19. Tutorial > Basic > rgbd_tum.py
  20. 20. Tutorial > Basic > icp_registration.py 入力データ Point-to-Point ICP Point-to-Plane ICP
  21. 21. SLAMとは?
  22. 22. Simultaneous Localization and Mapping • 自己位置推定と地図作成を同時に行うこと • 自動運転、ロボット、ドローン、AR/VRの分野で用いられる iRobot: ルンバ ZMP: RoboCar Microsoft: HoloLens
  23. 23. 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
  24. 24. 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 • 動的なオブジェクトの再構成
  25. 25. Visual Odometry vs SLAM SLAM:Tracking + Mapping + Loop Closing • Odometry • 内界センサ(エンコーダー、加速度・ジャイロなど)で自己位置推定 • ドリフトが蓄積する • Visual Odometry • 外界センサ(カメラ画像)で自己位置推定 • 内界センサよりは精度が良い • その他 • GPS、WiFi、超音波センサ、LiDAR • Visual Inertial Odometry • 内界センサと外界センサの組み合わせ
  26. 26. Feature-based vs Direct Method • 特徴点ベース(ORB-SLAM) • 対応する特徴点から移動量を推定 • 直接法(LSD-SLAM) • フレーム間の輝度差が最小となる移動量を推定
  27. 27. Loop Closing • 一度見た場所を認識して、全体のグローバルマップを最適化 • Deformation-based Loop Closure for Large Scale Dense RGB-D SLAM • https://youtu.be/MNw-GeHHSuA • Bundle Adjustment (バンドル調整) • Relocalization
  28. 28. 3次元再構成 vs SLAM • 3次元再構成 • Photogrammetry • 3D Reconstruction • SfM (Structure from Motion) • 画像群 → 動画(連続画像) • リアルタイム性 3D Reconstruction of Central Rome https://youtu.be/vpTEobpYoTg
  29. 29. SLAMの導入
  30. 30. 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
  31. 31. 評価ツール • 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]
  32. 32. Tutorial > Basic > rgbd_odometry.py
  33. 33. 改変 連番の読み込み
  34. 34. 変換行列を保持 30フレームずつ点群表示
  35. 35. 変換行列をクォータニオンと 平行移動ベクトルに分ける Timestamp tx ty tz qx qy qz qw
  36. 36. i7-7700HQ、メモリ16GBで2fpsくらい…かなり遅い https://youtu.be/D1Ua3vWUmUw
  37. 37. 実験結果
  38. 38. 評価方法 • evaluate_tools • コマンド実行 (py27) $ python evaluate_ate.py [結果ファイル] groundtruth.txt --plot evaluate --verbose > evaluate.txt
  39. 39. 評価 • 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
  40. 40. 改善点 • リアルタイム性に欠ける • 他の手法を試す • キーフレーム(KF)からトラッキングする • 前後のフレームだけではなく周辺のマップを含める • グローバルマップ最適化(Loop Closing)
  41. 41. まとめ • Open3Dの導入 • Tutorialを実行できた • SLAM入門 • RGB-D Datasetを用いて実験できた
  42. 42. コミュニティに参加してください • arXiv.org (246 results for all: SLAM) • コンピュータビジョン勉強会@関東 • 名古屋CV PRML勉強会 • 3D勉強会@関東 • Deep Learning Lab • HoloMagicians HoloLens Meetup • KumaMCN ガチラボ
  43. 43. ご清聴ありがとうございました

    Be the first to comment

    Login to see the comments

  • tsubame9590206

    Jul. 6, 2018
  • ogawatetsuo14

    Oct. 28, 2018
  • MitsuruKato1

    Jan. 30, 2019
  • TetsuroOkuyama

    Jun. 23, 2019
  • MakotoYazaki1

    Dec. 9, 2019
  • Takeshimiura3

    Jan. 8, 2020
  • takukamata

    Jan. 31, 2020
  • kentatanaka3382

    Feb. 8, 2020
  • arumani

    Feb. 10, 2020

PyCon Kyushu 2018で登壇した資料です。

Views

Total views

5,956

On Slideshare

0

From embeds

0

Number of embeds

858

Actions

Downloads

37

Shares

0

Comments

0

Likes

9

×