1
1)文章设计了一个由粗糙到精细的这样的一个预测的过程,客服之前tompson他们的refine网络不能很好的修正coarse网络的缺陷
2)作者在coarse网络和refine网络之间加入全新的MRF网络,MRF用一个低维流型进行因子化限制
3)不同关节点对的权重是不一样的,对于胳膊肘而言,肩膀和手腕对他的影响是不同的
2、
之前tompson的方法的缺陷
1)用单独的一个滤波器e_a|c来刻画关节点间的关系似乎是简单了点,对于刻画复杂的节点关系明显是不够的,因为tompon的条件概率仅仅刻画并不复杂的数据集,一旦一个数据集变得复杂的话,两个关节点之间的关系也就复杂了,仅仅用一个大小为63x63的卷积核来刻画两个关节点的条件概率显然是不够的哈,所以作者在本文将会提出对于每一种关系的话,将由K个大卷积核来代替的,而不是一个,对于这K个结果做一个加权上面的处理哈。
本文的网络结构分为三部分,coarse, MRF, refine三部分
2)滤波器刻画了不同关节点间的位置关系
3)在本文中,每一个滤波器都是由K个滤波器线性组合完成的。那么k个线性组合的参数是怎么来的呢?他是通过将feature map映射到低维的空间里面获得的,低维的流型空间是K维的,因为这k个参数是由单独的网络提取出来的,所以再运行的时候是变化的而不是静态的,这k个weight是通过一个自动编码器获得的如图所示
4)不同的pairwise之间的权重是不一样的,假设有20对,那么会是20个不同的数字,而不是相同的
5)MRF的message passing是参考了itertive feedback来的,具体参考论文里的参考文献
3 网络结构实现
网络框架如上,没什么困难理解的地方
1)coarse网络部分采用三个水平的金字塔模型
2)MRF部分网络的unary和pairwise是通过卷积学习出来的,由粗糙网络出来的feature的大小是32x32,为了能够覆盖整个feature map,所以用于后续概率图的卷积核大小是63x63,因为概念都是从tompson来的,所以直接把公式那过来吧
来看下面的一段话,因为f_a|c刻画的条件概率的话太过单一,并不能表示出很强的信息,所以作者将几个f_a|c^k结合在一起来使用,也就是前面提到的低维流型来进行因子化,其实就是简单的相乘啦!
同样的,在刻画不同的pair对的时候比例也应该不一样,此处用beta表示
最后的公式如下
为了学习MRF的参数,最后用误差反馈的方法来进行调整!!!!!!!!!!!!
MRF部分的网络如下,
解释一下上面的这幅图
- 首先第一步将(KxJx63x63)[蓝圈]个卷积去和JX32X32的heatmap做卷积,J是关节点的数量,K是两个关节点之间关系需要几个卷积核来表示
- 然后卷积完之后就获得了每个关节点在对应关系下的结果依然是(KxJx63x63)[红圈],蓝圈中大括号的“K convolutional priors per joint”代表的是一种关系下用几个卷积核来代替,而红圈下的大括号“J pair-wise potentials per joint for each manifold dimension"代表的是每个关节点对应了J中关系,感觉是全连接的图了
- 然后用$\beta$区队每一种关系做加权获得绿圈
- 然后粉红圈的结果和绿圈的结果做了进一步的加权获得最终的结果
两点疑问:
- 蓝圈的地方是不是应该是J组,而图中只画了一组?
- 红圈到绿圈的63->32怎么来的
3)refine部分的网络的输入是任意大小,因为之前tompson他们都是选取同样大小的patch送入到网络里面,很明显这对于不同的部位是不合理的,所以作者在这里不同部位对应的patch输入不同的大小,记住作者是从卷基层的第一第二层取特征,然后用卷积核卷积,预测最终的偏差,加在MRF预测出来的map图上面,获得最终的结果。具体网络如图
最后的损失是三部分你损失之和
4 训练和测试
这部分很简单了,就是refine网络部分输入大小取决于crop的大小,先用大的学习率,再用小的学习率学习之类的,具体参考论文吧,作者的实验也是做了一系列的对比试验,最重要的就是MRF的位置问题,很明显,加在coarse和fine网络的中间是最合理的