1. darknet介绍
物体检测的两个步骤可以概括为:
(1)检测目标位置(生成矩形框)
(2)对目标物体进行分类
物体检测的主流算法框架大致分为one-stage与two-stage。two-stage算法代表的有R-CNN系列,one-stage算法代表的有YOLO系列。按笔者理解,two-stage算法将步骤一与步骤二分开执行,输入图像先经过候选框生成网络(例如faster rcnn中的RPN网络),再经过分类网络; one-stage算法将步骤一与步骤二同时执行,输入图像只经过一个网络,生成的结果中同时包含位置与类别信息。two-stage与one-stage相比,精度高,但是计算量更大,所以运算较慢。
YOLO特点
(1)YOLO很快,因为用回归的方法,并且不用复杂的框架。
(2)YOLO会基于整张图片信息进行预测,而其他滑窗式的检测框架,只能基于局部图片信息进行推理。
(3)YOLO学到的图片特征更为通用。
YOLOV1算法原理
网络结构:输入图像大小为448×448,经过若干个卷积层与池化层,变为7×7×1024张量,最后经过两层全连接层,输出张量维度为7×7×30,这就是YOLOV1的整个神经网络结构,和一般的卷积物体分类网络没有太多的区别,最大的不同就是:分类网络最后的全连接层,一般连接一个一维向量,向量的不同位代表不同的类别。YOLO的backbone网络结构,受启发于googleNet,也是V2、V3中darknet的先锋。本质上没有什么特别,没有使用BN层,用了一层Dropout。除了最后一层的输出使用了线性激活函数,其他层全部使用Leaky ReLU激活函数。
2. darknet结构
YOLOv3于2018年推出,相较于YOLOv2最大的改进就是网络结构上采用了作者设计的基础框架Darknet-53
3. darknet windows
Windows系统:
大家都知道我们检测图片的语句是:
darknet.exe detector test mydata/obj.data mydata/yolo-obj.cfg backup/yolo.weights -i 0 -thresh 0.25
最后这个0.25就是置信度。代表相似度为0.25及以上的目标都会被标出
修改0.25这个数值 就可以调节框框的目标相似度
视频也是一样的:
darknet.exe detector demo mydata/obj.data mydata/yolo-obj.cfg backup/yolo-obj_7000.weights -ext_output mydata/test.mp4 -thresh 0.25
同样修改0.25
4. darknet网络
yolov5主要是一种目标检测网络,它包含了多层的卷积神经网络,例如经典的vgg或者darknet等
5. darknet怎么用
darknet作为一个较为轻型的完全基于C与CUDA的开源深度学习框架,易安装,没有任何依赖项(OpenCV都可以不用),移植性好,支持CPU与GPU两种计算方式。相比于其它的深度学习框架来说,darknet并没有那么强大,不过确实简单啊:
a.完全由C语言实现,没有任何依赖项,当然可以使用OpenCV,但只是为了更好的可视化;
b.支持CPU(所以没有GPU也不用紧的)与GPU(CUDA/cuDNN,使用GPU当然更好了),个人强烈建议训练时要用GPU哈;
c.因为轻型,所以灵活,适合用来研究底层,可以更为方便的从底层对其进行改进与扩展。