Open3D: A Modern Library for 3D Data Processing

Open3D 是一個開放原始碼的函式庫,支援對3D資料的快速開發,在接口端同時支援C++與Python,後端經過最佳化並針對平行化設計。
在 Open3D 之前,3D 資料常用 Point Cloud Library (PCL)處理,可惜的是在PCL開放源始碼後,開發不太活躍,在編譯時可以清楚的感覺到其壅腫的設計,使編譯時間拉長。
設定Open3D環境
(如果在以下文字說明安裝過程中遇到錯誤,可以參見影片,其中包含解決錯誤過程)

步驟

  1. Pyenv
  2. 安裝 Open3D
  3. 安裝VS Code
  4. 執行Open3D 範例程式

Pyenv

因為Open3D支援以python binding方式操作底層C++ API,這裡先設定好pyenv管理python版本

安裝 pyenv 和 pyenv-virtualenv

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$ sudo apt update
$ sudo apt install python-pip
$ sudo pip install virtualenv
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
把下列加到 ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
source ~/.bashrc
pyenv install 3.6.3
pyenv global 3.6.3
pyenv versions

安裝 Open3D

安裝步驟詳見:

Ubuntu

git clone https://github.com/IntelVCL/Open3D
scripts/install-deps-ubuntu.sh
mkdir build
cd build
cmake ../src
make -j

安裝VS Code

此處使用 Visual Studio Code 1.20.1
file -> preferences -> settings (User Settings)
{
    "python.pythonPath":"/home/cvr/.pyenv/shims/python"
}
按下 Ctrl+Shift+P 打「task」找出 Tasks: Configure Default Build Task,修改tasks.json 的內容
(task.json)
    "command":"/home/cvr/.pyenv/shims/python"
點選左側第四個按鈕,設定python為Debug

執行Open3D 範例程式

在 ~/.bashrc 檔尾加入
export PYTHONPATH=$PYTHONPATH:/home/$USER/code/Open3D/build/lib
cp /home/cvr/code/Open3D/build/lib/Tutorial/Basic/rgbd_redwood.py ~/Desktop/
# Open3D: www.open3d.org
# The MIT License (MIT)
# See license file or visit www.open3d.org for details

import sys
sys.path.append("../..")

#conda install pillow matplotlib
from py3d import *
import matplotlib.pyplot as plt

if __name__ == "__main__":
 print("Read Redwood dataset")
 color_raw = read_image("/home/cvr/code/Open3D/build/lib/TestData/RGBD/color/00000.jpg")
 depth_raw = read_image("/home/cvr/code/Open3D/build/lib/TestData/RGBD/depth/00000.png")
 rgbd_image = create_rgbd_image_from_color_and_depth(
 color_raw, depth_raw);
 print(rgbd_image)
 plt.subplot(1, 2, 1)
 plt.title('Redwood grayscale image')
 plt.imshow(rgbd_image.color)
 plt.subplot(1, 2, 2)
 plt.title('Redwood depth image')
 plt.imshow(rgbd_image.depth)
 plt.show()
 pcd = create_point_cloud_from_rgbd_image(rgbd_image,
 PinholeCameraIntrinsic.prime_sense_default)
 # Flip it, otherwise the pointcloud will be upside down
 pcd.transform([[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]])
 draw_geometries([pcd])

Comments

  1. Jacky 我想请问下 我在cmake ../src 那步进行不下去了 说是Unknown CMake command "ADD_SOURCE_GROUP" 请问有什么办法可以解决吗


    git clone https://github.com/IntelVCL/Open3D
    scripts/install-deps-ubuntu.sh
    mkdir build
    cd build
    cmake ../src
    make -j

    ReplyDelete

Post a Comment

Popular posts from this blog

Ubuntu Chrome Remote Desktop Setting

Deep Learning 開發框架 Tensorflow vs Keras vs PyTorch 我應該學哪個?