【目次】
利用条件などは利用者において確認してください
謝辞:このページで使用しているソフトウェア類の作者に感謝します
Windows での Visual Studio Community 2022 のインストール: 別ページ »で説明
Visual Studio Community 2022 に, Build Tools for Visual Studio 2022の機能が含まれている.
Windows での Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022) のインストール: 別ページ »で説明
【関連する外部ページ】
Git のページ https://git-scm.com/ からダウンロードしてインストール:
Git のインストールの詳細: 別ページ »で説明
cmake のダウンロードのページ https://cmake.org/download/ からダウンロードしてインストール
Windows での Python 3.10,関連パッケージ,Python 開発環境のインストール: 別ページ »で説明
【サイト内の関連ページ】
Python のまとめ: 別ページ »にまとめ
【関連する外部ページ】
Python の公式ページ: https://www.python.org/
http://www.open3d.org/docs/release/compilation.html に記載の手順による.
コマンドプロンプトを管理者として実行: 別ページ »で説明
python -m pip install -U open3d
次のコマンドを実行.「Version」の右に表示されるバージョンを確認.
python -m pip show open3d
関連ファイルのインストールを行いたいので,下に書いた手順を進める.
エラーを回避するために「/utf-8」を設定.
python -m pip install -U --ignore-installed numpy scikit-image cd %LOCALAPPDATA% rmdir /s /q Open3D git clone --recursive https://github.com/isl-org/Open3D cd Open3D del CMakeCache.txt cmake -G "Visual Studio 17 2022" -A x64 -T host=x64 ^ -DCMAKE_C_FLAGS="/DWIN32 /D_WINDOWS /W0 /utf-8" ^ -DCMAKE_CXX_FLAGS="/DWIN32 /D_WINDOWS /GR /EHsc /W0 /utf-8" ^ -DCMAKE_INSTALL_PREFIX="c:/Open3D" . cmake --build . --config Release --target ALL_BUILD cmake --build . --config Release --target INSTALL
起動ができれば OK とする.
%LOCALAPPDATA%\Open3D\bin\Open3D\Release\Open3DViewer.exe
次のコマンドを実行する.
cd %LOCALAPPDATA% rmdir /s /q Open3D-ML git clone --recursive https://github.com/isl-org/Open3D-ML cd Open3D-ML python -m pip install -r requirements.txt python -m pip install -r requirements-torch.txt
sudo pip3 install -U open3d
次のコマンドを実行.「Version」の右に表示されるバージョンを確認.
pip3 show open3d
以降,関連ファイルのインストールを行いたいので,下に書いた手順を進める.
次のコマンドを実行する.
git clone では「-b v0.13.0」のようにバージョンを指定する.このバージョンは, さきほど「pip3 show open3d」で確認したバージョンに一致させること.
sudo apt -y update sudo apt -y install build-essential gcc g++ make sudo apt -y install git sudo pip3 install -U numpy scikit-image sudo mkdir /usr/local cd /usr/local sudo rm -rf Open3D sudo git clone -b v0.13.0 --recursive https://github.com/isl-org/Open3D sudo chown -R $USER Open3D cd Open3D git switch - yes | bash util/install_deps_ubuntu.sh rm -f CMakeCache.txt /usr/local/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local . make sudo make install
次のコマンドを実行する.
git clone では「-b r0.13.0」のようにバージョンを指定する.このバージョンは, さきほど「pip3 show open3d」で確認したバージョンに一致させること.
cd /usr/local sudo rm -rf Open3D-ML sudo git clone --recursive -b r0.13.0 https://github.com/isl-org/Open3D-ML sudo chown -R $USER Open3D sudo chown -R $USER Open3D-ML cd Open3D-ML git switch - sudo pip3 install -r requirements.txt sudo pip3 install -r requirements-tensorflow.txt sudo pip3 install -r requirements-torch.txt sudo pip3 install -U numpy chumpy json-tricks munkres xtcocotools yapf cd ../Open3D rm -f CMakeCache.txt /usr/local/bin/cmake \ -DBUILD_PYTORCH_OPS=ON \ -DBUILD_TENSORFLOW_OPS=ON \ -DBUNDLE_OPEN3D_ML=ON \ -DOPEN3D_ML_ROOT=/usr/local/Open3D-ML \ -DGLIBCXX_USE_CXX11_ABI=OFF \ -DCMAKE_INSTALL_PREFIX=/usr/local . make sudo make install
Windows では 「cd %LOCALAPPDATA%\Open3D\docs\jupyter」
Ubuntu では 「cd /usr/local/Open3D/docs/jupyter」
pointcloud.ipynb に記載の Python プログラムを実行
import open3d as o3d import numpy as np import matplotlib.pyplot as plt import copy import os import sys # only needed for tutorial, monkey patches visualization sys.path.append('..') import open3d_tutorial as o3dtut # change to True if you want to interact with the visualization windows o3dtut.interactive = not "CI" in os.environ
Windows での実行結果を示す.
print("Load a ply point cloud, print it, and render it") pcd = o3d.io.read_point_cloud("../../examples/test_data/fragment.ply") print(pcd) print(np.asarray(pcd.points)) o3d.visualization.draw_geometries([pcd], zoom=0.3412, front=[0.4257, -0.2125, -0.8795], lookat=[2.6172, 2.0475, 1.532], up=[-0.0694, -0.9768, 0.2024])
Windows での実行結果を示す.
print("Downsample the point cloud with a voxel of 0.05") downpcd = pcd.voxel_down_sample(voxel_size=0.05) o3d.visualization.draw_geometries([downpcd], zoom=0.3412, front=[0.4257, -0.2125, -0.8795], lookat=[2.6172, 2.0475, 1.532], up=[-0.0694, -0.9768, 0.2024])
Windows での実行結果を示す.
bunny = o3d.data.BunnyMesh() mesh = o3d.io.read_triangle_mesh(bunny.path) mesh.compute_vertex_normals() pcl = mesh.sample_points_poisson_disk(number_of_points=2000) hull, _ = pcl.compute_convex_hull() hull_ls = o3d.geometry.LineSet.create_from_triangle_mesh(hull) hull_ls.paint_uniform_color((1, 0, 0)) o3d.visualization.draw_geometries([pcl, hull_ls]) pcl = o3dtut.get_bunny_mesh().sample_points_poisson_disk(number_of_points=2000) hull, _ = pcl.compute_convex_hull() hull_ls = o3d.geometry.LineSet.create_from_triangle_mesh(hull) hull_ls.paint_uniform_color((1, 0, 0)) o3d.visualization.draw_geometries([pcl, hull_ls])
Windows での実行結果を示す.
pcd = o3d.io.read_point_cloud("../../examples/test_data/fragment.ply") with o3d.utility.VerbosityContextManager( o3d.utility.VerbosityLevel.Debug) as cm: labels = np.array( pcd.cluster_dbscan(eps=0.02, min_points=10, print_progress=True)) max_label = labels.max() print(f"point cloud has {max_label + 1} clusters") colors = plt.get_cmap("tab20")(labels / (max_label if max_label > 0 else 1)) colors[labels < 0] = 0 pcd.colors = o3d.utility.Vector3dVector(colors[:, :3]) o3d.visualization.draw_geometries([pcd], zoom=0.455, front=[-0.4999, -0.1659, -0.8499], lookat=[2.1813, 2.0619, 2.0999], up=[0.1204, -0.9852, 0.1215])
Windows での実行結果を示す.
pcd = o3d.io.read_point_cloud("../../examples/test_data/fragment.pcd") plane_model, inliers = pcd.segment_plane(distance_threshold=0.01, ransac_n=3, num_iterations=1000) [a, b, c, d] = plane_model print(f"Plane equation: {a:.2f}x + {b:.2f}y + {c:.2f}z + {d:.2f} = 0") inlier_cloud = pcd.select_by_index(inliers) inlier_cloud.paint_uniform_color([1.0, 0, 0]) outlier_cloud = pcd.select_by_index(inliers, invert=True) o3d.visualization.draw_geometries([inlier_cloud, outlier_cloud], zoom=0.8, front=[-0.4999, -0.1659, -0.8499], lookat=[2.1813, 2.0619, 2.0999], up=[0.1204, -0.9852, 0.1215])
Windows での実行結果を示す.