opencv 测试安装完成_【深度学习】YOLO-Darknet安装与测试

03ec548087019fcf2fee2c4afa16059b.png

由于最近需要在无人机上做一些目标识别的任务,经过一番调研,决定使用YOLO v3的darknet版本,以方便其在TX2这样的设备上部署

darknet非常容易安装,它只有2个可选择的依赖: 1. Opencv: 能支持更多格式的图像,并且得到实时的显示 2. GPU: 利用GPU计算,能大大提升YOLO的识别帧率,画面更加流畅

安装这两个依赖都必须要先安装基础版yolo

1. 安装基础版yolo

git clone https://github.com/pjreddie/darknet.git
cd darknet
sudo make
  • 测试
./darknet

97153f6f3b37c735e57f7ccc6df05924.png

说明安装完成

  • 下载权重文件
wget https://pjreddie.com/media/files/yolov3.weights
  • 测试检测结果
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

f4e0158cf6ed5bf4c727a8954c564063.png

我们没有使用OpenCV编译Darknet,因此无法直接显示检测结果。相反,它将它们保存在/darknet/predictions.png中。您可以打开它来查看检测到的对象。

2. 测试opencv

前提是opencv已经成功安装

  • 修改darknet下的Makefile文件第三行值为1
    OPENCV=1

143150035be777dea87b780b0ea7e278.png
  • 重新make工程
make
  • 测试
./darknet imtest data/eagle.jpg

9b6ecade2d9c915ccdaecb075c9d7cbc.png

会显示很多图片,说明opencv已经配置好了

这样运行darknet后就会有图像输出啦

3. 使用CUDA和OPENCV 编译darknet

前提是cuda已经安装好

  • 修改darknet下的Makefile文件
  1. 第1-3 行
GPU=1
CUDNN=1
OPENCV=1

4d7c2899b9ca90cb225a9e65047fd28e.png

如果cuda没有加入环境变量
需要修改

  1. 第24行左右

14fee6a85e93ccbd9759ced36a28b3db.png

修改为nvcc路径(根据自己的cuda路径修改)

NVCC=/usr/local/cuda-10.0/bin/nvcc

如果你在TX2或TX1 上编译darknet

CSDN-专业IT技术社区-登录​blog.csdn.net
  1. 将前三个设置为1,并将ARCH改为如下
GPU=1
CUDNN=1
OPENCV=1
......
# Note that CUDA architecture of TX2 is “62”, while TX1 “53”.
ARCH= -gencode arch=compute_53,code=[sm_53,compute_53] 
      -gencode arch=compute_62,code=[sm_62,compute_62]

2. 重新make项目

make

3.测试

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

91ca1e651eff2626c35c8385cae51e72.png

2007c17f7babd590075d2b3b746d3eb6.png

问题

  1. cudnn.h
include/darknet.h:16:23: fatal error: cudnn.h: No such file or directory

查看是否安装cudnn

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

如果输出

cat: /usr/local/cuda/include/cudnn.h: No such file or directory

表示没有安装cudnn

  • 安装cudnn

进入官网

https://developer.nvidia.com/cudnn​developer.nvidia.com

下载对应cuda版本的cudnn tar文件

bce8ea850346159ee618fcc482771099.png
tar -xzvf cudnn-*.tar(刚刚下载的文件)

sudo cp cuda/include/cudnn.h /usr/local/cuda/include

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

cuDNN的卸载和安装类似,只要把先前拷贝的文件删除即可.

2. CUDA Error: out of memory

darknet: ./src/cuda.c:36: check_error: Assertion `0' failed.
Aborted (core dumped)

更改cfg目录下的yolov3.cfg,把subdivisions=16

改为subdivisions=64即可

主要参考:

https://pjreddie.com/darknet/install/​pjreddie.com YOLO-Darknet安装​www.jianshu.com
cbfa518cc3adddb9691503ce3db6ee26.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值