智能图像识别产品开发流程 OCR 图像识别
文章目录如何快捷高效地开发智能图像识别产品明确识别任务确定工程技术路线毫无疑问技术线是智能图像识别产品的开发重点。工程线:重要的是规划数据准备模型训练测试评估模型发布总结如何快捷高效地开发智能图像识别产品本文将结合笔者多次智能图像识别产品、OCR识别项目开发经历,从工程技术角度对这一流程进行总结和介绍
明确识别任务在项目开发之前,要明确产品需求,即识别任务到底是什么。例如在做身份证信息识别之前,需要沟通如下内容:
识别应用的场景如何,用户通过API调用我们的云端识别服务程序,还是识别程序直接在移动端直接部署用户上传的身份证图像是规范矫正过的,还是随意角度放置的用户需要识别哪些关键字段,身份证反面需不需要识别确定工程技术路线在了解大概的识别任务后,可以着手进行工程技术路线调研和设计了。
开发分两条线,工程一条线,技术一条线。
技术线先行,在确定了技术可行,原型通过验证后,可快速启动工程线。
毫无疑问技术线是智能图像识别产品的开发重点。例如在身份证识别项目中,我结合使用场景设计了目标检测,校正,文本检测,文本识别和信息抽取等几个步骤。对于每块内容需要进行技术调研和评估:
目标检测的方法如YOLO、FasterRCNN、SSD等有哪些有缺点校正。如何进行透视变换,求解变换矩阵。如何进行文本检测,CTPN有哪些限制。文本识别需要多少样本,样本如何获取。信息如何抽取,需不需要NLP支持。工程线:重要的是规划工程线需要设计前后端架构,明确开发要点。本文着重从技术实现方向介绍智能图像识别产品的开发流程
数据准备数据准备包含以下步骤内容:
原始数据收集由于原始数据内容可能涉及隐私,比如身份证,银行卡图像,在不触犯法律情况下可通过内部资源贡献,或者通过网络途径获取。数据标签化对获取的原始图集进行打标签,可交由外包专业团队。这部分需要设计标签的格式以及储存方式。建议采用labelme进行标注例如可以使用createpolygons创建文本检测和识别标签,使用createpoints创建关键点标签增强数据由于原始数据集规模有限,需要通过透视变换,模糊,抖动,背景融合进行图像增强,提升训练效果。数据生成(部分情况可用)对于印刷文字识别等,可通过工具机器生成出以假乱真的字符文本图像集。一个比较好用的工具。模型训练从数据集中分割出训练,测试用数据,使用训练数据集进行模型测试。对于某个产品的开发过程,可能需要训练多个模型来满足功能需求。
例如在身份证识别应用中,我们需要训练一下模型:
目标定位模型,实现身份证目标的位置大小坐标检测。关键点检测模型,实现身份证关键点的坐标检测,求解透视变换矩阵,校正图像。文本检测模型,实现文本区域的定位。文本识别模型,实现文本区域内字符序列的预测。各个模型需要根据具体场景选择合适的开发算法。
模型训练可能持续一天甚至一周,需要不时观察模型训练输出,根据loss变化调整训练姿势。
测试评估这里的测试评估不仅关注单模型的表现效果,同时对模型集成后的表现效果进行测试对建立的测试集进行测试,评估单模型精度和集成后整体精度。
模型发布在测试集上表现出色的可以进行模型发布。一般需要freezegraph,将模型文件和权重文件整合合并为一个文件,便于发布。一些应用场景,还需要对模型进行压缩,向目标设备进行适配。多模型发布需要根据技术路线和方案进行集成,以实现完整的产品能力。
可通过建立开放平台对外提供识别服务,对外输出AI能力。
总结好啦,如何快捷高效地开发智能图像识别产品,你学会了吗??
欢迎同学们访问如下链接,测试评估交流!!
Email:1161242024@qq.com
身份证信息识别服务
银行卡信息识别服务
通用卡证信息高精度识别流程智能图像识别产品开发流程如何设计一个开放平台