阿里云的网站建设方案房地产网官网

diannao/2026/1/25 5:51:01/文章来源:
阿里云的网站建设方案,房地产网官网,上海什么公司最有名,梅州做网站多少钱0 前言 #x1f525; 优质竞赛项目系列#xff0c;今天要分享的是 #x1f6a9; 基于机器学习的车牌识别系统 #x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数#xff1a;4分工作量#xff1a;4分创新点#xff1a;3分 该项目较为新颖#xff0c;适…0 前言 优质竞赛项目系列今天要分享的是 基于机器学习的车牌识别系统 学长这里给一个题目综合评分(每项满分5分) 难度系数4分工作量4分创新点3分 该项目较为新颖适合作为竞赛课题方向学长非常推荐 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1 课题介绍 1.1 系统简介 车牌识别这个系统虽然传统古老却是包含了所有这四个特侦的一个大数据技术的缩影. 在车牌识别中你需要处理的数据是图像中海量的像素单元你处理的数据不再是传统的结构化数据而是图像这种复杂的数据如果不能在很短的时间内识别出车牌那么系统就缺少意义虽然一副图像中有很多的信息但可能仅仅只有那一小块的信息车牌以及车身的颜色是你关心而且这些信息都蕴含着巨大的价值。也就是说车牌识别系统事实上就是现在火热的大数据技术在某个领域的一个聚焦通过了解车牌识别系统可以很好的帮助你理解大数据技术的内涵也能清楚的认识到大数据的价值。 1.2 系统要求 它基于openCV这个开源库这意味着所有它的代码都可以轻易的获取。它能够识别中文例如车牌为苏EUK722的图片它可以准确地输出std:string类型的苏EUK722的结果。它的识别率较高。目前情况下字符识别已经可以达到90%以上的精度。 1.3 系统架构 整体包含两个系统: 车牌检测车牌字体识别(中文 数字 英文) 整体架构如下: 2 实现方式 2.1 车牌检测技术 车牌检测Plate Detection 对一个包含车牌的图像进行分析最终截取出只包含车牌的一个图块。这个步骤的主要目的是降低了在车牌识别过程中的计算量。如果直接对原始的图像进行车牌识别会非常的慢因此需要检测的过程。在本系统中我们使用SVM支持向量机这个机器学习算法去判别截取的图块是否是真的“车牌”。 车牌检测这里不详细说明, 只贴出opencv图像处理流程, 需要代码的可以留下邮箱 使用到的图像处理算法 高斯模糊灰度化处理Sobel算子(边缘检测)开操作闭操作仿射变换霍姆线性检测角度矫正 2.2 车牌识别技术 字符识别Chars Recognition 有的书上也叫Plate Recognition我为了与整个系统的名称做区分所以改为此名字。这个步骤的主要目的就是从上一个车牌检测步骤中获取到的车牌图像进行光学字符识别OCR这个过程。其中用到的机器学习算法是著名的人工神经网络ANN中的多层感知机MLP模型。最近一段时间非常火的“深度学习”其实就是多隐层的人工神经网络与其有非常紧密的联系。通过了解光学字符识别OCR这个过程也可以知晓深度学习所基于的人工神经网路技术的一些内容。 我们这里使用深度学习的方式来对车牌字符进行识别, 为什么不用传统的机器学习进行识别呢, 看图就知道了: 图2 深度学习右与PCA技术左的对比 可以看出深度学习对于数据的分类能力的优势。 这里博主使用生成对抗网络进行字符识别训练, 效果相当不错, 识别精度达到了98% 2.3 SVM识别字符 定义 class SVM(StatModel):def __init__(self, C 1, gamma 0.5):self.model cv2.ml.SVM_create()self.model.setGamma(gamma)self.model.setC(C)self.model.setKernel(cv2.ml.SVM_RBF)self.model.setType(cv2.ml.SVM_C_SVC)#训练svmdef train(self, samples, responses):self.model.train(samples, cv2.ml.ROW_SAMPLE, responses)​ 调用方法喂数据 def train_svm(self):#识别英文字母和数字self.model SVM(C1, gamma0.5)#识别中文self.modelchinese SVM(C1, gamma0.5)if os.path.exists(svm.dat):self.model.load(svm.dat)训练保存模型 ​ else: ​ chars_train [] ​ chars_label [] ​ for root, dirs, files in os.walk(train\\chars2):if len(os.path.basename(root)) 1:continueroot_int ord(os.path.basename(root))for filename in files:filepath os.path.join(root,filename)digit_img cv2.imread(filepath)digit_img cv2.cvtColor(digit_img, cv2.COLOR_BGR2GRAY)chars_train.append(digit_img)#chars_label.append(1)chars_label.append(root_int)chars_train list(map(deskew, chars_train))chars_train preprocess_hog(chars_train)#chars_train chars_train.reshape(-1, 20, 20).astype(np.float32)chars_label np.array(chars_label)print(chars_train.shape)self.model.train(chars_train, chars_label)​ 车牌字符数据集如下 这些是字母的训练数据同样的还有我们车牌的省份简写: 核心代码 ​ predict_result []roi Nonecard_color Nonefor i, color in enumerate(colors):if color in (blue, yello, green):card_img card_imgs[i]gray_img cv2.cvtColor(card_img, cv2.COLOR_BGR2GRAY)#黄、绿车牌字符比背景暗、与蓝车牌刚好相反所以黄、绿车牌需要反向if color green or color yello:gray_img cv2.bitwise_not(gray_img)ret, gray_img cv2.threshold(gray_img, 0, 255, cv2.THRESH_BINARY cv2.THRESH_OTSU)#查找水平直方图波峰x_histogram np.sum(gray_img, axis1)x_min np.min(x_histogram)x_average np.sum(x_histogram)/x_histogram.shape[0]x_threshold (x_min x_average)/2wave_peaks find_waves(x_threshold, x_histogram)if len(wave_peaks) 0:print(peak less 0:)continue#认为水平方向最大的波峰为车牌区域wave max(wave_peaks, keylambda x:x[1]-x[0])gray_img gray_img[wave[0]:wave[1]]#查找垂直直方图波峰row_num, col_num gray_img.shape[:2]#去掉车牌上下边缘1个像素避免白边影响阈值判断gray_img gray_img[1:row_num-1]y_histogram np.sum(gray_img, axis0)y_min np.min(y_histogram)y_average np.sum(y_histogram)/y_histogram.shape[0]y_threshold (y_min y_average)/5#U和0要求阈值偏小否则U和0会被分成两半wave_peaks find_waves(y_threshold, y_histogram)#for wave in wave_peaks:# cv2.line(card_img, pt1(wave[0], 5), pt2(wave[1], 5), color(0, 0, 255), thickness2) #车牌字符数应大于6if len(wave_peaks) 6:print(peak less 1:, len(wave_peaks))continuewave max(wave_peaks, keylambda x:x[1]-x[0])max_wave_dis wave[1] - wave[0]#判断是否是左侧车牌边缘if wave_peaks[0][1] - wave_peaks[0][0] max_wave_dis/3 and wave_peaks[0][0] 0:wave_peaks.pop(0)#组合分离汉字cur_dis 0for i,wave in enumerate(wave_peaks):if wave[1] - wave[0] cur_dis max_wave_dis * 0.6:breakelse:cur_dis wave[1] - wave[0]if i 0:wave (wave_peaks[0][0], wave_peaks[i][1])wave_peaks wave_peaks[i1:]wave_peaks.insert(0, wave)#去除车牌上的分隔点point wave_peaks[2]if point[1] - point[0] max_wave_dis/3:point_img gray_img[:,point[0]:point[1]]if np.mean(point_img) 255/5:wave_peaks.pop(2)if len(wave_peaks) 6:print(peak less 2:, len(wave_peaks))continuepart_cards seperate_card(gray_img, wave_peaks)for i, part_card in enumerate(part_cards):#可能是固定车牌的铆钉if np.mean(part_card) 255/5:print(a point)continuepart_card_old part_cardw abs(part_card.shape[1] - SZ)//2part_card cv2.copyMakeBorder(part_card, 0, 0, w, w, cv2.BORDER_CONSTANT, value [0,0,0])part_card cv2.resize(part_card, (SZ, SZ), interpolationcv2.INTER_AREA)#part_card deskew(part_card)part_card preprocess_hog([part_card])if i 0:resp self.modelchinese.predict(part_card)charactor provinces[int(resp[0]) - PROVINCE_START]else:resp self.model.predict(part_card)charactor chr(resp[0])#判断最后一个数是否是车牌边缘假设车牌边缘被认为是1if charactor 1 and i len(part_cards)-1:if part_card_old.shape[0]/part_card_old.shape[1] 7:#1太细认为是边缘continuepredict_result.append(charactor)roi card_imgcard_color colorbreakreturn predict_result, roi, card_color#识别到的字符、定位的车牌图像、车牌颜色​ ​ 2.4 最终效果 最后算法部分可以和你想要的任何UI配置到一起: 可以这样 : 也可以这样: 甚至更加复杂一点: 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate

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

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

