ESH系列06丨工业文本行识别用例

全文字数770,预计阅读3min

一、用例介绍

工业文本行识别用例使用深度学习技术从打印的文本行中识别字符,通过使用 CNN + LSTM + CTC 和 OpenVINO工具套件优化的计算机视觉算法检测和识别工业场景中印刷文本行的字符。例如产品序列号识别和过期日期检测,用于产品跟踪和包装缺陷检测等等。

20210912004959

二、效果展示

下图为包含工业文本行的原信息图片

2021-09-12-00-33-08

下图为该用例对原信息的识别结果,可以正确的识别文本行信息

20210912004146

三、工作原理

首先呢,我们把摄像头采集到的工业文本行数据进行标注和分割,接着用训练数据集来训练模型,在模型优化器中进行优化生成IR文件,然后在推理引擎上加载模型和测试数据集,最后我们可以在工业生产中完成部署。

具体工作流如下图所示:

20210912100452

四、配置与下载

1.配置说明:

System : Ubuntu 18.04LTS

Software : Openvino 2021.2

Programming Language : Python 3.6

Time to Complete : About 30min

2.如何下载

点击链接地址下载安装包,当然了前提是在ESH官网创建一个开发者账号并登陆。链接为 https://software.intel.com/iot/edgesoftwarehub/download/home/ri/industrial_text_line_recognition

在页面上点击下载,下载完成后要保存好页面的key,一会安装会用到。

20210912000653

五、安装与使用

1.解压并输入key,执行安装

20210912102816

2.安装成功

20210912103013

3.配置python虚拟环境

使用虚拟环境的好处是显而易见的,可以隔离不同项目之间的python环境,互不影响,且不会破坏系统环境的依赖项。这里我们在~/.bashrc中末尾添加下面的三行代码

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

保存并执行source ~/.bashrc

创建虚拟环境

2021-09-12-23-24virtualenv

激活虚拟环境

20210912144732

安装所需的python模块

20210912145338

4.执行命令对单个测试图像运行推理

python inference.py \
    --model ./models/model.xml \
    --label ./models/labels.txt \
    --input ./data//2020072906\:14\:185_229.jpg

2021-09-12-23-28

如果这一步报错请移步文章末尾的Q&A 1查看解决办法。运行结果如下图,可以看到 Inference Engine 成功对图像信息进行了推理。

5.执行命令对图像目录运行推理

python inference.py \
    --model ./models/model.xml \
    --label ./models/labels.txt \
    --input ./data/

推理成功结果如下

2021-09-12-23-33

6.加入参数calc_accuracy对图像目录运行推理并计算准确度

python inference.py \
    --model ./models/model.xml \
    --label ./models/labels.txt \
    --input ./data/ \
    --calc_accuracy 

2021-09-12-23-34

六、移除和清理环境

1.移除python虚拟环境

deactivate
rmvirtualenv tlr

如果第二步报错的话,请移步Q&A 2查看解决。

20210912201236

2.卸载应用软件包

如果卸载所有由edgesoftware脚本安装的软件包,请回到安装路径,执行下面命令

./edgesoftware uninstall -a

2021-09-13-00-03

Q&A

1.执行命令对单个测试图像运行推理报错的解决

遇到这个报错,我们可以查看 inference.py 的代码,发现该目录下无法生成result.csv文件,提示没有文件的写入权限,那么我们可以创建该文件,然后赋予写入权限,这样再次执行的时候会覆盖这个空白文件,顺利执行推理。

20210912231032

2.删除python虚拟环境报错的解决

如果发现删除python的虚拟环境的时候报错的话,我们可以给该目录权限,然后就可以了。

20210912230323