深度学习编译darknet训练自己的数据集

深度学习

前言

如果想让 YOLO 识别我们指定的目标,那就需要先准备一套数据集,然后 对 YOLO 进行训练,“教会”YOLO 认识这些目标。训练的结果是生成一个.weight 权重文件,等到识别的时候,加载这个权重文件即可识别我们指定的目标。

一、环境搭建

由于 jetson nano 算力有限,不大适合用做训练。所以我们需要另外搭建一个 训练环境,编译 darknet。
训练环境从硬件方面分为两种:
①台式机或笔记本,x64 平台设备,必须要有 NVIDIA 显卡。这种情况需要 自行安装 Ubuntu 系统,然后再安装 NVIDIA 显卡驱动、CUDA、cuDNN(可以看前面两个文章)
配置好以上环境以后,下载 darknet 进行编译即可。
②NVIDIA 的嵌入式设备,包括 Jetson AGX Xavier、Jetson Xavier NX 等, NVIDIA 官方提供的镜像中已经配置好了 CUDA 等,不需要我们自己再去配置环境。
CUDA 等配置好以后,运行 nvcc -V 查看版本信息:
在这里插入图片描述
NVIDIA 的嵌入式设备需要配置一下环境变量才能运行 nvcc 指令:
打开~/.bashrc 文件编辑:

nano ~/.bashrc

在文件最后添加一下语句:

export LD_LIBRARY_PATH=/usr/local/cuda/lib 
export PATH=$PATH:/usr/local/cuda/bin

按crtl+x保存退出后,source 生效:

source ~/.bashrc

完成以上步骤后,NVIDIA 的嵌入式设备才可以正常运行 nvcc 指令,否则 后面编译会报错。

二、编译 darknet

下载代码:git clone https://github.com/AlexeyAB/darknet
将压缩包解压后,终端 cd 到 darknet 目录中,输入 make 进行编译即可。
注意:在 make 之前,找到 makefile 文件,我们可以设置一些功能,根据自 己的需求设置,其中 GPU、CUDNN 是必要的。

makefile 编译参数:
在这里插入图片描述
安装好以后可以使用官方提供的.weight 文件进行测试。

wget https://pjreddie.com/media/files/yolov3-tiny.weights //下载权重文件
./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights data/dog.jpg

你会看到一些物体的概率,这里就不附上截图了。
另外,如果测试时需要显示图片或者实时测试视频流,则需要安装 OpenCV, 并且在上述的 makefile 中 OPENCV 选项改为 OPENCV=1。

总结

终于把环境全部弄好了,下一步就是怎么标注数据集。

猜你喜欢

转载自blog.csdn.net/qq_51963216/article/details/124215494
今日推荐