DETR目标检测原理

基本思想

先通过CNN得到各个Patch作为输入,再通过Transformer做编码,编码和VIT结构一致,重在解码,直接预测100个坐标框。(100是先验值)

整体网络架构分析

1. 先进行backbone,通过CNN得到patch对应的向量加上位置编码。通过transformer得到多个特征

2. decoder先初始化100维度向量,利用encoder得到的特征来重构100维向量,即object querieds是核心,encoder提供的是k,v,decoder提供的是q。decoder是并行运行的。

3. 再通过全连接层预测对应的值。

位置信息初始化query向量

为什么一定要用transformer提取特征,是因为能够提供各个目标的注意力结果,得到好特征,知道哪个地方是物体哪个是背景。能够让解码器更清楚的知道应该询问哪个向量。能让模型知道物体关注的区域在哪。

输出层就是100个object queries预测

解码器首先随机初始化object queries(通过0+位置编码进行初始化,也就是通过位置信息进行初始化)通过多层让其学习如何利用输入特征。

decoder中

1. 先进行自注意力机制,让自己的query向量初始化后的向量进行注意力机制,让特征学习的更好

2. 再进行注意力机制,引入了encoder的k,v向量,并将初始的q向量和第一步得到的q向量与k,v注意力计算,重构q向量。

注:这里没有transformer中的mask机制,因为要并行计算,传统的transformer因为要预测下一个特征的关系,所以不能提供下一个q类似于透题。

输出的匹配

GT只有两个,但是预测的框为100个,通过匈牙利匹配完成,按照LOSS最小的组合,剩下98个都是背景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值