signature=2bc1b4487fc317577fec021c818a220c,基于支持向量机的步态识别

摘要:

步态是指人们行走的姿势,是一种远距离情况下唯一可感知的生物行为特征。与传统的指纹、虹膜、脸像等生物生理特征相比,步态具有难于隐藏和伪装、便于采集和远距离低分辨率识别等优点。但也存在明显的缺陷:当二维平面轮廓成为步态信息的完全表述时,它的唯一性还值得商榷。这也是步态识别率相对较低的关键因素。尽管如此,步态识别作为生物特征识别技术中的一个新兴领域,目前引起了视觉研究者的浓厚兴趣,成为近年来计算机视觉领域中备受关注的前沿方向,是人运动视觉分析的重要内容。对步态识别及其关键技术的研究具有重要的学术价值和实用价值。 步态识别主要是针对含有人的运动图像序列进行分析处理,通常包括目标分割、特征提取与处理和识别分类三个阶段。它在虚拟现实,视觉监控,感知接口中均有广泛的应用前景,本文主要探讨了视觉分析中步态图像序列的检测,特征提取和分类识别等相关问题,并总结了当前步态识别国内外的研究现状和常用的处理方法。 在此基础上,本文提出了把外轮廓沿人体中线投影向量(Midline Projection Vector)作为步态特征和主成份分析PCA(Principal Component Analysis)与支持向量机SVM (Support Vector Machine)相结合的步态目标特征提取与识别方法。 首先,从步态序列图像中检测步态,本文采用的是静止背景下的单人步态数据库,研究了RGB空间和灰度背景建模方法,经过性能比较我们选取了前者。 其次,利用背景差分法提取运动人体轮廓。将外轮廓沿人体中线投影可以得到前后两个向量,合成1D向量(Midline Projection Vector,中线投影向量)作为步态特征。 然后,应用主成分分析(PCA)进行特征提取和压缩。该方法在非线性空间内利用线性PCA(Principal Component Analysis)准则提取目标特征。主元数分别选取10, 20, 40, 60作对比分析,最后采用20作为主元数。 最后,由SVM分类器完成目标识别。支持向量机是目前针对小样本统计估计和预测学习的最佳理论和识别方法。最后采用了径向基函数作为核函数。 该方法抓住了步态的静态轮廓和时域上的内在特性,实验结果表明该算法不仅获得了令人鼓舞的识别性能,而且拥有相对较低的计算代价,是一种有效的步态目标特征提取与识别方法。

展开

系统 智能车牌识别系统是现代交通管理中的重要组成部分,它能实现对车辆的自动识别、追踪和管理,提高交通管理效率,减少交通事故发生率。本文基于matlab平台,设计了一款智能车牌识别系统。 系统介绍 系统包括两个主要部分:图像处理和车牌识别。图像处理部分主要完成对车辆图像的预处理和分割,包括灰度化、二值化、滤波、形态学处理等;车牌识别部分主要使用了基于支持向量机的字符识别算法,对车牌中的字符进行识别。 系统界面 系统的GUI界面如下图所示: ![image](https://user-images.githubusercontent.com/87458342/127270970-5b5a5b5e-6b3f-4f3d-8d6f-3cf5a305b7c5.png) 界面包括以下几个部分: 1. 菜单栏:包括“文件”、“识别”、“帮助”等菜单,可进行打开图像、保存结果、进行车牌识别等操作。 2. 工具栏:包括“打开图像”、“识别车牌”、“保存结果”等按钮,方便用户进行快速操作。 3. 图像显示:显示待识别的车辆图像。 4. 识别结果:显示车牌号码和识别结果。 系统流程 系统的流程如下图所示: ![image](https://user-images.githubusercontent.com/87458342/127271030-1e1c9028-ae27-40db-bc1d-b30d3d8a5c60.png) 1. 打开图像:用户通过菜单栏或工具栏打开待识别的车辆图像。 2. 图像处理:对车辆图像进行预处理和分割,得到车牌区域。 3. 车牌识别:对车牌中的字符进行识别。 4. 显示结果:将识别结果显示在界面上。 系统实现 1. 图像处理 对于车辆图像,首先需要将其转化为灰度图像,然后进行二值化,得到二值图像。这里使用了自适应阈值法进行二值化,能够适应光照变化和背景复杂的情况。代码如下: ``` img = imread(filename); gray = rgb2gray(img); bw = imbinarize(gray, 'adaptive'); ``` 得到二值图像后,需要对其进行滤波和形态学处理,以去掉噪声和连通区域。这里使用了中值滤波和开运算,代码如下: ``` filtered = medfilt2(bw, [3, 3]); se = strel('rectangle', [5, 5]); opened = imopen(filtered, se); ``` 接下来,需要找到车牌区域。这里使用了连通区域分析的方法,得到所有连通区域的面积和中心位置,然后根据车牌的大小和位置进行筛选。代码如下: ``` stats = regionprops(opened, 'Area', 'Centroid', 'BoundingBox'); for i = 1:length(stats) if stats(i).Area > min_area && stats(i).Area < max_area && ... stats(i).BoundingBox(2) > min_y && stats(i).BoundingBox(2) < max_y && ... stats(i).BoundingBox(3)/stats(i).BoundingBox(4) > min_ratio && ... stats(i).BoundingBox(3)/stats(i).BoundingBox(4) < max_ratio plate = imcrop(gray, stats(i).BoundingBox); break; end end ``` 2. 车牌识别 对于车牌中的字符,需要进行字符分割和特征提取,然后使用支持向量机进行分类识别。这里使用了基于垂直投影的字符分割方法,将车牌中的字符分割出来。然后,对每个字符进行特征提取,使用了灰度共生矩阵、梯度直方图和傅里叶描述子等特征。最后,将特征向量输入支持向量机进行分类识别。代码如下: ``` for i = 1:size(chars, 2) charImg = imresize(chars(:, i), [32, 32]); glcm = graycomatrix(charImg, 'Offset', [0, 1; -1, 1; -1, 0; -1, -1]); glcmFeatures = GLCMFeatures(glcm); gradientHist = GradientFeatures(charImg); fourierDesc = FourierDescriptors(charImg); features = [glcmFeatures, gradientHist, fourierDesc]; result(i) = predict(svm, features); end plateNum = [plateNum, charSet(result)]; ``` 系统测试 系统测试使用了一些真实的车辆图像,下图为系统识别结果: ![image](https://user-images.githubusercontent.com/87458342/127271156-3f2e3f7b-1e32-4f8a-8d69-998b2d2b816d.png) 可以看到,系统能够对大部分车牌进行正确识别,但对于一些特殊情况,如车牌遮挡、反光等情况,识别率较低。 总结 本文基于matlab平台,设计了一款智能车牌识别系统。该系统能够对车辆图像进行预处理和分割,然后使用支持向量机对车牌中的字符进行识别。系统测试结果表明,该系统能够对大部分车牌进行正确识别,但对于一些特殊情况,识别率较低。未来可以进一步改进算法,提高系统的稳定性和实用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值