初识YOLOV3
初识目标检测
分类问题:单纯分出所属类别
检测问题:分类问题的基础+对象的位置
检测算法的核心问题:
如何产生候选区域,并进行标准
如何进行提取图片特征,并将特征图与候选区域的类别和位置进行关联
目标检测基础概念
边界框
检测任务需要预测物体类别位置,因此需要边界框来表示物体的位置,边界框是正好能包含住物体的矩形框。
(训练数据集会给出目标物体真实边框,即真实框的位置)模型会对目标物体出现的位置预测,预测出的边框也叫预测框
在目标检测模型中,通常会生成一系列锚框作为候选区域。模型对区域进行检测,如果包含物体则进行分类。
交并比
在检测任务中用交并比(intersection of Union,IOU)作为衡量锚框与真实框之间的关系。它等于两个框的交集中包含的元素个数除以两个框中并集所包含的元素个数,具体计算公式如下:
IoU= (A∪B)/(A∩B)
YOLO-V3模型设计思想
按一定规则在图片上产生候选区域,根据候选区域与图片上物体真实框之间位置关系对候选区域进行标注。跟真实框非常接近的候选区域会被标注为正样本,同时将真实框的位置作为真样本的位置目标。离真实框较远的候选区域被标注为负样本,无须对负样本进行操作。
使用卷积神经网络提取蹄片特征并对候选区域的位置、类别进行预测,每个预测框都作为一个样本,根据真实框相对它的位置和类别进行标注而获得标签值,通过网络模型预测其位置和类别,将预测值与标签进行比较,就可以建立损失函数。
与其他网络模型对比如下
基础网络 Darknet-53 网络结构如下。
Yolo_V3使用了前52层(没有全连接),这个网络结构是全卷积的网络,大量使用残差,并且为了降低池化带来的阶梯负面效果,采用stride为2的卷积来进行降采样。
Yolo_V3输出了3个不同尺度feature map,y1,y2,y3的深度都是255,边长规律是13:26:52。有80个种类,所以每个box应该对每个种类都输出一个概论。yolo v3设定的网络单元预测3个BOX,所以每个BOX需要有(x,y,w,h,confidence)五个基本参数,然后还有80个类别。3*(5+80)=255,所以255就得出来了。
Bounding Box
feature map中每一个cell对预测3个边界框,每个bounding box预测3样东西 (1)每个框的值,(2)一个objectness prediction (3)N个类别。
下图中蓝色框为聚类得到的先验框。黄色框式ground truth,红框是对象中心点所在的网格。
loss function
在yoloV3的论文中并没有明确所使用的损失函数,只有在V1中有,在V1中使用了一种叫sum_square error的损失计算方法,也就是简单的差相加而已。在目标检测任务中,有(x,y),(w,h),class,confidence这些关键信息分为四类,损失函数应该由各特点确定,最后加在一起组成最终的loss function。
YOLO_V4都出来了,我这个小菜鸡连V3都搞不清楚,这是刚学了一点目标检测总结的东西,可能有很多地方都有错误,望指正。