wordpress开发网站,中关村在线手机频道,金华开发区人才网,网站做微信支付宝支付接口一、基本概念
1.YOLO简介
YOLO#xff08;You Only Look Once#xff09;#xff1a;是一种基于深度神经网络的对象识别和定位算法#xff0c;其最大的特点是运行速度很快#xff0c;可以用于实时系统。
2.目标检测算法 RCNN#xff1a;该系列算法实现主要为两个步骤You Only Look Once是一种基于深度神经网络的对象识别和定位算法其最大的特点是运行速度很快可以用于实时系统。
2.目标检测算法 RCNN该系列算法实现主要为两个步骤先从图片中搜索出一些可能存在对象的候选区Selective Search大概2000个左右然后对每个候选区进行对象识别。检测精度较高但速度慢。 YOLO将筛选候选区域与目标检测合二为一大大加快目标检测速度但准确度相对较低。
3.评价目标
3.1.IOU
IOUIntersection over Union交并比候选框candidate bound紫色框与原标记框ground truth bound红色框的交叠率IOU值越高说明算法对目标的预测精度越高。
Area of overlap原标记框与候选框的交集面积Area of union原标记框与候选框的并集面积
3.2.置信度 3.3.二分类指标
在「二分类」任务中对样本的描述
Position正例二分类中的一类样本一般是想要的Negative负例二分类中另一类样本一般是不想要的TPTrue Position在拿出样本中正确识别为正例FPFalse Position 在拿出样本中错误识别为正例即本身是负例误判TNTrue Negative 未拿出样本中正确当负例舍弃FPFalse Negative 未拿出样本中错误当负例舍弃即本身是正例遗漏
二分类结果的评判指标 3.4.AP
由于 Precision 与 Recall 只适用于「二分类问题」。当存在多样本分类时对每一类样本单独考虑其「二分类问题」即目标样本与其他样本的分类问题。
当确认的样本越少出错的风险也就越小当选择出的样本量越大得到全部目标样本的可能性越大。因此 Precision 与 Recall 是一度矛盾的关系
Precision 较大时Recall 较小当要分辨 10 个苹果时我只拿出一个苹果那么 Precision 就是 100 %而 Recall 确是 10 %Precision 较大时Recall 较小若选择出 100 个水果10 个苹果我们都拿出来了但是还有 90 个其他水果。Precision 就是 10 %而 Recall 是 100 %
假设模型的任务为从图片中检测出三类物体(1,2,3)。「一张图片」的模型预测结果如下所示 现在对每一类别分别绘制 Precision-Recall曲线
每个预测的 box 与其分类对应的所有 Ground True box 进行 IOU 计算并选择出最大的 IOU 作为输出结果。 认为当前预测 box 就是 IOU 最大的这个 Ground True box 的预测结果。若多个预测box 与同一个 Ground True box 相对应则只记录一个 将 max_iou 与给定阈值 thresh 0.5 进行比较大于阈值就标记 1 数据根据「分类置信度 class_conf」 进行排序 取出分类 1 假设在当前图片中存在 3 个 1 类目标计算其 Precision 与 Recall。
根据上面的结果假设只找出 1 个 1 类目标时 假设只找出 2 个 1 类目标时 假设只找出 3 个 1 类目标时 以此类推找出全部时 根据上述 Precision 与 Recall 序列绘制出的曲线就是 1 类别目标对应的Precision-Recall曲线重复上述步骤就是绘制出 2, 3 类别的曲线。 根据Precision-Recall曲线就能计算 AP 值了。 APAverage PrecisionPrecision-Recall曲线下方的面积。结合 Precision 与 Recall 更加全面的对模型的好坏进行评价。
绘制完整的 Precision-Recall曲线将 Precision 与 Recall 绘制成曲线。 查找 precision 突然变大的点 利用这个突变点来代表这个区间内的 Precision 最后计算彩色矩形区域的面积该值就是 AP 二、YOLO V1
1.网络模型 对于第一版 YOLO 的网络模型就两个部分 卷积层、全连接层 。 输入 尺寸为 448x448x3 的图片 图片尺寸定死 输出 图片中被检测目标的位置矩形框坐标与被检测物体的分类。 2.目标检测原理 将输入图片通过 7x7 网格划分为 49 个单元格每个单元格负责一个检测目标存储检测目标外接矩形的「中心点坐标」、长宽存储检测目标的类型。 即当检测目标的外接矩形「中心点坐标」位于该单元格内时就让该单元格全权负责储存这个检测目标的信息。每个单元格持有2个候选矩形框会通过置信度选择一个最好的当作预测结果输出 3.模型输出
V1 版本的输出结果为 7x7x30 的一个向量对该向量进行维度转换得到 其中 7x7 表示利用 7x7 的网格将输入图片划分为 49 个单元格30 表示对每个单元格预测结果的描述两个目标位置候补框、置信度、目标的分类 bounding box 1 第一个候补框的参数外接矩形中心坐标 (x1,y1)(x1,y1) 长宽 (w1,h1)(w1,h1)confidence 1 第一个候补框是待检测目标的置信度bounding box 2 第二个候补框的参数外接矩形中心坐标 (x1,y1)(x1,y1) 长宽 (w1,h1)(w1,h1)confidence 2 第二个候补框是待检测目标的置信度分类检测目标为 20 个分类的概率
其中对于中心坐标 (x,y)(x,y) 、长宽 (w,h)(w,h) 值的存储是一个百分比。
中心坐标 (x,y)(x,y) 相对单元格长宽的比值长宽 (w,h)(w,h)相对于输入图片长宽的比值 4.损失函数
4.1.定义 4.2.位置预测 当预测外接框与目标外接框的宽度、高度的差值一样时对于较大的物体而言相对误差小而对于较小物体而言相对误差较大。因此为了让损失函数对小物体的外接矩形的宽度、高度更敏感一些在 YOLO V1 中采用了 「根号」: 自变量在[0,1]取值时根号的斜率变化比直线要大。 5.模型预测
5.1.思路
训练好的 YOLO 网络输入一张图片将输出一个 7x7x30 的张量tensor来表示图片中所有网格包含的对象概率以及该对象可能的2个位置bounding box和可信程度置信度。每个单元格有两个 bounding box 一共有 7x7 个单元格现在将所有的 7x7x298 个 bounding box 绘制出来 可以看见图上到处都是 bounding box现在就需要从这些 bounding box 中筛选出能正确表示目标的 bounding box。 为了实现该目的 YOLO 采用 NMSNon-maximal suppression非极大值抑制算法 三、YOLO V2
1.模型改进 1.1.卷积化
在 V1 中最后的输出结果是靠「全连接层」得到的这也就限制了输入图片的尺寸。因此在 V2 将所有的全连接层转为了卷积层构造了新的网络结果 DarkNet19其中还利用 1x1 卷积对模型进行优化。
1.2.Batch Nomalization
在 DarkNet19 网络中对于卷积层加入了 Batch Normalization 并删除了 dropout 。
由于 DarkNet19 做了 5 次池化且卷积均进行了padding所以输入图片将会被缩放 25322532 倍即 448x448 的输入输出结果应当是 448/3214但是14x14的结果没有特定的中心点为了制造一个中心点模型的输入图片尺寸就更改为了416x416输出结果就变为了13x13。
1.3.Fine-Grained Features
在 DarkNet19 模型中存在一个 PassThrough Layer 的操作该操作就是将之前阶段的卷积层结果与模型输出结果进行相加。根据 感受野 可知越靠前的网络层对细节的把握越好越靠后的网络更注重于目标整体为了使得输出结果对小物体有更好的把握就可以利用 PassThrough Layer 来提升结果特征图对小物体的敏感度。
1.4.图片输入
由于历史原因ImageNet分类模型基本采用大小为 224x224 的图片作为输入所以 YOLO V1 模型训练使用的输入图片大小其实为 224x224在模型预测时又使用的是 448x448 的图片作为输入这样就导致模型的训练和模型的预测输入其实是有差异的。为了弥补这个差异模型训练的最后几个 epoch 采用 448x448 的图片进行训练。
2.Anchor Box
YOLO V1 的 bounding box 缺陷
一个单元格只能负责一个目标检测的结果如果该单元格是多个目标的中心点区域时V1 版本将不能识别。V1 中对于 bounding box 的预测结果并未加限制这就会导致 bounding box 的中心点可能会跑到其他单元格内bounging box 的宽度与高度是靠模型自己学习的这就可能走很多弯路。
2.1.Anchor 模型训练开始前人为为每个单元格预定义几个不同大小的 Anchor Box这样从训练开始每个单元格的bounding box就有了各自预先的检测目标例如瘦长的 bounging box 就适合找人矮胖的 bounging box 就适合找车等。 模型训练就是调整这些预定义的bounding box 的中心点位置与长宽比列。
2.2.Box 数据结构 在引入 Anchor box 后 YOLO V2 对于一个 bounging box 的数据结构为
中心点坐标 (x,y)(x,y)相对于单元格宽度的比列值相对于 Anchor box 宽高的偏移量 (w,h)(w,h)当前 bounging box 存在检测目标的置信度 ConfidenceConfidence检测目标对应各个类型的概率 pipi
一个单元格能检测多少目标就输出多少个上述 Box 数据结构。
2.3.Box 解析 2.4.确定Anchor 3.损失函数 四、YOLO SPP 五、YOLO V4 六、YOLO V5