目标检测中的正负样本

        在做目标检测任务时对其中的正负样本不太清楚,看了很多资料,发现这篇博客解释的比较清晰,下面图片也出自上述博客。

       以人脸识别为例,如果你的任务是识别教室中的人脸,那么负样本的选取应该是教室中的窗户、椅子、墙、人的身体、衣服颜色等等,而不是天空、月亮这些对本任务没有帮助的场景。当然,如果不确定应用环境,那么应该选取尽可能有不同光照不同环境的自然图像作为负样本。

       个人理解的正样本就是任务所要检测的目标物,比如在人脸识别中不同种族年龄的人脸、不同表情的人脸、戴不同装饰的人脸等等情况下的人脸;而负样本则是目标物所处的不同背景(注意:此背景不包含人脸),比如人脸会出现在不同环境中,街道、室内总之所有能想到的环境中都有可能出现人脸哈哈,负样本就是这些不包含人脸的图片,如果需要很多负样本,则可以把这些不包含人脸的图片裁剪成所需图片大小。

       参考faster以及SSD两种检测框架中对于正负样本的选取准则,首先,检测问题中的正负样本并非人工标注的那些框框,而是程序中(网络)生成出来的ROI,也就是faster rcnn中的anchor boxes以及SSD中在不同分辨率的feature map中的默认框,这些框中的一部分被选为正样本,一部分被选为负样本,另外一部分被当作背景或者不参与运算。不同的框架有不同的策略,大致都是根据IOU的值,选取个阈值范围进行判定,在训练的过程中还需要注意均衡正负样本之间的比例。在fast的框架中,也是需要多SS算法生成的框框与GT框进行IOU的判断,进而选取正负样本,总之,正负样本都是针对于程序生成的框框而言,而非GT数据。

一个小技巧:在训练检测网络时,若已经训练出一个较好的检测器,在用它进行测试时,还会有一些误检,这时可以把误检的图像加入负样本中retrain检测网络,迭代次数越多则训练模型越好

    

### 目标检测正负样本的定义 在目标检测任务中,正负样本的定义对于模型的学习至关重要。具体来说: #### 正样本 (Positive Sample) 正样本是指那些与真实边界框(ground truth bounding box)有较高交并比(Intersection over Union, IoU)重叠度的对象预测框。通常情况下,如果一个候选区域与某个真实物体的IoU超过了预设阈值(如0.5),则认为这个候选区是一个正样本[^2]。 ```python def is_positive_sample(pred_box, gt_boxes, pos_iou_thr=0.5): ious = calculate_ious(pred_box, gt_boxes) max_iou = max(ious) return max_iou >= pos_iou_thr ``` #### 负样本 (Negative Sample) 负样本则是指那些明显不属于任何对象类别的背景区域。这些区域往往具有较低的IoU分数,即它们几乎不与任何一个真实的物体相交。为了防止模型过度拟合于特定类型的背景噪声,在训练期间也会引入一定数量的低IoU得分作为负样本参与损失函数计算[^1]。 ```python def is_negative_sample(pred_box, gt_boxes, neg_iou_thr=0.3): ious = calculate_ious(pred_box, gt_boxes) min_iou = min(ious) return all(iou < neg_iou_thr for iou in ious) ``` 值得注意的是,某些先进的框架像YOLOv7采用了更复杂的机制来决定哪些是有效的正/负样本。例如,通过结合不同版本YOLO系列的优点,优化了锚点匹配逻辑以及改进了难例挖掘方法以提高整体表现力[^3]。 此外,考虑到数据集中可能存在大量简单背景实例而使得网络难以充分关注真正困难的例子,一些研究工作提出了基于IoU均衡采样的技术。这种方法旨在确保来自不同难度级别的负样本都能被均匀选取用于更新参数,从而提升泛化能力[^4]。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值