Objects as Points

anchor-free系列的目标检测算法,只检测目标中心位置,无需采用NMS

1、主干网络

采用Hourglass Networks [1](还有resnet18 with up conv layer,以及DLA-34),这是一个用于人体姿态检测的网络,网络结构如图,

特点是类似一个沙漏结构,两头大,中间小,右边特征需要左边特征融合。几个网络特点是输入512*512,输出128*128

2、输出

输出包括三部分

hm(heatmap):128*128*80(类别),heat中最大点的位置代表了检测目标的中心点,

wh:128*128*2,输出对应位置上的heigt和width

reg:128*128*2,输出对应中心点的偏移

3、训练

(1)训练时标签,以目标中心形成一个高斯分布

(2)损失函数

损失函数包括三部分

logistic regression with focal loss:N是keypoints个数, α and β是focal loss的超参。

当标签Y=1时,如果exsy example时,损失就小,反之就大;如果Y=0时。相较于focal loss,

多了一个惩罚项,这个惩罚项的意义在于,对于负样本,当距离中心点较近时,

这个值比较小,反之比较大。即对很接近负样本的样本 ,loss比重降低,不是那么负的样本,loss比重升高。

【2】认为其处理了正负样本的不平衡。

中心偏移损失

  size损失(h,w不经过标准化)

其中  

4、推理

分为3个部分

(1)pre_process

输入图片,给出图片的中心点,尺度(可多尺度测试),输出的长宽

meta = {'c': c, 's': s,
'out_height': inp_height // self.opt.down_ratio,
'out_width': inp_width // self.opt.down_ratio}

(2)process  输出

output = self.model(images)[-1]
hm = output['hm'].sigmoid_()
wh = output['wh']
reg = output['reg'] if self.opt.reg_offset else None

将输出做一个解码

dets = ctdet_decode(hm, wh, reg=reg, cat_spec_wh=self.opt.cat_spec_wh, K=self.opt.K)

在128*128个中心点中,只输出top100个中心点

detections = torch.cat([bboxes, scores, clses], dim=2)# 1*100*6

(3) post-process

最后又做了放射变换,但没看明白为什么要做这个

【1】Stacked hourglass networks for human pose estimation

【2】https://zhuanlan.zhihu.com/p/66048276

最新文章

  1. win8 win10 安装msi 提示2502、2503的错误代码
  2. [Angularjs]angular ng-repeat与js特效加载先后导致的问题
  3. 【20160924】GOCVHelper 图像增强部分(4)
  4. Android框架
  5. 用protobuf编译时报错:protoc: error while loading shared libraries: libprotoc.so.9: cannot open shared object file: No such file or directory 的解决方法
  6. Java内存模型JMM与可见性
  7. JS——基础知识(三)
  8. 关于SQL经典题
  9. Dynamics 365中使用Web API将查找字段的值设置为空值的方法。
  10. java异常体系结构详解
  11. easyui下载包详解
  12. Hive中知识点
  13. [JVM-4]Java内存模型(JMM)
  14. MySQL 内置函数
  15. Git图形化界面客户端
  16. restful开发API
  17. Java8函数式接口/Lambda表达式/接口默认方法/接口静态方法/接口冲突方法重写/lambda表达式指定泛型类型等
  18. 《JavaScript面向对象编程指南》
  19. adb install使用说明
  20. TensorFlow 之 手写数字识别MNIST

热门文章

  1. CSS 有序或者无序列表的前面的标记 list-style-type 属性
  2. [python]自动计算1-100的平方和
  3. 巧用JavaScript语言特性解耦页面间调用
  4. C# 给某个方法设定执行超时时间-2
  5. JavaWeb实现文件上传下载功能实例解析 (好用)
  6. 阶段3 2.Spring_03.Spring的 IOC 和 DI_1 ioc的概念和作用
  7. 三十五:数据库之SQLAlchemy外建之一对多关系
  8. 安装MySQL Enterprise Monitor
  9. python学习之内置函数(二)
  10. tagged和untagged