0 背景

在上一篇文章《深度学习之openvino预训练模型测试》,我们介绍了如何使用 intel 提供的预训练模型完成语义分割任务。但在用 public 预训练模型时,发现我的 openvino 版本较低不支持,因此,对我的 sdk 进行了升级,继续介绍如何使用预训练模型的方法。

升级安装方法参考《深度学习之win10安装配置openvino》 ,升级后的版本为 Version 2021.3。

1 模型介绍

这篇文章我们以  Optical Character Recognition Models / OCR 字符识别模型(车牌识别)模型为例,首先看看模型介绍

license-plate-recognition-barrier-0007 模型是一个较小规模的端到端的中文车牌识别模型,来识别道路中的中国车牌,示例如下(出于隐私保护目的,对车牌进行了裁剪处理)

模型参数如下

指标
平面内旋转(Rotation in-plane) ±10˚
平面外旋转(Rotation out-of-plane) Yaw: ±45˚ / Pitch: ±45˚
最小宽度(Min plate width) 94 pixels
识别准确率(Ratio of correct reads) 98%
计算量(GFlops) 0.347
参数量(MParams) 1.435
训练框架(Source framework) TensorFlow

注意,上述准确率指标只针对蓝牌,其它类型的车牌性能可能会差一些。

输入信息:

Image, name: data , shape: 1,3,24,94, format is 1,C,H,W where:

  • C - channel
  • H - height
  • W - width

Channel order is BGR.

输出信息:

Encoded vector of floats, name: decode, shape: 1,88,1,1. Each float is an integer number encoding a character according to this dictionary:

0 0
    1 1
    2 2
    3 3
    4 4
    5 5
    6 6
    7 7
    8 8
    9 9
    10 <Anhui>
    11 <Beijing>
    12 <Chongqing>
    13 <Fujian>
    14 <Gansu>
    15 <Guangdong>
    16 <Guangxi>
    17 <Guizhou>
    18 <Hainan>
    19 <Hebei>
    20 <Heilongjiang>
    21 <Henan>
    22 <HongKong>
    23 <Hubei>
    24 <Hunan>
    25 <InnerMongolia>
    26 <Jiangsu>
    27 <Jiangxi>
    28 <Jilin>
    29 <Liaoning>
    30 <Macau>
    31 <Ningxia>
    32 <Qinghai>
    33 <Shaanxi>
    34 <Shandong>
    35 <Shanghai>
    36 <Shanxi>
    37 <Sichuan>
    38 <Tianjin>
    39 <Tibet>
    40 <Xinjiang>
    41 <Yunnan>
    42 <Zhejiang>
    43 <police>
    44 A
    45 B
    46 C
    47 D
    48 E
    49 F
    50 G
    51 H
    52 I
    53 J
    54 K
    55 L
    56 M
    57 N
    58 O
    59 P
    60 Q
    61 R
    62 S
    63 T
    64 U
    65 V
    66 W
    67 X
    68 Y
    69 Z

2 模型转换

接下来我们下载该模型,方法和上一篇文章中提到的一样,这里不赘述,直接贴出下载过程

下载的模型是 tensorflow 格式的 ckpt 文件,我们需要做一个转换,满足 openvino 框架调用

转化方法是使用 downloader 路径下的 converter.py 文件,需要指定模型名称

运行指令 python .\converter.py --name license-plate-recognition-barrier-0007,转换成功显示如下,在对应的路径下生成 IR 模型,包含 xml 和 bin 文件

3 模型调用

同样的,在 sdk 里提供了模型调用的 demo,我们直接运行 build_demo_msvc.bat,可以一次性把所有的 demo 进行编译

方法如下

对于车牌识别功能来说,用到的项目是 security_barrier_camera_demo,生成的可执行文件为  C:\Users\ZONGXP\Documents\Intel\OpenVINO\omz_demos_build\intel64\Release\security_barrier_camera_demo.exe

查看使用说明,需要指定输入文件、车辆和车牌检测模型(-m)、车牌识别模型(-m_lpr)

其中,车牌和车辆检测模型属于 Object Detection Models / 目标检测模型 中的 vehicle-license-plate-detection-barrier-0123,下载和转化方法同上边识别模型的方法类似,这里贴一下运行指令

下载转换好之后,运行执行脚本

结果如下,车牌识别结果有问题,还需要进一步排查

4 总结

本文对 openvino 调用 public 预训练模型的方法进行了介绍,与 intel 预训练模型相比,主要区别在于需要一次格式转换,目前支持的转化类型包括以下几种:

  • Caffe,
  • TensorFlow,
  • MXNet,
  • ONNX,
  • Kaldi.

