ubuntu搭建darknet框架并使用alexeyAB版本的yolo跑demo

文章目录

  • 1.darknet搭建
  • 2.高版本cmake安装:
  • 3.编译过程中遇到的问题
  • 4.用opencv及cuda编译好的dakrnet训练yolo4

1.darknet搭建

code: alexeyAB version

1 查看cmake,gcc版本:
>> cmake -version  # 下面附高版本cmake安装
>> gcc -v

2 查看opencv版本:
>> pkg-config --modversion opencv

3 查看cuda,cudnn版本:
>> nvidia-smi
>> cat /usr/local/cuda/version.txt

4 下载darknet源码
>> git clone https://github.com/AlexeyAB/darknet.git
出现:
“
正克隆到 'darknet'...
remote: Enumerating objects: 5934, done.
remote: Total 5934 (delta 0), reused 0 (delta 0), pack-reused 5934
接收对象中: 100% (5934/5934), 6.35 MiB | 1.53 MiB/s, 完成.
处理 delta 中: 100% (3926/3926), 完成.5 移动文件夹darknet至projects
>> mv darknet /home/ubuntu/projects/
>> cd ./projects/darknet-master

6 查看具体内容
>> ls -all

7 开始编译#########重要的一步###########
	7.1如果不需要opencv及cuda加速:
>> make
出现一堆
“
mkdir -p obj
mkdir -p backup
mkdir -p results
。。。
t.o libdarknet.a -o darknet -lm -pthread  libdarknet.a
”
	7.2如果需要使用opencv、cuda
可以进入darknet-master
打开Makefile
>> gedit Makefile

修改
>>GPU=1
>>CUDNN=1
>>OPENCV=1
>>ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]# 2080ti
>>
ifeq ($(OPENCV), 1)
COMMON+= -DOPENCV
CFLAGS+= -DOPENCV
LDFLAGS+= `pkg-config --libs opencv`# opencv3.4.6
COMMON+= `pkg-config --cflags opencv`
endif
>>
保存然后再编译

9 编译结束,运行一下
>> ./darknet 
出现
“
usage: ./darknet <function>
”
编译成功

10 跑一个demo
>> ./darknet detector test cfg/coco.data cfg/yolov4.cfg cfg/yolov4.weights -thresh 0.25
>> cfg/coco.data
>> cfg/yolov4.cfg
>> cfg/yolov4.weights
需要输入图片路径
最终显示结果

注意:如果你配置了cuda,需要等3-5秒才出结果,很可能是没配成功。

2.高版本cmake安装:

据说哦,apt-get install cmake安装的版本是最低的
因此需要安装适合的版本,就需要手动装
 # 1下载压缩包
 网址https://cmake.org/files/
 # 2 解压并改名
 解压并将解压后的文件名改为
 cmake
 # 3移至opt目录下
 在当前终端下执行以下命令,移动至opt目录下
>> sudo mv cmake /opt/cmake
# 4生成软连接
>> sudo ln -sf /opt/cmake/bin/* /usr/bin/
# 5验证
>> cmake -version

3.编译过程中遇到的问题

1、Makefile:39: *** 遗漏分隔符 (null)。 停止。
是因为我在选择cuda算力时,多注释了一行。我的显卡是2080ti,应该选

ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]

我取消注释多取消了一行(还是对makefile语法不熟惹得获啊)
错误做法:

GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores
ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]

2、GPU isn’t used
OpenCV isn’t used - data augmentation will be slow
明明用gpu+cudnn+opencv编译了,为啥还会显示这个,而且检测时间上确实很慢
可能原因有:
2.1、我第一次先编译了(make)没有cuda版本,他已经生成了该生成的文件,应该使用(先清除编译结果,再生成编译新的编译结果)

make clean # 清除

然后再

make # 再编译

2.2、可能是opencv、cudnn、cuda的路径不正确。
2.3、可能是opencv的配置没改

LDFLAGS+= `pkg-config --libs opencv4 2> /dev/null || pkg-config --libs opencv`
COMMON+= `pkg-config --cflags opencv4 2> /dev/null || pkg-config --cflags opencv

3、video-stream stopped
在测试视频时,出现的,

./darknet detector demo cfg/coco.data cfg/yolov4.cfg cfg/yolov4.weights -ext_output 视频

”视频“参数是本地视频。没改参数导致的。

4.用opencv及cuda编译好的dakrnet训练yolo4

https://blog.csdn.net/weixin_42630613/article/details/107834689

你可能感兴趣的:(yolo系列,笔记)