当前位置: 首页 > news >正文

6.3 DETR与GLIP:新一代目标检测技术详解

6.3 DETR与GLIP:新一代目标检测技术详解

引言

在前两节中,我们学习了视觉问答(VQA)和视觉定位(Grounding)技术,这些技术都依赖于准确的目标检测作为基础。传统的目标检测方法如Faster R-CNN、YOLO等虽然性能优秀,但存在一些固有的局限性,如需要复杂的后处理步骤(如NMS)和手工设计的锚框机制。

DETR(DEtection TRansformer)和GLIP(Grounding Language-Image Pre-training)作为新一代目标检测技术,通过引入Transformer架构和语言-视觉联合预训练,为目标检测领域带来了革命性的变化。在本节中,我们将深入探讨这两种技术的原理、架构和实现方法。

DETR:DEtection TRansformer

DETR的核心思想

DETR摒弃了传统目标检测方法中的锚框机制和后处理步骤,采用端到端的Transformer架构直接预测目标的边界框和类别。其核心创新包括:

  1. 集合预测:将目标检测视为集合预测问题
  2. Transformer架构:使用Transformer进行特征交互
  3. 二分匹配损失:通过匈牙利算法进行标签分配

图像输入

CNN骨干网络

位置编码

Transformer编码器

对象查询

Transformer解码器

预测头

边界框和类别

DETR架构详解

importtorchimporttorch.nnasnnimporttorch.nn.functionalasFimportnumpyasnpclassDETR(nn.Module):def__init__(self,num_classes=91,num_queries=100,d_model=256,nhead=8,num_encoder_layers=6,num_decoder_layers=6):super(DETR,self).__init__()self.num_queries=num_queries self.d_model=d_model# CNN骨干网络(通常使用ResNet)self.backbone=self._build_backbone()# 位置编码self.position_embedding=PositionEmbeddingSine(d_model//2)# Transformerself.transformer=Transformer(d_model=d_model,nhead=nhead,num_encoder_layers=num_encoder_layers,num_decoder_layers=num_decoder_layers)# 对象查询self.query_embed=nn.Embedding(num_queries,d_model)# 输入投影self.input_proj=nn.Conv2d(2048,d_model,kernel_size=1)# 预测头self.class_embed=nn.Linear(d_model,num_classes+1)# +1 for no-object classself.bbox_embed=MLP(d_model,d_model,4,3)def_build_backbone(self):# 简化的骨干网络(实际使用ResNet)returnnn.Sequential(nn.Conv2d(3,64,7,stride=2,padding=3),nn.ReLU(),nn.MaxPool2d(2,2),nn.Conv2d(64,128,3,padding=1),nn.ReLU(),nn.Conv2d(128,256,3,padding=1),nn.ReLU(),nn.Conv2d(256,512,3,padding=1),nn.ReLU(),nn.Conv2d(512,2048,3,padding=1),nn.ReLU())defforward(self,images):# 骨干网络特征提取features=self.backbone(images)# (batch, 2048, H, W)# 位置编码pos=self.position_embedding(features)# (batch, d_model, H, W)# 投影到Transformer维度src=self.input_proj(features)# (batch, d_model, H, W)# 展平空间维度batch_size,channels,height,width=src.shape src=src.flatten(2).permute(2,0,1)# (H*W, batch, d_model)pos=pos.flatten(2).permute(2,0,1)# (H*W, batch, d_model)# 对象查询query_embed=self.query_embed.weight.unsqueeze(1).repeat(1,batch_size,1)# (num_queries, batch, d_model)# Transformer编码器-解码器tgt=torch.zeros_like(query_embed)# (num_queries, batch, d_model)memory=self.transformer.encoder(src,pos=pos)hs=self.transformer.decoder(tgt,memory,query_pos=query_embed,pos_enc=pos)# 预测outputs_class=self.class_embed(hs)# (num_decoder_layers, batch, num_queries, num_classes+1)outputs_coord=self.bbox_embed(hs).sigmoid()# (num_decoder_layers, batch, num_queries, 4)out={'pred_logits':outputs_class[-1],'pred_boxes':outputs_coord[-1]}returnoutclassPositionEmbeddingSine(nn.Module):def__init__(self,num_pos_feats=64,temperature=10000,normalize=False,scale=None
http://www.jsqmd.com/news/262530/

相关文章:

  • 2026年江苏省考面试培训企业推荐,中政公考靠谱之选 - 工业品牌热点
  • 2025年AI超级员工企业用户口碑排行,AI员工/AI超级员工/AI企业员工/AI智能员工供应商口碑推荐榜 - 品牌推荐师
  • AI 写论文哪个软件最好?实测封神!虎贲等考 AI 凭硬核实力领跑全场
  • Conda 常用命令整理
  • AI 写论文哪个软件最好?实测虎贲等考 AI:毕业论文的智能通关王炸
  • spring传播机制事务相关
  • 7.1 NL2SQL核心技术:让AI听懂你的自然语言查询
  • 有人吃NMN像换了个人,有人却没啥变化!盼生派带你搞懂NMN真相 - 速递信息
  • AI 写论文哪个软件最好?实测虎贲等考 AI:毕业论文的智能通关密码
  • 云数潮:每天三分钟,让普通人参与数字经济 - 速递信息
  • 毕业生必看:论文AI率太高被退回?5招搞定降AI全攻略 - 还在做实验的师兄
  • 虎贲等考 AI:重塑学术写作范式的智能全流程解决方案
  • bind接口的address详解
  • Kimi写的内容AI率太高?这几款工具帮你降到10%以下 - 还在做实验的师兄
  • 端口的本质是什么
  • 聊聊2026年果汁生产线资深厂商,上望机械制造靠谱吗? - 工业品牌热点
  • Kimi降AI效果怎么样?月之暗面AI助手降论文AI率实测 - 还在做实验的师兄
  • 告别绘图加班!虎贲等考 AI 科研绘图:让数据秒变期刊级高颜值图表
  • 数值方法验证: 制造解方法(Method of Manufactured Solutions,MMS)介绍
  • 10 分钟搞定学术 PPT!虎贲等考 AI PPT:逻辑与颜值双在线的汇报神器
  • 8.3 DICOM数据处理:医疗影像预处理全流程
  • 全自动制袋机制造企业选择哪家好?靠谱的厂家排名情况如何? - 工业品牌热点
  • 8.4 智能诊断报告:从影像到文本的跨模态生成
  • 查重 AIGC 双杀!虎贲等考 AI 让论文改写告别 “机器味” 与高重复率
  • 9.1 分布式训练三剑客:DP、MP、PP并行策略详解
  • 课程论文不用愁!虎贲等考 AI 一键解锁高分学术捷径
  • 测水流量计怎么挑?2026年实力厂家质量对比,圆缺孔板/醇类流量计/超声波流量计,测水流量计供应厂家排名 - 品牌推荐师
  • 5 款 AI 写论文哪个好?实测避雷!虎贲等考 AI 凭硬核实力稳坐头把交椅
  • 3步搞定论文AIGC检测,从70%降到10%以下的完整方案 - 还在做实验的师兄
  • FFmpeg开发笔记(一百)国产的Android开源视频压缩工具VideoSlimmer