目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用
如何定义正负样本,和正负样本在学习过程中loss计算起的作用
- 正负样本定义
- 分类和回归head如何学习和利用划分后的正负样本(loss如何计算)
- 正负样本在分类中loss计算的处理
- 正样本在bbox 回归中的loss计算
在目标检测中,经常说起正负样本。本文仔细说一下,如何定义正负样本;定义正负样本之后,在loss计算中,正负样本分别参与到classification head和regression head中,是如何使用正负样本信息进行监督学习的。loss如何从正负样本中,直接得到这两类样本对不同任务的损失函数和梯度更新。
正负样本定义
在ROI RPN过程中,整个图像中,正样本的区域少,大部分是负样本,因此,要处理好正负样本不平衡问题,网络提取特征,feature中的绝大多数都是negative,只有和ground truth,iou较高的区域,才被assign为positive sample。因此,2000个proposal,几十个是positive,大多数是negative,极度不平衡。此时,就有一些正负样本采样的方法,提出来。anchor 和gt的最大iou,大于某个a阈值,为positive,anchor 和gt的最大iou 小于 某个b阈值,为negative。对于没有被分配到anchor的gt,分配任何一个与他iou 大于某个c阈值的gt。确保每个gt都有一个或多个anchor对应。其他的是ignore。
positive,negative,比例1:3。这是roi的选择,rpn阶段,同理,rcnn阶段,再进行样本采样。 然后,再进行特征提取,做classification和regression。让模型学到有用的特征。
都会在loss里, 进行处理。负样本,直接在loss里面。如果负样本太多,虽然大多数容易分对,但是对loss的贡献很大,导致正样本难以处理。
对于目标检测算法,主要需要关注的是对应着真实物体的正样本,在训练时会根据其loss来调整网络参数。相比之下,负样本对应着图像的背景,如果有大量的负样本参与训练,则会淹没正样本的损失,从而降低网络收敛的效率与检测精度。
回归方式:从点回归,还是anchor回归。anchor free, anchor based问题的一些区别:正负样本定义;2.回归分支中从point回归还是从anchor回归。从point回归就是指的每个点预测距离4条边的距离模式,而从anchor回归是指的retinanet那种基于anchor回归的模式。 说明正负样本定义的不同是决定anchor-base和anchor-free的本质区别。
RetinaNet 特点:(1) 多尺度预测输出;(2) 采用FPN结构进行多层特征图融合。 网络进行多尺度预测,尺度一共是5个,每个尺度共享同一个head结构,但是分类和回归分支是不共享权重的。
在loss里面,调节,最著名的是focal loss。对预测概率高的,减少loss,对概率低的,增加loss。抑制简单样本对loss的贡献,加大难样本对loss的贡献。难易样本主要是通过调节loss处理。难分,易分。
分类和回归head如何学习和利用划分后的正负样本(loss如何计算)
正负样本在分类中loss计算的处理
- 只有正负样本,参与到classification的loss计算中。用来监督classification head对正样本,预测的类别为1,one-hot编码下的位置为1,其余负样本为0。由于ignore的是目标的边缘和背景区域,难以学习和判断,直接忽略掉,不进行loss的计算。只需要将正样本,判断为对应target;负样本, 全部判断为0就行。
RetinaNet FPN 这个结构,对label的编码,是包含在正负样本定义中的。
所有的anchor,计算和gt box的iou。如果与某个anchor与 gt box 的iou,大于0.5, 为正样本1,
如果anchor 的最大iou,小于0.4,为负样本,0。
如果anchor与gt的iou>0.4, <0.5,分配为ignore样本,忽略样本,-1。
一共9个anchor,分别是1:2, 2:1, 1:1, aspect ratio为1, 2^(1/3), 2^(2/3)
分类:
classification: focal loss, ignore cases where cls_tgt == -1,只负责0,1正负样本的回归。
pos_neg = cls_targets > -1
给正样本打标签的时候,是将1给到指定的那个class下,为1,其他为0。也就是一个grid位置下的相同形状anchor,只有第i个类别的target为1,其他为0。
(num_classes, num_anchors, fmh, fmw) (4, num_anchors, fmh, fmw)Classification targets are defined as- 1 if IoU with the anchor box in [0.5, 1.0] (positive label)- -1 if IoU with the anchor box in [0.4, 0.5] (to be ignored in the loss)- 0 if IoU with the anchor box in [0.0, 0.4] (negative label)
正样本在bbox 回归中的loss计算
- Bounding Box的回归,只负责处理positive正样本的区域。regression head中,只对划分成正样本的,anchor box,进行 xywh的loss计算。只有正样本,包含了所负责的检测的目标,所以只需要将正样本的anchor回归做好,就能减少bbox 的regression loss。
回归的target为:只负责1,pos样本,也就是正样本anchor的回归。
regression: include all anchor boxes where any class is positive
pos_loc = cls_targets > 0 tx = (x - anchor_x) / anchor_wty = (y - anchor_y) / anchor_htw = log(w / anchor_w)th = log(h / anchor_h)
Classification targets are defined as- 1 if IoU with the anchor box in [0.5, 1.0] (positive label)- -1 if IoU with the anchor box in [0.4, 0.5] (to be ignored in the loss)- 0 if IoU with the anchor box in [0.0, 0.4] (negative label)
两个gt box,分别是两类,分别为 类别1,2。则编码出来的,是与其 iou最大的anchor box,其负责这一类的分类与回归。例如:第i个anchor,负责第1类,则[0, 1, 0] one hot 编码。 第j个anchor 负责第2类,则[0, 0, 1]。只需要对应的[第i类,第几个anchor,anchor的grid的位置h,anchor所在的grid位置w]=1。
计算loss的时候,只需要负责处理target为0,1样本,忽略掉ignore样本。
由于RetinaNet采用了Focal Loss进行正负样本的平衡,所以没有使用采样的方法,来平衡样本。
min_pos_iou=0,可以保证每个GT一定有对应的anchor负责预测。0.4以下是负样本,0.5以上且是最大Iou的anchor是正样本0.4~0.5之间的anchor是忽略样本。其不需要正负样本采样器,因为其是通过平衡分类loss来解决的。
如果有用,记得点赞
原文链接:https://www.techbeat.net/article-info?id=4342 作者:seven_ 本文介绍一项来自香港大学和腾讯AI Lab的工作,该工作提出了一个新的Diff ... 在 Vue中,定义data时,经常有好几种写法,一不小心会混淆,这里彻底详述一下,以便记分清 . 一.在vue中,定义data可以有三种写法. 1. 第一种写法,data是一个对象. var app ... 这是最简单的解决方案,Service没有/ 也没有Observer: 将全局变量放在文件中,然后导出它们. // // ===== File globals.ts // 'use strict'; e ... 0 简介 本文抛弃网络具体结构,仅仅从正负样本区分和正负样本平衡策略进行分析,大体可以分为正负样本定义.正负样本采样和平衡loss设计三个方面,主要是网络预测输出和loss核心设计即仅仅涉及网络的he ... 「免费学习 60+ 节公开课:投票页面,点击讲师头像」 作者 | VincentLee 来源 | 晓飞的算法工程笔记(ID: gh_084c810bc839) 导读:论文提出CoAE少样本目标检测算法 ... 文章目录 一.多尺度检测 1.什么是多尺度检测? 2.降低下采样率与空洞卷积 3.多尺度训练 4.优化Anchor尺寸训练 5.深层与浅层特征融合 6.SNIP,尺度归一化 7.TridentNet, ... 本文转载自AI算法修炼营. 这篇文章收录于BMVC2020,主要的思想是减少anchor-free目标检测中的label噪声,在COCO小目标检测上表现SOTA!性能优于FreeAnchor.Cent ... 温馨提示:文章内容完整但是过长,由于前后内容有关联,读者学习可以多开几个浏览器分屏有助于定位 目录 目标检测理论部分: 1.目标检测介绍 2.YOLOv5的检测原理 3.目标检测的意义 4.目标检测的 ... 目录 前言 一. 基本概念 1.1 分类问题中的四类样本 1.2 精确率(precision) 1.3 召回率(recall) 1.4 准确率(accuracy) 1.5 其他 1.6 讨论 二. m ...目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用相关推荐
最新文章
热门文章