2017上半年的工作总结

滚滚长江东逝水,浪花淘尽了英雄,也洗涤了菜鸟。
入职一年有余,借着公司半年度总结的功夫,先在这里打个草稿。

上半年的工作主要分为两个方面:1.人脸检测+特征点定位;2.算法性能的优化(包括精度和速度)。

人脸检测方面:这个课题一度被认为已经解决,但受人脸分辨率、姿态、光照、表情、遮挡等因素影响,还是存在较大的漏检率。传统方法中,Adaboost算是比较优秀的。当前主流的方法是通用目标检测中的R-CNN等这类算法,而Cascade CNN 则是另一个类别的检测算法,它将传统的滑动窗口方法与深度学习相结合,其效果也不逊于R-CNN。
具体R-CNN算法详解可参见
论文:Rich feature hierarchies for accurate object detection and semantic segmentation
github: 这里写链接内容

特征点定位方面:从ASM/AAM 到ESR 再到当前比较流行的 Cascade shape regression 深度学习方法,该课题同人脸检测一块作为人脸识别的前端算法,也经历了很长一段发展史。2016年,该领域引入了RNN循环神经网络,对Cascade Shape regression 中 stage-by-stage refine 的策略进行建模,在300W这样的数据集上取得了比较大的进步。另外,为解决大姿态下定位精度的问题,密西根州立大学的 Xiaoming liu团队采用深度改进后的3DMM方法对人脸进行三维建模,然后将建模后的人脸三维信息与二维图像相结合,再做形状回归,该方法显著优于已有方法的定位精度。

可以看出,人脸检测和特征点定位方面都采用了Cascade CNN 的网络思路,那是不是可以结合起来同时训练呢?没错,去年的一篇 Joint Face Detection and Alignment using Multi-task Cascased Convolutional Networks 验证了这个想法,其大致思路为:将整个任务分为三个网络,第一个网络剔除大部分的人脸负样本,同时得到人脸的大致区域和特征点的大致位置,后面两个网络则不断对前面的结果进行refine,最后输出人脸boxs和landmarks。代价函数为三个任务的loss总和,赋予不同的权重因子以便有所侧重。
不出意外的采用了这种多任务的网络结构,历时两个月,总算有所交代。考虑到model的大小和后续优化及部署,前半个月主要在caffe和mxnet之间进行权衡,后面就是准备数据集,搭建网络,调整超参数等。需要注意的是,训练数据集的准备真的太重要了,稍有不慎得到的model就是各种天马行空的结果。当然超参数的调整也是一个体力活,从参数初始化到学习率、学习势、参数正则化及召回率的阈值设定等,无一不是令人头大的问题。另外,训练技巧也是需要具备的,比如数据的归一化、扩充(镜像、旋转、打乱)、网络结构的简化(dropout)、训练日志的打印保存等。

算法性能的优化:深度学习虽然高效,但其速度也是不可回避的问题,故其想从实验室走出来还需要进行一系列的改造。针对这个课题,Google又站了出来,推出了MobileNet网络结构,对传统convolution操作进行因式分解,将其拆分为两个操作depthwise 和pointwise。当然,MobileNet 也不算是横空出世,其前面还有很多长辈。详细理论参见其论文:MobileNet:Efficient Convolutional Neural Networks for Mobile vision applications。 如果你用的是tensorflow,那么你很幸运,google已经帮你实现了。如果是caffe or mxnet,那么你还得从c++源码开始,自己写操作,涉及到很多知识框架和矩阵运算的细节及硬件指令集加速手段。
注意,在消化这篇论文之前,有必要先了解下传统卷积运算的计算细节,可以参考caffe中的convolution和tensorflow中的depthwise_conv2d_native。当然,知乎这里写链接内容和论文High Performance Convolutional Neural Networks for Document Processing也可作为参考资料。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值