Skip to content

Commit 8ddb672

Browse files
authored
Merge pull request #468 from isl-org/dev_to_master_0.15
dev to master for 0.15
2 parents 8ed3afd + bc721c5 commit 8ddb672

39 files changed

+1795
-1101
lines changed

.github/workflows/style.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ name: Style check
33
on:
44
workflow_dispatch:
55
push:
6-
branches:
7-
- master
6+
branches: [master, dev]
87
pull_request:
98
types: [opened, reopened, synchronize]
109

.github/workflows/ubuntu.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ name: Ubuntu CI
33
on:
44
workflow_dispatch:
55
push:
6-
branches:
7-
- master
6+
branches: [master, dev]
87
pull_request:
98
types: [opened, reopened, synchronize]
109

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1+
## 0.15
2+
* Add support for Images and their visualization (#366)
3+
* Add RandLANet MIT licensed implementation (#454)
4+
* Refactor config parsing (#460)
5+
* Update pl3d, s3dis, scannet and semantic3d datasets to BaseDataSplit (#451)
6+
* Fix missing axis_align_matrix in Scannet preprocesing (#456)
7+
* Fix OpenVINOModel in Torch pipeline (#447)
8+
* Intel OpenVINO backend (#406)
9+
* Downgrade torch on Mac to 1.8.1 (#436) (#439)
10+
* Add bounding boxes to Visualizer DataModel (#431)
11+
112
## 0.14
213
* Added CHANGELOG
314
* Added RandLA-Net's License (PR #423)

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ for details.
261261

262262
### Using predefined scripts
263263

264-
[`scripts/run_pipeline.py`](https://github.com/isl-org/Open3D-ML/tree/master/scripts/run_pipeline.py)
264+
[`scripts/run_pipeline.py`](https://github.com/isl-org/Open3D-ML/blob/master/scripts/run_pipeline.py)
265265
provides an easy interface for training and evaluating a model on a dataset. It saves
266266
the trouble of defining specific model and passing exact configuration.
267267

@@ -322,17 +322,16 @@ The table shows the available models and datasets for the segmentation task and
322322

323323
| Model / Dataset | SemanticKITTI | Toronto 3D | S3DIS | Semantic3D | Paris-Lille3D | ScanNet |
324324
|--------------------|---------------|----------- |-------|--------------|-------------|---------|
325-
| RandLA-Net (tf) | [53.7](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantickitti_202010091306.zip) | [69.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_toronto3d_202010091250.zip) | [67.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_s3dis_202106011448utc.zip) | [76.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantic3d_202012120312utc.zip) | [70.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_parislille3d_202012160654utc.zip) | - |
326-
| RandLA-Net (torch) | [52.8](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantickitti_202009090354utc.pth) | [71.2](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_toronto3d_202010091306utc.pth) | [67.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_s3dis_202010091238.pth) | [76.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantic3d_202012120312utc.pth) | [70.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_parislille3d_202012160654utc.pth) | - |
325+
| RandLA-Net (tf) | [53.7](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantickitti_202201071330utc.zip) | [73.7](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_toronto3d_202201071330utc.zip) | [70.9](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_s3dis_202201071330utc.zip) | [76.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantic3d_202201071330utc.zip) | [70.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_parislille3d_202201071330utc.zip)* | - |
326+
| RandLA-Net (torch) | [52.8](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantickitti_202201071330utc.pth) | [74.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_toronto3d_202201071330utc.pth) | [70.9](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_s3dis_202201071330utc.pth) | [76.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_semantic3d_202201071330utc.pth) | [70.0](https://storage.googleapis.com/open3d-releases/model-zoo/randlanet_parislille3d_202201071330utc.pth)* | - |
327327
| KPConv (tf) | [58.7](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_semantickitti_202010021102utc.zip) | [65.6](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_toronto3d_202012221551utc.zip) | [65.0](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_s3dis_202010091238.zip) | - | [76.7](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_parislille3d_202011241550utc.zip) | - |
328328
| KPConv (torch) | [58.0](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_semantickitti_202009090354utc.pth) | [65.6](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_toronto3d_202012221551utc.pth) | [60.0](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_s3dis_202010091238.pth) | - | [76.7](https://storage.googleapis.com/open3d-releases/model-zoo/kpconv_parislille3d_202011241550utc.pth) | - |
329329
| SparseConvUnet (torch)| - | - | - | - | - | [68](https://storage.googleapis.com/open3d-releases/model-zoo/sparseconvunet_scannet_202105031316utc.pth) |
330330
| SparseConvUnet (tf)| - | - | - | - | - | [68.2](https://storage.googleapis.com/open3d-releases/model-zoo/sparseconvunet_scannet_202105031316utc.zip) |
331331
| PointTransformer (torch)| - | - | [69.2](https://storage.googleapis.com/open3d-releases/model-zoo/pointtransformer_s3dis_202109241350utc.pth) | - | - | - |
332332
| PointTransformer (tf)| - | - | [69.2](https://storage.googleapis.com/open3d-releases/model-zoo/pointtransformer_s3dis_202109241350utc.zip) | - | - | - |
333333

334-
335-
> **_NOTE:_** RandLA-Net comes with a [Creative Commons BY-NC-SA 4.0](https://github.com/QingyongHu/RandLA-Net/blob/master/LICENSE) license which prohibits commercial use. We are working on a new implementation which will be available under the standard Open3D license (MIT).
334+
(*) Using weights from original author.
336335

337336
### Object Detection
338337

@@ -383,11 +382,11 @@ The following is a list of datasets for which we provide dataset reader classes.
383382
* SemanticKITTI ([project page](http://semantic-kitti.org/))
384383
* Toronto 3D ([github](https://github.com/WeikaiTan/Toronto-3D))
385384
* Semantic 3D ([project-page](http://www.semantic3d.net/))
386-
* S3DIS ([project-page](http://3dsemantics.stanford.edu/))
385+
* S3DIS ([project-page](http://buildingparser.stanford.edu/dataset.html))
387386
* Paris-Lille 3D ([project-page](https://npm3d.fr/paris-lille-3d))
388387
* Argoverse ([project-page](https://www.argoverse.org/))
389388
* KITTI ([project-page](http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d))
390-
* Lyft ([project-page](https://self-driving.lyft.com/level5/data/))
389+
* Lyft ([project-page](https://level-5.global/data))
391390
* nuScenes ([project-page](https://www.nuscenes.org/))
392391
* Waymo ([project-page](https://waymo.com/open/))
393392
* ScanNet([project-page](http://www.scan-net.org/))
@@ -404,6 +403,7 @@ For downloading these datasets visit the respective webpages and have a look at
404403
* [Adding a new model](docs/howtos.md#adding-a-new-model)
405404
* [Adding a new dataset](docs/howtos.md#adding-a-new-dataset)
406405
* [Visualize and compare input data, ground truth and results in TensorBoard](docs/tensorboard.md)
406+
* [Inference with Intel OpenVINO](docs/openvino.md)
407407

408408
## Contribute
409409
There are many ways to contribute to this project. You can:
@@ -425,7 +425,7 @@ Please also check out our communication channels to get in contact with the comm
425425

426426
<!--* [GitHub Issue](https://github.com/isl-org/Open3D/issues): bug reports, feature requests, etc.-->
427427
* [Forum](https://github.com/isl-org/Open3D/discussions): discussion on the usage of Open3D.
428-
* [Discord Chat](https://discord.gg/D35BGvn): online chats, discussions,
428+
* [Discord Chat](https://discord.com/invite/D35BGvn): online chats, discussions,
429429
and collaboration with other users and developers.
430430

431431
## Citation

ci/run_ci.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ python -m pip install -U torch==${TORCH_GLNX_VER} -f https://download.pytorch.or
3131
python -m pip install -U pytest=="$PYTEST_VER" \
3232
pytest-randomly=="$PYTEST_RANDOMLY_VER"
3333
python -m pip install -U yapf=="$YAPF_VER"
34+
python -m pip install -U openvino-dev==2021.4.2
3435

3536
echo 3. Configure for bundling the Open3D-ML part
3637
echo

docs/openvino.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# OpenVINO backend
2+
3+
Open3D-ML allows to use [Intel
4+
OpenVINO](https://github.com/openvinotoolkit/openvino) as an optional backend for deep learning models inference.
5+
6+
## Install
7+
8+
Install a compatible version of OpenVINO with:
9+
10+
```sh
11+
pip install -r requirements-openvino.txt
12+
```
13+
14+
## Usage
15+
16+
To enable OpenVINO, wrap a model in `ml3d.models.OpenVINOModel` class. In example,
17+
18+
```python
19+
net = ml3d.models.PointPillars(**cfg.model, device='cpu')
20+
net = ml3d.models.OpenVINOModel(net)
21+
```
22+
23+
Then use `net` as usual.
24+
25+
## Supported hardware
26+
27+
OpenVINO supports Intel CPUs, GPUs and VPUs. By default, model is executed on CPU.
28+
To switch between devices, use `net.to` option:
29+
30+
```python
31+
net.to("cpu") # CPU device (default)
32+
net.to("gpu") # GPU device
33+
net.to("myriad") # VPU device
34+
```
35+
36+
## Supported models
37+
38+
* `RandLA-Net` (tf, torch)
39+
* `KPConv` (tf, torch)
40+
* `PointPillars` (torch)

ml3d/configs/randlanet_parislille3d.yml

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -19,48 +19,30 @@ model:
1919
name: RandLANet
2020
batcher: DefaultBatcher
2121
ckpt_path: # path/to/your/checkpoint
22-
dim_feature: 8
23-
dim_input: 3
24-
dim_output:
25-
- 16
26-
- 64
27-
- 128
28-
- 256
29-
- 512
30-
grid_size: 0.08
31-
ignored_label_inds:
32-
- 0
33-
k_n: 16
34-
num_classes: 9
22+
num_neighbors: 16
3523
num_layers: 5
3624
num_points: 65536
37-
sub_sampling_ratio:
38-
- 4
39-
- 4
40-
- 4
41-
- 4
42-
- 2
25+
num_classes: 9
26+
ignored_label_inds: [0]
27+
sub_sampling_ratio: [4, 4, 4, 4, 2]
28+
in_channels: 3
29+
dim_features: 8
30+
dim_output: [16, 64, 128, 256, 512]
31+
grid_size: 0.06
4332
weight_decay: 0.001
44-
t_align: true
45-
t_normalize:
46-
recentering: [0, 1]
47-
t_augment:
48-
turn_on: false
49-
rotation_method: vertical
50-
scale_anisotropic: false
51-
symmetries: true
52-
noise_level: 0.01
53-
min_s: 0.9
54-
max_s: 1.1
33+
augment:
34+
recenter:
35+
dim: [0, 1, 2]
5536
pipeline:
5637
name: SemanticSegmentation
57-
adam_lr: 0.004
38+
optimizer:
39+
lr: 0.001
5840
batch_size: 2
5941
main_log_dir: ./logs
60-
max_epoch: 200
42+
max_epoch: 100
6143
save_ckpt_freq: 5
6244
scheduler_gamma: 0.9886
63-
test_batch_size: 2
45+
test_batch_size: 1
6446
train_sum_dir: train_log
6547
val_batch_size: 2
6648
summary:

ml3d/configs/randlanet_s3dis.yml

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,40 +13,35 @@ model:
1313
name: RandLANet
1414
batcher: DefaultBatcher
1515
ckpt_path: # path/to/your/checkpoint
16-
dim_feature: 8
17-
dim_input: 6
18-
dim_output:
19-
- 16
20-
- 64
21-
- 128
22-
- 256
23-
- 512
24-
grid_size: 0.04
25-
ignored_label_inds: []
26-
k_n: 16
27-
num_classes: 13
16+
num_neighbors: 16
2817
num_layers: 5
2918
num_points: 40960
30-
sub_sampling_ratio:
31-
- 4
32-
- 4
33-
- 4
34-
- 4
35-
- 2
36-
t_normalize:
37-
method: linear
38-
normalize_points: False
39-
feat_bias: 0
40-
feat_scale: 1
19+
num_classes: 13
20+
ignored_label_inds: []
21+
sub_sampling_ratio: [4, 4, 4, 4, 2]
22+
in_channels: 6
23+
dim_features: 8
24+
dim_output: [16, 64, 128, 256, 512]
25+
grid_size: 0.04
26+
augment:
27+
recenter:
28+
dim: [0, 1]
29+
rotate:
30+
method: vertical
31+
scale:
32+
min_s: 0.9
33+
max_s: 1.1
34+
noise:
35+
noise_std: 0.001
4136
pipeline:
4237
name: SemanticSegmentation
43-
adam_lr: 0.01
38+
optimizer:
39+
lr: 0.001
4440
batch_size: 2
45-
learning_rate: 0.01
4641
main_log_dir: ./logs
47-
max_epoch: 100
48-
save_ckpt_freq: 20
49-
scheduler_gamma: 0.95
42+
max_epoch: 200
43+
save_ckpt_freq: 3
44+
scheduler_gamma: 0.99
5045
test_batch_size: 3
5146
train_sum_dir: train_log
5247
val_batch_size: 2

ml3d/configs/randlanet_semantic3d.yml

Lines changed: 28 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ dataset:
33
dataset_path: # path/to/your/dataset
44
cache_dir: ./logs/cache_small3d/
55
class_weights: [5181602, 5012952, 6830086, 1311528, 10476365, 946982, 334860, 269353]
6-
ignored_label_inds:
7-
- 0
6+
ignored_label_inds: [0]
87
num_points: 65536
98
test_result_folder: ./test
109
use_cache: true
@@ -17,52 +16,43 @@ model:
1716
name: RandLANet
1817
batcher: DefaultBatcher
1918
ckpt_path: # path/to/your/checkpoint
20-
dim_feature: 8
21-
dim_input: 6
22-
dim_output:
23-
- 16
24-
- 64
25-
- 128
26-
- 256
27-
- 512
28-
grid_size: 0.06
29-
ignored_label_inds:
30-
- 0
31-
k_n: 16
32-
num_classes: 8
19+
num_neighbors: 16
3320
num_layers: 5
3421
num_points: 65536
35-
sub_sampling_ratio:
36-
- 4
37-
- 4
38-
- 4
39-
- 4
40-
- 2
41-
t_normalize:
42-
method: linear
43-
feat_bias: 0
44-
feat_scale: 255
45-
t_augment:
46-
turn_on: true
47-
rotation_method: vertical
48-
scale_anisotropic: true
49-
symmetries: [true, false, false]
50-
noise_level: 0.001
51-
min_s: 0.8
52-
max_s: 1.2
22+
num_classes: 8
23+
ignored_label_inds: [0]
24+
sub_sampling_ratio: [4, 4, 4, 4, 2]
25+
in_channels: 6
26+
dim_features: 8
27+
dim_output: [16, 64, 128, 256, 512]
28+
grid_size: 0.06
29+
augment:
30+
recenter:
31+
dim: [0, 1]
32+
normalize:
33+
feat:
34+
method: linear
35+
bias: 0
36+
scale: 255
37+
rotate:
38+
method: vertical
39+
scale:
40+
min_s: 0.9
41+
max_s: 1.1
42+
noise:
43+
noise_std: 0.001
5344
pipeline:
5445
name: SemanticSegmentation
55-
adam_lr: 0.01
46+
optimizer:
47+
lr: 0.001
5648
batch_size: 2
57-
learning_rate: 0.01
5849
main_log_dir: ./logs
5950
max_epoch: 100
6051
save_ckpt_freq: 5
61-
scheduler_gamma: 0.95
52+
scheduler_gamma: 0.9886
6253
test_batch_size: 1
6354
train_sum_dir: train_log
64-
val_batch_size: 1
65-
test_compute_metric: false
55+
val_batch_size: 2
6656
summary:
6757
record_for: []
6858
max_pts:

0 commit comments

Comments
 (0)