DLR-RM / AugmentedAutoencoder

Official Code: Implicit 3D Orientation Learning for 6D Object Detection from RGB Images
MIT License
340 stars 97 forks source link

Generate dataset from .ply model #80

Closed ghost closed 4 years ago

ghost commented 4 years ago

Hello, how can i generate the training dataset for RetinaNet using the generate_syn_det_train.py file?

I run the following: python generate_syn_det_train.py -o [output folder] -m [path/to/mymodel_1.ply] -n 10000 -s 1000 -v [path to a single background.png] but I get the following error:

failessing: 0% [ ] ETA: --:--:-- Traceback (most recent call last): File "detection_utils/generate_syn_det_train.py", line 98, in <module> bgr, obj_info = renderer.render() File "/home/manuel/Desktop/AugmentedAutoencoder/aae/lib/python3.6/site-packages/auto_pose/meshrenderer/scenerenderer.py", line 122, in render random_light=True File "/home/manuel/Desktop/AugmentedAutoencoder/aae/lib/python3.6/site-packages/auto_pose/meshrenderer/meshrenderer_phong.py", line 200, in render_many glDrawElementsIndirect(GL_TRIANGLES, GL_UNSIGNED_INT, ctypes.c_void_p(o*4*5)) TypeError: cannot be converted to pointer

What am I doing wrong? Thanks in advance

Edit: Setting o = int(obj_ids[i]) solved this issue, but now I have the following error: Traceback (most recent call last): File "detection_utils/generate_syn_det_train.py", line 98, in <module> bgr, obj_info = renderer.render() File "/home/manuel/Desktop/AugmentedAutoencoder/aae/lib/python3.6/site-packages/auto_pose/meshrenderer/scenerenderer.py", line 122, in render random_light=True File "/home/manuel/Desktop/AugmentedAutoencoder/aae/lib/python3.6/site-packages/auto_pose/meshrenderer/meshrenderer_phong.py", line 213, in render_many obj_bb = misc.calc_2d_bbox(xs, ys, (W,H)) File "/home/manuel/Desktop/AugmentedAutoencoder/aae/lib/python3.6/site-packages/auto_pose/meshrenderer/pysixd/misc.py", line 5, in calc_2d_bbox bb_tl = [xs.min(), ys.min()] File "/home/manuel/Desktop/AugmentedAutoencoder/aae/lib/python3.6/site-packages/numpy/core/_methods.py", line 34, in _amin return umr_minimum(a, axis, None, out, keepdims, initial, where) ValueError: zero-size array to reduction operation minimum which has no identity

I understand that this is due to the fact that xs and ys are empty because of the depth matrix set to 0. But what should I do to correctly generate this dataset starting from a .ply model? Thanks in advance

MartinSmeyer commented 4 years ago

Hi @Zaxorn,

have you tried with -s 1 option, maybe your object model is defined in meters? Can you visualize the color images?

ghost commented 4 years ago

Hello, thanks for your reply. Looks like I had a problem in the model.ply that was way too small. Even augmenting the vertex scale it didn't work and I still don't understand why. Augmenting the model scale and setting -s 1 everything works fine now. Thanks again for your work.