9、【图像识别】光学字符识别 OCR

1、前言

1.1 本文章约定

  • 操作 :表示你需要跟着说明进行相应的操作。
  • 输入命令 xxxxxx:表示你需要在控制台键入命令。

1.2 开始条件

若要完全复现该项目,需要先完成:
1、搭建深度学习图像识别开发环境:https://blog.csdn.net/lemon4869/article/details/106818808
2、下载预训练模型并进行迁移学习:https://blog.csdn.net/lemon4869/article/details/107050702
3、一键训练模型:https://blog.csdn.net/lemon4869/article/details/107145398
4、安装 OpenVINO:https://blog.csdn.net/lemon4869/article/details/107145684
5、编写 OpenVINO 应用程序(C++ 版):https://blog.csdn.net/lemon4869/article/details/107145841

本教程需要的文件,请提交下载好,再开始动手实践:

1.3 视频教程

2、新建 OCR 项目

把 ocr_project 拷贝到 E:\1-tf_train\workspaces 目录下。所有的内容都准备好了,训练好的模型也有。

3、数据预处理

3.1 收集数据

我们的目标是:识别图像中出现的字符:1、R、O、9、2、P、8,并用矩形框框出来。
在这里插入图片描述

3.2 数据清洗

不合格的图片已经清洗过了,剩下的都是合格的。

3.3 标注数据

图片已经标注好了,共计 54 张,我们就用这 54 张来进行训练。
在这里插入图片描述
还有未标注的图像 139 张,不想动手标了。有兴趣的童鞋可以继续标注,然后拿来训练。
在这里插入图片描述

4、训练模型

输入命令 python one_command_train.py --steps=5000 --batch_size=6,启动训练

训练过程截图:
在这里插入图片描述
注意:如果出现类似 Allocator (GPU_0_bfc) ran out of memory trying to allocate 806.88MiB. The caller indicates that this 的错误,说明显存不够用,试着尝试减小 batch_size。

5、导出 TensorFlow 冻结图模型

输入命令 python export_inference_graph.py --inpu_type=image_tensor --pipeline_config_path=training\ssd_inception_v2_coco.config --trained_checkponit_prefix=training\model.ckpt-5000 --output_directory=trained_frozen_models\ocr_model

6、测试模型

完成训练之后得到冻结图文件 frozen_inference_graph.pb,接下来我们就利用 frozen_inference_graph.pb 做推理计算,看一看模型的表现情况。
输入命令 python object_detection_example_3.py,得到的测试截图如下:

7、优化并部署模型

7.1 基于 OpenVINO 工具套件优化并加速模型

输入命令cd C:\Program Files (x86)\IntelSWTools\openvino_2019.3.334\deployment_tools\model_optimizer,进入 model_optimizer 目录
输入命令 cd mo_tf.py --input_mode=E:\1-tf_train\workspaces\ocr_project\trained_frozen_models\ocr_model\frozen_inference_graph.pb --tensorflow_use_custom_operations_config="C:\Program Files (x86)\IntelSWTools\openvino_2019.3.334\deployment_tools\model_optimizer\extensions\front\tf\ssd_v2_support.json" --tensorflow_object_detection_api_pipeline_configE:\1-tf_train\workspaces\ocr_project\trained_frozen_models\ocr_model\pipeline.config --reverse_input_channels --data_type=FP16 --output_dir=E:\1-tf_train\workspaces\ocr_project\IR_model --model_name=ocr_detector,对模型进行优化

7.2 基于 OpenVINO 工具套件部署模型

所谓部署模型,就是在我们的应用程序当中调用优化好的模型进行推理。

8、总结

本项目基于预训练模型 ssd_inception_v2_coco ,并借助 TensorFlow Object Detection API 进行迁移学习,然后使用 OpenVINO 对模型进行优化,然后部署优化后的模型到应用当中。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值