相关文章

长沙定制网站建设广西东晋建设有限公司网站

什么是Web Storage Web Storage是HTML5里面引入的一个类似于cookie的本地存储功能,可以用于客户端的本地存储,其相对于cookie来说有以下几点优势: 存储空间大:cookie只有4KB的存储空间,而Web Storage在官方建议中为每个…

东莞专业网站建设推广多个网站域名 是新增接入

银行内部的防盗安全装置已经激活。给你一个下标从 0 开始的二进制字符串数组 bank ,表示银行的平面图,这是一个大小为 m x n 的二维矩阵。 bank[i] 表示第 i 行的设备分布,由若干 ‘0’ 和若干 ‘1’ 组成。‘0’ 表示单元格是空的&#xff0…

网站正在建设中提示页面设计欣赏网站开发记什么费用

Java中的安全编码实践与防御技巧 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨Java中的安全编码实践与防御技巧,这对于开发人员来说…

做网站在哪买域名wordpress js在哪

每个HTTP请求都包含一个方法 (有时称为verb ),该方法指示对标识的资源执行的操作。 在构建RESTful Web服务时,HTTP方法POST通常用于创建资源,而PUT用于资源更新。 尽管在大多数情况下这很好,但使用PUT进行…

怎么建立局域网网站国家工商注册查询系统官网

