在跑 VIBE 时,使用了不带显示器的 Centos 服务器, 在使用 pyrender 进行 offscreen 渲染时报错 OpenGL.error.GLError: GLError(err = 12296, ,具体如下:

Traceback (most recent call last):
  File "demo.py", line 416, in <module>
    main(args)
  File "demo.py", line 278, in main
    renderer = Renderer(resolution=(orig_width, orig_height), orig_img=True, wireframe=args.wireframe)
  File "***/VIBE/lib/utils/renderer.py", line 60, in __init__
    point_size=1.0
  File "***/anaconda3/envs/vibe-env/lib/python3.7/site-packages/pyrender/offscreen.py", line 31, in __init__
    self._create()
  File "***/anaconda3/envs/vibe-env/lib/python3.7/site-packages/pyrender/offscreen.py", line 134, in _create
    self._platform.init_context()
  File "***/anaconda3/envs/vibe-env/lib/python3.7/site-packages/pyrender/platforms/egl.py", line 177, in init_context
    assert eglInitialize(self._egl_display, major, minor)
  File "***/anaconda3/envs/vibe-env/lib/python3.7/site-packages/OpenGL/platform/baseplatform.py", line 409, in __call__
    return self( *args, **named )
  File "***/anaconda3/envs/vibe-env/lib/python3.7/site-packages/OpenGL/error.py", line 232, in glCheckError
    baseOperation = baseOperation,
OpenGL.error.GLError: GLError(
        err = 12296,
        baseOperation = eglInitialize,
        cArguments = (
                <OpenGL._opaque.EGLDisplay_pointer object at 0x7f883a03a170>,
                c_long(0),
                c_long(0),
        result = 0
  1. Ubuntu 可参考 https://pyrender.readthedocs.io/en/latest/install/index.html#installmesa 使用 OSMesa 来进行 offscreen render
  2. 可更方便使用 ·conda· 来安装 OSMesa,如下:
    conda install osmesa
    

    注意:安装好 OSMesa 之后,重新安装 PyOpenGL,否则仍会报错,如下:

    pip uninstall pyopengl
    git clone https://github.com/mmatl/pyopengl.git
    pip install ./pyopengl
    

    在运行脚本之前指定 PYOPENGL_PLATFORMosmesa 即可,如下:

    # demp.py
    import os
    # os.environ['PYOPENGL_PLATFORM'] = 'egl'
    os.environ['PYOPENGL_PLATFORM'] = 'osmesa'
    

    注意os.environ['PYOPENGL_PLATFORM'] = 'osmesa' 最好紧跟在 import os 后面,确保在使用 render 之前将 PYOPENGL_PLATFORM 更改为 osmesa,也可以在具体使用 render 之前显式指定 os.environ['PYOPENGL_PLATFORM'] = 'osmesa'

    错误描述在跑 VIBE 时,使用了不带显示器的 Centos 服务器, 在使用 pyrender 进行 offscreen 渲染时报错 error=12996,具体如下:Traceback (most recent call last): File "demo.py", line 416, in &lt;module&gt; main(args) File "demo.py", line 278, in main renderer = Renderer(resolution=(o
    Ubuntu下使用pyrender的离屏渲染时会出现如下错误: OpenGL.error.GLError: GLError(err = 12289,baseOperation = eglMakeCurrent …
    Ubuntu下使用pyrender的离屏渲染时会出现如下错误: OpenGL.error.GLError: GLError(err = 12289,baseOperation = eglMakeCurrent .... 解决办法: apt update apt-get install llvm-6.0 apt-get install libsm6 libxrender1 libfontconfi...
    服务器linux图形界面上pyrender.OffscreenRenderer出现pyglet.canvas.xlib.NoSuchDisplayException的小白级解决方式 用osmesa
    Offscreen Rendering 离屏渲染: 为什么使用离屏渲染?(1、一些特殊效果,比如阴影、圆角。2、复用提高效率,打开光栅化可以节约第二次及以后的渲染时间); 避免圆角离屏渲染的方案
    转载:http://blog.csdn.net/u010270148/article/details/52934295如果函数参数不符或者不符合当前上下文设置的状态,则会导致 OpenGL Error。已 error code 来表示。绝大多数情况下 OpenGL functions 产生 errors,则不会生效。少数有效。 OpenGL Error 存储在一个队列中,直到该错误被处理。因此,如果
    GLenumglGetError(void); glGetError返回错误标志的值。每个可检测的错误都分配有数字代码和符号名称。发生错误时,错误标志将设置为相应的错误代码值。在调用glGetError(返回错误代码)之前,不会记录其他错误,并将标志重置为GL_NO_ERROR。如果对glGetError的调用返回GL_NO_ERROR,则自上次调用glGetError或自GL初始化以来,没有可检测到的错误。 为了允许分...
    可以通过以下命令在 PyCharm 中安装 opencv_python_headless==4.5.5.62: pip install opencv_python_headless==4.5.5.62 请确保您的 PyCharm 环境已经正确配置了 Python 和 pip。
    SPIN、VIBE 等 3D Human Pose Estimation 方法中的弱透视投影 (Weak Perspective Projection) Light of Monet: 你的意思是?: def convert_weak_perspective_to_perspective( weak_perspective_camera, focal_length=5000., img_res=224, # Convert Weak Perspective Camera [s, tx, ty] to camera translation [tx, ty, tz] # in 3D given the bounding box size # This camera translation can be used in a full perspective projection # if isinstance(focal_length, torch.Tensor): # focal_length = focal_length[:, 0] perspective_camera = torch.stack( weak_perspective_camera[:, 1], weak_perspective_camera[:, 2], 2 * focal_length / (img_res * weak_perspective_camera[:, 0] + 1e-9) dim=-1 return perspective_camera SPIN、VIBE 等 3D Human Pose Estimation 方法中的弱透视投影 (Weak Perspective Projection) Light of Monet: 你标题是弱透视投影,但代码完全就是透视投影啊 Video Style Transfer汇总 justvibe.: 请问2022的CCPL是不是也应该更新到里面嘞? SPIN、VIBE 等 3D Human Pose Estimation 方法中的弱透视投影 (Weak Perspective Projection) qingyuan512: 您有看过PIFu那篇文章嘛?有些问题想请教下