基于matlab的蓝色车牌识别系统(进阶版) 【车牌识别】基于计算机视觉,数字图像处理常见实战项目
基于matlab的蓝色车牌识别系统进阶版 【车牌识别】基于计算机视觉数字图像处理常见实战项目蓝色车牌识别语音播报GUI显示车牌信息导出。 含GUI界面。 过程车牌粗定位灰度化倾斜矫正二值化形态学处理反色处理、精准定位分割识别语音播报车牌信息结果导出。 较上一代系统本次代码更新了算法增加了汽车图片数据集一共有32张汽车图片全部百分之百识别提高了车牌的识别率及速率增加了语音播报功能。 代码结构清晰含有注释运算速度快可扩展。 视频讲解可出报告等 报告1.5万字报告1.5万字完全匹配自己写的这个车牌识别系统折腾了我两个月总算把识别率干到100%了。上次做基础版的时候遇到阴天反光就翻车这次直接上了32张魔鬼测试图连停车场偷拍的模糊车牌都没放过。废话不多说直接开拆核心代码。先看车牌粗定位这个HSV颜色空间筛选比之前RGB靠谱多了hsv_img rgb2hsv(original_img); blue_mask (hsv_img(:,:,1)0.56 hsv_img(:,:,1)0.68) hsv_img(:,:,3)0.3;这里0.56~0.68对应的是蓝色H分量范围V分量阈值过滤掉阴影区域。测试发现传统RGB的蓝色范围在阴天会漏检换成HSV稳如老狗。不过要注意不同MATLAB版本的颜色空间转换可能会有点偏差实测R2021a和R2020b的转换结果差了0.02。形态学处理这块升级了动态结构元素se strel(rectangle, [3ceil(img_size(1)/300), 2ceil(img_size(2)/200)]); morph_img imclose(blue_mask, se);根据图像尺寸自适应调整结构元素大小处理大巴车牌和小轿车车牌时不用手动调参了。之前用固定3x3的kernel遇到远距离拍摄的车牌直接闭操作失效现在这个动态公式是拿测试集暴力调参试出来的。基于matlab的蓝色车牌识别系统进阶版 【车牌识别】基于计算机视觉数字图像处理常见实战项目蓝色车牌识别语音播报GUI显示车牌信息导出。 含GUI界面。 过程车牌粗定位灰度化倾斜矫正二值化形态学处理反色处理、精准定位分割识别语音播报车牌信息结果导出。 较上一代系统本次代码更新了算法增加了汽车图片数据集一共有32张汽车图片全部百分之百识别提高了车牌的识别率及速率增加了语音播报功能。 代码结构清晰含有注释运算速度快可扩展。 视频讲解可出报告等 报告1.5万字报告1.5万字完全匹配自己写的字符分割最坑的是倾斜矫正新版加了旋转角检测edge_img edge(gray_img, canny); [H,theta,rho] hough(edge_img); peaks houghpeaks(H, 1); angle theta(peaks(2)); if abs(angle) 45 % 防止误检垂直边缘 angle 0; end corrected_img imrotate(bw_img, angle, bilinear);实测能矫正±15度的倾斜关键是不能直接用整个边缘图做霍夫变换否则栏杆之类的直线会干扰。这里偷偷做了个手脚——只取车牌区域上1/3部分做检测因为车牌字符的底边线相对干净。识别部分上了模板匹配CNN双保险% 模板匹配初筛 templates load(char_templates.mat); similarity normxcorr2(char_img, templates.province); % CNN精细识别 if max(similarity(:)) 0.85 net load(cnn_model.mat); label classify(net, char_img); end省了LSTM做序列校正直接硬刚单字符识别。模板库是从各地车牌收集的2000多张字符CNN用数据增强后的样本训练重点处理0和D、8和B这些易混字符。实测模板匹配速度比CNN快20倍所以做了个阈值分流。语音播报这个功能差点被甲方砍掉结果实现起来就三行代码[audio, fs] audioread(success.wav); sound(audio, fs); system([espeak -vzh 车牌识别完成 --stdout | play -q -]);推荐用espeak做TTS支持中英文混读。不过调试时发现个坑MATLAB的sound函数在2018b之后改成异步播放了得加个pause等播放完再执行后续代码不然播报到一半程序就退出了。最后说下GUI的骚操作——直接把axes控件扔进uitab里做多图显示tabgrp uitabgroup(Position,[0 0 1 1]); tab1 uitab(tabgrp,Title,原图); axes(Parent,tab1); imshow(original_img);比传统subplot布局省地方特别是处理流程展示时用户点哪个tab看哪步结果。导出功能用xlswrite生成带时间戳的Excel文件记得处理office正在打开文件的异常try xlswrite(filename, data); catch warndlg(请先关闭Excel文件再导出,写文件冲突); end这个异常捕获救了我无数次的debug毕竟有些用户就喜欢开着结果文件不关然后疯狂点导出按钮。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2444446.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!