深度学习-物体检测YOLO(You only look once)
目录
一:YOLO算法的网络结构
流程
1.图像分割
2.图片在网格中的处理
3.非极大值抑制
二:训练
三:分类误差
四:与Faster R-CNN对比
一:YOLO算法的网络结构
GooleNet+4个卷积+2个全连接层
流程
输入原始图片resize到448x448,经过卷积网络之后讲图片输出成了一个7x7x30的结构
步骤;
1.输入一个图片,将整个图片划分为SxS的网格
2.对于每个网格,我们都预测B个边框(与前几章说的候选框相似,这里是对每个网格)
3.进行NMS筛选,筛选每个边框的概率以及每个边框的loU(交并比)
4.剔除概率低的和loU小的边框
1.图像分割
yolo的cnn网络将输入的图片分割成SxS网格,然后每个单元格负责去检测哪些中心点落在该格子内的目标,可以看到狗这个目标的中心点落在左下角一个单元内,那么该单元格负责预测这个狗。
分割流程:在输入的图片上放一个N*N的网格,那么图片就被分为了N*N
1.使用图像分类和定位算法(image classification and Localization algorithm)然后将算法应用到N*N格子上
2.然后对每个小网格定义一个5+k(k为预测类别个数)维向量的目标标签
3.yolo算法使用的是取目标对象边框中心点的算法,即考虑边框的中心点在哪个格子中
2.图片在网格中的处理
每个单元格会预测B个边界框(bounding bbox)以及边框的置信度。置信度指的是边界框含有目标的可能性大小(object)和边界框的准确度(IOUtruthpred),准确度是用预测框与实际框的loU(交并比)计算的。置信度计算为:object*IOUtruthpred。
每个边界框的大小和位置使用4个值来表示:(x,y,w,h),x,y是边界框的中心坐标,而w和h是边界框的宽和高。中心坐标的预测值x,y是相对于每个单元格左上角坐标点的偏移值,并且单位是相对于单元格大小的。而边界框的w和h预测值是相对于整个图片的宽与高的比例。
分类问题:对于每一个单元个还要给出预测类别的概率值,由该单元格复杂预测的边界框目标属于各个类别的概率。但这些概率值是在各个边界框置信度下的条件概率classi object。把类别概率预测值与边界框类别置信度计算出来后相乘。边界框类别置信度表示的是该边界框中目标属于各个类别的可能性大小以及边界框匹配目标的好坏。
3.非极大值抑制
从所以的检测框中找到置信度最大的那个框,然后和其他的框计算IOU,如果计算的值小于某一个阈值,就剔除。
二:训练
1.数据预处理。数据预处理旨在增强训练数据多样性,进而提升检测网络的检测能力。常用的数据增强手段有翻转、缩放、均值归一化和色调变化等
2.检测网络。检测网络一般包括基础骨干、特征融合及预测网络3部分。目标检测器的基础骨干通常采用用于图像分类的深度卷积网络,如AlexNet 、VGGNet、ResNet和DenseNet等。近期,研究人员开始采用基于Transformer的基础骨干网络,如ViT(vision transformer)、Swin和PVT(pyramid vision transformer)等。通常将大规模图像分类数据库ImageNet上的预训练权重作为检测器骨干网络的初始权重
特征融合主要是对基础骨干提取的特征进行融合,用于后续分类和回归。常见的特征融合方式是特征金字塔结构。
最后,预测网络进行分类和回归等任务。在两阶段目标检测方法中,分类和回归通常采用全连接的方式,而在单阶段的方法中,分类和回归等通常采用全卷积的方式。与此同时,检测器通常还需要一些初始化,如锚点框初始化、角点初始化和查询特征初始化等。
3.标签分配与损失计算。标签分配主要是为检测器预测提供真实值。在目标检测中,标签分配的准则包括交并比(intersection over union,IoU)准则、距离准则、似然估计准则和二分匹配等。交并比准则通常用于基于锚点框的目标检测方法,根据锚点框与物体真实框之间的交并比将锚点框分配到对应的物体。距离准则通常用于无锚点框的目标检测方法,根据点到物体中心的距离将其分配到对应的物体。似然估计准则和二分匹配通常基于分类和回归的联合损失进行最优标签分配。基于标签分类的结果,采用损失函数计算分类和回归等任务的损失,并利用反向传播算法更新检测网络的权重。常用的分类损失函数有交叉熵损失函数、聚焦损失函数等,而回归损失函数有L1损失函数、平滑L1损失函数、交并比IoU损失函数、GIoU (generalized IoU)损失函数(Rezatofighi等,2019)和CIoU(complete-IoU)损失函数等
三:分类误差
四:与Faster R-CNN对比
Faster R-CNN利用RPN网络与真实值调整了候选区域,然后再进行候选区域和卷积特征结果映射的特征向量的处理来通过与真实值优化网络预测结果。而这两步在YOLO当中合并成了一个步骤,直接网络输出预测结果进行优化。 所以经常也会称之为YOLO算法为直接回归法代表。YOLO的特点就是快
优点:速度块
缺点:1.准确率不高,YOLO对相互靠的很近的物体(挨在一起且中点都落在同一个格子上的情况),还有很小的群体检测效果不好,这是因为一个网格中只预测了两个框