DLR-RM / AugmentedAutoencoder

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

RuntimeError: Framebuffer not complete. #3

Closed SonOfCoding closed 5 years ago

SonOfCoding commented 5 years ago

I have installed the pyopengl as issue#1 mentioned. However, I get this problem and I dont know why. Could you please help me? Thank you.

(py2.7_edc) edison@amax-server:~/edison/aae/AugmentedAutoencoder/AE_WORKSPACE_PATH$ ae_train exp_group/my_autoencoder -d 128 128 3 [[8, 8], [16, 16], [32, 32], [64, 64]] (?, 128, 128, 3) (?, 128, 128, 3) No handlers could be found for logger "OpenGL.acceleratesupport" | (ETA: --:--:--) Traceback (most recent call last): File "/home/edison/py2.7_edc/bin/ae_train", line 11, in sys.exit(main()) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/ae_train.py", line 90, in main dataset.get_training_images(dataset_path, args) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/dataset.py", line 93, in get_training_images self.render_training_images() File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/dataset.py", line 246, in render_training_images bgr_x, depth_x = self.renderer.render( File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/utils.py", line 15, in decorator setattr(self, attribute, function(self)) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/dataset.py", line 75, in renderer float(self._kw['vertex_scale']) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/meshrenderer/meshrenderer_phong.py", line 24, in init GL_DEPTH_ATTACHMENT: gu.Renderbuffer(GL_DEPTH_COMPONENT32F, W, H) } ) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/meshrenderer/gl_utils/fbo.py", line 24, in init raise RuntimeError('Framebuffer not complete.') RuntimeError: Framebuffer not complete.

MartinSmeyer commented 5 years ago

please run

glxinfo -B

and print the output here

SonOfCoding commented 5 years ago

(py2.7_edc) edison@amax-server:~/edison/aae/AugmentedAutoencoder/AE_WORKSPACE_PATH$ glxinfo -B name of display: localhost:16.0 display: localhost:16 screen: 0 direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose) OpenGL vendor string: Mesa Project OpenGL renderer string: Software Rasterizer OpenGL version string: 1.4 (2.1 Mesa 10.5.4)

this is the output, please help me. is there a problem on direct rendering?

MartinSmeyer commented 5 years ago

This suggests that you are using the Mesa GL library, not the Nvidia one.

Which Nvidia graphics card do you have? Can you do nvidia-smi and post the Driver Version?

You should probably update your Nvidia Driver.

SonOfCoding commented 5 years ago

I am using Nvidia GTX1080TI, Driver Version is 384.130

image

should I update the driver? is it because of lack of memory ?

SonOfCoding commented 5 years ago

I re-run the code and using my own .ply model. This time the error becomes the following:

(py2.7_edc) edison@amax-server:~/edison/aae/AugmentedAutoencoder/AE_WORKSPACE_PATH$ ae_train exp_group/my_autoencoder -d 128 128 3 [[8, 8], [16, 16], [32, 32], [64, 64]] (?, 128, 128, 3) (?, 128, 128, 3) No handlers could be found for logger "OpenGL.acceleratesupport"ETA: --:--:--) Traceback (most recent call last): | File "/home/edison/py2.7_edc/bin/ae_train", line 11, in sys.exit(main()) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/ae_train.py", line 90, in main dataset.get_training_images(dataset_path, args) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/dataset.py", line 93, in get_training_images self.render_training_images() File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/dataset.py", line 246, in render_training_images bgr_x, depth_x = self.renderer.render( File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/utils.py", line 15, in decorator setattr(self, attribute, function(self)) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/ae/dataset.py", line 75, in renderer float(self._kw['vertex_scale']) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/meshrenderer/meshrenderer_phong.py", line 41, in init attributes = gu.geo.load_meshes_sixd(models_cad_files, vertex_tmp_store_folder, recalculate_normals=False) File "/home/edison/py2.7_edc/local/lib/python2.7/site-packages/auto_pose/meshrenderer/gl_utils/geometry.py", line 31, in load_meshes_sixd faces = np.array(model['faces']).astype(np.uint32) KeyError: 'faces'

could you please give me a help? Thank you.

MartinSmeyer commented 5 years ago

This looks like a cluster configuration. As mentioned in the README, you have to render on your local machine with a display connected. Headless rendering is not supported by glfw, so this is unfortunately not in my hands.

If your local Nvidia GPU isn't powerful, a workaround is to only render locally, i.e. first run

ae_train exp_group/my_autoencoder -gen

on your local machine and then copy the resulting .npz file (from local $AE_WORKSPACE_PATH/tmp_datasets/) to your Cluster's ($AE_WORKSPACE_PATH/tmp_datasets/) for training with:

ae_train exp_group/my_autoencoder

MartinSmeyer commented 5 years ago

Your .ply file does not contain faces, i.e. you don't seem to have a real, meshed 3D model. You can create a mesh model from a point cloud with meshlab.

SonOfCoding commented 5 years ago

I see, I will try another 3D model to see if it is okay. Thank you very much for your help :)

ming-c commented 5 years ago

@SonOfCoding Hi, I am facing the same RuntimeError: Framebuffer not complete. when running the program. Could you pls advise me how did you solve it? I am using the CAD model from T-LESS dataset. Cheers.