open-mmlab / mmdetection3d

OpenMMLab's next-generation platform for general 3D object detection.
https://mmdetection3d.readthedocs.io/en/latest/
Apache License 2.0
5.18k stars 1.52k forks source link

Point cloud demo #27

Closed fabiopoiesi closed 4 years ago

fabiopoiesi commented 4 years ago

Hi,

The documentation has a problem.

Under Point cloud demo in the documentation the correct command line is: python demo/pcd_demo.py demo/kitti_000008.bin configs/second/hv_second_secfpn_6x8_80e_kitti-3d-car.py checkpoints/hv_second_secfpn_6x8_80e_kitti-3d-car_20200620_230238-393f000c.pth

(currently it says to use: hv_second_secfpn_6x8_80e_kitti-3d-3class_20200620_230238-9208083a.pth -> this is not the right one).


The I also tried a point cloud ply (sun3d dataset): python demo/pcd_demo.py demo/cloud_bin_109.ply configs/votenet/votenet_16x8_sunrgbd-3d-10class.py checkpoints/votenet_16x8_sunrgbd-3d-10class_20200620_230238-4483c0c0.pth

I had the this error: warnings.warn('ConvModule has norm and bias at the same time') Traceback (most recent call last): File "demo/pcd_demo.py", line 28, in main() File "demo/pcd_demo.py", line 22, in main result, data = inference_detector(model, args.pcd) File "/mnt/disk_1tb/research/mmdetection3d/mmdet3d/apis/inference.py", line 73, in inference_detector data = test_pipeline(data) File "/mnt/disk_1tb/research/mmdetection3d/venv/lib/python3.6/site-packages/mmdet/datasets/pipelines/compose.py", line 40, in call data = t(data) File "/mnt/disk_1tb/research/mmdetection3d/mmdet3d/datasets/pipelines/loading.py", line 306, in call points = self._load_points(pts_filename) File "/mnt/disk_1tb/research/mmdetection3d/mmdet3d/datasets/pipelines/loading.py", line 284, in _load_points points = np.frombuffer(pts_bytes, dtype=np.float32) ValueError: buffer size must be a multiple of element size

Thank you

ZwwWayne commented 4 years ago

Hi @fabiopoiesi , Thank you for your report. For the first issue, the path of the checkpoint is just an example and may not present the real path to be used. We will update the new path to ease the usage of the command. For the second issue, for now, ply files for data loading are not supported. You need to convert the files from ply format to bin format. We are considering support ply files and may add this feature in the future.

fabiopoiesi commented 4 years ago

How can I convert the ply to bin?

Tai-Wang commented 4 years ago

How can I convert the ply to bin?

Basically you can read the ply file with ply-based APIs (many for python), and write the point cloud data (x,y,z...) to bin file via numpy. Please check the data format can be aligned.

fabiopoiesi commented 4 years ago

So import a ply as numpy array, let's say with shape (N,3), then use

array.astype(np.float32).tofile('pcd.bin')

correct?

On Sun, 19 Jul 2020, 05:03 twang, notifications@github.com wrote:

How can I convert the ply to bin?

Basically you can read the ply file with ply-based APIs (many for python), and write the point cloud data (x,y,z...) to bin file via numpy. Please check the data format can be aligned.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/open-mmlab/mmdetection3d/issues/27#issuecomment-660577689, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEBXWKC3ZULZ7BEMWVFPVQLR4JPAZANCNFSM4O6NSPIQ .

Tai-Wang commented 4 years ago

So import a ply as numpy array, let's say with shape (N,3), then use array.astype(np.float32).tofile('pcd.bin') correct? On Sun, 19 Jul 2020, 05:03 twang, @.***> wrote: How can I convert the ply to bin? Basically you can read the ply file with ply-based APIs (many for python), and write the point cloud data (x,y,z...) to bin file via numpy. Please check the data format can be aligned. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#27 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEBXWKC3ZULZ7BEMWVFPVQLR4JPAZANCNFSM4O6NSPIQ .

Right.