智能图像识别产品开发流程 OCR 图像识别

如何快捷高效地开发智能图像识别产品

本文将结合笔者多次智能图像识别产品、OCR识别项目开发经历,从工程技术角度对这一流程进行总结和介绍

明确识别任务

在项目开发之前,要明确产品需求,即识别任务到底是什么。
例如在做身份证信息识别之前,需要沟通如下内容:

  • 识别应用的场景如何,用户通过API调用我们的云端识别服务程序,还是识别程序直接在移动端直接部署
  • 用户上传的身份证图像是规范矫正过的,还是随意角度放置的
  • 用户需要识别哪些关键字段,身份证反面需不需要识别

确定工程技术路线

在了解大概的识别任务后,可以着手进行工程技术路线调研和设计了。

开发分两条线,工程一条线,技术一条线

技术线先行,在确定了技术可行,原型通过验证后,可快速启动工程线。

毫无疑问技术线是智能图像识别产品的开发重点。

例如在身份证识别项目中,我结合使用场景设计了目标检测,校正,文本检测,文本识别和信息抽取等几个步骤。
对于每块内容需要进行技术调研和评估:

  • 目标检测的方法如YOLO、Faster RCNN、SSD等有哪些有缺点 校正。
  • 如何进行透视变换,求解变换矩阵。
  • 如何进行文本检测,CTPN有哪些限制。
  • 文本识别需要多少样本,样本如何获取。
  • 信息如何抽取,需不需要NLP支持。

工程线:重要的是规划

工程线需要设计前后端架构,明确开发要点。
本文着重从技术实现方向介绍智能图像识别产品的开发流程

数据准备

数据准备包含以下步骤内容:

  • 原始数据收集
    由于原始数据内容可能涉及隐私,比如身份证,银行卡图像,
    在不触犯法律情况下可通过内部资源贡献,或者通过网络途径获取。
  • 数据标签化
    对获取的原始图集进行打标签,可交由外包专业团队。
    这部分需要设计标签的格式以及储存方式。建议采用 labelme 进行标注
    例如可以使用create polygons 创建文本检测和识别标签,使用create points 创建关键点标签
  • 增强数据
    由于原始数据集规模有限,需要通过透视变换,模糊,抖动,背景融合进行图像增强,提升训练效果。
  • 数据生成(部分情况可用)
    对于印刷文字识别等,可通过工具机器生成出以假乱真的字符文本图像集。一个比较好用的 工具

模型训练

从数据集中分割出训练,测试用数据,使用训练数据集进行模型测试。
对于某个产品的开发过程,可能需要训练多个模型来满足功能需求。

例如在身份证识别应用中,我们需要训练一下模型:

  • 目标定位模型,实现身份证目标的位置大小座标检测。
  • 关键点检测模型,实现身份证关键点的座标检测,求解透视变换矩阵,校正图像。
  • 文本检测模型,实现文本区域的定位。
  • 文本识别模型,实现文本区域内字符序列的预测。

各个模型需要根据具体场景选择合适的开发算法。

模型训练可能持续一天甚至一周,需要不时观察模型训练输出,根据loss变化调整训练姿势。

测试评估

这里的测试评估不仅关注单模型的表现效果,同时对模型集成后的表现效果进行测试
对建立的测试集进行测试,评估单模型精度和集成后整体精度。

模型发布

在测试集上表现出色的可以进行模型发布。
一般需要freeze graph,将模型文件和权重文件整合合并为一个文件,便于发布。
一些应用场景,还需要对模型进行压缩,向目标设备进行适配。
多模型发布需要根据技术路线和方案进行集成,以实现完整的产品能力。

可通过建立开放平台对外提供识别服务,对外输出AI能力。

总结

好啦, 如何快捷高效地开发智能图像识别产品,你学会了吗??

欢迎同学们访问如下链接,测试评估交流!!

Email:[email protected]

身份证信息识别服务

银行卡信息识别服务

通用卡证信息高精度识别流程
智能图像识别产品开发流程
如何设计一个开放平台

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章