ALPR-License Plate Detection and Recognition in Unconstrained Scenarios阅读笔记

2023-05-16

 

(1)简介

论文下载地址:License Plate Detection and Recognition in Unconstrained Scenarios [pdf] 
github 的项目地址:alpr-unconstrained

工程主页:alpr-datasets

视频效果: Demi Lovato Rock in Riio Lisboa 2018

本文选自ECCV2018的论文《License Plate Detection and Recognition in Unconstrained Scenarios  ( 复杂| 无约束 场景下的车牌检测和识别)》。该论文不进给出了一套完整的车配识别系统( Automatic License Plate Recognition system,ALPR system)的解决方案,而且提供了在无约束(Unconstrained Scenarios)场景下的识别算法, 很好的解决了实际生活中的车牌识别问题。

(2)motivation:

目前很多ALPR系统对正面拍摄车牌照片识别效果良好,但是在多变的角度和场景(光线)下车牌往往是倾斜的,导致识别的效果并不如意。

 

数据集中存在的倾斜车牌

 

基于此,这篇文章提出了一种完整的ALPR系统,可以在各种场景下具有良好的表现。在这篇文章的贡献主要有两个:

1. 介绍了一种新颖的神经网络,能够检测出不同场景环境下的车牌;并在OCR之前对变形的进行校正

2. 利用真实数据合成多样的车牌,用于训练。手动标注的样本了少于200个,并且是从头开始训练网络

 

(2)实现方法

ALPR 的主要任务是 在图像中找到并识别车牌(license plates );通常情况下会分为4个子任务序列:

1. 车辆检测(vehicle detection) ; 

 2.  车牌检测(  license plate detection); 

3. 字符分割( character segmentation)

4. 字符识别( character recognition)

而子任务3和4可以看做OCR;  所以一共有3个子任务:vehicle detection, license plate detection, OCR.  这篇文章也是按照这三个子任务的顺序进行展开的,如下图所示。文章中的ALPR系统分为: 基于YOLOv3 的车辆识别 --> 车牌的检测和校正--> 车牌的OCR识别。

示例流程

 

车辆的检测

 

考虑车辆的检测的需要使用的较少的时间,于是借用了YUOLOv3的模型与darknet框架进行检测的; 使用 YOLOv3的主要原因是: 1 . 检测速度很快(大约是70 FPS );  2. 识别的准确率较高,在PASCAL VOC数据集中的测试结果是76.8% mPA.  在这篇文章中,将YOLOv3直接拿来使用,同时忽略了除了cars以外的其他类别;

PS : 

Yolov3 相比于Faster RCNN 确实很快,但是也有致命的缺陷: 不能识别出特别小的物体。如果在实际应用中需要在一张很大的图像上识别很小的车,建议重新训练

另外,YOLOv3 中具有车牌的物体不仅仅是cars, 还有bus和truck;这两个类别在程序中确被忽略的。

原文:

原文解释

 

对于检测出的正样本,将会被resized 之后,送入车牌检测模块。resize的计算方式如下:

计算resize 因子:

 

(1)中,Wv和Hv是识别车辆后的图像大小, Dmin和Dmax是常量,分别是288和608

通过这种缩放计算以后,包含有车辆的图片会被统一成大小为 288*608大小的图片;

 

车牌的检测和校正

(不知道校正这个词用的对不对,贴出原文:License Plate Detection and Unwarping )

在车牌的检测模块中,作者提出了一种基于CNN 的物体检测网络: Warped Planar Object Detection Network,WPOD网络, 该网络是从YOLO\ SSD\ STN中获得灵感,但是并没有计算spatial transformations,我想可能是减少时间复杂度。

WOPD的检测流程如下:

可以看出来,在检测出车牌以后,还会对倾斜的车牌进行校正;现在需要关注的部分有两点:
1. WPOD是如何设计的?
2. 如何进行车牌校正的?

检测车牌的整个流程

 

好,回答第一个问题: WPOD的设计:

网络结构如下,可以看出在最后一层的DETECTION上又两个并行的网络,具体看下图或论文;

另一个两点是loss function的计算方式有所改变。

WPOD的细节

整个WPOD net的训练样本有196张,可以算得上是小样本了。这193张图片中,有105张是从Cas数据集中筛选的,有40张来自SSIC数据集,52张来自AOLP数据集。这些选出的车牌图片包含了欧洲、美国、巴西和台湾的车牌;

 

训练数据样本

 

车牌的校正过程,文章没有提,我想开源代码里面应该会有的;最近刚看完检测部分的代码

所识别和校正后的车牌图片(车牌的识别在OCR部分)

 

