[自注意力神经网络]DETR目标检测网络

一、概述

        相较于传统目标检测,DETR是一种纯端到端的网络。它不再需要NMS(非极大值抑制,用于去除多余的预测框)和生成anchor

        DETR提出了一个新的目标函数(二分图匹配),这个函数可以强制网络输出一个独一无二的预测值(没有冗余的预测框)。

二、网络结构

         DETR的前向流程如上图所示:使用一个CNN抽取图片的特征;将这个特征拉平;将拉平后的特征送入Transformer的encoder-decoder单元;由decoder输出预测框的信息(出框的信息是一个超参数,原文为100)利用二分图匹配的方式将Ground Truth与预测结果进行匹配,对于匹配成功的框才会进一步计算loss(没有匹配成功的框将会被标记为no object<背景类>)

        1.基于集合的目标函数

                DETR的输出是一个固定集合(固定数目)。为了在这些集合中找到正确的预测框,DETR采用了一个二分图匹配的方法来解决这个问题。具体做法是:将n个预测框和x个Ground Turth构建成一个cost matrix(代价矩阵),通过算法在其中找出代价最小的排列。

                        

                         矩阵中的内容为损失函数(分类Loss和框体Loss),公式即可写为:

                 这个公式的意义是:在二分图匹配的基础上计算两个loss(分类Loss和框体Loss),其中对于第一个loss,由于要与第二个loss取值范围一致,其log被去除且实验表明并不会影响结果;对于第二个loss,由于L1-Loss会对大物体敏感,所以采用generalized iou loss来计算(与物体大小无关)。

        2.整体网络框架

                默认图片输入大小为1066x800x3,经过卷积网络提取特征,得到输出2048x25x34;然后经过一个1x1卷积进行通道调整(降维)得到256x25x34。

                将特征拉平(850*256),并为其叠加位置编码(256x25x34)

                将序列输入Encoder中,计算自注意力

                将结果输入Decoder,进行解码输出;这里引入一个object query(一个可学习,维度为100*256),在每个decoder会先做一次object query的自注意力操作用于移除冗余框(第一个decoder可以不做)

                 将特征输入检测头(FFN-MLP),进行预测。

三、代码

         出自原文的DETR42最简结构

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值