
OpenPCDet 、LIDARベースの3Dオブジェクト検出のための明確でシンプルで自己完結型のオープンソースプロジェクトです。
また、 [PointRCNN] 、 [Part-A2-Net] 、 [PV-RCNN] 、 [Voxel R-CNN] 、 [PV-RCNN++] 、 [MPPNet]の公式コードリリースでもあります。
ハイライト:
OpenPCDetはv0.6.0 (2022年9月)に更新されました。 [2023-06-30] New: DSVTのサポートを追加しました。これは、リアルタイムの推論速度(Tensortを含む27Hz)で大規模なWaymo Open Datasetで最先端のパフォーマンスを達成します。
[2023-05-13] new: Nuscenes Datasetのマルチモーダル3Dオブジェクト検出モデルのサポートを追加しました。
BEVFusionをサポートします。これは、BEVスペースに関するマルチモーダル情報を融合し、ヌスケン検証データセットで70.98%NDSに達します。 (bevfusionでトレーニング/テストする方法に関するガイドラインを参照してください)。 [2023-04-02] Nuscenes、Waymo、およびArgoverse2データセットのVoxelNeXtのサポートを追加しました。これは完全にスパース3Dオブジェクト検出ネットワークであり、クリーンスパースCNNSネットワークであり、3Dオブジェクトをボクセル上に直接予測します。
[2022-09-02] new: OpenPCDetをv0.6.0に更新:
MPPNetの公式コードリリース。これは、2022年9月2日にWaymo Open Datasetの3D検出で1位をランク付けし、検証データセットの3D検出で1位にランクされています。 (MPPNETでトレーニング/テストする方法に関するガイドラインを参照してください)。--use_tqdm_to_recordを使用してサポートされています)。 GPU関連情報も記録する場合はpip install gpustatを使用してください。[2022-08-22]カスタムデータセットチュートリアルとテンプレートのサポートを追加しました
[2022-07-05] 3Dオブジェクト検出バックボーンネットワークFocals Convのサポートを追加しました。
[2022-02-12] Dockerを使用するためのサポートを追加しました。 ./Dockerのガイダンスを参照してください。
[2022-02-07] Nuscenes DatasetのCenterPointモデルのサポートを追加しました。
[2022-01-14]独自の操作とtorch_scatterパッケージを備えたH^23D R-CNNで提案された実装に続いて、動的な柱のボクセル化のサポートを追加しました。
[2022-01-05] new: OpenPCDetをv0.5.2に更新:
PV-RCNN++のコードは、PV-RCNNよりも高いパフォーマンス、より速いトレーニング/推論速度、およびメモリ消費量が少ないため、このレポでリリースされました。 [2021-12-09] new: OpenPCDetをv0.5.1に更新:
[2021-12-01] new: OpenPCDet V0.5.0は、次の機能でリリースされます。
CenterPointとPV-RCNN with CenterHead追加します。USE_SHARED_MEMORY 、共有メモリを使用して、IOの問題に苦しんでいる場合に備えてトレーニングプロセスを高速化する可能性があります。 [2021-06-08]ボクセルベースの3Dオブジェクト検出モデルVoxel R-CNNのサポートを追加しました。
[2021-05-14]単眼3Dオブジェクト検出モデルCaDDNのサポートを追加しました。
[2020-11-27] bugfixed:Waymo Dataset(バージョン1.2)の検証infosを再入力してください。トレーニングデータとグラウンドトゥルースデータベースを再入力する必要はないことに注意してください。
[2020-11-10] Waymo Open Datasetは、最先端の結果でサポートされています。現在、WAYMOオープンデータセットでSECONDのPartA2 、 PV-RCNNの構成と結果を提供しており、データセット構成を変更することでより多くのモデルを簡単にサポートできます。
[2020-08-10] bugfixed:提供されたヌスセンモデルが更新され、負荷バグが修正されました。前処理されたヌスセンモデルを使用する必要がある場合は、それを再ダウンロードしてください。
[2020-07-30] OpenPCDet V0.3.0は、次の機能でリリースされます。
PointRCNN 、 PartA2-Free )が現在サポートされています。SECOND-MultiHead (CBGS)およびPointPillar-MultiHead )でサポートされています。[2020-07-17]シンプルな視覚化コードとカスタムデータでテストするためのクイックデモを追加します。
[2020-06-24] OpenPCDet V0.2.0は、より多くのモデルとデータセットをサポートするために、かなり新しい構造でリリースされています。
[2020-03-16] OpenPCDet V0.1.0がリリースされます。
OpenPCDetツールボックスは何をしますか?さまざまなデータセットとモデルをサポートするためのかなり新しい構造を使用して、 v0.1からv0.2にPCDetをアップグレートしたことに注意してください。
OpenPCDetは、ポイントクラウドからの3Dオブジェクト検出用の一般的なPytorchベースのコードベースです。現在、1段階と2段階の3D検出フレームワークの両方に高度にリファクタリングされたコードを使用して、複数の最先端の3Dオブジェクト検出方法をサポートしています。
OpenPCDetツールボックスに基づいて、3D検出、3D追跡、すべてのLIDARのみのメソッドの中で3つのトラックを適応するWaymo Open DataSet Challengeを獲得し、Waymo関連モデルがすぐにOpenPCDetにリリースされます。
現在、このリポジトリを積極的に更新しており、より多くのデータセットとモデルがまもなくサポートされます。貢献も歓迎されています。
OpenPCDetデザインパターン
統一された3Dボックス定義:(x、y、z、dx、dy、dz、見出し)。
さまざまな3D検出モデルを簡単にサポートする柔軟で明確なモデル構造:


