Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dockerfile #14

Open
hoenigpeter opened this issue Nov 18, 2022 · 7 comments
Open

dockerfile #14

hoenigpeter opened this issue Nov 18, 2022 · 7 comments

Comments

@hoenigpeter
Copy link

Hi,

great work implementing this pose estimation architecture and sharing it with us.
However I have troubles getting it running due to dependency issues and so on
Is there a dockerfile available to get it running quickly?

Help is appreciated

@shanice-l
Copy link
Owner

Sry I'm not very familiar with docker. Can you make a docker file and share it with us?

@francescosarno
Copy link

If you can provide a docker file, it would be great

@hoenigpeter
Copy link
Author

@francescosarno @shanice-l you can find my dockerfile as well as docker-compose file in the new pull request

@francescosarno
Copy link

francescosarno commented May 16, 2023

Thank you for your help! I used your dockerfile and it works perfectly. But when I try to run the training of pose estimation I got the following error:

from . import CppEGLRenderer ImportError: cannot import name 'CppEGLRenderer' from 'lib.egl_renderer' (/gdrnpp_bop2022/core/gdrn_modeling/../../lib/egl_renderer/__init__.py)

Do you know what is this caused by?

@hoenigpeter
Copy link
Author

@francescosarno in the docker container, you need to compile the CppEglRenderer with:
bash lib/egl_renderer/compile_cpp_egl_renderer.sh

@NoelLD
Copy link

NoelLD commented Aug 23, 2023

Error: Bindless Textures not supported

Hello, thank you very much for contributing a working docker container. Testing the pose estimation worked fine for me, tested for lmo and itodd datasets. But I'm running into an error when I try training the pose etimation (tested for lmo and itodd dataset).

example: sudo ./core/gdrn_modeling/train_gdrn.sh configs/gdrn/lmo_pbr/convnext_a6_AugCosyAAEGray_BG05_mlL1_DMask_amodalClipBox_classAware_lmo.py 0

Error:RuntimeError: Bindless Textures not supported

The error is raised by Python Assert in lib/egl_renderer/glutils/egl_offscreen_context.py (line: 225-226): if not glInitBindlessTextureNV():

The function OpenGL.GL.NV.bindless_texture.glInitBindlessTextureNV() - (Returns a boolean indicating whether this extension is available: GL_NV_bindless_texture)

I checked the OpenGL extensions with the OpenGL Extensions Viewer on my host system, but the GL_NV_bindless_texture is listed.
I also installed the components by using the bash scripts/compile_all.sh. Some components threw an error but building the cpp egl renderer worked.
NVidia driver and toolkit is installed and accessible from inside the docker container.
Vcxsrv is used as a xserver, installed and tested.

Does anyone have the same problem or have an idea how to solve it?

additional Details:

  • Host OS: Windows 11
    • using WSL 2
  • GPU: NVIDIA GeForce RTX 2060
    • (Extension GL_NV_bindless_texture existing, checked)
    • Version: 4.6.0 NVIDIA 536.40

I also tried the run the Container on a different computer with Ubuntu as host OS, but the container didn't seem to start (maybe because it's an old one with too little ram.

Full Error output:

20230823_152019|DBG|OpenGL.platform.ctypesloader@65: Loaded libEGL.so => libEGL.so <CDLL 'libEGL.so', handle 7956b70 at 0x7fbae259d250>
20230823_152019|ERR|__main__@233: An error has been caught in function '<module>', process 'MainProcess' (16), thread 'MainThread' (140442637346624):
Traceback (most recent call last):

 File "./core/gdrn_modeling/main_gdrn.py", line 233, in <module>
    main(args)
    │    └ Namespace(config_file='configs/gdrn/itodd_pbr/convnext_a6_AugCosyAAEGray_BG05_mlL1_DMask_amodalClipBox_classAware_itodd.py', ...
    └ <function main at 0x7fba8b9ab3a0>

  File "./core/gdrn_modeling/main_gdrn.py", line 199, in main
    Lite(
    └ <class '__main__.Lite'>

  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/lite/lite.py", line 408, in _run_impl
    return run_method(*args, **kwargs)
           │           │       └ {}
           │           └ (Namespace(config_file='configs/gdrn/itodd_pbr/convnext_a6_AugCosyAAEGray_BG05_mlL1_DMask_amodalClipBox_classAware_itodd.py',...
           └ functools.partial(<bound method LightningLite._run_with_strategy_setup of <__main__.Lite object at 0x7fbb595f7c10>>, <bound m...

  File "/usr/local/lib/python3.8/dist-packages/pytorch_lightning/lite/lite.py", line 413, in _run_with_strategy_setup
    return run_method(*args, **kwargs)
           │           │       └ {}
           │           └ (Namespace(config_file='configs/gdrn/itodd_pbr/convnext_a6_AugCosyAAEGray_BG05_mlL1_DMask_amodalClipBox_classAware_itodd.py',...
           └ <bound method Lite.run of <__main__.Lite object at 0x7fbb595f7c10>>

  File "./core/gdrn_modeling/main_gdrn.py", line 155, in run
    renderer = get_renderer(cfg, data_ref, obj_names=train_obj_names, gpu_id=render_gpu_id)
               │            │    │                   │                       └ 0
               │            │    │                   └ ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '...
               │            │    └ <module 'ref.itodd' from '/gdrnpp_bop2022/core/gdrn_modeling/../../ref/itodd.py'>
               │            └ Config (path: configs/gdrn/itodd_pbr/convnext_a6_AugCosyAAEGray_BG05_mlL1_DMask_amodalClipBox_classAware_itodd.py): {'OUTPUT_...
               └ <function get_renderer at 0x7fba8bdc2dc0>

  File "/gdrnpp_bop2022/core/gdrn_modeling/../../core/gdrn_modeling/engine/engine_utils.py", line 281, in get_renderer
    ren = EGLRenderer(
          └ <class 'lib.egl_renderer.egl_renderer_v3.EGLRenderer'>

  File "/gdrnpp_bop2022/core/gdrn_modeling/../../lib/egl_renderer/egl_renderer_v3.py", line 81, in __init__
    self._context = OffscreenContext(gpu_id=cuda_device_idx)
    │               │                       └ 0
    │               └ <class 'lib.egl_renderer.glutils.egl_offscreen_context.OffscreenContext'>
    └ <lib.egl_renderer.egl_renderer_v3.EGLRenderer object at 0x7fba8b93a8b0>

  File "/gdrnpp_bop2022/core/gdrn_modeling/../../lib/egl_renderer/glutils/egl_offscreen_context.py", line 156, in __init__
    self.init_context()
    │    └ <function OffscreenContext.init_context at 0x7fbae202dca0>
    └ <lib.egl_renderer.glutils.egl_offscreen_context.OffscreenContext object at 0x7fba8b8e5250>

  File "/gdrnpp_bop2022/core/gdrn_modeling/../../lib/egl_renderer/glutils/egl_offscreen_context.py", line 228, in init_context
    raise RuntimeError("Bindless Textures not supported")

RuntimeError: Bindless Textures not supported

@CJSUN997
Copy link

CJSUN997 commented Sep 8, 2023

I meet the same error in WSL2 docker environment. And I think this is because bindlessTexuture maybe only supported by high version OpenGL or not supported by mesa deriver in wsl.
Have you tried to comment glInitBindlessTextureNV() in egl_offscreen_context.py?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants