admin管理员组文章数量:1589818
模型在vcoco场景1上的验证效果
HOTR的模型结构图如下所示:
在代码中如何实现的?
-
在Backbone中:
(1)将图片([bs,3,H,W])送入CNN模型中进行特征提取,使用了ResNet50,得到特征图src([bs,2048,h,w])
(2)引入位置编码pos_embed[bs,256,h,w],query_embed([100,256]) -
在进入Transformer前,将特征图src降维([bs,256,h,w])
-
进入Transformer:
(1)Encoder:
首先将src与pos_embed降维,并交换维度:
src由[bs,256,h,w]→[hw,bs,256],
pos_embed由[bs,256,h,w]→[hw,bs,256],
query_embed由[100,26]→[100,bs,256],B. 将src,pos_embed,query_embed送入Encoder中,得到memory : [hw,bs,256]
(2)Decoder
首先新引入一个全0的Tensor:tgt,其维度与query_embed([100,bs,256])一样
将tgt,memory,pos_embed,query_embed送入Decoder中,得到hs : [6,bs,100,256]hs的维度为[6,bs,100,256],这是因为在Transformer中将6个Decoder的输出(Tensor[bs,100,256])整合到一个Tensor中,得到维度为[6,bs,100,256]的Tensor
4. 实例表示:执行目标检测
inst_repr = F.normalize(hs[-1], p=2, dim=2) # 处理最后一个解码器的结果,得到实例表示
outputs_class = self.detr.class_embed(hs) #[6,bs,100,92],class_embed是一个nn.Linear(256,num_classes + 1)
outputs_coord = self.detr.bbox_embed(hs).sigmoid() # [6,bs,100,4], bbox_embed是一个MLP(256, 256, 4, 3)
其中:
本文标签: objectHumanHOTRTransformersDetection
版权声明:本文标题:HOTR: End-to-End Human-Object Interaction Detection with Transformers 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728076372a1144528.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论