目标检测概述

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

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

  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种不同的损失值,选取其中值最小的损失作为梯度下降的优化目标,同时将该最小损失对应的预测框与真实目标绑定,其余未与真实目标组合的预测框则全视作背景框。
相关推荐
聆风吟º1 小时前
CANN runtime 全链路拆解:AI 异构计算运行时的任务管理与功能适配技术路径
人工智能·深度学习·神经网络·cann
uesowys1 小时前
Apache Spark算法开发指导-One-vs-Rest classifier
人工智能·算法·spark
AI_56781 小时前
AWS EC2新手入门:6步带你从零启动实例
大数据·数据库·人工智能·机器学习·aws
User_芊芊君子1 小时前
CANN大模型推理加速引擎ascend-transformer-boost深度解析:毫秒级响应的Transformer优化方案
人工智能·深度学习·transformer
智驱力人工智能2 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
qq_160144872 小时前
亲测!2026年零基础学AI的入门干货,新手照做就能上手
人工智能
Howie Zphile2 小时前
全面预算管理难以落地的核心真相:“完美模型幻觉”的认知误区
人工智能·全面预算
人工不智能5772 小时前
拆解 BERT:Output 中的 Hidden States 到底藏了什么秘密?
人工智能·深度学习·bert
盟接之桥2 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
kfyty7252 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai