目标检测(训练阶段-反向传播)

参考:(讲的详细,简单易懂)

https://www.bilibili.com/video/BV15w411Z7LG/?is_story_h5=false&p=4&share_from=ugc&share_medium=android_hd&share_plat=android&share_session_id=f3bd490e-6f4d-43c2-97df-4573b8556221&share_source=WEIXIN&share_tag=s_i×tamp=1670053553&unique_k=j0ik45C​​​​​​​

一、

监督学习的训练是通过梯度下降和反向传播,迭代的去微调神经元中的权重,来使得损失函数最小化的过程,目标检测是一个典型的监督学习问题。即在训练集上已有人用标注软件画出了 ground truth(标准答案) ,即下图中的绿框,人工的去标注。而算法就是让预测结果尽量去拟合绿框,使得损失函数最小化。绿框的中心点落在哪个grid cell(网格单元)里面,就应该有哪个grid cell(网格单元)预测出的bounding boxes (边界框)负责拟合绿框每一个grid cell(网格单元)预测出两个bounding boxes (边界框),那么就应该由这两个bounding boxes (边界框)中的一个去负责拟合绿框。

目标检测(训练阶段-反向传播)_第1张图片

 并且grid cell(网格单元)输出的类别应该是ground truth(标准答案)的类别也就是说20个类别的概率乘以框的概率获得的全概率,狗的概率应该是最大的。它就是这个grid cell(网格单元)的代表类别,每一个grid cell(网格单元)只能预测出一个类别,那么就是概率最大的类别,也就是说每一个grid cell(网格单元)只能预测出一个物体,49 个grid cell(网格单元)只能预测出 49个物体。这也是YOLO V1在预测小目标和密集目标性能差的原因。

二、

每一个grid cell(网格单元)预测出两个bounding boxes (边界框),究竟有哪一个 bounding boxes (边界框)负责拟合ground truth(标准答案)呢,应该由和ground truth(标准答案)交并比IOU比较大的在下图中就是外围的框负责拟合ground truth(标准答案),尽量逼近ground truth(标准答案),另外一个框就什么都不需要做,只需要让它的 Object 尽量小即可。

目标检测(训练阶段-反向传播)_第2张图片

下图粗线的绿框是真正的ground truth(标准答案)。

目标检测(训练阶段-反向传播)_第3张图片

所以损失函数的设计就是尽可能让负责拟合这个物体的预测框和物体真正的 ground truth(标准答案)尽可能一致、重合。

三、

如果没有标注框中心点落在这个grid cell(网格单元)中,那么它预测出的两个框都不需要进行下一步操作。这两个框只需要置信度越小越好,越接近 0 越好。

目标检测(训练阶段-反向传播)_第4张图片

 四、YOLO V1 的损失函数

目标检测(训练阶段-反向传播)_第5张图片

损失函数包含五项:

①第一项:负责检测物体的 bounding boxes (边界框)的中心点定位误差。

        即负责预测物体的框,尽量和 ground truth(标准答案)从横纵坐标上,从宽高上都要尽可能一致。所以损失函数构造了残差平方求和,回归问题的损失函数,下面五项都是回归问题的损失函数。回归问题就是要预测出一个连续的值,把这个值和标注值进行比较,越接近越好,所以 YOLO 是把目标检测问题当做是回归问题解决。第一项公式中带上标的是标注值,不带上标的是预测值。

目标检测(训练阶段-反向传播)_第6张图片

②第二项:负责检测物体的 bounding boxes (边界框)宽高定位误差(求根号能使小框对误差更敏感)

 负责预测物体的宽高尽量和ground truth(标准答案)的宽高一样,之所以加根号,是使得小框对误差更敏感,也就是说同样的偏差,小框造成的损失函数会更大,大框造成的损失函数会更小,这样对大框更公平。

③负责检测物体的bounding boxes (边界框)的置信度(Confidence)误差

标签值其实是bounding boxes (边界框)与ground truth(标准答案)IOU,作为标签值。预测出的置信度应该和IOU越接近越好。

 ④不负责检测bounding boxes (边界框)的置信度误差,标签值最好为 0 。包含两类bounding boxes (边界框)。一类是负责检测物体的grid cell(网格单元)中,不使用的bounding boxes (边界框),如下图1,中间的小绿框。另一类是图2中的两个紫框,本身grid cell(网格单元)就不负责预测物体,它预测出的 B 个 bounding boxes (边界框)都不使用。那么这两类bounding boxes (边界框)都是第四项,不负责检测bounding boxes (边界框)的置信度越接近 0 越好。

目标检测(训练阶段-反向传播)_第7张图片

图1

目标检测(训练阶段-反向传播)_第8张图片

图2

 ⑤负责检测物体的grid cell(网格单元)分类误差。比如下图中绿色grid cell(网格单元)负责预测狗,那么 20 个条件类别概率中,狗的概率越接近 1 越好。所以下式公式中对每一个类别遍历的去求和,实际上是把标注的ground truth(标准答案)的类别越接近 1 越好。

 目标检测(训练阶段-反向传播)_第9张图片

 五、

如果一个bounding boxes (边界框)负责检测物体,那么它所属的grid cell(网格单元)也负责检测物体;如果一个bounding boxes (边界框)负责检测物体,那么另外一个bounding boxes (边界框)就不负责检测物体。红框和蓝框两个变量,红框如果为1 ,那么蓝框肯定也为1红框绿框两个变量,一个为 1 ,另外一个必为 0 。下标 i,j i 表示 S X Sgrid cell(网格单元) ,j 表示 B个bounding boxes (边界框),YOLO i 最大到 49,j 最大到 2。

目标检测(训练阶段-反向传播)_第10张图片

 图1

目标检测(训练阶段-反向传播)_第11张图片

 图2

目标检测(训练阶段-反向传播)_第12张图片

图3

你可能感兴趣的:(计算机视觉,目标检测,深度学习,计算机视觉)