DETR(transformer+目标检测)

最近,看了DETR的原论文:End-to-End Object Detection with Transformers,对此,作一些笔记关于自己对该论文的理解 😁

1.前言

开篇,作者直接说明提出了一个可以把目标检测视为直接预测集问题的方法。DETR和之前许多的detectors不一样,之前的detectors存在以下缺点:

  • 有许多人工设计的组件,会产生许多框,因此就必须加入后处理操作
  • 人工设计的组件中,可以调节的超参数就比较少
  • 后处理操作和锚框的设计,这些都会影响detectors最后的性能

而DETR非常简单,解决了这些问题:

  • 移除了人工设计的组件,比如NMS(非极大值抑制处理)和Anchor(锚框),大大简化了流程
  • 整个由网络实现端到端的目标检测实现,简化了训练pipeline

然而,这么简单的结构却在COCO数据集上和经过多次优化的FSTR-RCNN效果相当,可见,DETR作为transformer和目标检测结合的框架的开山之作,当之无愧!🐱‍🏍

2.DETR框架

DETR框架包括四部分,分别是CNN的backbone,transformer的encoder,transformer的decoder,预测层FFN(Feed Forward Network)。
在这里插入图片描述

训练过程如下:

  1. CNN的backbone. 把图片放入CNN中,经过CNN网络提取出图片的特征,然后把特征拉直,加上positional encoding的位置信息,进入下一个环节 encoder。
  2. transformer encoder. 利用transformer进一步学习全局信息,为decoder生成预测框做铺垫。
  3. transformer decoder. 生成许多预测框,其中,object queries的作用就是限定会产生多少预测框(在本文中作者设置的是100,意思就是不管什么图片,只会产生100个预测框)。
  4. FFN(Feed Forward Network). 将产生的100个预测框和两个GT(ground truth)框进行match loss,然后计算最低得两个预测框,然后把剩余的98个标记为“no object”即为背景图。

推理过程: 前三步跟训练过程一样,仅仅是最后一步,计算loss变为设置一个阈值,置信度大于0.7的则保留,小于0.7则认为是背景图片。

总结

  • detr对大物体预测很准,主要是因为transformer进行全局建模(如果用anchor 的话,就会受限于anchor的大小)
  • detr对小物体检测效果并不好,因为他结构太简单(多尺度、多特征可以提高检测效果)
  • 训练时间长,后续留给研究者的work很多
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值