【模式识别目标检测】——模式识别技术车牌检测应用

news2024/11/25 20:55:06

目录

引入

一、模式识别主要方法

1、统计模式识别

2、基于隐马尔可夫模型识别

3、模糊模式识别

4、人工神经网络模式识别

总结

二、模式识别应用

1、车牌定位

2、车牌识别

参考文献:


引入

人在观察事物或现象时,常寻找它与其他事物或现象不同之处,并根据一定目的把相似、但又细节不同的事物或现象组成一类——如字符识别,虽然每个人写的数字“8”都不一样,但都是同一类。

模式识别是AI的一个重要方向,目的在于模拟人的感知能力,也称“机器感知”、“智能感知”。其发展于20世纪40年代电子计算机的出现,21世纪与深度学习融合,近年深度学习和大数据极大推动了其发展!包括声音和语言识别、文字识别、指纹识别、声纳和地震信号分析、图片分析、化学模式识别等等。


一、模式识别主要方法

对数据关系的挖掘抽象为一个分类问题,就是模式识别问题。模式识别是一种从大量信息和数据出发,在专家经验和已有认知的基础上,利用计算机和数学推理方法对形状、模式、曲线、数字、字符格式、图形自动等自动完成识别的过程

1、统计模式识别

这是一种比较常用且较为完备的识别方法,主要步骤如下:

1. 数据预处理:收集和准备用于训练和测试的数据集,剔除噪声和冗余。
2. 特征提取:从原始数据中提取有代表性的特征向量,映射到特征空间。
3. 特征选择:根据算法需求或者降低维度的目标,选择最重要的特征。
4. 模型训练:使用统计方法(如贝叶斯分类器、支持向量机等)对提取的特征进行训练。
5. 模型评估:通过测试数据集评估模型的准确性和性能。
6. 模型优化:根据评估结果对模型进行调优,例如调整参数或改善特征提取过程。
难点和关键点在于如何使用适合的分类器算法,现在常用的都是在符合正态分布情况下,忽略偏
离较远的数值进行估计的方法。

2、基于隐马尔可夫模型识别

隐马尔可夫模型(HMM)是一个统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。通常由两部分组成:①无法肉眼观察的具有一定状态的隐式马尔可夫链;②用统计分析方法直接描述的离散的一般随机过程——一般为正态分布和泊松分布下的概率密度函数分布。通过一定量的统计学习来确定一个大概的状态值之后,生成一个近似的隐马尔可夫模型,只需要通过提取特征代入就可以得到相关数据来判别和分类。

1. 定义状态集合:确定系统的状态集合,每个状态表示一个观测值的类别。
2. 定义观测集合:确定系统可能产生的观测值集合。
3. 确定初始概率分布:指定模型在开始时处于每个状态的概率。
4. 确定转移概率矩阵:指定模型在不同状态之间转移的概率。
5. 确定观测概率矩阵:指定模型在每个状态下观测到每个观测值的概率。
6. 解码算法:使用算法(如维特比算法)根据观测序列推断隐藏状态序列。

3、模糊模式识别

模糊模式识别源于模糊数学,在此基础建立了模糊集理论。模糊集是一个具有模糊性的概念集合,抽取的数据模糊化后建立合适的隶属度函数和模糊规则集,最后解出结果。

1. 模糊化:将输入的模糊数据转化为隶属度函数,描述其在各个类别上的归属程度。
2. 规则定义:根据领域知识或经验,定义一组模糊规则,用于将模糊数据映射到具体的类别。
3. 推理机制:基于模糊规则,使用推理机制对输入进行推理,以确定输出的类别。
4. 去模糊化:将推理结果从模糊集合转化为具体的类别或数值。

此方法极大增加了判别成功率,不会因为某些特别参数而导致数据不可识别。缺点是模糊集范围由人的主观经验确定,不同人的概念模型不同,需要结合其他识别方法,此理论当前还不够充分。

4、人工神经网络模式识别

最流行的模式识别方法,其在准确性和适用性方面有突出表现。BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络模型之一。属于有监督学习。

1. 确定网络结构:选择适当的神经网络类型(如前馈神经网络、卷积神经网络等)和层数,并确定每层的节点数和连接方式。
2. 数据预处理:收集和准备用于训练和测试的数据集,并进行标准化处理。
3. 初始化网络:初始化网络的权重和偏置参数。
4. 前向传播:将输入数据通过网络,逐层计算每个节点的输出值。
5. 反向传播:根据网络的输出结果和目标值,计算每个节点的误差,并通过梯度下降法更新网络参数。
6. 训练模型:重复进行前向传播和反向传播,调整网络参数,直到达到预定的停止条件。
7. 模型评估:使用测试数据集评估训练好的模型的性能和准确性。
在BP神经网络中加入适量的隐层,正确的信息会沿着“神经元”向前传播,有误的信息则会退回上一
个 “神经元”,并且修正传播节点之间的权重,判别函数 动态更新,使其识别准确度很高。 缺点
建立合适神经网络需要大量数据,资源消耗大。

