DETR算法简介

DETR方法是一种使用了Transformer的端到端的目标检测方法,也是经典目标检测算法之一,本文将用最少的话,介绍DETR算法的大致思想。之前的方法或多或少的都不要添加一下额外的步骤,进行人为干预,即使是号称端到端的YOLO系列算法,也是会生成大量冗余的框,然后需要最后加上进行非极大值抑制的步骤。

DETR算法的大致步骤如下所示:

 简而言之:首先通过CNN网络提取输出图像特征,然后将特征图展平输入到transformer中进行encoder和decoder,这里transformer通过注意力机制就能够学习到图像的全局特征,。然后输出固定个数的预测框,比如100个,(输出预测框的个数是一个超参数)。将100个输出的预测框和ground truth进行匹配(这里是使用二分图匹配方法,下面再介绍),得到最匹配的n个预测框(n是ground truth的个数),然后在匹配的框中计算检测目标的loss和进行边框的回归。

上述是训练过程,预测过程前面都一样,假设生成的预测框的个数是100个,后面生成100个预测框之后,直接对置信度设置阈值,置信度大于阈值的框作为前景被留下来,剩下的作为背景

更加详细的整体框架图:

那什么是二分图匹配法呢:

首先要了解什么是二分图问题:

举个例子,x,y,z三个工人,执行a,b,c三个任务,三个工人每个都有自己最擅长的部分,这里二分图问题就是解决给工人分配任务,解决任务的效率最高

 上图是根据工人执行任务案例绘制的一个矩阵,这个矩阵叫做损失矩阵,损失矩阵中的值就是损失,比如工人执行具体任务花费的时间。目前有匈牙利算法能够解决这个问题,在scipy这个库中提供了linear_sum_assignment函数来解决这个问题

上述100个预测框和2个ground truth之间匹配的问题,也可以看做是二分图问题,

a,b,c...就可以看做是100个预测框,x,y就可以看做是ground truth

DETR论文中的匹配问题就是通过直接调用匈牙利算法来解决的,匈牙利算法的细节就不介绍了,因为我也不懂,反正这也不是关键的,关键就是了解上述DTER算法的思想。

上述是对DETR算法的简要介绍,主要是介绍算法的框架结构和大致思想,想要深入学习DTER的朋友,建议去看原论文,上述内容如果对您有所帮助,麻烦给我点个赞,谢谢

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿000001号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值