3Dコンピュータービジョンのブーム(?)のおかげか、Pythonで点群やMeshデータを扱えるオープンソースライブラリが充実してきた。
こちらのPoint Cloud UtilsはGPLv2ライセンス。
Point Cloud Utils
Point Cloud Utils (pcu)は、点群や三角形Meshの3D処理のために以下機能を提供するユーティリティライブラリです。以下機能の使用方法に関するドキュメントはExampleのセクションを参照してください。
- 多くの一般的なMesh形式(PLY, STL, OFF, OBJ, 3DS, VRML 2.0, X3D, COLLADA)を読み書きできるユーティリティ関数。MeshLabにインポート可能な形式なら読み込み可能です!
- Mesh上でポイントサンプルを生成するための一連のアルゴリズム:
- “Parallel Poisson Disk Sampling with Spectrum Analysis on Surface“に基づいたMeshのPoisson-Disk-Sampling。
- LloydアルゴリズムによるMeshのサンプリング
- Mesh上でのモンテカルロサンプリング
- 点群をダウンサンプリングするためのユーティリティ:
- blue noise distributionを満たすダウンサンプリング
- ボクセルグリッド上でのダウンサンプリング
- 点群とMesh間の最近傍点
- 点群と三角形Meshから法線の推定
- 点群間の高速なK最近傍探索 (nanoflannベース)
- 点群間のハウスドルフ距離
- 点群間のChamfer距離
- Sinkhorn法による点群間のWasserstein距離の近似
- Fast Winding Numbersを使用した点群とMesh間の符号付距離の計算
- 点群に最も近いMesh上の点の計算
- 点群とMeshの重複頂点除去
- embreeを使用したレイ/Meshの高速な交差判定
- embreeを使用したレイ/surfelの高速な交差判定
- Meshのスムージング
- Meshのコンポーネント接続
- Meshの間引き(デシメーション)
- 点群とMesh内の重複/参照されていない頂点を削除する
- Meshの水密化 (Watertight Manifold法)
pipでインストールできる。ドキュメントはこちら。
スポンサーリンク
Examplesに簡単な使い方の例が沢山載っていますね。
スポンサーリンク
- Meshと点群の読み込み
- Meshと点群の保存
- Poisson-Disk-Samplingを使用したMesh上でのblue-noiseサンプル生成
- Mesh上でのランダムサンプル生成
- blue noise distributionによる点群のダウンサンプリング
- 点群のボクセルグリッドによるダウンサンプリング
- 点群からの法線推定
- 頂点ごとのMesh法線の計算
- フェイスごとのMesh法線の計算
- Meshのフェイスの向き
- 2つの点群間のWasserstein(Sinkhorn)距離の近似
- 2つの点群間のChamfer距離
- 2つの点群間のHausdorff距離
- 2つの点群間のK最近傍点
- Lloyd緩和法による正方形と立方体でのポイントサンプル生成
- fast winding numbersで三角形Meshまでの最短符号付き距離の計算
- Mesh上の最も近い点の計算
- 点群とMeshの重複除去
- 参照されていないMesh頂点の削除
- Meshのフェイス面積の計算
- Meshのスムージング
- 連結コンポーネントの計算
- 三角形Meshの間引き(デシメーション)
- Meshを水密化
- レイ/Meshの交差判定
- レイ/Surfelの交差判定
- Meshの曲率計算
- 三角形スープの一貫した内外計算する
ところで、MeshLabも今はPythonから叩けるPyMeshLabというインターフェイスがあるのね。
MeshLab:3Dオブジェクトの確認・変換に便利なフリーウェアMeshLab MeshLab is an open source, portable, and extensible system for the processing and editing of unstructured 3D tri...
スポンサーリンク
関連記事
Transformers ”Reference & Bulid” Siggraph 2007
TensorFlowでCGを微分できる『TensorFlow Graphics』
スクレイピング
ZBrushでアヴァン・ガメラを作ってみる 歯茎を別パーツへ分割
ラクガキの立体化 胴体の追加
Subsurface scatteringの動画
ZBrushのZScript入門
まだ続くブログの不調
ブラウザ操作自動化ツール『Selenium』を試す
OpenMayaのPhongShaderクラス
ちょっと凝り過ぎなWebキャンペーン:全日本バーベイタム選手権 (MITSUBISHI KAGAKU...
ZBrushでゴジラ2001を作ってみる 頭の概形作り
Zbrushでメカ物を作るチュートリアル動画
ラクガキの立体化 モールドの追加
Point Cloud Consortiumのセミナー「3D点群の未来」に行ってきたよ
konashiのサンプルコードを動かしてみた
SDカードサイズのコンピューター『Intel Edison』
Live CV:インタラクティブにComputer Visionコーディングができるツール
布のモデリング
iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』
天体写真の3D動画
ZBrushでアヴァン・ガメラを作ってみる 甲羅のバランス調整
WordPressプラグインによるサイトマップの自動生成
UnityでOpenCVを使うには?
仮想関数
NumSharp:C#で使えるNumPyライクな数値計算ライブラリ
オープンソースの取引プラットフォーム
MeshLab:3Dオブジェクトの確認・変換に便利なフリーウェア
網元AMIで作ったWordpressサイトのインスタンスをt1microからt2microへ移行した
書籍『ゼロから作るDeep Learning』で自分なりに学ぶ
libigl:軽量なジオメトリ処理ライブラリ
Digital Emily Project:人間の顔をそっくりそのままCGで復元する
Maya には3 種類のシェーダSDKがある?
GAN (Generative Adversarial Networks):敵対的生成ネットワーク
ZBrushでアヴァン・ガメラを作ってみる 首回りの修正・脚の作り込み
書籍『OpenCV 3 プログラミングブック』を購入
ZBrushで仮面ライダー3号を造る 仮面編
JavaによるCGプログラミング入門サイト (日本語)
ZBrushの練習 手のモデリング
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
Dlib:C++の機械学習ライブラリ
BlenderのRigifyでリギング
コメント