本文主要是介绍YOLO系列模型疑问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
YOLO模型V1版本
1、论文里提到bounding box的(x,y)值表示什么意思呢?
原论文:
Each bounding box consists of 5 predictions: x, y, w, h, and confidence. The (x, y) coordinates represent the center of the box relative to the bounds of the grid cell.
意思好像是x和y是相对于网格(grid cell)的位置,我的理解:
①网格(grid cell):指的是将图像先resize为448x448后再划分为7x7,形成的49个网格。
②相对于网格的什么地方:相对于网格的左上角的位置
③bounding box指的是什么:用于计算待预测物体位置的信息,因为x、y、w、h并不是物体在原始图像中的真实坐标及大小。
④怎么计算x、y、w、h:模型经过训练后直接预测得到。
2、模型如何直接预测得到bounding box中的x、y、w、h?
2.1、训练阶段要学习如何拟合x、y、w、h:
①、图片中每个物体都被标记了一个矩形框,所以我们有该矩形框的左上角坐标和中心点坐标。
②、我们已经把图片resize并划分为7x7的网格了,知道每个网格的左上角的x和y坐标,同时也知道每个网格的长和宽包含的坐标个数。
③、物体的真实矩形框的中心坐标(X_m,Y_m)肯定落在划分的7x7的网格中的某一个中,比如网格:G,它的左上角坐标为(X_g,Y_g)
④、可以用②和③的信息得到(X_m,Y_m)到(X_g,Y_g)的偏移量(也就是训练时要拟合的回归值,而在预测阶段就是要预测的bounding box中的x、y值),
⑤、在训练时知道每个gred对应的(n个)bounding box的长和宽,同时也有图像的大小(448x448),那就知道了训练时要拟合的相对w和相对h,在预测阶段也是预测相对的w和相对的h。
2.2、预测阶段得到偏移量(x,y)和相对宽高(w、h)的逻辑是什么?
抽象一点说:
在训练阶段送给网络的数据是(49x2)个bounding box框内的图像数据(这种说法严格来说是不准确的),分别抽取其范围内的特征,用这些特征和模型不断更新的权重参数进行计算(不断调整误差、减少损失),最终确定了模型的参数, 这些参数即可以给出(网格或网格对应的2个bounding box)包含物体的置信度,也可以给出模型认为(或预测)的物体的中心位置应该离该网格左上角的偏移位置、以及该网格对应的bounding box应该缩放的比例,同时也会给出该网格或其对应的2个bounding box分别属于20个物体类别的概率。
简单一点说:就是先使用模型的提取特征的层(卷积层)提取特征(该特征包含的信息比较多,可解释性比较差,说不清到底是什么),在后面的任务层(全连接层)也有保存好的模型参数,使用这些参数和卷积得到特征进行计算,就得到了前述的三种信息(boundingbox 应该有的偏移量及缩放量、存在物体的置信度、属于哪类物体的概率)。
不知道理解的对不对,希望大佬们多多指教。
这篇关于YOLO系列模型疑问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!