ocnn 2.2.5__py3-none-any.whl → 2.2.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ocnn/__init__.py CHANGED
@@ -12,7 +12,7 @@ from . import models
12
12
  from . import dataset
13
13
  from . import utils
14
14
 
15
- __version__ = '2.2.5'
15
+ __version__ = '2.2.6'
16
16
 
17
17
  __all__ = [
18
18
  'octree',
ocnn/octree/octree.py CHANGED
@@ -153,7 +153,9 @@ class Octree:
153
153
  point_cloud (Points): The input point cloud.
154
154
 
155
155
  .. note::
156
- Currently, the batch size of the point cloud must be 1.
156
+ The point cloud must be strictly in range :obj:`[-1, 1]`. A good practice
157
+ is to normalize it into :obj:`[-0.99, 0.99]` or :obj:`[0.9, 0.9]` to retain
158
+ some margin.
157
159
  '''
158
160
 
159
161
  self.device = point_cloud.device
ocnn/octree/points.py CHANGED
@@ -63,9 +63,9 @@ class Points:
63
63
  if self.batch_id is not None:
64
64
  assert self.batch_id.dim() == 2 or self.batch_id.dim() == 1
65
65
  assert self.batch_id.size(0) == self.points.size(0)
66
- assert self.batch_id.size(1) == 1
67
66
  if self.batch_id.dim() == 1:
68
67
  self.batch_id = self.batch_id.unsqueeze(1)
68
+ assert self.batch_id.size(1) == 1
69
69
 
70
70
  @property
71
71
  def npt(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ocnn
3
- Version: 2.2.5
3
+ Version: 2.2.6
4
4
  Summary: Octree-based Sparse Convolutional Neural Networks
5
5
  Home-page: https://github.com/octree-nn/ocnn-pytorch
6
6
  Author: Peng-Shuai Wang
@@ -28,30 +28,41 @@ Requires-Dist: packaging
28
28
 
29
29
  This repository contains the **pure PyTorch**-based implementation of
30
30
  [O-CNN](https://wang-ps.github.io/O-CNN.html). The code has been tested with
31
- `Pytorch>=1.6.0`, and `Pytorch>=1.9.0` is preferred.
31
+ `Pytorch>=1.6.0`, and `Pytorch>=1.9.0` is preferred. The *original*
32
+ implementation of O-CNN is based on C++ and CUDA and can be found
33
+ [here](https://github.com/Microsoft/O-CNN), which has received
34
+ [![stars - O-CNN](https://img.shields.io/github/stars/microsoft/O-CNN?style=social)](https://github.com/microsoft/O-CNN) and
35
+ [![forks - O-CNN](https://img.shields.io/github/forks/microsoft/O-CNN?style=social)](https://github.com/microsoft/O-CNN).
32
36
 
33
- O-CNN is an octree-based sparse convolutional neural network framework for 3D
34
- deep learning. O-CNN constrains the CNN storage and computation into non-empty
35
- sparse voxels for efficiency and uses the `octree` data structure to organize
36
- and index these sparse voxels.
37
37
 
38
- The concept of sparse convolution in O-CNN is the same with
39
- [H-CNN](https://ieeexplore.ieee.org/abstract/document/8580422),
38
+ O-CNN is an octree-based 3D convolutional neural network framework for 3D data.
39
+ O-CNN constrains the CNN storage and computation into non-empty sparse voxels
40
+ for efficiency and uses the `octree` data structure to organize and index these
41
+ sparse voxels. Currently, this type of 3D convolution is known as Sparse
42
+ Convolution in the research community.
43
+
44
+
45
+ The concept of Sparse Convolution in O-CNN is the same with
40
46
  [SparseConvNet](https://openaccess.thecvf.com/content_cvpr_2018/papers/Graham_3D_Semantic_Segmentation_CVPR_2018_paper.pdf),
41
- and
42
- [MinkowskiNet](https://openaccess.thecvf.com/content_CVPR_2019/papers/Choy_4D_Spatio-Temporal_ConvNets_Minkowski_Convolutional_Neural_Networks_CVPR_2019_paper.pdf).
43
- The key difference is that our O-CNN uses the `octree` to index the sparse
44
- voxels, while these 3 works use the `Hash Table`.
45
-
46
- Our O-CNN is published in SIGGRAPH 2017, H-CNN is published in TVCG 2018,
47
- SparseConvNet is published in CVPR 2018, and MinkowskiNet is published in
48
- CVPR 2019. Actually, our O-CNN was submitted to SIGGRAPH in the end of 2016 and
49
- was officially accepted in March, 2017. The camera-ready version of our O-CNN was
50
- submitted to SIGGRAPH in April, 2017. We just did not post our paper on Arxiv
51
- during the review process of SIGGRAPH. Therefore, **the idea of constraining CNN
52
- computation into sparse non-emtpry voxels is first proposed by our O-CNN**.
53
- Currently, this type of 3D convolution is known as Sparse Convolution in the
54
- research community.
47
+ [MinkowskiNet](https://github.com/NVIDIA/MinkowskiEngine), and
48
+ [SpConv](https://github.com/traveller59/spconv).
49
+ The key difference is that our O-CNN uses `octrees` to index the sparse voxels,
50
+ while these works use `Hash Tables`. However, I believe that `octrees` may be
51
+ the right choice for Sparse Convolution. With `octrees`, I can implement the
52
+ Sparse Convolution with pure PyTorch. More importantly, with `octrees`, I can
53
+ also build efficient transformers for 3D data --
54
+ [OctFormer](https://github.com/octree-nn/octformer), which is extremely hard
55
+ with `Hash Tables`.
56
+
57
+
58
+ Our O-CNN is published in SIGGRAPH 2017, SparseConvNet is published in CVPR
59
+ 2018, and MinkowskiNet is published in CVPR 2019. Actually, our O-CNN was
60
+ submitted to SIGGRAPH in the end of 2016 and was officially accepted in March,
61
+ 2017. <!-- The camera-ready version of our O-CNN was submitted to SIGGRAPH in April, 2018. -->
62
+ We just did not post our paper on Arxiv during the review process of SIGGRAPH.
63
+ Therefore, **the idea of constraining CNN computation into sparse non-emtpry
64
+ voxels, i.e. Sparse Convolution, is first proposed by our O-CNN**.
65
+
55
66
 
56
67
  ## Key benefits of ocnn-pytorch
57
68
 
@@ -1,4 +1,4 @@
1
- ocnn/__init__.py,sha256=z0LmCb7hdmNZekWucdzmEvhYse0eJ5L3jGScTreJ7ok,582
1
+ ocnn/__init__.py,sha256=Vek3w8YFUUmHO2aGzIHBD_ZUeKzWyJxAPS0ZDK1bUUM,582
2
2
  ocnn/dataset.py,sha256=wvclvjlZs9qTeMXWLaO32K5d1VVY9XHSNuVVJEpVeeo,5266
3
3
  ocnn/utils.py,sha256=XhykveOjHoQd94gjJ5-opzXs-9MOCAzZ34ArZ8mG4sE,6726
4
4
  ocnn/models/__init__.py,sha256=F9PJRhOPHc1OrwkqcfywEBW0J6jmVW7-IHgWjGpY15U,724
@@ -26,11 +26,11 @@ ocnn/nn/octree_norm.py,sha256=XrSQ7oZKfepYqQIuPU4loaYNae_rgtPpekR0cqTvryg,4524
26
26
  ocnn/nn/octree_pad.py,sha256=suV6Ftb-UlUuoJzKdQ9DCP9oqVQJq7vXb9_6hq-kUk4,1323
27
27
  ocnn/nn/octree_pool.py,sha256=Zn2XLk5SFl6pqMhhKIvu1uZl5ebonFSlPcKr54fOIPA,6664
28
28
  ocnn/octree/__init__.py,sha256=vKZFc5_r6Gxg5KsPWiCZCR-umWWfWPoE7qBx4PIrUGA,630
29
- ocnn/octree/octree.py,sha256=SNhzI-UOce2oPtQ_KLmR2lduY2P1_ne5fe_4BLEhlv0,24590
30
- ocnn/octree/points.py,sha256=7_iiN0y0g9SgV8kLzuGW20C-MFOmz5hh1aQhDhUIa0Q,11355
29
+ ocnn/octree/octree.py,sha256=uFv0nNR_lIh6SgpDjlj4lraRbUolo2_gdfGVvyP5RxA,24711
30
+ ocnn/octree/points.py,sha256=TLlUGdguTkLDRxuEhC-1ejik6thuAWX3L-UiONbPLeM,11355
31
31
  ocnn/octree/shuffled_key.py,sha256=UJZ4eKNA_7nLbf9FbEvS_3VyrAqnZCOzk1hsPtJianM,3936
32
- ocnn-2.2.5.dist-info/LICENSE,sha256=YeOS0Plo8Uistv_8ZXdgddmN9GHJKnIiJ5FZ8zTW6Sw,1114
33
- ocnn-2.2.5.dist-info/METADATA,sha256=1r105xmAHwGG9tYy-xcnXuLCZCWVH_jrtao8wLZgCtk,3773
34
- ocnn-2.2.5.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
35
- ocnn-2.2.5.dist-info/top_level.txt,sha256=ayZdVOnxlOke3kgzAlrRh2IEL_qOudwOaEU3xhjtpZ0,5
36
- ocnn-2.2.5.dist-info/RECORD,,
32
+ ocnn-2.2.6.dist-info/LICENSE,sha256=YeOS0Plo8Uistv_8ZXdgddmN9GHJKnIiJ5FZ8zTW6Sw,1114
33
+ ocnn-2.2.6.dist-info/METADATA,sha256=pMj-GJiTUtxvjtjhBLQcBMi1CXZlU3NBiQKxHiPJR8M,4382
34
+ ocnn-2.2.6.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
35
+ ocnn-2.2.6.dist-info/top_level.txt,sha256=ayZdVOnxlOke3kgzAlrRh2IEL_qOudwOaEU3xhjtpZ0,5
36
+ ocnn-2.2.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.5.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
File without changes