Python から libpcl を使う(GitHub の davidcaron/pclpy, Python を使用)(Ubuntu 上)
【目次】
利用条件などは利用者において確認してください
【サイト内の関連ページ】
参考Webページ
- Github の Web ページ: https://www.github.com/davidcaron/pclpy
- Pypi の Web ページ: https://pypi.org/project/pclpy/
謝辞:このページで使用しているソフトウェア類の作者に感謝します
前準備
Python のインストール(Windows上)
注:既にPython(バージョン3.12を推奨)がインストール済みの場合は,この手順は不要である.
winget(Windowsパッケージマネージャー)を使用してインストールを行う
- Windowsで,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- winget(Windowsパッケージマネージャー)が利用可能か確認する:
winget --version
- Pythonのインストール(下のコマンドにより Python 3.12 がインストールされる).
- Python詳細ガイド:Pythonまとめ »
【関連する外部サイト】
【サイト内の関連ページ】
Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)または Visual Studio 2022 のインストール(Windows 上)
CUDAツールキットは、GPU上でコードをコンパイルするためにC++コンパイラを必要とします。そのため、事前にMicrosoft C++ Build Tools または Visual Studio (C++開発ワークロードを含む) をインストールしておく必要があります。
【インストールの判断】 Build Tools for Visual Studio は,C++コンパイラなどを含む開発ツールセットです. Visual Studio は統合開発環境であり,いくつかのエディションがあり,Build Tools for Visual Studioの機能を含むか連携して使用します.インストールは以下の基準で判断してください:
- コマンドラインからのビルドなど、C++コンパイラ機能のみが必要な場合:
- Visual Studioのエディタやデバッガなどの統合開発環境機能が必要な場合、あるいは、どちらをインストールすべきかよく分からない場合:
Visual Studio Community (または他のエディション) をインストール します.
Visual Studio 2022 をインストールする際に,「C++ によるデスクトップ開発」ワークロードを選択することで,必要なBuild Toolsの機能も一緒にインストールされます.
不明な点がある場合は,Visual Studio 全体をインストール する方が、後で機能を追加する手間が省ける場合があります.
Build Tools for Visual Studio 2022 のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動します(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)。
以下の
winget
コマンドを実行します。winget
はWindows標準のパッケージマネージャーです。--scope machine
オプションはシステム全体にインストールすることを意味します。次のコマンドは,Build Tools for Visual Studio 2022と、多くのプログラムで必要とされるVC++ 2015以降の再頒布可能パッケージをインストールします.
- Build Tools for Visual Studio 2022 で C++ によるデスクトップ開発関連コンポーネントのインストール
CUDA開発には、標準のC++開発ツールに加えて、特定のコンポーネントが必要になる場合があります。
- Visual Studio Installer を起動します。
起動方法: スタートメニューから「Visual Studio Installer」を探して実行します.
- Visual Studio Build Tools 2022 の項目で「変更」ボタンをクリックします.
- 「ワークロード」タブで「C++ によるデスクトップ開発」をクリックして選択します。画面右側の「インストールの詳細」で、必要に応じて「v143 ビルドツール用 C++/CLI サポート(最新)」、「ATL」、「MFC」などをチェックします(これらは一般的なC++開発や特定のプロジェクトタイプで必要になる場合があります)。その後、「変更」をクリックしてインストールまたは変更を適用します.
- Visual Studio Installer を起動します。
Visual Studio Community 2022 のインストール(Windows 上)
- Windows で,コマンドプロンプトを管理者権限で起動します。
- インストールコマンドの実行
以下の
winget
コマンドを実行します。--override "--add ..."
部分で、インストールするワークロードやコンポーネントを指定しています。winget install Microsoft.VisualStudio.2022.Community --scope machine --override "--add Microsoft.VisualStudio.Workload.NativeDesktop Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core Microsoft.VisualStudio.Component.VC.CLI.Support Microsoft.VisualStudio.Component.CoreEditor Microsoft.VisualStudio.Component.NuGet Microsoft.VisualStudio.Component.Roslyn.Compiler Microsoft.VisualStudio.Component.TextTemplating Microsoft.VisualStudio.Component.Windows.SDK.Latest Microsoft.VisualStudio.Component.VC.Tools.x86.x64 Microsoft.VisualStudio.Component.VC.ATL Microsoft.VisualStudio.Component.VC.ATLMFC" winget install Microsoft.VisualStudio.2022.Community --scope machine Microsoft.VCRedist.2015+.x64
インストールされる主要なコンポーネントの説明:
NativeDesktop
(C++によるデスクトップ開発): CUDA開発に必要なC++コンパイラ(VC.Tools.x86.x64
)やWindows SDK (Windows.SDK.Latest
)など、基本的な開発ツール一式を含みます。CoreEditor
: Visual Studioの基本的なコードエディタ機能を提供します。VC.CLI.Support
: C++/CLIを用いた開発サポート(通常、純粋なCUDA C++開発では不要な場合もあります)。NuGet
: .NETライブラリ管理用(C++プロジェクトでも利用されることがあります)。VC.ATL
/VC.ATLMFC
: 特定のWindowsアプリケーション開発フレームワーク(通常、CUDA開発自体には直接必要ありません)。
システム要件と注意事項:
- 管理者権限でのインストールが必須です。
- 必要ディスク容量:10GB以上(選択するコンポーネントにより変動)。
- 推奨メモリ:8GB以上のRAM。
- インストール過程でシステムの再起動が要求される可能性があります。
- 安定したインターネット接続環境が必要です。
後から追加のコンポーネントが必要になった場合は,Visual Studio Installerを使用して個別にインストールすることが可能です.
- インストール完了の確認
インストールが成功したか確認するには、管理者権限のコマンドプロンプトで以下のコマンドを実行します。
winget list Microsoft.VisualStudio.2022.Community
リストに表示されればインストールされています。
トラブルシューティング:
インストール失敗時は,以下のログファイルを確認すると原因究明の手がかりになります:
%TEMP%\dd_setup_
.log %TEMP%\dd_bootstrapper_ .log (
は実行日時に対応する文字列) - (オプション) Visual Studio Installer での確認と変更
winget
でのインストール後も、Visual Studio Installerを使ってインストール内容を確認・変更できます。- Visual Studio Installer を起動します。
- Visual Studio Community 2022 の項目で「変更」をクリックします。
- 「ワークロード」タブで「C++ によるデスクトップ開発」がチェックされていることを確認します。必要であれば、「個別のコンポーネント」タブで特定のツール(例: 特定バージョンのMSVCコンパイラ、CMakeツールなど)を追加・削除できます。「インストールの詳細」で「v143 ビルドツール用 C++/CLI サポート(最新)」などが選択されているかも確認できます。変更後、「変更」または「インストール」をクリックします。
Git のインストール(Windows 上)
Gitは,バージョン管理システム.ソースコードの管理や複数人での共同に役立つ.
【サイト内の関連ページ】 Windows での Git のインストール: 別ページ »で説明
【関連する外部ページ】 Git の公式ページ: https://git-scm.com/
7-Zip のインストール(Windows 上)
7-Zipは,ファイル圧縮・展開(解凍)ツール
- Windows で,コマンドプロンプトを管理者権限で起動する(例:Windowsキーを押し,「cmd」と入力し,「管理者として実行」を選択)
- 次のコマンドを実行
次のコマンドは,7-Zipをインストールするものである.
winget install --scope machine 7zip.7zip powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\7-Zip\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
【関連する外部ページ】
- 7-Zip の公式ページ: https://7-zip.opensource.jp/
libpcl 1.9.1 のインストール
davidcaron/pclpy を使いたい.次のページによれば,バージョンは 1.9.1 が指定されている.
davidcaron/pclpy の URL: https://github.com/davidcaron/pclpy
- Windows での libpcl のインストール手順は,別ページ »で説明
- Ubuntu の場合は,次のコマンドを実行する.
sudo apt -y update sudo apt -y install libboost-all-dev libeigen3-dev libvtk9-dev libflann-dev cd
/usr/local sudo rm -rf pcl-pcl-1.9.1 cd /tmp curl -O -L https://github.com/PointCloudLibrary/pcl/archive/refs/tags/pcl-1.9.1.tar.gz cd /usr/local sudo tar -xvzof /tmp/pcl-1.9.1.tar.gz sudo chown -R $USER pcl-pcl-1.9.1 cd pcl-pcl-1.9.1 mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j2 sudo make install
davidcaron/pclpy のインストール
davidcaron/pclpy の URL: https://github.com/davidcaron/pclpy
- インストールディレクトリを空にする
- github の davidcaron/pclpy のダウンロード
- 前提パッケージのインストール
- インストール
Ubuntu の場合
sudo chown -R $USER /usr/local/pytools/pclpy cd /usr/local/pytools/pclpy PYTHON=python3 bash scripts/download_pcl.sh PYTHON=python3 bash scripts/generate_points_and_bindings.sh # scripts/generate_hpp_point_types.sh cd generators PCL_REPO_PATH=/usr/local/pcl-pcl-1.9.1 PYTHONPATH=/usr/local/pytools/pclpy python3 generate_point_types.py cd .. python3 setup.py build sudo python3 setup.py install
- 動作確認
https://github.com/davidcaron/pclpy/blob/master/README.md に記載の Python プログラムを実行してみる
エラーメッセージが出なければOKとする
import pclpy from pclpy import pcl point_cloud = pclpy.read("/usr/local/pclpy/tests/test_data/street.las", "PointXYZRGBA") mls = pcl.surface.MovingLeastSquaresOMP.PointXYZRGBA_PointNormal() tree = pcl.search.KdTree.PointXYZRGBA() mls.setSearchRadius(0.05) mls.setPolynomialFit(False) mls.setNumberOfThreads(12) mls.setInputCloud(point_cloud) mls.setSearchMethod(tree) mls.setComputeNormals(True) output = pcl.PointCloud.PointNormal() mls.process(output)