OCR

用于文字的切割和识别的网络是基于YOLO进行修改的;这部分值得一提的是样本生成的方法;

PS:  这里如果使用CRNN的话,效果可能会更好;尤其是当车牌存在语义关系的时候,例如:中文车牌就具有语义关系,车牌的第一位是汉字,第二位是大写字母, 后几位是数字加字母的情况;

 

 

生成车牌数据的流程

 

 

结果

 

 

备注:

loss 的计算方式和车牌的校正方法, 这两个应该在在阅读代码的时候找到对应的程序片段;

待理解以后,会写出对loss的理解

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ALPR-License Plate Detection and Recognition in Unconstrained Scenarios阅读笔记 的相关文章

  • 重装正版Windows 10和Microsoft office home and student 2019教程(2020.10.29)

    目录 环境准备 xff1a 一个U盘 xff08 至少8G xff09 步骤 第一步 利用微软下载工具制作U盘启动盘 到微软官网下载Windows 10 界面 xff0c 点击立即下载工具 后会弹出一个下载界面 xff0c 下载此文件Med
  • TabError: inconsistent use of tabs and spaces in indentation

    错误原因是tab制表符和空格混用了 从其他地方复制源码容易出现此错误 解决办法 xff1a 把处于同级缩进的所有缩进修改统一 比较流行的几个编辑器都能标识tab和空格 xff0c 比如我用的vscode 用鼠标框选 不知道是tab还是空格的
  • 提高 OpenCV HOG 人体检测器的准确性

    我正在一个项目中工作 项目的一部分包括将 OpenCV 的 HOG 人体检测器与摄像机流集成 目前它正在使用相机和基本的 HOG 检测器 CPP detectorMultiScale gt http docs opencv org modu
  • 页面如何知道我正在用 firebug 分析它

    Look Wow 网页如何知道我正在使用 firebug 顺便说一句 我不知道如何显示半透明的添加横幅 你可以做 if window console window console firebug alert Firebug active
  • 如何衡量图像检测算法的成功率和准确率?

    有谁知道如何正确量化图像检测算法的成功 如何结合这两个误差源 因为一个来源是算法未能检测到的对象数量 另一个来源是算法错误识别为对象的误报数量 例如 如果图像中有 574 个物体 但算法只检测到其中 540 个 同时产生 113 个误报 那
  • 用于渲染丰富网页内容的移动设备检测

    迄今为止最具网络功能的手机是什么 型号和 或用户代理 以及 当试图确定它们是否能够处理丰富的移动定制网站时 应该评估哪些规则 我正在开发一个移动网站 目前正在进行一些用户代理检测 以确定移动设备是否应该看到完全增强的 js jquery m
  • Cocos2d iPhone非矩形精灵触摸检测

    有一个在精灵中包含三角形图形的项目 我将这些精灵排列在网格中 以便它们的矩形全部重叠 当精灵被触摸时 它们的 z 顺序 由我 被更改 以将它们放在 zOrder 的顶部 我使用的是 Cocos 0 8 1 和触摸调度程序方法 我可以进行触摸
  • Dialogflow,从音频中检测意图

    我正在尝试将音频文件发送到对话流 API 进行意图检测 我已经有一个工作得很好的代理 但只能处理文本 我正在尝试添加音频功能 但没有成功 我正在使用此页面中提供的示例 Java https cloud google com dialogfl
  • Windows Azure 服务总线队列重复检测如何工作?

    我知道您可以设置重复检测以在一段时间内使用天蓝色服务总线队列进行工作 但是 有谁知道这是否基于队列中的对象起作用 因此 如果我有一个 id 为 SO 1 的对象 该对象被放入队列并随后被消耗 重复检测是否仍然有效 我想我要问的是 是时间范围
  • 颜色检测算法 - 我应该怎么做?

    我在设计颜色检测系统方面有点陷入困境 我不太想出一种轻松完成它的方法 基本上 我有一个图像库 我想按颜色排序 因此 如果用户指定 按蓝色排序 则蓝色最多的图像将出现在结果的顶部 蓝色最少的图像将出现在底部 问题是图像并不全是一种颜色 所以它
  • 如何在OpenCV中检测已知物体?

    我尝试在窗口中实时绘制形状 屏幕上的形状如缠结 矩形 圆形 半圆形和 Z 使用黄色 尺寸和形状可能与原始图像不同 但程序知道所有原始形状 因为它们是预定义的 我想知道如何识别正确的形状 举个例子 有可能做到这一点的方法吗 我可以为此使用模板
  • iOS / C:检测音素的算法

    我正在寻找一种算法来确定实时音频输入是否与 144 个给定 且完全不同的 音素对之一匹配 最好是完成这项工作的最低级别 我正在为 iPhone iPad 开发激进 实验性音乐培训软件 我的音乐系统包含 12 个辅音音素和 12 个元音音素
  • 如何使用头文件签名(幻数)检查文件类型?

    通过输入文件及其扩展名 我的代码成功地从 幻数 中检测到文件的类型 magic numbers png bytes 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A jpg bytes 0xFF 0xD8 0x
  • 如何从 silverlight 应用程序检测操作系统?

    我有一个 Silverlight3 应用程序 旨在在 Windows 和 Mac OS 环境上运行 我想在运行时知道我的应用程序是在 Windows 还是 Mac 上运行 这样我就可以根据用户在他们选择的操作系统中习惯的方式进行一些调整 例
  • 每个请求上的 51Degrees 重新加载会减慢 ASP.NET MVC 的速度

    添加 51Degrees 移动检测库后 我的 ASP NET MVC 3 项目速度慢得像爬行一样 51Degrees 日志文件定义为
  • HOG 人体检测器:背景减除图像的误报检测

    我正在开展一个需要检测场景中的人员的项目 最初在原始帧上运行 HOG 检测器后 所有帧上的特定背景对象都被检测为人 从而产生 3021 个误报检测 因此 我采取了合理的步骤 通过对所有帧应用背景减法器 BackgroundSubtracto
  • Java:检测文件修改(文件轮询?)

    在 Java 中检测文件修改的最有效方法是什么 我读过有关文件轮询的内容 但是 轮询方法有许多缺点 随着监视文件数量的增加 这些缺点变得越来越明显 我宁愿不使用轮询 但许多在线解决方案似乎都将文件轮询作为推荐的方法 我希望有一个与操作系统相
  • 使用环境变量识别 Cygwin、Linux、Windows

    当 makefile 需要在不同的操作系统上运行并且应根据操作系统正确设置各种设置 转义 路径分隔符等 时 就会出现问题 第一种方法是使用 Windows COMSPEC ifneq COMSPEC ComSpec in windows e
  • 文件类型更改时颜色方案也会更改

    当我打开 vim htm html xml 或 vimrc 文件时 是否可以更改 Vim 中的颜色方案 当我切换到具有上述扩展名的已打开文件时 也会更改颜色方案 这就是我想要我的 vim 做的事情 file txt 或新的 未保存 缓冲区
  • 如何检测数据库类型?

    我需要确保我连接的数据库是 MySQL 而不是 PostgreSQL 或 Microsoft SQL Server 我怎样才能知道正在使用哪种类型的数据库 第一个提示可能是如果您尝试使用 mySQL 数据库驱动程序连接到 PostgreSQ

