#お役立ちコラム
3次元点群処理のおすすめライブラリ|用途別の比較と選び方

3次元点群処理のおすすめライブラリは、位置合わせをしたいのか、大量のファイルを変換したいのかで変わります。使用する言語が同じでも、得意な処理や入出力の仕組みは異なります。
この記事ではOpen3D・PCL・PDALを中心に、用途に合う候補を整理します。可視化やAI処理に使うライブラリ、選定時の確認項目、専用ソフトとの使い分けも扱います。
執筆: bestat 編集部
3次元点群処理のおすすめライブラリ
まず、必要な処理と使用言語から候補を絞ります。 幾何処理をPythonで試すならOpen3D、C++の処理へ組み込むならPCL、形式変換や連続したデータ処理ならPDALを出発点にできます。
ライブラリ | 主な利用言語・入口 | 主な用途 | 選び始めの目安 |
|---|---|---|---|
Python/C++ | 点群処理、位置合わせ、表面再構成、可視化 | 一連の幾何処理を試し、結果を表示したい | |
C++ | フィルタ、特徴量、位置合わせ、領域分割 | 必要な処理をC++プログラムへ組み込みたい | |
C++/Python拡張/コマンドライン | 形式変換、座標変換、フィルタ、処理の自動化 | 多数の点群ファイルを決まった条件で処理したい | |
Python | 3D可視化、メッシュ解析 | 点群や解析結果を見ながら確認したい | |
Python | 点群の自動分類、物体検出、モデルの学習・推論 | 機械学習による認識を組み込みたい |
表の機能は各公式資料に基づき、選び始めの目安は編集部で整理しています。速度や精度の順位を示すものではありません。仕様は2026年9月7日時点で確認しています。
点群処理ライブラリでできること
点群処理ライブラリは、座標を持つ点の集合に対して、不要な点の除去や位置の調整などを行うプログラム部品です。点群の基本構造は、点群データとはで説明しています。
たとえば、ノイズ除去では物体の表面から離れた点を取り除き、ダウンサンプリングでは点の数を減らします。位置合わせは、別々に取得した点群の向きや位置を揃える処理です。メッシュ化では点の集合から面を作ります。

図は各処理による変化を示しています。目的に応じて必要な処理を選ぶため、並んだ処理をすべて実行するわけではありません。こうしたフィルタ、位置合わせ、表面再構成は、PCLの公式説明でも代表的な機能として挙げられています。
「セグメンテーション」と呼ばれる領域分割にも違いがあります。平面や距離を使って点をまとめる幾何処理と、学習したモデルで道路・建物などの種類を付けるAI処理では、準備するデータと評価方法が変わります。
Open3D・PCL・PDALの特徴
主要な候補の違いは、処理機能の数に加えて、開発の進め方とデータの流し方にあります。既存のプログラムへ組み込むのか、Pythonで試すのか、ファイル処理を定型化するのかを考えると選びやすくなります。
Open3D:Pythonで幾何処理と表示を試す
Open3Dは、C++とPythonから3Dデータ構造や処理機能を使えるライブラリです。公式資料では、3Dデータ処理、再構成、位置合わせ、可視化などが紹介されています。Open3D公式Introduction
たとえば、点群を読み込み、間引きや外れ値除去を行い、位置合わせの結果を表示する処理を組めます。処理の条件を変えながら結果を目で確認したい場合の候補になります。
表面再構成にも対応するため、点群からメッシュを作る用途でも検討できます。メッシュの調整や精度の考え方は、点群データのメッシュ化を参照してください。

出典:Open3D「Mesh — Sampling」。球メッシュの表面から500点をサンプリングした公式出力です。面の広がりを点の集合で表す様子を確認できます。© 2018–2023 www.open3d.org/MIT License。
PCL:C++へ点群処理を組み込む
PCLはPoint Cloud Libraryの略で、フィルタ、特徴量推定、表面再構成、位置合わせ、領域分割などを提供します。機能は複数のライブラリに分かれ、個別にビルドできる構成です。PCL公式About
C++で作られた既存プログラムに点群処理を追加したい場合や、処理の各段階を細かく組み合わせたい場合に候補になります。導入時は、使用する機能とOSに合わせてビルド方法や依存ライブラリを確認します。
PythonからPCLを使うラッパーを採用する場合は、PCL本体とは別に、そのラッパーの対応機能と保守状況を調べます。PCL本体の説明だけで、Python環境でも同じ機能が使えるとは判断できません。

