论文笔记《Deep Hand: How to Train a CNN on 1 Million Hand Images When Your Data Is Continuous and Weakly Labelled》

一、概述

  这个是最近的核心工作了,基本上都是靠着这篇paper的model过日子了啊..

  论文主要讲的是hand gesture recognition,实际上是用googlenet做的一个classification的工作,他的工作也就是在googlenet上做了fine-tuning,那么论文的关键是什么呢...当然就是标题啦..关键工作是CNN+EM,通过EM算法对隐变量参数进行预测,用CNN代替stepE的高斯模型的预测,这样迭代下来,最终训练了在这个值标记了3000张但是有1 Million的数据集上训练了一个CNN模型。

 

二、state-of-the-Art

  最牛逼的地方在于解决了对大量continuous且weakly labeled的数据的处理,这个在其他地方也会有很好的应用,所以得了CVPR 2016的oral啊..

  1. 首次在CNN上用weakly labelled data sets 来训练

  2.第一次使用posture and pose-independent hand shape classification,也就是当你的pose(手势)固定以后,把它作为一个符号,即使你旋转或者翻转,只要作为刚体的pose不变,那么就是一类的,这个在手语识别和一些其他地方还是有不错的用处的。

  3.其他都是在自吹自擂..

 

三、weakly supervised CNN training

  对他的算法进行了说明,对于一个视频序列而言,首先提取手部画面,然后他对每个image有一个标记,其中识别不出来的术语garbage class,然后通过CNN+Em来迭代计算,这里就是之前说的,用CNN来预测类别来代替传统EM中用Guassian mixtures做概率预测,每次迭代的时候,都会有个新的预测,有时候可能会改变之前的label。然后关键也是每个类别之间的boundaries的改变。

    

  然后这里有一句对整体算法最好的一个概括:we solve the problem in an iterative fashion withthe EM algorithm  in a HMM setting and use the CNN for modelling p(k|x).


四、一堆废话以及没搞懂的HMM在其中的应用。

     有时间要去彻底弄懂HMM。

五、整体流程

  1、数据准备

    在数据集上跑我之前的一篇dp跟踪手的程序,得到手部画面的数据集。

  2、建立字典

    个人理解是不同的数据集的表示不同。这里是把他们统一起来,可能有问题。

  3、初始化算法

    随机的对整个视频序列进行label,并且认为每个video的开始和结束时garbage class

  4.隐马尔科夫模型的设置

    这里它是基于一个RASR的开源软件,具体不是很清楚

  5、CNN训练

    CNN训练的一些tricks

六、拓展-手语识别

  这里话是前面工作的衍生了,首先把最后fc变回了1024层,整个CNN作为了一个feature提取的工具,然后通过PCA降维到200,具体的实现方法他也是参考的另一篇paper,以后要是用到这里可以去看一下。

七、总结

  总的来说两点是state of art 的:1、用CNN+EM的方法对大量连续弱标记数据的处理

                 2、在手势识别的时候是pose-independt的。

 

posted @ 2016-08-24 19:47  亦轩Dhc  阅读(1067)  评论(0编辑  收藏  举报