总结

①统计模式识别是基于统计学理论和模型的一种方法,主要关注特征提取和模型训练。它适用于各种数据类型,但需要具备较好的特征工程能力。
②基于隐马尔可夫模型识别方法则着重在描述序列数据背后的状态变化,适用于时序数据的建模与识别。它可以考虑到时间上的依赖关系,但对初始状态和转移概率的假设限制较大。
③模糊模式识别通过模糊化和去模糊化的过程,能够处理模糊性较强的输入数据。它可以应对不确定性和模糊性,但规则的定义需要领域知识的支持。
④人工神经网络模式识别利用神经网络的强大拟合能力,可以自动学习特征表示和复杂的非线性关系。它适用于各种任务,但需要大量的数据和计算资源进行训练。


统计模式识别基于隐马尔可夫模型识别方法更加注重建模和概率推断适合处理结构化数据和时序数据模糊模式识别关注处理模糊和不确定性的问题,并需要领域知识进行规则定义。人工神经网络模式识别能够灵活地适应不同任务和数据类型,通过大量的训练数据可以达到较好的性能,但需要较高的计算资源和时间成本。


二、模式识别应用

医学分析、人脸指纹识别、语音识别、交通网络等都有它的身影!以下是语音识别的流程图:

 以车牌的定位和识别为例,大致流程如下:

定位:①首先将带车牌图像转换到 HSI 颜色空间;②运用传统图像处理方法粗定位车牌位置;③通过重心法进行倾斜校正最终确定车牌区域

识别:①然后对中文和非中文字符采用不同的算法进行字符切割;②用模式识别的理论对车牌区域特征提取与选择;③分类判决进行车牌字符识别,输出车牌号。

1、车牌定位

目前的车牌定位主要有数学形态学、颜色分割、基于图像的纹理和形状特征等多特征的定位算法。

①粗定位:分割出车牌在图像中所处的区域,包括图像的二值化、图像去噪,连通集的分析定位车牌区域。

首先需要将图像由RGB转换到HSI空间,设定相应阈值得到初步定位;然后将图像二值化,并用点扫描法去除噪点与细纹——逐行扫描像素点,将不符合设定阈值的白点去掉。

此时可得到一块平行四边形的联通集,将这区域剪切出来得到粗定位的车牌图像。

②倾斜校正:图像可能不水平,这会影响车牌字符的分割和识别。

首先对粗定位的二值图片和粗定位的车牌图片分别分析,求出倾斜度K(基于重心的思想求得)

a、将一个二值图像中每一个白点像素看做一个质量为1的质点,利用重心公式$x=\frac{\sum m_i x_i}{\sum m_i}y=\frac{\sum m_iy_i}{\sum m_i}$可求得图像的重心。

b、得到二值图像的总体重心后,以该重心像素为界将图像分成左右两个部分,分别用相同的办法得到左右两部分的重心

c、用一个向量连接两个重心,然后计算出这个向量相对水平方向的倾斜角,即倾斜角度K。据此对彩色图像惊醒校正。

2、车牌识别

字符识别主要有模板匹配、伽柏变换、SVM、基于深度学习的识别算法

①字符分割:将车牌区域的字符逐个分割出来,以便输送到字符识别模块进行识别。

a、预处理算法:由于光照等影响,蓝色车牌在名都、纯度、饱和度等有比较明显差异,深浅不一,所以在灰度化之前,要对其进行直方图规定化,使得所有车牌的蓝色背景和白色字符分布在同一灰度级。

规定化之后,根据先验经验以及实验测试设立一个合理的阈值,将小于阈值的像素点设置为黑色,待遇阈值设为白色,实现灰度化

b、主算法:英语字母和阿拉伯数字是单连通集字符集,可采用连通集的方法分割;汉字是由多个连通集组成,不能采用该方法,可采用一种由大量实验得到的设置矩形长宽进行截取的方法。

