【半原创】现在以你的主人,小樱之名命令你——封印解除(Darknet)!

从入门到入坑-Darknet记录篇

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
链接来源于csdn博客,感谢分享,如有侵权,删之。

引用链接:

阅读须知

本文不涉及机器学习算法,只讲述机器学习的框架使用,算法过于深奥,本人尚未完全理解,别问,问就是不会!

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下)

训练前数据准备

  • 数据预处理:利用标注工具对数据集进行特征标注,标注工具推荐使用lableImg
  • 标注完成,生成xml格式的标签文件,需转换为txt格式被yolov3所接受 教程
  • 数据准备完成时,应具备以下几个文件
    训练应具备的文件

yolov3-Meals.cfg

  • 笔者各文件的存放目录:

    • 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查看训练情况,随时停止训练
    chart.png
  • /backup 下每隔一定的迭代步数,自动保存训练模型。
  • 利用你的模型进行测试吧
    good_4.png

总结

Darknet 大法好,上手快,效果显著。笔者一开始尝试过tensorflow的object_detection api进行物体检测识别,在环境搭建、训练脚本中屡屡碰壁,最终放弃。但不得不说,tensorflow的确强大,有能力可以进一步学习。前人栽树,后人乘凉,感谢开源分享,写这篇文章的目的,也是为了避免不断采坑事件的发生,为笔者的毕业设计做个铺垫。

附件

前往博客Github Page即可下载

Last modification:August 31st, 2019 at 11:11 am
如果觉得我的文章对你有用,请随意赞赏

One comment

  1. 老小子

    中二怪

Leave a Comment