一、内联引出的问题 在将一个内联变量定义到编译单元时,然后再按正常的方式使用时,编译会报一个错误“odr-used”。ODR,One Definition Rule,单一定义规则。在C/C程序中,变量的定义只能有一处,至于ODR的规…

做图表的网站 免费四川省城乡建设信息网站证件查询

最近,不少TCL用户都遇到了在当贝市场下载软件后不能安装的问题,那么遇到这种问题该怎么解决呢?首先我们先分析下为什么会出现这种情况!原因:这种情况大多数是因为安装包没有下载完毕或安装包破损导致的,也可能是安装包不适合在你的系统版本中安装,需要最新版本的系统。解决方法…

企业网站能提供哪些服务wordpress 归档文章

漏洞处理方法: 1、可以使用系统防火墙 来做限制只允许ES集群和Server节点的IP来访问漏洞节点的9200端口,其他的全部拒绝。 2、在ES节点上设置用户密码 漏洞现象:直接访问9200端口不需要密码验证 修复过程 2.1 生成认证文件 必须要生成…

怎么做网站 有空间30号长沙封城最新消息

1、transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部…

电子商务的网站建设过程上海seo网站排名优化公司

目录 一、 Lua 脚本 1、初始化 Lua 环境 2、脚本的安全性 3、脚本的执行 4、 EVAL 命令的实现 定义 Lua 函数 执行 Lua 函数 5、 EVALSHA 命令的实现 二、 小结 一、 Lua 脚本 Lua 脚本功能是 Reids 2.6 版本的最大亮点,通过内嵌对 Lua 环境的支持&#xf…