1、对于字母和数字,只要得到每一个字符连通域起点像素和终止像素 , 
就得到了包含整个单连通域的最小矩形区域。依此方法逐个切割矩形区域图像,
实现非中文字符的切割。
具体算法是逐列逐行扫描像素,当扫描到连续 m(3) 列有像素灰度级为 1 时,
将扫描到的第一个像素所在的列当作字符连通域的第一列,继续逐列扫描,
当发现连续 n(3) 列所有像素灰度级为 0 时,将首先出现全为 0 灰度级的列
当作字符连通域的结束列。这样我们就能够将车牌的第 2 到 7 个的字符逐步切割
输出该部分图像,完成非汉字字符分割。
2、对于汉字字符的切割,几乎所有省份的简称都包含有多个连通集,所以连通集取
矩形轮廓的方法将不再适用。采用将第二个字符框平缩放移的方法:在大量实验结果发现,
在取已经分割出来的第二个字符(即第一个非汉字字符)图像的矩形扩大 1.2 倍,
再将此矩形往左平移 1/7 整个车牌矩形的宽度,此时矩形所在的车牌的区域就是中文字符所在区域,
我们将此区域图像截取输出,完成车牌中文字符的切割。

②字符识别

模式识别的大致过程:从测量空间到特征空间,再映射到模式空间

对于字符识别:先获取待识别字符的图像特征,依据相应的准则来确定字符图像的模式类别——特征获取、特征选择、分类判决。

a、收集已知字符类别的字符图像,统计其特征,包括其在二维空间中的位置特征、直方图特征、形状特征以及经过傅里叶变换转换到频域的特征。将这些特征提取和学习,得到模板存储起来。

b、用相同方法获得待识别字符图像的各方面特征,和存储的模板匹配对比,依据对比结果判决字符类别。

注:根据向量间的距离(欧氏距离)衡量字符和模板的匹配程度。
建立模板库的具体过程是将每一类图像的每一张图片平均分成8份,
逐点扫描每一份图片区域,以一维向量的形式记录并保存下这份图像的像素信息,
从而每一张字符图像都有相应的8维向量形成的模板。将待识别的车牌字符图片
采取相同的方法,然后确定每个字符图片的8维向量值。我们求出这个字符的
8维向量值和所有模板字符图片的8 维向量值的n维欧式空间距离,将其中距离最小的N个
(5 个)模板字符图片保存下来。

参考文献:

[1]林翰冉.模式识别技术及其在图像处理中的应用[J].现代工业经济和信息化,2023,13(02):161-163.DOI:10.16525/j.cnki.14-1362/n.2023.02.059.

[2]李潇彤.基于模式识别的智能车牌识别系统[J].中国战略新兴产业,2018(04):155-156.DOI:10.19474/j.cnki.10-1156/f.003243.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/722768.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

江苏某农商行稳健发展,软件安全推动金融服务新气象

​江苏某农商银行是全国最早成立的农商行之一。面对复杂严峻的内外部形势,该农商行在坚守服务“三农”与小微市场的同时,紧跟改革脚步,不断探索业务创新与数字化转型,实现经营稳健发展。 打造多维度数字化体系 驱动农商行创新发展…

QT之一种notifiation使用

简介 使用Qt5实现的消息提醒功能。 本文借助消息通知开源框架实现消息通知功能,软件包在上面。 使用说明 在pro工程中包含qtnotify2.pri 使用举例 include($$PWD/../src/qtnotify2.pri)// 包含头文件 #include "notifymanager.h"// 可建立全局实例 N…

深入理解MySQL数据库存储引擎及数据授权

深入理解MySQL数据库存储引擎及数据授权 一、MySQL数据库存储引擎的概述1.InnoDB引擎2.MyISAM引擎3.Memory引擎 二、MySQL数据授权问题1.用户管理2.数据库级授权3.表级授权4.列级授权5.收回权限 引言: MySQL是一款广泛应用的关系型数据库管理系统,为了满…

Linux常用命令——exportfs命令

在线Linux命令查询工具 exportfs 管理NFS共享文件系统列表 补充说明 exportfs 命令用来管理当前NFS共享的文件系统列表。 参数: -a 打开或取消所有目录共享。 -o options,...指定一列共享选项,与 exports(5) 中讲到的类似。 -i 忽略 /etc/exports 文…

IMX6ULL 移植篇-uboot网络命令NFS下载的文件的验证

一. 简介 本文承接以下文章: IMX6ULL 移植篇-uboot 网络命令NFS_凌肖战的博客-CSDN博客 之前学习了,如何通过NFS服务,向开发板下载 zImage文件(内核镜像文件)。 本文主要学习对 下载到开发板的 zImage文件内容进行验…

基于深度学习的高精度刀具检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度刀具检测识别系统可用于日常生活中或野外来检测与定位刀具目标,利用深度学习算法可实现图片、视频、摄像头等方式的刀具目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

《MySQL》数据类型