出典:Point Cloud Library「Removing outliers using a StatisticalOutlierRemoval filter」(公式画像原本)。左側の2図は外れ値除去の前後、右のグラフは処理前後の近傍点までの平均距離です。CC BY 3.0/JPEGからPNGへ形式変換。切り抜き・縮尺変更はしていません。
PDAL:形式変換と処理の自動化を組む
PDALはPoint Data Abstraction Libraryの略で、点群の読み込み、変換、フィルタ、書き出しを組み合わせるためのライブラリです。C++ APIに加え、コマンドラインとPython拡張も提供されています。PDAL公式About
PDALでは、読み込みから書き出しまでの処理列を「パイプライン」として定義できます。JSONという設定記述形式で、入力ファイルや適用する処理、その条件を残せます。PDAL公式Pipeline

図は領域の切り出しを含むパイプラインの概念例です。ファイルを読む機能、範囲を選ぶ処理、書き出す機能をつなぎます。
複数のファイルに同じ処理を適用したい場合や、座標変換・領域の切り出しを含めたデータ整備に適しています。PCLとは用途の重なりもあり、公式資料でも補完関係とされています。入力形式の処理にPDALを使い、その後の幾何処理を別のライブラリへ渡す構成も検討できます。

出典:PDAL公式「Removing noise」。ノイズ除去後に書き出した点群をQGISで表示した画面です。PDALで処理し、別の可視化ソフトで結果を確認する使い方を示しています。© 2025 Hobu, Inc./BSD License(ワークショップ著者:Dr. Adam Steer)。
可視化とAI処理に使うライブラリ
処理結果の確認が中心なら可視化用、点の種類や物体の認識が中心なら機械学習用の候補を加えます。点群を表示できることと、対象を自動認識できることは別の機能です。
PyVista:点群や解析結果を可視化する
PyVistaは、Pythonで3D可視化とメッシュ解析を扱うライブラリです。3Dデータ処理基盤のVTKを利用し、点・面・体積を持つデータの表示やフィルタを提供します。PyVista公式ドキュメント
点群に付いた値を色で見たり、処理前後の形状を確認したりする用途で検討できます。位置合わせなどの処理を別のライブラリで行い、PyVistaを結果の確認に使う方法もあります。
Open3D-ML:点群の分類や物体検出を扱う
Open3D-MLはOpen3Dを機械学習向けに拡張したものです。点に種類を付けるセマンティックセグメンテーションや物体検出を扱い、学習済みモデルと学習用の処理を提供しています。Open3D-ML公式README

