ubuntu18.04 Darknet 测试YOLOv3 安装NVIDIA驱动 cuda10.1 opencv3.4.7和opencv3.4.1

环境:

ThinkPad E470c

GeForce 920MX

ubuntu18.04

cuda10.1

 

遇到的问题:


1)make darknet,找不到opencv头文件:重新过opencv按安装过程;
--重装OK,问题依旧;
2)弄清楚opencv是如何在程序中被引用的(自己编写一个opencv代码,编译试试);
————通过CmakeList.txt,再通过pkg-config,再通过"opencv.pc"

3)可能是opencv版本问题;
3.4.7编译出来是opencv4,默认也不生成opencv.pc

4)安装opencv_contrib;
darknet不用该模块;

5)使用cmake-gui重新编译;
——编译出错,可能gui选择一些多余编译选项;

6)使用Cmake-gui编译一个opencv程序;
Successfully,成功!!!!
——不能用g++ test.cpp -o test `pkg-config --cflags --libs opencv`
会找不到所需文件,无论“.h”还是“.hpp”
——要用sudo cmake . 和 make
————Why?为什么
应该cmake不是借助pkg-config来找到的!
find_package( OpenCV REQUIRED )
target_link_libraries( linuxidc ${OpenCV_LIBS} )
CMakeLists.txt中这两句可能不通过opencv.pc来找头文件。

7)版本问题:cmake编译Test.c例子时,提示使用4.1.1版本,安装的是3.4.7;不生成opencv.pc文件;
不要用过渡版本
8)opencv例子是include“hpp”,没有直接引用.h;
9)学习使用cmake;
10)test代码是“.c”还是“.cpp”的差异;“.c”的一直编译不过,库不一样;
".c"(c语言的API接口)可能opencv3.4.7已经不支持;
11)cmake时要enable pkgconfig目录生成(https://blog.csdn.net/avideointerfaces/article/details/90216832)

12)darknet只是使用opencv基本功能,所以无需把contrib部分编译进来

13)cmake-gui应该会比cmake多编译很多东西,因为cmake-gui中很多选项是默认勾选的?按理说都是缺省值呀

14)没错!!!!就是它的原因:OPENCV_GENERATE_PKGCONFIG = YES,编译opencv时必须加上这一项,才会产生“opencv.pc"文件
!!!OPENCV_GENERATE_PKGCONFIG在3.4.1中都没有,默认生成;
还是因为版本选择不对,opencv3.4.7,但生成的".pc"为“opencv4.pc",所以该本版讲OPENCV_GENERATE_PKGCONFIG缺省值设置为NO,啊哈哈,哭呀

15)opencv3.4.1编译报错
Cuda 10.0 fatal error: dynlink_nvcuvid.h: No such file or directory

cuda10版本有修改,解码器独立出去了;关掉CUDA视频解码,-D WITH_NVCUVID=OFF,再编译
!出现大量警告:opencv太老;gcc版本太高等

https://github.com/opencv/opencv_contrib/issues/1786
That's why -DBUILD_opencv_cudacodec=OFF fixes the issue. Thanks @alalek !

opencv OK!

16)NVIDIA驱动老是死掉;
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.(直接搜索上面这句话)
————ubuntu升级内核造成NVIDIA驱动和内核不匹配,选择所需内核;
重装驱动是可以解决的,但下次内核升级又会出问题:a内核不升级;b指定内核启动;

 

重装显卡驱动

(注意:如果使用anaconda,貌似不需要手动安装Cuda和cudnn,安装tensorflow时会自动安装;https://www.cnblogs.com/zmbreathing/p/CUDA.html)


18)如何来使用YOLO,实现一个检查小程序?
a训练模型:
标准数据;数据分组;解析数据;超参设定;

b导出模型;

c加载模型进行推理;

19)2G现存提示CUDA Error: out of memory
————研究下Darknet的参数配置:图片数量(batch和subdivision),还有图片大小(320、416、608)等

××××××××××××××
Linux,一定要注意版本对应,不要不要轻易追求新版本,除非你有时间,尤其是过渡版本,资料会很少!!!!
××××××××××××××

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值