VIBE复现过程,使用nvidia和libOpenGL.so渲染出错及解决方案

VIBE全称是"Video Inference for Human Body Pose and Shape Estimation",是2020年CVPR(computer vision and pattern recognition)中关于人体姿态骨架的一篇论文。
论文地址:https://arxiv.org/abs/1912.05656
github源码地址:https://github.com/mkocabas/VIBE

问题描述

根据作者给出的源码,在复现过程中出现以下问题:

return self._finalCall( *args, **named )
TypeError: 'NoneType' object is not callable During handling of the above exception, another exception occurred:
TypeError: startswith first arg must be bytes or a tuple of bytes, not str

解决方案

上述问题并不是VIBE本身的代码逻辑有问题,而是与nvidia驱动程序、OpenGL文件有关系。
这里给出了解决方案,也就是修改OpenGL/platform文件夹下的egl.py文件,将第36行的’GL’注释掉,换成’OpenGL’。

修改之后的egl.py完整文件如下:

import ctypes, ctypes.util
from OpenGL.platform import baseplatform, ctypesloaderclass EGLPlatform( baseplatform.BasePlatform ):"""EGL platform for opengl-es only platforms"""@baseplatform.lazy_propertydef GLES1(self):try:return ctypesloader.loadLibrary(ctypes.cdll,'GLESv1_CM', # ickmode=ctypes.RTLD_GLOBAL )except OSError as err:return None@baseplatform.lazy_propertydef GLES2(self):try:return ctypesloader.loadLibrary(ctypes.cdll,'GLESv2', mode=ctypes.RTLD_GLOBAL )except OSError as err:return None@baseplatform.lazy_propertydef GLES3(self):# implementers guide says to use the same name for the DLLreturn self.GLES2@baseplatform.lazy_propertydef GL(self):try:return ctypesloader.loadLibrary(ctypes.cdll,#'GL', 'OpenGL',mode=ctypes.RTLD_GLOBAL )except OSError as err:return self.GLES2 or self.GLES1@baseplatform.lazy_propertydef GLU(self):try:return ctypesloader.loadLibrary(ctypes.cdll,'GLU',mode=ctypes.RTLD_GLOBAL )except OSError as err:return None@baseplatform.lazy_propertydef GLUT( self ):try:return ctypesloader.loadLibrary(ctypes.cdll,'glut', mode=ctypes.RTLD_GLOBAL )except OSError as err:return None@baseplatform.lazy_propertydef OpenGL(self): return self.GL@baseplatform.lazy_propertydef EGL(self):try:return ctypesloader.loadLibrary(ctypes.cdll,'EGL', mode=ctypes.RTLD_GLOBAL )except OSError as err:raise ImportError("Unable to load EGL library", *err.args)@baseplatform.lazy_propertydef getExtensionProcedure( self ):eglGetProcAddress = self.EGL.eglGetProcAddresseglGetProcAddress.restype = ctypes.c_void_preturn eglGetProcAddress@baseplatform.lazy_propertydef GLE( self ):try:return ctypesloader.loadLibrary(ctypes.cdll,'gle', mode=ctypes.RTLD_GLOBAL )except OSError as err:return NoneDEFAULT_FUNCTION_TYPE = staticmethod( ctypes.CFUNCTYPE )@baseplatform.lazy_propertydef GetCurrentContext( self ):return self.EGL.eglGetCurrentContext

VIBE复现过程,使用nvidia和libOpenGL.so渲染出错及解决方案相关推荐

  1. Office 远程代码执行漏洞复现过程

    本文来自作者肖志华在 GitChat 上分享 「Office 远程代码执行漏洞复现过程」,「阅读原文」查看交流实录. 编辑 | 天津饭 直接贴本地复现过程,至于怎么利用还请自己思考. 2017年11月 ...

  2. Network penetration testing_Work5(Flash 0day CVE-2018-4878复现过程)

    一:Loophole介绍 2018年2月1号,Adobe官方发布安全通报(APSA18-01),声明Adobe Flash 28.0.0.137及其之前的版本,存在高危漏洞(CVE-2018-4878 ...

  3. NSA Fuzzbunch中EternalRomance工具复现过程

    自Shadow Brokers公布NSA泄露工具后,各路大神陆陆续续发表复现过程,这几天也仔细试了各种套路,一直想弄明白DoublePulsar中的shellcode到底是如何用的,刚好又在模拟环境中 ...

  4. ip冲突问题解决和复现过程

    ip冲突导致无法上网问题复现 目录 问题及排除过程 1 复现过程: 2 2.1. pc插拔网线后情况: 2 2.2. 环境中存在pc的ip冲突的情况: 4 2.3. 虚拟机的模拟 5 2.4. 交换机 ...

  5. 2023 Archlinux NVIDIA 3070 intel 双显卡驱动 + i3wm 解决方案

    2023 Archlinux NVIDIA 3070 intel 双显卡驱动 + i3wm 解决方案 设备信息 背景 安装过程 安装桌面环境 设备信息 华硕天选3,CPU:12700H,GPU:GeF ...

  6. [WEB攻防] i春秋- “百度杯”CTF比赛 十二月场-YeserCMS cmseasy CmsEasy_5.6_20151009 无限制报错注入 复现过程

    中华人民共和国网络安全法(出版物)_360百科 可以说一道经典的CTF题目,解这道题的过程类似于我们渗透测试的过程,所以把它放在了这个专栏,在这里我们详细讲过程,而不是原理. 目录 题目 寻找方向 f ...

  7. EDVR复现过程中的Segmentation Fault及Vimeo-90k数据集的百度盘下载

    EDVR复现Vid4中的Segmentation Fault及Vimeo-90k数据集的百度盘下载 EDVR介绍 Segmentation Fault 升级gcc 重新编译运行 测试结果之Vid4 测 ...

  8. python 趋势线计算式_LLT指标-低延迟趋势线对中证500的python复现过程

    大家好,我是上海大侠 看了半个小时的研报和视频,对具体实现过程含糊其辞,表述不清,模糊重点,甚至还有多处写错 本着知识开源的想法,我将我的探索过程公开,以期给同样在这条路上摸索的朋友节省一点走弯路的力 ...

  9. 【实际操作】DenseFusion复现过程详解-YCB-Video数据集

    DenseFusion系列代码全讲解目录:[DenseFusion系列目录]代码全讲解+可视化+计算评估指标_Panpanpan!的博客-CSDN博客 这些内容均为个人学习记录,欢迎大家提出错误一起讨 ...

最新文章

  1. 消除8个关于AI在商业中应用的错误观念
  2. 二叉树中如何求根节点到任意节点的路径?
  3. 数据中心停机事故的教训:关注基础设施
  4. 为窗体添加 最大化,最小化,还原等 事件
  5. Angular路由里的canActivate用法
  6. 华为手机云闪付付款码如何截图_云闪付乘车码,它带着优惠又来了
  7. select EINTR
  8. 【HDU - 1281 】棋盘游戏 (经典的二分图匹配,匈牙利算法,枚举删除顶点,必须边,关建边)
  9. mysql 替换 汉字_MySQL替换文字
  10. 使用OLE DB方式连接常用数据库的连接字符串的设置
  11. 深入了解 Loader
  12. Bailian2698 八皇后【回溯】
  13. 2022年低功耗软路由cpu一览
  14. 软件体系结构网课第一次笔记
  15. 重构之美-浴火重生的火凤凰CSS3【前传:Gradient】
  16. SpringBoot JPA 批量插入实现,使用原生sql解决SaveAll插入慢的问题
  17. 源码:JAVA在线编译器模拟
  18. 区间素数个数 树状数组 HIT 1867 经理的烦恼
  19. 针对高分辨率雷达和相机的无标定板的像素级外参自标定方法
  20. 利用MATLAB进行系统时域分析,matlab控制系统时域分析教程

热门文章

  1. 关于 early Z 与 z-prepass
  2. QT. 学习之路 一
  3. DML、DDL、DCL的分别是什么
  4. idea编辑springboot,如何打成war包
  5. 如何进行云主机迁移?看这一篇文章就够了!
  6. HDU5511 : Minimum Cut-Cut
  7. HttpRequest中常见的四种ContentType【转载】
  8. 数据结构之优先队列--二叉堆(Java实现)
  9. 普通人的经验和技能交易平台
  10. LTM设备上ping不通网关