宁阳网站建设网站管理员招聘

目录 1、问题描述 2、安卓app发生崩溃,需要查看汇编代码上下文去辅助分析 3、使用IDA打开.so动态库文件,提示Relocations for this machine are not implemented 4、IDA版本较老,不支持ARM64的指令集,使用7.0版本就可以了 5、…

电商网站的设计与实现视频教程软件开发业务流程图

1、view下的 Cmmand Palette 下的Change file Encoding simplifiled chinese GB2312

知名的传媒行业网站开发网页界面设计中常用的中英文字体有哪些

解析卷积神经网络—深度学习实践手册从实用角度着重解析了深度学习中的一类神经网络模型——卷积神经网络,向读者剖析了卷积神经网络的基本部件与工作机理,更重要的是系统性的介绍了深度卷积神经网络在实践应用方面的细节配置与工程经验。笔者希望本书“…

通辽市北京网站建设wordpress做成app

正确而合理的配置IIS是构建一个高性能和高可扩展应用的基础。虽然很多的时候采用默认的配置就已经可以处理一般的情况,但是随着站点应用的发展,特别是当访问量稍微大一点的时候,就会暴露出很多我们认为的“奇奇怪怪”的问题。 所以&#xff0…

做婚宴的网站有哪些网站开发要服务器吗

葡萄酒可以在许多不同的场合成为很好的礼物,因为它可以用来庆祝许多不同的事情。当被邀请去别人家时,你可以带酒去吃饭。葡萄酒可以用来纪念婚礼、出生、毕业和各种纪念日,来自云仓酒庄品牌雷盛红酒分享这是一个非常合适的专业礼物。但是你怎…

泉州做网站企业产品网站开发流程图

服务器端:编辑/etc/ssh/sshd_config中的以下内容 启用AllowTcpForwarding 启用X11Forwarding 将X11DisplayOffset设定为10. 启用X11UseLocalhost 客户机端:编辑/etc/ssh/ssh_config中的以下内容 启用X11Forwarding 连接时ssh -X或者ssh -Y就可以了…

宁波网站优化公司hao123网址之家官网电脑版

由于用到 RFileWriteStream 写入汉字到文件中,之前没有处理过,等写入文件后才发现是乱码。 问了问群里的朋友也没有解决,后来就上网搜,终于找到一个解决方法,就是用 CCnvCharacterSetConverter 类 这个类是用来转换Uni…

苏州建设银行招聘网站手机网站域名解析怎么做

参考: 大数据中台架构以及建设全流程一(Paas层设计) 大数据中台架构以及建设全流程二(Daas层设计)

大创意网站拼多多采用了哪些网络营销方式

由于双链表中大部分操作其实和单链表操作类似,所以这里只挑关键的一些函数 1、定义与初始化 typedef struct DNode {ElementType data;struct DNode *prior,*next; }DNode,*DLinkList;bool InitialDLinkList(DLinkList &L){L (DNode *)malloc(sizeof(DNode));…

用php做购物网站视频单片机编程入门基础知识

匿名函数 简介 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数。 python 使用 lambda 来创建匿名函数。 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。 1 lambda 只是一个表达式,函数体比 def 简单很多。 2 lambda…

服装移动网站策划案phpcms网站建设

纯手写,如果哪写错了,还希望指正 IP地址192.168.127.101,子网掩码255.255.255.192,计算网络地址,主机号,广播地址和主机最大数 255.255.255.192子网掩码转换成二进制为 11111111.11111111.11111111.11000…