目标检测概述

为什么基于卷积网络的目标检测模型在预测后要使用非极大值抑制

基于卷积网络的目标检测模型可能会在目标的相邻区域生成多个相互重叠框,每个框的预测结果都是同一个目标,引起同一目标的重复检测。造成这一现象的原因主要有两个,

  1. 基于卷积网络的目标检测模型是在Feature Map上进行预测的,Feature Map上的每个像素在原图上都对应一块感受野,并由这块感受野经过一层层卷积映射而来。Feature Map上两个像素越相邻,两者在原图上的感受野的重叠部分就越大,在卷积核权重参数分布平均的情况下(卷积核在训练时使用了L2正则化,每个权重参数接近于0,且近似相等),这两块感受野经过相同的卷积运算后映射值相似。如果Feature Map上两个相邻像素中有一个像素经过预测头后,能预测出物体,由于相邻像素是相似的,那么另一个像素经过预测头后有很大可能预测出同一个物体,从而引起同一物体的重复预测。
  2. 一个样本中的目标相邻区域可能在另一个样本中是作为正样本(目标存在区域)进行训练的,所以就可能导致这个样本的目标相邻区域经过卷积层和预测头后,得到目标信息。进而产生同一目标的重复预测。

为了解决这种重复预测现象,提高检测精度,就需要用到非极大值抑制------在所有重叠框中选择置信度最大的那个框作为最终结果,同时删除与该框IOU大于0.5的其它重叠框。

DETR

  • 图片先经过一个卷积骨干网络(ResNet50)提取局部特征,然后利用Transformer的Encoder进一步提取图片上下文信息。这些上下文信息均被输入到Decoder中,作为Key和Value。DETR使用的Decoder也可以视作Transformer的Encoder,因为它的多头注意力机制并没有进行因果掩码处理,所以DETR的Decoder是并行地预测目标框。
  • DETR的Decoder的输入是一组可训练的Objects Query,作为第一层多头注意力的Query。DETR的Decoder的输出是一个长度固定的集合,集合中有目标框以及背景框
  • 图片中的目标数量和Decoder的预测数量往往不相等的。假如真实目标数量是3个,Decoder的预测数量固定为100个。那么在训练时,这三个真实目标应该与100个预测框中的哪三个框进行损失值计算呢?DERT是这样解决的:这三个真实目标分别与100个预测框进行组合(每个预测框只能与一个真实目标进行组合),然后计算损失值,这时总共有100*99*98=970200种不同的损失值,选取其中值最小的损失作为梯度下降的优化目标,同时将该最小损失对应的预测框与真实目标绑定,其余未与真实目标组合的预测框则全视作背景框。
相关推荐
星越华夏15 分钟前
计算机视觉:YOLOv12安装环境
人工智能·yolo·计算机视觉
Yolanda942 小时前
【人工智能】《从零搭建AI问答助手项目(九):Prompt优化》
人工智能·prompt
wj3055853782 小时前
课程 9:模型测试记录与 Prompt 策略
linux·人工智能·python·comfyui
小和尚同志2 小时前
深入使用 skill-creator:结合真实生产级实践
人工智能·aigc
DevSecOps选型指南2 小时前
安全419专访悬镜安全 | 穿越周期在 AI 浪潮中定义数字供应链安全新范式
人工智能
沪漂阿龙2 小时前
面试题详解:GraphRAG 全面解析——知识图谱增强 RAG、Local Search、Global Search、社区摘要、工程落地与评估指标一次讲透
人工智能·知识图谱
WangN22 小时前
Unitree RL Lab 学习笔记【通识】
人工智能·机器学习
haina20192 小时前
海纳AI亮相《科创中国》,解码招聘“智”变之路
人工智能·ai面试·ai招聘
阿星AI工作室2 小时前
刘润年中大课笔记:一句话说清AI落地之战的本质
大数据·人工智能·创业创新·商业
qingfeng154152 小时前
企业微信机器人开发:如何实现自动化与智能运营?
人工智能·python·机器人·自动化·企业微信