左は平面という形の条件で点を選ぶ例、右は点に対象の種類を付ける例です。色分けは概念を示したもので、特定モデルの出力や認識精度を示していません。平面抽出はOpen3Dの幾何処理にも用意されています。
選ぶ際は、検出したい対象がモデルの分類項目に含まれるか、計測条件の異なる点群でも期待した結果が得られるかを確認します。学習済みモデルがあっても、手元のデータでの評価は必要です。
PyTorchやTensorFlowなどの機械学習基盤との組み合わせには、OSや配布パッケージによる条件があります。導入前に、使うバージョンに対応した公式のインストール案内を確認します。
対応形式と処理規模から選ぶ
ライブラリを絞ったら、使う予定の点群を読み込み、必要な情報を保って書き出せるかを確かめます。小さいサンプルで処理できても、全体データで同じ時間やメモリに収まるとは限りません。
ファイル形式だけでなく属性も確認する
Open3Dの点群入出力では、PLY・PCD・XYZなどが公式に案内されています。LAS・LAZを主に扱う場合は、それらの読み込みに対応するPDALも候補になります。Open3D File IO、PDAL LAS Reader
確認するのは拡張子に加えて、処理後に必要な色情報、反射強度、分類、座標系などが残るかです。ライブラリ間でデータを渡す際も、受け渡し形式が必要な項目を保持できるかを確認します。
PDALのLAS Readerには、波形データを含む一部の形式への非対応が明記されています。同じLASでも記録内容によって条件が変わるため、実際の入力データで読み書きを試す必要があります。
処理全体の時間とメモリを測る
性能は、点数、属性、処理内容、設定、CPUやGPUなどの実行環境によって変わります。ライブラリ名だけで処理速度や必要メモリを決めず、次の項目を同じ条件で確認します。
ファイルの読み込みから書き出しまでにかかる時間
処理中の最大メモリ使用量
間引きや分割をした後に残る形状と属性
同じ入力と設定で処理を再実行したときの結果
PDALには点を分割単位で流すストリーム処理があり、対応する処理ではメモリ使用量を抑えられます。一方、全点へのアクセスが必要な処理では標準モードを使い、入力をメモリに読み込みます。PDALの処理モード

図の点群片の個数や占有面積は模式的で、メモリ削減率の実測値ではありません。PDALでストリーム処理を使えない構成は、標準モードへ戻ります。処理列に含まれる各機能の対応を確認する必要があります。
Open3Dも主要な3D演算のGPU加速を提供していますが、選んだ処理でGPUを利用できるかは確認が必要です。GPUがあることだけで、処理全体が速くなるとは判断できません。
使用言語と更新への対応を確認する
ライブラリは、実行するOS、PythonやC++の環境、関連パッケージと組み合わせて使います。採用時には公式の対応条件を確認し、動作確認に使ったバージョンと処理設定を記録します。
本番で繰り返し使う処理は、更新後も同じ入力を処理できるかを確かめます。環境を作り直す手順と検証用のデータを残しておくと、更新時の問題を切り分けやすくなります。
ライブラリと専用ソフトの違い
ライブラリは、独自の処理をプログラムへ組み込みたい場合や、同じ処理を繰り返し自動実行したい場合に向きます。既製の点群処理ソフトは、用意された機能を画面で操作したい場合の候補です。
たとえばCloudCompareは、点群や三角形メッシュを編集・処理するソフトです。本記事のライブラリ一覧とは分け、画面で点群を確認しながら作業する選択肢として扱います。CloudCompare公式Introduction
OSSのライブラリを使う場合でも、入出力の接続、操作画面、実行の管理、エラーへの対応などは、必要に応じて開発することになります。性能や処理結果の検証、更新後の保守にも工数がかかります。
独自アルゴリズムが必要なら内製の自由度が役立ちます。標準的な処理をすぐに使いたいなら専用ソフト、処理済みの結果を受け取りたいならサービスも比較対象になります。初期の導入費に加え、必要な結果を継続して得るまでの開発・運用工数で比べます。
まとめ
3次元点群処理のライブラリは、必要な機能と言語で候補を選び、実データの入出力と性能を確かめると絞り込めます。可視化やAIが目的なら、その用途を担うライブラリも組み合わせます。
内製する範囲には、処理機能の組み合わせだけでなく、実行管理や保守も含まれます。専用ソフトやサービスと比較するときも、最終的に必要な結果を同じ条件で確認することが大切です。
bestat 編集部について
bestat株式会社は、東京大学 松尾研究室発の産業用3Dデータに特化したAIスタートアップです。製造業・インフラ・土木の現場で、画像・動画・点群・360度動画などから3Dデータを生成・処理・活用する「3D.Core」シリーズを開発・提供しています。
参考文献
Open3D:Introduction、File IO、Plane segmentation、Mesh — Sampling
Point Cloud Library:About、公式リポジトリ、StatisticalOutlierRemovalの公式例
PyVista:公式ドキュメント
Open3D-ML:公式README
CloudCompare:Introduction