随机推荐

  • 吴恩达机器学习+deeplearning课程笔记----干货链接分享

    分享两个GitHub链接 xff0c 今天看到的 xff0c 超赞超赞不能更赞了 xff0c 答应我一定要去看好吗 不论是笔记还是github中分享的其它资源 xff0c 课程视频链接 xff0c PPT下载 xff0c 作业布置等都超棒
  • 英文写作经典指导书--学术写作必备

    以下书籍文章已整理PDF版上传至我的CSDN下载资源中 xff0c 链接 资源审核不过 尴尬 xff0c 要的朋友在博客下面留言好啦 xff0c 我看到后会发送到你邮箱哒 2018 7 23 我把压缩包上传到了百度网盘里 xff0c 需要的
  • 图像处理和机器学习有什么关系?

    一篇很不错的文章 xff0c 分享给博客的朋友们 作者 xff1a 许铁 巡洋舰科技 链接 xff1a https www zhihu com question 21665775 answer 281946017 来源 xff1a 知乎 著
  • 【CVPR 2018】Learning Rich Features for Image Manipulation Detection(图像篡改检测)

    今天来给大家分享一篇CVPR2018的论文 xff0c 检测图像的篡改区域 xff0c 用更快的R CNN网络定位图像被篡改的部分 xff0c 练就PS检测的火眼金睛 让PS痕迹无处可逃 这就将图像鉴伪 xff0c 图像取证这方面与深度学习
  • 国内免费汉语语料库-NLP

    自转载https www sohu com a 196504864 236505 xff08 一 xff09 国家语委 1国家语委现代汉语语料库http www cncorpus org 现代汉语通用平衡语料库现在重新开放网络查询了 重开后
  • 【模糊数学】模糊逻辑,隶属度,模糊逻辑应用,模糊推理过程

    update 下一篇博客我将会讲如何用这篇博客的模糊推理过程构建一个图像边缘检测的模糊推理系统 链接 xff1a https blog csdn net luolan9611 article details 94296622 这是我的一项大
  • FRR BGP 协议分析 5 -- 路由更新(2)

    处理NLRI 获取NLRI的报文长度 xff0c 填入nlris NLRI UPDATE xff0c 到现在为止nlris里面的4种类型 如果有的话 xff0c 已经全部填写到nlris数组结构体里面 然后我们遍历这个数组 xff0c 处理
  • 从输入 URL 到页面加载完成中间都经历了什么

    摘要 目录 1 chrome浏览器资源加载时序分析2 w3c提供的接口performance timing分析3 一个完整的URL 解析过程细分介绍3 1 缓存相关3 1 1 URL解析 3 2 网络相关3 2 1 DNS解析3 2 2 建
  • ALC5621声卡调试记录

    转载请注明出处 xff1a https blog csdn net luomin5417 article details 80731790 平台 imx6q 内核版本 linux 3 14 1 硬件连接 图 1 1 硬件连接 2 设备树修改
  • Pytorch转Caffe最简单方法

    由于需要移植模型到比特大陆 xff0c 华为昇腾这些平台 他们基本都支持caffe的模型 xff0c 对其他模型支持不太好 用其他方法pytorch转caffe不然就是绕道太多 xff0c 不然就是很多坑 这里记录一个最简单的方法 xff1
  • No module named ‘index‘ after install pyflann

    如题 xff0c 墙内没有 I have some problems installing pyflann in python 3 7 3 after execute pip install pyflann The installation
  • 多维 opencv Mat访问

    你看完这篇文章之后 xff0c 将学会以下知识 xff1a 二维 三维 四维等任意维度的Mat的常用建立方法 xff1b 任意维度Mat中值的索引 xff1b 以及一些Mat常用的操作 下面是对各维度矩阵的介绍 xff1a 注意 xff1a
  • H264/H265码流的编码码率设置

    一 什么是视频码率 xff1f 视频码率是视频数据 xff08 视频色彩量 亮度量 像素量 xff09 每秒输出的位数 一般用的单位是kbps 二 设置视频码率的必要性 在视频会议应用中 xff0c 视频质量和网络带宽占用是矛盾的 xff0
  • 检测图像失焦、偏色、亮度异常

    要求通过算法检测监控设备是否存在失焦 偏色 亮度异常等问题 问题本身不难 xff0c 在网上查看了一些资料 xff0c 自己也做了一些思考 xff0c 方法如下 xff1a 1 失焦检测 失焦的主要表现就是画面模糊 xff0c 衡量画面模糊
  • Jupyter 安装与使用

    最近由于项目需要 xff0c 开始学习python xff0c 然后发现一个非常有用的python交互式编辑器 xff0c 非常容易上手而且非常有用和实在 xff0c 本博文是对学习jupyter notebook的一个汇总和记录 xff0
  • C语言 print()函数 规则,格式 意思

    C语言 print 函数 规则 xff0c 格式 意思 C语言格式字符print 函数 printf后面的参数包括 格式控制字符串 和输出变量的列表 格式控制字符串 由格式控制字符和普通字符 其中前者以 开始加某一个特殊字符 比如 d为输出
  • tensorflow C++ 环境搭建及实战

    摘要 xff1a 最近在研究如何使用tensorflow c 43 43 API调用tensorflow python环境下训练得到的网络模型文件 参考了很多博客 xff0c 文档 xff0c 一路上踩了很多坑 xff0c 现将自己的方法步
  • 关于Linux进程优先级数字混乱的彻底澄清

    Linux进程的调度优先级数字会在好几个地方出现 xff1a 内核 xff0c 用户 xff0c top命令 他们各自都有自己的表示法 我们用一个实际的例子来说明 xff0c 下面在Linux写一个最简单的程序 xff1a 编译它运行 xf
  • 神经网络时间复杂度和空间复杂度(参数量计算和计算量计算)

    在梳理CNN经典模型的过程中 xff0c 我理解到其实经典模型演进中的很多创新点都与改善模型计算复杂度紧密相关 xff0c 因此今天就让我们对卷积神经网络的复杂度分析简单总结一下下 本文主要关注的是 针对模型本身的复杂度分析 xff08 其
  • ALPR-License Plate Detection and Recognition in Unconstrained Scenarios阅读笔记

    xff08 1 xff09 简介 论文下载地址 xff1a License Plate Detection and Recognition in Unconstrained Scenarios pdf github 的项目地址 xff1a