本文创新点\贡献
分割驱动,让每个可以看到的部分都对关键点位置的预测做出贡献
方法
方法概述
假设:
物体是刚体且CAD模型已知。
对输入的图片做卷积,然后产生分割和预测,将图片分成
S×S个网格,每个网格都i预测属于的类别并回归关键点的位置,关键点在这里就是交点,然后根据2D-3D对应来做EPnP
分割流
对每个
S×S的cell预测label,
Dseg=K+1,
K是类别数,因为前景和背景的不平衡,所以使用的 Focal Loss
回归流
预测内容:
在分割出来的mask中进行的预测,预测提前定义好的3D关键点的2D映射,这里用的是八个角点,所以
N=8,
Dreg=3N
预测方法:
没有直接预测位置,预测的是八个角点对于中心位置的偏移,所以设2D形心是
c,对于第
i个关键点,预测的偏移为
hi(c),所以绝对位置就是
c+hi(c),然后训练的时候残差就是:
Δi(c)=c+hi(c)−gi
所以loss就是:
Lpos=c∈M∑i=1∑N∣∣Δi(c)∣∣1
同时还用sigmoid
计算对于每个预测的置信度,来表示和真实值的相似程度:
Lconf=c∈M∑i=1∑N∣∣si(c)−exp(−τ∣∣Δi(c)∣∣2)∣∣1
所以这一块的总loss是:
Lreg=βLpos+γLconf
训练
网络结构是Darknet-53,输出为3Dtensor,空间分辨率是
S×S,在其中的每个cell上预测两个特征向量
Dseg,Dreg,这个网格能控制投票的数量。
两个流的结构是相同的,不过输出的特征维度不同
最终loss
L=Lseg+Lreg
推理
多同类物体:
因为这里的分割是类级别的,而不是实例级别的,所以对多同类物体的情况表现不好,为了解决这个作者使用了聚类方法,使用相似像素距离阈值来做聚类
EPnP:
如果直接使用RANSAC的话速度比较慢,所以作者提取了
n=10个最高置信度的预测来做RANSAC,能减少计算量,之后再用EPnP来求出结果,过程如下图:
a是网格上的类别预测,b是显示出所有预测的关键点,c是对关键点过滤,d是最终Pose可视化
实验结果
消融实验,NF不知道是啥,HC是只用置信度最高的一个预测点,b−n是RANSAC取n个最高点的效果
和其他的方法的对比
训练和测试的时候把所图片resize到
608×608,然后将2D映射的位置和置信度都正则化到范围[0,10]
就当是输出的比例,要结果的时候再映射回去
总结
就算是逐像素预测了,2020看这篇文章确实没啥东西,主要后面出来了不少厉害的方法,比起来这个就比较简单基础了
虽然说不是很新,但是这方法跟这之前的yolo-6D有啥区别呢?都是用cell,都是预测的偏移,都是用的PnP,就名字起的好,这个比yolo-6D多了个分割,就是预测的时候只计算分割mask部分,就这个改动,这也能中了?