图像识别作为深度学习算法的主流实践应用方向,早已在生活的各个领域发挥作用,如安全检查和身份核验时的人脸识别、无人货架和智能零售柜中的商品识别,这些任务背后的关键技术都在于此。
图1 PP-ShiTu应用于商品识别效果示意(开发者应用展示)
然而实现理想的识别效果并不是一件简单的事:
-
针对海量数据问题而言,如何实现一个通用的方法在不同的数据集中都有很好的表征能力?
-
不同物体间的差别可能极其微小,即使是同种物体,也会受到外界干扰呈现不同形态,究竟如何进行有效区分?
-
识别需求更新频繁,使用单一的分类或者检测模型只能不断增加训练集重训模型,怎样才能降低开发成本,快速跟上迭代步伐?
PP-ShiTu核心技术解读
针对以上技术难点,PaddleClas推出的通用图像识别系统PP-ShiTu均可以完美解决,它不仅有高水平的特征学习能力,对新出现的类别也可以在不用重新训练算法的情况下,直接通过配置检索库的方式实现识别。
⭐ 项目链接 ⭐
https://github.com/PaddlePaddle/PaddleClas
PaddleClas所有源码及教程均已开源,欢迎大家使用,并Star鼓励~
这样的特殊能力,得益于PP-ShiTu引入目标检测、度量学习、图像检索等技术,并将每个模块性能最大化,才构建成了统一、通用的图像识别系统:
图2 PP-ShiTu架构示意图
-
主体检测:不同于一般的目标检测,主体检测是将目标物体和背景区分开来,能够有效减少干扰特征。PP-ShiTu中所采用的是目标检测模型PP-PicoDet,不仅预测速度超快,精度上也达到了SOTA,为后续的准确识别打下坚实基础;
图3 PP-PicoDet在 COCO2017-val上的 mAP 对比
-
特征提取:作为图像识别系统的重点工作,PP-ShiTu是采用CPU级轻量化骨干网络PP-LCNet,并结合度量学习arcmargin算法,对高相似物体的区分效果远超单一模型,不仅准确率超越大模型ResNet50,预测速度还能快3倍!再加上经过18w类数据集打磨的预训练权重,不用再费心选择,一个模型就可以实现多场景覆盖。
图4 训练数据及部分测试数据示例
-
向量检索:不同于单一模型直接输出类别信息,对于未知类别只有模型重训一个选择,耗时又耗力。PP-ShiTu引入向量检索,通过计算目标物体和检索库中图像的相似度来输出类别信息,一次训练长期使用,高效又便捷。
图5 端侧新类别建立索引流程(开发者应用展示)
升级版PP-ShiTu欢迎使用
时隔数月,PaddleClas 新版本v2.3.1为大家带来了更加轻量化的图像识别系统PP-ShiTu。核心功能点如下:
-
升级版PP-ShiTu大小仅18M,完美支持移动端需求
-
支持基于C++的服务化部署,部署效率大幅提升
-
支持移动端Paddle Lite部署教程,手机上也能轻松实现图像识别
图6 手机识别效果展示(开发者应用展示)
PP-ShiTu的使用也是十分简单、方便,在完成环境配置后只需三步即可完成快速体验:
第一步:下载 Inference 模型
第二步:构建索引
第三步:完成单张/批量图像识别
详细文档,请参考:
https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/docs/zh_CN/quick_start/quick_start_recognition.md
更有完整流程演示,可参考AI Studio项目:https://aistudio.baidu.com/aistudio/projectdetail/3445604
共建开源生态
自PP-ShiTu发布以来,引起了众多开发者的广泛关注。华东理工大学的高材生颜鑫,也是飞桨领航团的团长,带领团队基于PP-ShiTu开发了一套智能购物平台系统:通过图像即可精准识别顾客购买的商品,并返回完整的购物清单及应付价格,为智能货柜提供了非常好的视觉化解决方案。
链接指路:
https://github.com/thomas-yanxin/Smart_container
图7 智能结算平台架构示意图
与此同时,我们也力求为开源社区的繁荣作出贡献,希望PP-ShiTu的算法本身以及优化思路,可以在给业界开发者带来更好网络的同时,也带来更多的算法优化启发,为中国的开源发展贡献一份力量。
如果您想详细了解更多飞桨的相关内容,请参阅以下文档。
官网地址:
https://www.paddlepaddle.org.cn
PaddleClas项目地址:
GitHub:
https://github.com/PaddlePaddle/PaddleClas/tree/develop
Gitee:
https://gitee.com/paddlepaddle/PaddleClas