search
LoginSignup
66

posted at

updated at

Organization

Pythonの点群・3Dメッシュ可視化ライブラリが多すぎてカオスなので整理してみる

最近Pythonで2次元/3次元問わずデータ処理を行うことが多いんですが、特に3次元データの方のライブラリが色々ありすぎて頭の処理が追いつかないのでちょっとだけ整理していこうと思います。
(随時更新予定…)

PyVista

  • https://github.com/pyvista/pyvista
  • Visualization Toolkit (VTK)をnumpyでラップした高レベルのAPI
  • VTK・SLT・OBJ・PLYなど一通りメッシュが読める
  • 結構GUIツールが揃っている感じ?
  • 点群とメッシュの変換はできるらしい
  • シミュレーション・レイトレーシング・GISで使えるとかなんとか

Leafmap

  • https://github.com/giswqs/leafmap
  • lasを読み込める
    • plyもいける?
  • lasを読み込んだ時はlaspyのインスタンスが出来上がる
  • 2次元データ処理寄り

Open3D

Trimesh

  • https://github.com/mikedh/trimesh
  • 点群とメッシュは大体読めそう?
  • ベースの部分に可視化機能はついていないらしい
  • pygletと合わせて可視化するっぽい?
  • 統計分析・機械学習の前処理によく利用されるっぽい
  • kaolinとかpyrenderとかいろんなライブラリの基盤として利用されている

pyntcloud

  • https://github.com/daavoo/pyntcloud
  • 名前からしてめっちゃ点群をどうこうできそうなライブラリ
  • なんだかんだで色んな3D形式を操作できそう
  • 分析と前処理がメインっぽい
  • 可視化バックエンドとしてthree.jsが選べる
  • Open3DやPyVistaと統合が簡単そう
  • ボクセル化・特徴点抽出・間引き・外れ値の検出・サブサンプリングなど簡単にできる

結論

  • (大体内部ではnumpyが使われている)
  • 可視化・ファイル形式変換くらいならとりあえずLeafmap + open3D使っとけばなんとかなりそう
  • 点群の大規模な分析になるならpyntcloud + open3Dかな?
  • Pythonで3Dデータを利用したシミュレーションなどやるならPyVista
  • 3Dデータを綺麗に表示させたいならpyrenderかな?Trimeshを生で使う必要はなさそう

これ以上ライブラリ覚えれないので、完結としたい。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
66