選択されたサポートされた方法は、以下の表に示されています。結果は、KittiデータセットのVALセットの中程度の難易度の3D検出性能です。
| トレーニング時間 | 車@R11 | 歩行者@R11 | サイクリスト@r11 | ダウンロード | |
|---|---|---|---|---|---|
| ポイントピラー | 〜1.2時間 | 77.28 | 52.29 | 62.68 | モデル-18m |
| 2番 | 〜1.7時間 | 78.62 | 52.98 | 67.15 | モデル-20M |
| 第二に | - | 79.09 | 55.74 | 71.31 | モデル-46M |
| pointrcnn | 〜3時間 | 78.70 | 54.41 | 72.11 | モデル16M |
| pointrcnn-iou | 〜3時間 | 78.75 | 58.32 | 71.34 | モデル16M |
| パートA2フリー | 約3.8時間 | 78.72 | 65.99 | 74.29 | モデル-226M |
| パートA2アンカー | 約4.3時間 | 79.40 | 60.05 | 69.90 | モデル244M |
| PV-RCNN | 〜5時間 | 83.61 | 57.90 | 70.47 | モデル-50m |
| voxel r-cnn(car) | 約2.2時間 | 84.54 | - | - | モデル-28m |
| 焦点条件-f | 〜4時間 | 85.66 | - | - | モデル-30M |
| caddn(モノ) | 〜15時間 | 21.38 | 13.02 | 9.76 | モデル-774M |
Waymo Open Dataset(WOD)でDATA_CONFIG.SAMPLED_INTERVALの設定を提供して、トレーニングと評価のために部分的なサンプルをサブサンプリングするため、GPUリソースが限られている場合でも、より小さなDATA_CONFIG.SAMPLED_INTERVALを設定することでWODで再生できます。
デフォルトでは、すべてのモデルは、8 GTX 1080TI GPUのすべてのトレーニングサンプルの20%データ(〜32Kフレーム)の単一フレーム(〜32Kフレーム)でトレーニングされ、ここでの各セルの結果は、検証セット全体(バージョン1.2)の公式Waymo評価メトリックによって計算されたMAP/MAPHです。
| パフォーマンス@(20%のデータでトレーニング) | VEC_L1 | VEC_L2 | ped_l1 | ped_l2 | CYC_L1 | CYC_L2 |
|---|---|---|---|---|---|---|
| 2番 | 70.96/70.34 | 62.58/62.02 | 65.23/54.24 | 57.22/47.49 | 57.13/55.62 | 54.97/53.53 |
| ポイントピラー | 70.43/69.83 | 62.18/61.64 | 66.21/46.32 | 58.18/40.64 | 55.26/51.75 | 53.18/49.80 |
| センターポイントピラー | 70.50/69.96 | 62.18/61.69 | 73.11/61.97 | 65.06/55.00 | 65.44/63.85 | 62.98/61.46 |
| CenterPoint-Dynamic-Pillar | 70.46/69.93 | 62.06/61.58 | 73.92/63.35 | 65.91/56.33 | 66.24/64.69 | 63.73/62.24 |
| センターポイント | 71.33/70.76 | 63.16/62.65 | 72.09/65.49 | 64.27/58.23 | 68.68/67.39 | 66.11/64.87 |
| センターポイント(resnet) | 72.76/72.23 | 64.91/64.42 | 74.19/67.96 | 66.03/60.34 | 71.04/69.79 | 68.49/67.28 |
| パートA2アンカー | 74.66/74.12 | 65.82/65.32 | 71.71/62.24 | 62.46/54.06 | 66.53/65.18 | 64.05/62.75 |
| pv-rcnn(anchorhead) | 75.41/74.74 | 67.44/66.80 | 71.98/61.24 | 63.70/53.95 | 65.88/64.25 | 63.39/61.82 |
| PV-RCNN(センターヘッド) | 75.95/75.43 | 68.02/67.54 | 75.94/69.40 | 67.66/61.62 | 70.18/68.98 | 67.73/66.57 |
| Voxel R-CNN(センターヘッド)-Dynamic-Voxel | 76.13/75.66 | 68.18/67.74 | 78.20/71.98 | 69.29/63.59 | 70.75/69.68 | 68.25/67.21 |
| PV-RCNN ++ | 77.82/77.32 | 69.07/68.62 | 77.99/71.36 | 69.92/63.74 | 71.80/70.71 | 69.31/68.26 |
| PV-RCNN ++(RESNET) | 77.61/77.14 | 69.18/68.75 | 79.42/73.31 | 70.88/65.21 | 72.50/71.39 | 69.84/68.77 |
ここでは、完全なトレーニングセットでトレーニングされたいくつかのモデルのパフォーマンスも提供します(PV-RCNN ++の論文を参照):
| パフォーマンス@(100%のデータでトレーニング) | VEC_L1 | VEC_L2 | ped_l1 | ped_l2 | CYC_L1 | CYC_L2 |
|---|---|---|---|---|---|---|
| 2番 | 72.27/71.69 | 63.85/63.33 | 68.70/58.18 | 60.72/51.31 | 60.62/59.28 | 58.34/57.05 |
| センターポイントピラー | 73.37/72.86 | 65.09/64.62 | 75.35/65.11 | 67.61/58.25 | 67.76/66.22 | 65.25/63.77 |
| パートA2アンカー | 77.05/76.51 | 68.47/67.97 | 75.24/66.87 | 66.18/58.62 | 68.60/67.36 | 66.13/64.93 |
| voxelnext-2d | 77.94/77.47 | 69.68/69.25 | 80.24/73.47 | 72.23/65.88 | 73.33/72.20 | 70.66/69.56 |
| voxelnext | 78.16/77.70 | 69.86/69.42 | 81.47/76.30 | 73.48/68.63 | 76.06/74.90 | 73.29/72.18 |
| PV-RCNN(センターヘッド) | 78.00/77.50 | 69.43/68.98 | 79.21/73.03 | 70.42/64.72 | 71.46/70.27 | 68.95/67.79 |
| PV-RCNN ++ | 79.10/78.63 | 70.34/69.91 | 80.62/74.62 | 71.86/66.30 | 73.49/72.38 | 70.70/69.62 |
| PV-RCNN ++(RESNET) | 79.25/78.78 | 70.61/70.18 | 81.83/76.28 | 73.17/68.00 | 73.72/72.66 | 71.21/70.19 |
| dsvt-pillar | 79.44/78.97 | 71.24/70.81 | 83.00/77.22 | 75.45/69.95 | 76.70/75.70 | 73.83/72.86 |
| DSVT-Voxel | 79.77/79.31 | 71.67/71.25 | 83.75/78.92 | 76.21/71.57 | 77.57/76.58 | 74.70/73.73 |
| PV-RCNN ++(ResNet、2フレーム) | 80.17/79.70 | 72.14/71.70 | 83.48/80.42 | 75.54/72.61 | 74.63/73.75 | 72.35/71.50 |
| mppnet(4フレーム) | 81.54/81.06 | 74.07/73.61 | 84.56/81.94 | 77.20/74.67 | 77.15/76.50 | 75.01/74.38 |
| mppnet(16フレーム) | 82.74/82.28 | 75.41/74.96 | 84.69/82.25 | 77.43/75.06 | 77.28/76.66 | 75.13/74.52 |
Waymo Datasetライセンス契約のため、上記の事前に保護されたモデルを提供することはできませんでしたが、デフォルトの構成でトレーニングすることで同様のパフォーマンスを簡単に達成できます。
すべてのモデルは8つのGPUでトレーニングされており、ダウンロード可能です。 bevfusionのトレーニングについては、ガイドラインを参照してください。
| メイト | マーズ | マオエ | メイブ | マアー | 地図 | nds | ダウンロード | |
|---|---|---|---|---|---|---|---|---|
| Pointpillar-Multihead | 33.87 | 26.00 | 32.07 | 28.74 | 20.15 | 44.63 | 58.23 | モデル23M |
| セカンドマルティヘッド(CBG) | 31.15 | 25.51 | 26.64 | 26.26 | 20.46 | 50.59 | 62.29 | モデル-35m |
| CenterPoint-PointPillar | 31.13 | 26.04 | 42.92 | 23.90 | 19.14 | 50.03 | 60.70 | モデル23M |
| CenterPoint(voxel_size = 0.1) | 30.11 | 25.55 | 38.28 | 21.94 | 18.87 | 56.03 | 64.54 | モデル-34M |
| CenterPoint(voxel_size = 0.075) | 28.80 | 25.43 | 37.27 | 21.55 | 18.24 | 59.22 | 66.48 | モデル-34M |
| voxelnext(voxel_size = 0.075) | 30.11 | 25.23 | 40.57 | 21.69 | 18.56 | 60.53 | 66.65 | モデル-31M |
| トランスフュージョンl* | 27.96 | 25.37 | 29.35 | 27.31 | 18.55 | 64.58 | 69.43 | モデル-32M |
| bevfusion | 28.03 | 25.43 | 30.19 | 26.76 | 18.48 | 67.75 | 70.98 | モデル-157M |
*:トレーニング中に最後のいくつかのエポックでデータの増強を無効にするフェード戦略を使用します。
すべてのモデルは8 GPUでトレーニングされています。
| 車両 | 歩行者 | サイクリスト | 地図 | |
|---|---|---|---|---|
| pointrcnn | 52.09 | 4.28 | 29.84 | 28.74 |
| ポイントピラー | 68.57 | 17.63 | 46.81 | 44.34 |
| 2番 | 71.19 | 26.44 | 58.04 | 51.89 |
| PV-RCNN | 77.77 | 23.50 | 59.37 | 53.55 |
| センターポイント | 78.02 | 49.74 | 67.22 | 64.99 |
すべてのモデルは4つのGPUでトレーニングされています。
| 地図 | ダウンロード | |
|---|---|---|
| voxelnext | 30.5 | モデル-32M |
プルリクエストを送信して、他のデータセットをサポートするためのようこそ。
OpenPCDetのインストールについては、install.mdを参照してください。
demo.mdを参照して、事前に守られたモデルでテストし、カスタムデータまたは元のKittiデータの予測結果を視覚化してください。
このプロジェクトに関する詳細を学ぶには、gets_started.mdを参照してください。
OpenPCDetは、Apache 2.0ライセンスの下でリリースされます。
OpenPCDetは、上記のように複数のLIDARベースの知覚モデルをサポートするLIDARベースの3Dシーン認識のオープンソースプロジェクトです。 PCDetの一部は、上記のサポートされた方法の公式リリースコードから学習されています。提案された方法と公式の実装に感謝します。
このレポは、以前の作品を再実装したり、新しい方法を開発するプロセスをスピードアップすることにより、研究コミュニティに利益をもたらす強力で柔軟なコードベースとして機能することを願っています。
このプロジェクトがあなたの研究で役立つと思う場合は、引用を検討してください。
@misc{openpcdet2020,
title={OpenPCDet: An Open-source Toolbox for 3D Object Detection from Point Clouds},
author={OpenPCDet Development Team},
howpublished = {url{https://github.com/open-mmlab/OpenPCDet}},
year={2020}
}
このレポに貢献することにより、OpenPCDET開発チームのメンバーになることを歓迎し、潜在的な貢献についてお気軽にお問い合わせください。