车牌识别初笔:车牌定位之精确定位与block精简

2024-04-08 14:32

本文主要是介绍车牌识别初笔:车牌定位之精确定位与block精简,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

花了挺长时间在定位上,精确定位与block精简貌似是无法战胜的鸿沟,横在我眼前。调测百遍千遍,虽无硕果累累,却也心有所得。

一、精确定位

        车牌上下边界一般都比较准确,稍作修改一般无需大幅度调整。有一种情况-----倾斜,倒是需花点时间分析研究改动。基本上难点是在左右边界,就那两条短短的竖线,要费去尔等多少心思心血奋斗

        方法:灰度(边缘、跳变、波形、投影),颜色(YUV 、 RGB、  HSV),二值化(局部、全局),角点,haar。

        极难有一种方法适用所有情况,只能权衡一个最佳组合。到精确定位的环节,只能逐步细分,例如颜色一个枝节,大框一个枝节,小框一个枝节等等。小车牌,颜色丢失或光线不足的暗车牌这两种情况问题较多。

        YUV色差C=(255 + U - V)的区分度不错,蓝色最高,C一般255以上,一些非车牌block一般在260以下。当然很多蓝色不明显的暗车牌block、白底车牌、黑底车牌的C值也会在260以下。蓝色U值一般取150以上且V值130以下,需根据图像实际效果定

       灰度投影波形分析及竖直边缘密度统计是一个常用方法。水平逐行、逐列灰度跳变,灰度跳变又分为两个范围,一个是Y值60到90,一个是大于90,阈值需根据图像实际效果定。灰度投影波形波峰波谷判断极具分析判断空间,从原始图像来说,灰度是一个未经破坏原汁原味的表征车牌的一个重要特征,得灰度精髓者得精确度。

       二值化方法效果取决于二值化效果。不是原汁原味的特征故受影响因素多。局部(水平每25像素作为步长)与全局二值化同或,再利用简单角点处理,对于二值化效果好的图像基本能求得正确左右边界。阈值判断以每列灰度均值,升序排序后来确定。局部二值化以80%到95%左右的值作为条件的来判断选取哪一个值为阈值,而全局二值化用50%左右的值作为条件来判断选取哪一个值作为阈值。

       简单角点方法其实是n * n邻域内和中心点的差值满足一定条件,则保留,本质上利用的是车牌竖直边缘特征。用在二值图像上则差值是255,当然选取255还是0为中心点具有不一样的效果,有些情况可用if让两种都用上。得到处理后的图像就要得到左右边界就比较简单了。

二、block精简

         关乎效率,略微影响识别率。

         方法:色差,水平灰度投影波峰波谷,haar,局部与全局二值化加简单角点、二值化后统计跳变特征

         色差较粗糙,水平灰度投影波峰波谷数量判断是常用方法,经验阈值在15以上,40以下。

         好的haar模型,定位有较高的准确率,因为对象为block,不会花销很大时间,做好了完全能满足效率。

         局部与全局二值化加简单角点和上面精确定位说到的一样,得到处理后的图像,遍历每行,计算出255到0的跳变的次数,算出最大值,正常车牌一般大于10。小车牌需另设置。

         二值化统计跳变特征,是对二值化图像做每列统计白点像素,得到投影图后,分析实际情况得到经验阈值,然后判断最高波峰与相邻最低波谷差值是否大于此阈值,是则计数加1,正常车牌block的最终值会在10左右,之前设置了范围6~15。



       目前为止,运用二值化加简单角点来排除block效果较好,误排率较低,而haar如果模板训练得好,效果好于前者。精确定位上还没有发现哪种方法凌驾与其他方法之上,具有很显著的效果,待进一步研究。

       以上数据均本人经验值,理论均本人心得,欢迎同行交流指正

        

这篇关于车牌识别初笔:车牌定位之精确定位与block精简的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885851

相关文章

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别

转发来源:https://swift.ctolib.com/ooooverflow-chinese-ocr.html chinese-ocr 基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别 环境部署 sh setup.sh 使用环境: python 3.6 + tensorflow 1.10 +pytorch 0.4.1 注:CPU环境

百度OCR识别结构结构化处理视频

https://edu.csdn.net/course/detail/10506

[ip核][vivado]Block Menory Gennerator 学习

<刘东华的xilinx系列FPGA芯片IP核详解>读书摘录: 1. 2. 3.

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

神经网络第四篇:推理处理之手写数字识别

到目前为止,我们已经介绍完了神经网络的基本结构,现在用一个图像识别示例对前面的知识作整体的总结。本专题知识点如下: MNIST数据集图像数据转图像神经网络的推理处理批处理  MNIST数据集          mnist数据图像 MNIST数据集由0到9的数字图像构成。像素取值在0到255之间。每个图像数据都相应地标有“7”、“2”、“1”等数字标签。MNIST数据集中,

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现:无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python,需要安装python开发扩展: 本文已经安装,我们需要找的是python安装所在目录,本文实际路径如下: 如果在本文路径中没有此目录,请尝试在C盘中搜索 python,搜索到相关python目录后,点击Python 3.9进入目录,

【图像识别系统】昆虫识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

一、介绍 昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集(‘蜜蜂’, ‘甲虫’, ‘蝴蝶’, ‘蝉’, ‘蜻蜓’, ‘蚱蜢’, ‘蛾’, ‘蝎子’, ‘蜗牛’, ‘蜘蛛’)进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一

HTML(20)——定位

定位 作用:灵活的改变盒子在网页中的位置 实现: 定位模式:position边偏移:设置盒子的位置 leftrighttopbottom 相对定位 position:relative 改变位置的参照物是自己原来的位置,并且不脱标占位,标签显示模式特点不变 绝对定位 position:absolute 使用场景:子级绝对定位,父级相对定位  脱标不占位参照物:先找最近的已经

关于文章“python+百度语音识别+星火大模型+讯飞语音合成的语音助手”报错的修改

前言 关于我的文章:python+百度语音识别+星火大模型+讯飞语音合成的语音助手,运行不起来的问题 文章地址: https://blog.csdn.net/Phillip_xian/article/details/138195725?spm=1001.2014.3001.5501 1.报错问题 如果运行中报错,且报错位置在Xufi_Voice.py文件中的pcm_2_wav,如下图所示