YOLO学习-3:ubuntu16.04+ yolov3(darknet)+GPU(nvidia 1080ti)+opencv2.4.11 摄像头测试实践

一 硬件条件:工作站 大版本主机 +4块 invidia  1080ti的gpu  实际测试,只能用一个,不知道四个都用的话如何设置,有知道的请告诉一下。

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

detect后 -i 0   或-i 1 等数字是gpu编号

 

二 操作系统 ubuntu 16.04

 

三 根据gpu型号安装对应版本的驱动程序/cuda版本/cudnn配置等,去nvidia官网或技术论坛

 

四/ yolov3安装,参考官网darknet的安装 https://pjreddie.com/darknet/yolo/

 

五/ 安装opencv,如果是大于3.0的版本,编译会出错,好象是darknet源代码中 image_opencv.cpp 中的mat类型转image会报错

 

六/基于五的解决方案是安装darknet当年编写时间前的opencv版本, 测试使用opencv2.4.11版本

------ 问题1: 官网给的版本安装会报错。找了一个热心网友改得版本,亲测可用。

         https://blog.csdn.net/ljl1015ljl/article/details/100749835

        给出的百度网盘:链接: https://pan.baidu.com/s/19AaTZUMqCanJFHU2tAGetw 提取码: ph4w

       ///以下是博客中内容

  • 下载的opencv2.4.11源码

  • 然后按着网上教程 修改了opencv的源代码

  • sudo apt-get install libopencv-dev

  • 修改/data/opencv-2.4.11/modules/gpu/src/graphcuts.cpp

    #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)
    改为
    #if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

  • 在usr/local下创建一个文件夹opencv2.4.11
    不能直接创建,用root创建 不然没权限
    如果不创建的话,自己改一下下面cmake语句中安装的位置

  • 解析
    opencv-2.4.11/build/lib/libopencv_highgui.so.2.4.11: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0
    这个错误 就是 后面编译其他项目会遇到这个错误,然后重新编译opencv 在cmake时,在后面加一句 -D BUILD_TIFF=ON ,这样tiff就会在编译opencv时自动编译好

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.4.11  -D WITH_CUDA=ON -D BUILD_PYTHON_SUPPORT=ON -D WITH_FFMPEG=OFF -D BUILD_EXAMPLES=ON   -D BUILD_TIFF=ON ..
    
  • 编译 make -j8

  • sudo make install

  • 在 sudo gedit ~/.bashrc 文件后面添加以下两行

     export PKG_CONFIG_PATH=/usr/local/opencv2.4.11/lib/pkgconfig  
     export LD_LIBRARY_PATH=/usr/local/opencv2.4.11/lib  
    

    然后保存修改 source ~/.bashrc
    这样 pkg-config --modversion opencv

  • /以上是博客转载内容

-----------    按照上述方法安装好opencv2.4.11后,取darknet目录 修改makefile文件  gpu=1 opencv=1 cuda=1等。

--------------   执行make一般能成功。

 

七 运行时可能会报错

------------在ubuntu下编译opencv程序后,执行报下面到错误:
error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory
解决方法:找到libopencv_开头到库的目录,在/usr/local/lib下面,在/etc/ld.so.conf.d/下面新建一个opencv.conf,里面写入/usr/local/lib,最后执行下sudo ldconfig -v即可。

             https://blog.csdn.net/eric41050808/article/details/53673623

------------------ ./darknet: error while loading shared libraries: libcudart.so.8.0: cannot open shared object file:

libcudart.so.8.0 不能找到 

是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。

本文该lib文件在/usr/local/cuda/lib64下,因此在/etc/ld.so.conf.d 创建了一个cuda.conf 文件,并加入/usr/local/cuda/lib64 内容,保存退出。

最后执行:sudo ldconfig 使文件生效

https://blog.csdn.net/qq_34570910/article/details/80841571

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值