最近读了Joint Training of Cascaded CNN for Face Detection这篇论文,论文中把之前人脸检测使用到的cascade cnn,从分开训练的模式,改为了联合训练,并且声称得到了更好的结果。
但是在我读论文的过程中,产生了下面几点疑惑:
1.论文4.2节的Training procedure这部分最后提到,To make it converge easily, we train seperate networks and initialize the joint network with trained weights. 说明联合网络利用了分别训练的模型作为初始权重。这相当于把之前的cascade cnn又训练了一遍,然后再初始化joint network,训练步骤其实比之前的cascade cnn更复杂了,而且在分别训练各个网络时,采用了怎样的配置参数,以及训练的目标,均未提及。
2.论文6.3节中提及该方法在FDDB上测试结果,在false positives=1000 时recall是88.2%,而之前的cascade cnn是85.7%。但是我在FDDB网站上查阅到的CascadeCNN的结果是,false positives=167时recall是0.856701,CascadeCNN提供的测试结果,并没有false positives=1000的数据。不知道这个85.7%是如何获得的。
3.2016年上半年有一篇论文Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks,也是利用了类似于CascadeCNN的结构,在FDDB上性能比CascadeCNN好很多(论文的方法是检测和对齐同时做,但是也提供了只做检测不做对齐的ROC曲线),而且比这批论文的结果还要好,不知道为何选择性忽视这篇论文。
4.在网上看到一篇报道,该论文中的算法在单核cpu上可以跑到几百fps,但是论文里面还仅仅是10fps,一下提高了几十倍的速度,真的是很神奇,不知道是如何在这么短时间内做到的。
上面就是我的几点疑问,还希望各位高手不吝赐教。
参考文献和网站:
1.http://www.thinkface.cn/thread-4651-1-1.html
2.http://vis-www.cs.umass.edu/fddb/results.html
3.http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Qin_Joint_Training_of_CVPR_2016_paper.pdf
4.http://arxiv.org/pdf/1604.02878