python系列踩坑指南

python库 踩坑指南

一 opencv篇:

  • 问题1:使用cv2读取mp4视频(无论h265或h264编码都有这种情况)时,
    h264编码的视频偶尔出现ret,img = videocap.read() 读不到数据的情况;
    h265编码的视频则可能出现警告:hevc @ 0x556678a95800 Could not find ref with POC
  • 原因:视频的帧数可能出现非整数的情况,不能使用设置从指定帧读取:
cap.set(cv2.CAP_PROP_POS_FRAMES, start_frame)	# 设置初始帧

在这里插入图片描述

  • Solution:因此尽量从头开始读,参考:
current_frame = 0
while cap.isOpened():
    ret, frame = cap.read()
    if ret:
        if current_frame >= start_frame:
            out.write(frame)
        current_frame += 1
        if current_frame >= end_frame:
            break
    else:
        break
  • 问题2:在pycharm中使用import cv2时,cv2.xxx无法自动补全,无法进入源码;
  • 原因:opencv-python最新的4.7版本有bug
  • Solution:进入cv2的源码位置,将二进制文件(cv2.abi3.so或cv2.pyd)从…/site-packages/cv2下复制一份,粘贴到上级目录…/site-packages
  • 参考:https://zhuanlan.zhihu.com/p/597733611
    在这里插入图片描述windows为 cv2.pyd在这里插入图片描述
    问题3: opencv-python 默认使用的是CPU运行,想要使用GPU加速。
    Solution: 官方下的安装包虽然有GPU的dll,但并没有CUDA跟OpenCL的支持的,你需要自己重新编译一次OpenCV
    Ref: https://zhuanlan.zhihu.com/p/345439669

二 模型推理篇

  • 问题:使用onnx模型推理时,可能会发现使用的是CUP进行推理;
  • 报错内容:安装后运行报错,Fail to load libonnxruntime_providers_cuda.so with error: libcurand.so.10:cannot open shared object file: No such file or directory

正常流程:

  1. 完全卸载,重新安装
pip uninstall onnxruntime
pip install onnxruntime-gpu==1.16.3
  1. 确认GPU是否可用
print(onnxruntime.get_device())				# 输出 GPU 不一定成功
ort_session = onnxruntime.InferenceSession("model_name.onnx",providers=['CUDAExecutionProvider'])
print(ort_session.get_providers())			# 输出:['CUDAExecutionProvider', 'CPUExecutionProvider']表示成功
  • 上述流程失败,需要做相关问题排查:
  1. CUDA版本:请确保您的CUDA版本与onnxruntime-gpu版本兼容(详见:https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html)
  2. 环境变量:这是让onnxruntime找到cuda的关键一步:
# 设置PATH、LD_LIBRARY_PATH,缺什么设置什么
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

注意:/usr/local/cuda/lib64 需要替换成自己的路径,查找自己的路径方法:

sudo find / -name libcurand.so.10

实测发现:

将上述命令添加到~/.bashrc文件中,然后使用source ~/.bashrc命令来更新环境变量后,只能在当前终端中有效;

后调整为在pycharm中设置该环境变量,具体步骤为:(参考:https://blog.csdn.net/weixin_48962061/article/details/119151486)

这里我使用且成功的方式为,在运行—编辑配置-环境变量中添加

Name为LD_LIBRARY_PATH, Value为/usr/local/cuda/lib64:$LD_LIBRARY_PATH
至此,基本解决无法在pycharm中和终端中使用GPU推理模型的问题

三、安装混合精度训练工具apex

网上尝试的办法可能会报错:

ModuleNotFoundError: No module named 'packaging'
  error: subprocess-exited-with-error

这里参考流程:

git clone https://github.com/NVIDIA/apex.git
cd apex
pip install -v --disable-pip-version-check --no-cache-dir --no-build-isolation --config-settings “--global-option=--cpp_ext” --config-settings “--global-option=--cuda_ext” ./

Ref:https://github.com/InternLM/InternLM/issues/87

`

四 MMCV篇

安装报错,原因主要是版本不匹配。(如No module named ‘mmcv._ext’)
参考官方:https://gitcode.net/mirrors/open-mmlab/mmcv/-/blob/master/README_zh-CN.md

、、

shell参考:
https://blog.csdn.net/professor_tao/article/details/125947389
https://blog.csdn.net/m0_37931718/article/details/98206877
shell编程中文手册??

**yaml参考:**https://blog.csdn.net/star_xxzeng/article/details/115030707
**log参考:**https://blog.csdn.net/u012206617/article/details/87870479

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
安装opencv的过程可能会遇到一些问题,下面是一些在Ubuntu 18.04上安装opencv时可能会遇到的常见问题及解决方法的指南。 1. 缺少依赖项:在安装opencv之前,确保已经安装了必需的依赖项。这包括cmake、build-essential、libgtk2.0-dev、pkg-config和python3-dev等。可以使用以下命令安装它们: ``` sudo apt-get install cmake build-essential libgtk2.0-dev pkg-config python3-dev ``` 2. 版本冲突:如果你的系统中已经安装了ROS-melodic,并且ROS-melodic中已经自带了opencv-3.2.0版本,你可能需要手动编译和安装opencv-3.2.0来覆盖ROS-melodic中的版本。首先下载opencv-3.2.0和opencv_contrib-3.2.0的源代码,并切换到opencv-3.2.0/build目录。然后使用make和make install命令进行编译和安装: ``` cd ~/Downloads/opencv_install/opencv-3.2.0/build/ make sudo make install ``` 3. 其他问题:在安装过程中可能会遇到其他问题,例如编译错误或链接错误。这些问题通常可以通过在安装过程中查找错误消息并搜索解决方案来解决。可以查看相关的安装教程、论坛或社区提供的文档以获取更多帮助。 总结起来,安装opencv的过程可能会因为缺少依赖项或版本冲突而出现问题。确保安装了必需的依赖项,并根据需要手动编译和安装适当的版本来解决版本冲突。在遇到其他问题时,可以查找相关的资源以获取更多帮助和解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Ubuntu18.04安装opencv 3.2.0的解决方法](https://download.csdn.net/download/weixin_38637983/12842575)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [在ubuntu18.04中安装opencv_contrib-3.2.0采教程](https://blog.csdn.net/hiram_zhang/article/details/103467737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值