计算机系统应用教程网站

网站首页 > 技术文章 正文

深度学习目标检测系列之You Only Look Once

btikc 2024-08-30 13:02:34 技术文章 17 ℃ 0 评论

本文介绍深度学习目标检测系列之《You Only Look Once : Unified, Real-Time Object Detection》,简称YO(避免广告嫌疑,故换之简称为YO)。

回想一下RCNN系列,不管是传统方法获取的proposal还是应用RPN网络,最后从连接到分类和回归对应到的featureMap反推到原始图像上,始终是一个roi区域,其本质是取一个子图像块,判断其类别,并对位置信息进行微调。YO最大的特点就是没有这个子图像的概念,输入的始终是原始图像,没有在图像上进行得到roi操作。虽然YO对图像进行了分块处理,但请注意到这些分块并没有从图像层面/特征层面进行分块治之,而是采用区域块对应的位置回归加上概率分布来代替RCNN系列的roi的分类加回归问题。

YO结构图

YO的训练

不同如RCNN系列,YO的训练和测试时网络的大小都是固定的448*448,也就是说无论在训练阶段还是测试阶段,都需要将图像大小先resize到448*448。YO将图像均匀的分成了7*7=49个块,每个块预测B(在论文中B=2)个(x,y,w,h,confidence),x和y代表预测的检测目标的中心点相对于此区域块左上角的坐标,归一化到0到1之间;w和h代表检测目标的宽和高;confidence代表检测目标的预测区域与真实groundtruth的IOU。与此同时,每个块还预测该目标块输入每一类的概率,论文中在PASCAL VOC上实验,有20类,C=20。综上,对每个块需要预测B*5+C=30个数值,对于整幅图预测数值的个数为7*7*30=1470。

在准备训练数据label的时候,每个区域块只响应groundtruth的中心点落在该区域的目标区域,才相应计算x、y、w、h的label值,否则都是0;confidence的label值怎么设定的呢?注意到confidence反应的是groundtruth和预测值的overlap,所以confidence是在线计算的,根据当前的预测值计算overlap为confidence的label。对于类别的label,该区域块在某类groundgruth内则是1,否则为0。

YO的网络结构

YO的网络结构如图所示,在卷积层后面连接两个全连接层,最后的输出维度是7*7*30。

loss函数

loss函数。训练的loss如上图所示,采用的是L2的loss。loss有五项相加,逐项分析如下:

  1. 区域中心位置预测的欧式距离,只计算当前块响应目标的loss,乘以权重系数5;

  2. 同上,计算w和h的平方根欧式距离,只计算当前块响应目标的loss,乘以权重系数5;

  3. 响应区域的confidence欧式距离,groundtruth实时更新;

  4. 非响应区域(此块不对应任何目标)的confidence欧式距离,乘以权重系数0.5;

  5. 有目标的区域块的分类的欧式距离;

YO的测试过程

YO的测试

YO的测试过程比较简单,将图像resize到448*448,经过网络处理后得到7*7*30的输出。然后取每个区域块对应的概率pr(ci)最大的那个类,根据x,y,w,h得到目标区域的位置,该目标最终的得分为pr(ci) * confidence,即属于某类的概率乘以目标框位置的置信度,该得分在进行NMS窗口合并的时候会用到。NMS之后输出了每个目标的区域位置、属于某一类、以及得分,至此YO的预测过程结束。

结尾附上一篇方法论:如何快速读懂一篇深度学习论文

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表