本文来自携程技术沙龙上《深度学习在唯品会的实践和测试应用》,已授权发布。
我们在做的事
境外美妆
本次演讲内容:
人脸检测
传统的人脸检测
基于深度学习的人脸检测
识别效率高
当网络的构造设计完成之后,深度神经的网络能够自发去分类、提取需要使用的特征,这就大大节省了人工获取特点以及设计分类装置的不必要程序。深度神经网络的学习方式使得识别器不会进入到常见的多层次网络,避免局部选择。并且深度神经网络在训练时不需要监督,同时也不需要标签,节省了标本取样的时间。在表达复杂函数时,深度神经网络由于不需要过多的神经元,因此,识别效率得到了极大提升。
识别效果好
深度模型通过逐层抽象的方式获得人脸的高层特征,具备更强的表达能力,能够充分发挥大数据的优势,准确率比传统方式有着质的飞跃。当调整神经网络权值时,权值就会自动接近最优点,最终获取一个完美的数据。
Tensorflow
Why Tensorflow?
可用性
灵活性
效率
- 功能强大的可视化组件TensorBoard
- 相比其他的深度学习框架,文档最全,资源最多
- 部署容易
- 性能、SDK大小、模型大小都满足移动端App的需求
Tensorflow | Caffe | Keras | CNTK | mxnet | |
---|---|---|---|---|---|
Github star | 96k | 23k | 28k | 14k | 13k |
Github fork | 61k | 14k | 10k | 3k | 5k |
Owner | BVLC | fchollet | Microsoft | DMLC | |
Language | Python/C /... | C /Python | Python | C | Python/C /... |
iOS Support | YES | YES | YES | NO | YES |
Android Support | YES | YES | YES | NO | YES |
Update | Very High | Very High | High | High | Middle |
移动端部署
- Tensorflow 的部署
- 从Tensorflow到Tensorflow lite
- 可替换组件化的部署
- 模型/SDK大小的优化
性能优化
人脸检测
AR绘制
系统占用
总体时间消耗
测试
功能测试
普通常规功能测试,不再介绍
性能测试
数据对比如下
自动化测试
为什么要做自动化测试?
- 避免人工测试产生的错误
- 记录每一次测试的原始数据,确保测试结果可以重现,以便追踪问题
- 提供更多的原始数据进行分析为下一步优化提供更多参考
- 效率提升
测试工具
Farseer
修改
Template Loader 动态参数更新
Macarons
自动化流程测试
性能参数分析
对比历史
异常测试结论提醒
张凯通 |唯品会研究院资深开发工程师,
负责深度学习在移动端的应用,以及自动化测试等工作。曾参与"唯品会"、"学霸君"、"imo云办公室"等多款千万级用户的手机应用开发和架构设。
END