文章目录 一,数值类型int类型bit类型小数类型float 和 decimal 二,字符串类型char和varchar日期和时间类型enum和set 一,数值类型 MySQL数据库里面的数据类型 int类型 int类型是一个大类 类型大小tinyint1字节 (-27 ~ 27-1&a…

[NISACTF 2022]babyserialize(pop链构造与脚本编写详细教学)

目录 一、理清pop链并进行标注 二、如何编写相关脚本 三、过滤与绕过 1、waf的绕过 2、preg_match的绕过 做这道题作为pop链的构造很典型,也很有意思,因为还存在一些其他东西。 打开链接,这种很多类的PHP代码多半是需要构造pop链 一、理…

Excel如何排序?掌握3种排序方法!

我是个刚开始学习Excel的新手,对很多Excel的知识都不太熟悉。今天使用Excel进行表格排序时我又遇到了一些问题。请问Excel如何排序呢?希望给我一些建议。 在Excel中,排序是一种常见且有用的数据处理操作,它可以帮助您按照特定的规…

Java编译器IDE-Java学习帮手(移动端)

应用商店搜索"java" 编码测试 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List;public class SplitTime {private static List<Date> dateSplit(Date start…

【回溯算法part02】| 216.组合总和III、17.电话号码的字母组合

目录 &#x1f388;LeetCode216.组合总和||| ✨剪枝优化 &#x1f388;LeetCode17.电话号码的字母组合 &#x1f388;LeetCode216.组合总和||| 链接&#xff1a;216.组合总和||| 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数…

SONY索尼MP4视频变RSV文件修复方法

索尼MP4变RSV的原因分析 索尼新型号相机或者摄像机&#xff0c;如SONY A7S3&#xff0c;A7M4&#xff0c;FX3, FX6, FX9等&#xff0c;如果录像过程中有发生如下异常情况&#xff0c;如断电&#xff0c;死机&#xff0c;电量不足&#xff0c;机器摔倒&#xff0c;非常规操作&a…

confluence_table数据爬取

需求场景&#xff1a; 获取指定confluence文档中的表格数据&#xff0c;同时将页面中的附件下载在指定的文件夹中。 实现步骤&#xff1a; 开启confluence的远程api端口 选择使用的接口。 可以参考 官方接口文档 。 当前示例用到的接口为&#xff1a; Get content /rest/a…

现在开始学linux驱动内核好吗?

一开始是觉得&#xff0c;内核诶&#xff0c;高大上。然后看了几个月驱动后&#xff0c;是认认真真的钻了几个月源码&#xff0c;写了很多学习笔记的那种。 先说好处吧&#xff0c;对基础能力的提升很明显。比如内核数据结构&#xff0c;指针&#xff0c;以及如何用c需要去完成…

Windows系统上安装Node.js图文步骤流程

Windows系统上安装Node.js图文步骤流程&#xff0c;本文以安装Node.js v4.4.3 LTS(长期支持版本)版本为例&#xff1a; 目录 Node.js下载 Windows 上安装 Node.js 1、Windows 安装包(.msi) 2、Windows 二进制文件 (.exe)安装 版本测试 Node.js下载 Node.js 安装包及源码…

Linux扩容和删除运行内存(swapfile 交换文件)

1 新增swapfile 交换文件 Linux中Swap&#xff08;即&#xff1a;交换分区&#xff09;&#xff0c;类似于Windows的虚拟内存&#xff0c;就是当内存不足的时候&#xff0c;把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。Android是基于Linux的操作系统&#xf…

Cyclo(L-Pro-L-Trp-),38136-70-8,L型氨基酸环二肽,及其参数说明

&#xff08;文章资料汇总来源于&#xff1a;陕西新研博美生物科技有限公司小编MISSwu&#xff09; 为大家介绍&#xff08;CAS&#xff1a;38136-70-8&#xff09;,试剂仅用于科学研究&#xff0c;不可用于人类&#xff0c;非药用&#xff0c;非食用。 分子式&#xff1a;C16…

vscode的代码工作区实现机制

工作区是编辑器的重要部分&#xff0c;它承载着编辑器和本地文件的连接&#xff0c;对文件增、删、改、查。下面我会介绍vscode工作区的创建。同样我们知道vscode软件打开的时候没有默认工作区&#xff0c;这里我对它进行了改造&#xff0c;软件启动时指向默认工作区。 工作区目…

使用PLSQL导入excel数据

1、写查询语句&#xff0c;查询需要修改的表&#xff0c;并在语句后加for update。 select * from bn_inf_apply for update 2、打开excel&#xff0c;整理需要导入的数据&#xff0c;需要注意两点&#xff1a; 1、将标题行删除。 2、在首列左侧增加一个空白行 3、 选中exce…

React02-JSX 语法

一、React 基础知识 1. React.createElement React.createElement 是 jsx 语法的编译结果&#xff0c;这个函数用来创建一个 React 元素&#xff0c;它的返回值是一个 Virtual DOM&#xff08;虚拟DOM&#xff09;。 React.createElement(type, props, ...children) 第一个…