从入门到入坑-Darknet记录篇
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
链接来源于csdn博客,感谢分享,如有侵权,删之。
引用链接:
- https://blog.csdn.net/wanzhen4330/article/details/81699769
- https://blog.csdn.net/qq_41080854/article/details/88609795
- https://blog.csdn.net/WK785456510/article/details/81565637
阅读须知
本文不涉及机器学习算法,只讲述机器学习的框架使用,算法过于深奥,本人尚未完全理解,别问,问就是不会!
Darknet
Darknet是一个相对小众轻量级的深度学习框架, 主流框架有tensorflow,Caffe等,虽然小众 ,但并不能忽视其优点。
- Darknet深度学习框架是由Joseph Redmon提出的一个用C和CUDA编写的开源神经网络框架。它安装速度快,易于安装,并支持CPU和GPU计算。
- Darknet的YOLO神经网络算法对于目标监测效果显著。
YOLO(You Only Look Once)神经网络算法
- YOLO的速度非常快。在Titan X GPU上的速度是45 fps(frames per second),加速版的YOLO差不多是150fps。
- YOLO是基于图像的全局信息进行预测的。这一点和基于sliding window以及region proposal等检测算法不一样。与Fast
R-CNN相比,YOLO在误检测(将背景检测为物体)方面的错误率能降低一半多。 - 可以学到物体的generalizable-representations。可以理解为泛化能力强。
推荐使用 AlexeyAB版本Darknet
环境配置
推荐平台:
- ubuntu + cuda +
cudnn + opencv cuda、cudnn需申请成为nvidia开发者方可下载 - win + cuda + cudnn + opencv(win平台下需安装vs+openCV,通过编译darknet源码,产生darknet.exe运行程序,配置较为繁琐,不介意者可以尝试)
- N卡,台式机平台( RTX 2080ti nb!)
搭建教程(ubuntu下)
环境搭建思路(ubuntu->cuda->cudnn->opencv):
- ubuntu:16.04版本使用率较高,但在显卡、Cuda安装方面失败率较高,如果16.04始终装不上,推荐改用18.04。
- cuda、cudnn安装 推荐文章 下载cudnn需注意与Cuda版本搭配,最新的RTX显卡对于Cuda 9.0以下版本兼容性好像不高,笔者使用时发现显卡驱动容易蹦,RTX系推荐使用Cuda 10.0以上的版本
- opencv安装教程,推荐这篇文章
ubuntu:
训练前数据准备
笔者各文件的存放目录:
- Meals.data:/darknet-master
- Meals.names:/darknet-master
- Meals_test.txt:/darknet-master
- Meals_train.txt:/darknet-master
- yolov3-Meals.cfg:/darknet-master/cfg (基于yolov3.cfg的基础上进行修改)
- test train:/darknet-master(train目录下图片名称与标注文件名称需一一对应)
开始训练
train :
./darknet detector train Meals.data cfg/yolov3-Meals.cfg
test :
./darknet detector test Meals.data cfg/yolov3-Meals.cfg backup/yolov3-Meals_last.weights
- More
训练完成
- 训练期间可以通过chart.png查看训练情况,随时停止训练
- /backup 下每隔一定的迭代步数,自动保存训练模型。
- 利用你的模型进行测试吧
总结
Darknet 大法好,上手快,效果显著。笔者一开始尝试过tensorflow的object_detection api进行物体检测识别,在环境搭建、训练脚本中屡屡碰壁,最终放弃。但不得不说,tensorflow的确强大,有能力可以进一步学习。前人栽树,后人乘凉,感谢开源分享,写这篇文章的目的,也是为了避免不断采坑事件的发生,为笔者的毕业设计做个铺垫。
中二怪