PyTorch Points 3D 1.2 : README (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/23/2021 (1.2.0)
* 本ページは、PyTorch Points 3D 1.2 の以下のページを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
- Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
人工知能研究開発支援 | 人工知能研修サービス | テレワーク & オンライン授業を支援 |
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。) |
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション |
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/ ; Facebook |
PyTorch Points 3D 1.2 : README
これは古典的なベンチマークに対するポイントクラウド分析のための一般的な深層学習モデルを実行するためのフレームワークです。それは PyTorch Geometric と Facebook Hydra ライブラリに大きく依拠しています。
フレームワークは無駄がなくしかし複雑なモデルが最小限の労力と素晴らしい再現性とともに構築されることを可能にします。それはまたポイントクラウド上の深層学習を民主化するための高位 API も提供します。最先端のネットワークのフレームワークキャパシティとベンチマークの概要について 3DV の 論文 を見てください。
概要
要件
- CUDA 10 or higher (if you want GPU version)
- Python 3.7 or higher + headers (python-dev)
- PyTorch 1.7 or higher
- スパース畳込みバックエンド (オプション) インストール手順については ここ を見てください。
Install with
pip install torch
pip install torch-points3d
プロジェクト構造
├─ benchmark # Output from various benchmark runs ├─ conf # All configurations for training nad evaluation leave there ├─ notebooks # A collection of notebooks that allow result exploration and network debugging ├─ docker # Docker image that can be used for inference or training ├─ docs # All the doc ├─ eval.py # Eval script ├─ find_neighbour_dist.py # Script to find optimal #neighbours within neighbour search operations ├─ forward_scripts # Script that runs a forward pass on possibly non annotated data ├─ outputs # All outputs from your runs sorted by date ├─ scripts # Some scripts to help manage the project ├─ torch_points3d ├─ core # Core components ├─ datasets # All code related to datasets ├─ metrics # All metrics and trackers ├─ models # All models ├─ modules # Basic modules that can be used in a modular way ├─ utils # Various utils └─ visualization # Visualization ├─ test └─ train.py # Main script to launch a training
一般的な指針としてデータセットとモデルをタスクで分割しました。例えば、データセットは 5 つのサブフォルダを持ちます :
- セグメンテーション
- 分類
- レジストレーション
- object_detection
- panoptic
where each folder contains the dataset related to each task.
現在実装されているメソッド
- PointNet from Charles R. Qi et al.:Deep Learning on Point Sets for 3D Classification and Segmentation (CVPR 2017)
3D 分類とセグメンテーションのためのポイントセット上の深層学習
- PointNet++ from Charles R. Qi et al.: PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
PointNet++: メトリック空間のポイントセット上の深層階層特徴学習
- RSConv from Yongcheng Liu et al.: Relation-Shape Convolutional Neural Network for Point Cloud Analysis (CVPR 2019)
ポイントクラウド分析のための Relation-Shape 畳込みニューラルネットワーク
- RandLA-Net from Qingyong Hu et al.: RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds
RandLA-Net: 大規模スケール・ポイントクラウドの効率的なセマンティック・セグメンテーション
- PointCNN from Yangyan Li et al.: PointCNN:Convolution On X-Transformed Points (NIPS 2018)
PointCNN: X-Transformed ポイント上の畳込み
- KPConv from Hugues Thomas et al.: KPConv: Flexible and Deformable Convolution for Point Clouds (ICCV 2019)
KPConv: ポイントクラウドのための柔軟で Deformable (変形可能) な畳込み
- MinkowskiEngine from Christopher Choy et al.: 4D Spatio-Temporal ConvNets: Minkowski Convolutional Neural Networks (CVPR19)
4D 時空間 ConvNets: Minkowski 畳込みニューラルネットワーク
- VoteNet from Charles R. Qi et al.: Deep Hough Voting for 3D Object Detection in Point Clouds (ICCV 19)
ポイントクラウドの 3D 物体検出のための深層 Hough Voting
- FCGF from Christopher Choy et al.: Fully Convolutional Geometric Features (ICCV’19)
完全畳込みジオメトリック特徴
- PointGroup from Li Jiang et al.: PointGroup: Dual-Set Point Grouping for 3D Instance Segmentation
PointGroup: 3D インスタンス・セグメンテーションのための Dual-Set ポイント・グルーピング
- PPNet (PosPool) from Ze Liu et al.: A Closer Look at Local Aggregation Operators in Point Cloud Analysis (ECCV 2020)
- TorchSparse from Haotian Tang et al: Searching Efficient 3D Architectures with Sparse Point-Voxel Convolutionスパース・ポイント-ボクセル畳込みによる効率的な 3D アーキテクチャの探求
- PVCNN model for semantic segmentation from Zhijian Liu et al: Point-Voxel CNN for Efficient 3D Deep Learning
効率的な 3D 深層学習のためのポイント-ボクセル CNN
より詳細については API からこれらのモデルの幾つかにアクセスするための ドキュメント を参照してそして KPconv と RSConv のためのサンプル・ノートブックを見てください。
利用可能なタスク
タスク | サンプル |
分類 / Part セグメンテーション | ![]() |
セグメンテーション | ![]() |
オブジェクト検出 | ![]() |
Panoptic セグメンテーション | ![]() |
レジストレーション | ![]() |
利用可能なデータセット
(訳注: 原文 参照)
3D スパース畳込みサポート
スパース畳込みのためのバックエンドとして Minkowski エンジン > v0.5 と torchsparse をサポートします。それらのパッケージは Torch Points3d とは独立にインストールされる必要があります、それぞれのレポジトリのインストール手順とトラブルシューティング・ノートに従ってください。At the moment torchsparse demonstrates faster training and inference on GPU but comes with limited functionalities. For example, MinkowskiEngine can be used Please be aware that torchsparse is still in beta and does not support CPU processing only for example.
Once you have setup one of those two sparse convolution framework you can start using are high level to define a unet backbone or simply an encoder:
from torch_points3d.applications.sparseconv3d import SparseConv3d
model = SparseConv3d("unet", input_nc=3, output_nc=5, num_layers=4, backbone="torchsparse") # minkowski by default
You can also assemble your own networks by using the modules provided in torch_points3d/modules/SparseConv3d/nn. For example if you wish to use torchsparse backend you can do the following:
import torch_points3d.modules.SparseConv3d as sp3d
sp3d.nn.set_backend("torchsparse")
conv = sp3d.nn.Conv3d(10, 10)
bn = sp3d.nn.BatchNorm(10)
以上