后续会进行更加深入的研究

深度学习之openvino预训练模型测试(车牌识别)相关推荐

  1. 深度学习之openvino预训练模型测试

    0 背景 在<深度学习之win10安装配置openvino>中我们介绍了 openvino 的安装方法,本文对下一步的使用进行一个介绍. 1 模型介绍 openvino 提供了一系列的预训 ...

  2. 深度学习进阶篇-预训练模型[3]:XLNet、BERT、GPT,ELMO的区别优缺点,模型框架、一些Trick、Transformer Encoder等原理详细讲解

    [深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...

  3. 【深度学习】使用预训练模型

    主要有两种方法: 特征提取 微调模型 特征提取 特征提取就是使用已经训练好的网络在新的样本上提取特征,然后将这些特征输入到新的分类器,从头开始训练的过程. 卷积神经网络分为两个部分: 一系列池化层+卷 ...

  4. 百度深度学习框架paddlepaddle实战三——自家车牌识别

    微信公众号:小白图像与视觉 关于技术.关注yysilence00.有问题或建议,请公众号留言. # 查看当前挂载的数据集目录, 该目录下的变更重启环境后会自动还原 # View dataset dir ...

  5. pix2pix学习系列(1):预训练模型测试pix2pix

    pix2pix学习系列(1):预训练模型测试pix2pix 参考文献: [Pytorch系列-66]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix ...

  6. Keras深度学习使用VGG16预训练神经网络实现猫狗分类

    Keras深度学习使用VGG16预训练神经网络实现猫狗分类 最近刚刚接触深度学习不久,而Keras呢,是在众多的深度学习框架中,最适合上手的,而猫狗的图像分类呢,也算是计算机视觉中的一个经典案例,下面 ...

  7. 多模态模型学习1——CLIP对比学习 语言-图像预训练模型

    多模态模型学习1--CLIP对比学习 语言-图像预训练模型 学习前言 什么是CLIP模型 代码下载 CLIP实现思路 一.网络结构介绍 1.Image Encoder a.Patch+Position ...

  8. 深度学习加载预训练权重好处

    深度学习加载预训练权重好处: 在模型开始训练前,使模型参数得到一个好的初始化,对于后面的训练学习有非常大的帮助.

  9. 【OpenCV-Python】——Haar人脸检测深度学习人脸检测EigenFaces/FisherFaces/LBPH人脸识别

    目录 前言: 1.人脸检测 1.1 基于Haar的人脸检测 1.2 基于深度学习的人脸检测 2.人脸识别 2.1 EigenFaces人脸识别 2.2 FisherFaces人脸识别 2.3 LBPH ...

最新文章

  1. python从文件中读取数据_Python3 中把txt数据文件读入到矩阵中的方法
  2. oracle中lang能不能查找,oracle中的查询语句
  3. POJ 3281_Dining
  4. 完全平方数—leetcode279
  5. 二十四种设计模式:代理模式(Proxy Pattern)
  6. ISA 2006利用Bandwidth Splitter定制带宽和限制流量
  7. linux家用系统版本,查看linux系统版本
  8. App界面交互设计规范(转)
  9. 去哪儿网查不到历史订单_去哪儿网 数据清洗
  10. win10无法成功完成操作,文件包含病毒怎么办
  11. cordova指定版本_cordova 插件的安装和删除
  12. .NET C#获取当前网页地址信息
  13. 写给非网工的CCNA教程(6)VLAN和802.1q协议
  14. java给图片添加自定义文字信息
  15. fanuc服务器显示6,1.13 FANUC如何向系统输入输入程序
  16. 基于中医药知识图谱智能问答(一)
  17. 网络端口和端口扫描简介
  18. 记一次Windows 无法加载这个硬件的设备驱动程序。驱动程序可能已损坏或不见了。 (代码 39)
  19. 2021-12-19 《聪明的投资者》学习笔记-15.积极型投资者的股票选择--7个标准。低市盈率,价格低于净流动资产
  20. 电脑小问题七:台式机连接无线网络+无线网卡

热门文章

  1. 项目难于管理的根本原因在于项目的”VUCA”特性
  2. C# 群发邮件 (密送、抄送)
  3. 解析在线教育培训APP开发
  4. Python配置清华软件安装源
  5. 芯片程序烧录的熔断机制与安全
  6. 关于 X509Certificate2 找到文件路径的问题
  7. Oracle和Mysql的区别
  8. 【官方教程】使用Quick-Cocos2d-x搭建一个横版过关游戏(六)
  9. 关闭Vue Eslint语法检查
  10. P02014182王子恒信息论作业