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

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 预训练模型相比,主要区别在于需要一次格式转换,目前支持的转化类型包括以下几种:

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

目标识别是计算机视觉一个重要的研究领域,由此延伸出的车辆型号识别具有重 要的实际应用价值,特别是在当今交通状况复杂的大城市,智能交通系统成为发展趋 势,这离不开对车辆型号进行识别和分类的工作,本文围绕如何利用计算机视觉的方 法进行车辆型号的识别和分类展开了一系列研究: 本文对当前的目标识别和分类的特征和算法做了总结和归纳。分析比较了作为图 像特征描述常见的特征算子,总结归纳了他们的提取方法、特征性能以及相互之间的 关联。另外,介绍了在目标识别工作中常用的分类方法,阐述了他们各自的原理和工作 方法。研究了深度神经网络的理论依据,分析比较了深度神经网络不同的特征学习方 法,以及卷积神经网络的训练方法。分析比较不同特征学习方法的特点选取 k-means 作为本文使用的特征学习方法,利用卷积神经网络结构搭建深度学习模型,进行车辆 车型识别工作。 本文为了测试基于深度学习的车辆型号分类算法的性能在 30 个不同型号共 7158 张图片上进行实验;并在相同数据上利用改进了的 SIFT 特征匹配的算法进行对比实验; 进过实验测试深度学习方法在进行车型分类的实验中取得 94%的正确率,并在与 SIFT 匹配实验结果对比后进一步证实:深度学习的方法能够应用在车辆型号识别领域
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宗而研之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值