openvino模型中的text_recognition与text_detection的性能整理与踩坑历程

模型性能整理

model model_size inference_time input_image output
text_detection 12.8m 870ms Pulpit rock Pulpit rock
text_recognition 22.6m 100ms Pulpit rock velveteivis

贴出大图

  • text_detection 输入图片
    song.png
  • text_detection 输出图片
    result_text_detection.png
  • text_recognition 输入图片
    velvet.jpg

踩坑

顺序:从环境配置开始到模型下载再到运行

  • 1.之前的openvino环境搭建一直没有写博客记录下来,导致重新配置的时候手忙脚乱,但是大概是官网的顺序搭下来,其中的VS的环境会比较烦人,后续贴出VS环境变量。
  • 2.在跑一个不需要openvino模型的时候可以先下载预训练模型看看效果,github repository: open_model_zoo https://github.com/opencv/open_model_zoo。
  • 3.如果觉得效果不错,可以看它的训练网络,看了下代码,三天前才添加的text_recognition训练网络,github repository :openvino_training_extensions
  • 4.在有了.xml.bin文件之后,可以开始跑demo了,需要用到VS编译生成执行文件.exe

环境配置

模型下载

  • 1.cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\tools\model_downloader,进入到模型下载文件夹,运行downloader.py
  • 2.如果是conda环境,可以直接切换到设置的虚拟环境中,source activate your_env,删去downloader.py首行的# !/usr/xxx/env/python3,运行python downloader.py --all --output_dir F:/openvino_download/2019_download,可下载所有模型到outpur_dir中,(此处需要科学上网才能下载)
  • 3.如果比较赶的话可以下载单一个或指定多个模型,python downloader.py --name 'mtcnn-p,densenet-*'
  • 4.下载地址https://download.01.org/opencv

运行

  • 1.直接根据官网给出的示例命令行运行可能会出错,再出错的时候就需要看看源码了,本文中的text_detectiontext_recognition的预测以及处理代码都是由C++写的,需要打开VS debug代码。
  • 2.修改完毕按保存,但是代码是放在C盘的,所以需要管理员权限才能保存,(不太正规,我直接在VScode修改保存)。
  • 3.修改完毕需要VS点build生成执行文件(资源视图->text_detection_demo->右键->生成(重新生成))
  • 4.执行命令行
    • 1).text_detection

    ./text_detection_demo.exe -i C:/Users/Administrator/Pictures/song.png \ -m_td F:/openvino_download/Retail/object_detection/text/pixel_link_mobilenet_v2/0001/text-detection-0002-fp16.xml \ -d_td MYRIAD

    • 2).text_recognition

    ./text_detection_demo.exe -i "F:/DATA/velvet.jpg" -m_tr F:/openvino_download/Retail/text_recognition/bilstm_crnn_bilstm_decoder/0012/dldt/text-recognition-0012-fp16.xml -d_tr MYRIAD -r

  • 5.可以在由图片显示的代码出添加图片保存的代码,方便查看。

模型训练

openvino预模型地址 https://github.com/opencv/openvino_training_extensions