Darknet_yolov2综述入门整理

接着上次的神经网络,这次整理一下Darknet,yolov2
首先得先了解Darknet,是深度学习框架,总的来说深度学习框架提供了一些列的深度学习的组件(对于通用的算法,里面会有实现),当需要使用新的算法的时候就需要用户自己去定义,然后调用深度学习框架的函数接口使用用户自定义的新算法.
这篇讲述了深度学习框架的定义:https://blog.csdn.net/yeler082/article/details/78755095
Darknet的功能不如主流的tensorflow等框架那么强大,但是1.易于安装:在makefile里面选择自己需要的附加项(cuda,cudnn,opencv等)直接make即可,几分钟完成安装;
2.没有任何依赖项:整个框架都用C语言进行编写,可以不依赖任何库,连opencv作者都编写了可以对其进行替代的函数;
3.结构明晰,源代码查看、修改方便:其框架的基础文件都在src文件夹,而定义的一些检测、分类函数则在example文件夹,可根据需要直接对源代码进行查看和修改;
4.友好python接口:虽然darknet使用c语言进行编写,但是也提供了python的接口,通过python函数,能够使用python直接对训练好的.weight格式的模型进行调用;
5.易于移植:该框架部署到机器本地十分简单,且可以根据机器情况,使用cpu和gpu,特别是检测识别任务的本地端部署,darknet会显得异常方便-----------所以我觉得比较适宜用于嵌入式开发
这篇讲解了Darknet框架:https://blog.csdn.net/u010122972/article/details/83541978
简言之即:cfg中存放网络结构模型,data/voc中存放训练集路径,src中存放框架定义文件
cfg(Yolo配置文件)参数详解:https://blog.csdn.net/hrsstudy/article/details/65447947
学习YOLO之前,得先学习卷积神经网络,学习资料pdf,见我上一篇整理
补一下卷积核,卷积尺寸的学习链接:https://blog.csdn.net/xys430381_1/article/details/82529397,https://yq.aliyun.com/articles/610509
我也是刚学习,我觉得Yolo比其他网络的好处在于,它的输入是一整张图片,而不是将图片分为滑动窗口的一个个小格子迭代,所以对于背景的误检测率会比较低,而且yolov2还突破性的加入了anchorbox的检测,可以在重叠的box中检测出多个种类的物体https://blog.csdn.net/guleileo/article/details/80581858
上述两篇讲了yolo1-2 -3的改变
你还得知道precision(查准率),recall(查全率),mAP(平均每类的准确率)https://blog.csdn.net/leviopku/article/details/80835929
由于我论文实在水,我只检测3种物体,所以选择了yolov2中最小的一个网络,yolov2-tiny-voc-nok.cfg
yolov2算法详解:https://blog.csdn.net/qq_33869371/article/details/88140367
接下来就是
实际操作训练
了:
https://blog.csdn.net/jozeeh/article/details/79087311
网上有很多训练集,可以下载,也有很多脚本可以批量操作文件命名和格式转换,很方便
yolov3目标检测
https://blog.csdn.net/lilai619/article/details/79695109

你可能感兴趣的:(学习小记录)