当前位置: 首页 > 后端技术 > Python

中国车牌识别项目自建训练数据

时间:2023-03-25 23:31:38 Python

机器学习的核心是“用算法解析数据,从中学习,进而对世界上的某事做出决策或预测”。这意味着可以教计算机如何开发算法来执行某些任务,而不是明确地编写程序来执行某些任务。我们现在生活中所经历的各大系统的智能推荐,可能比你更了解你自己,这都要归功于机器学习。机器学习的前提是我们要给它大量的数据,让它从中学习。学习获取模型,这里讨论的是中文车牌识别项目。要正确识别车牌,需要准备大量的车牌数据。但由于车牌信息的特殊性,涉及隐私。这时候就需要手动准备车牌数据进行训练。下面是通过Python实现的。一、实现思路1、初始化车牌使用的数据2、使用random随机整理车牌数据3、使用pygame生成车牌图片2、实现代码首先要了解车牌的组成规则车牌号码。在中国,车牌号一共有7位,比如“冀A2GJDW”,第一位是汽车所在省份的简称,第二位是地市一级代码和汽车所在的城市。规则一般是这样的,A是省会,B是省内第二大城市,C是省内第三大城市,以此类推。最后五位由数字或字母随机组成。根据车牌号码规则,初始化车牌使用的数据:number=['0','1','2','3','4','5','6','7','8','9']数据准备完成后,通过随机模块随机选取数据进行拼装#随机生成一个车牌组合defrandom_platen():platennumber=[]platennumber.append(random.choice(city))#随机选择省份缩写platennumber.append(random.choice(alphabet))#随机选择所在城市级别代码foriinrange(2,7):n=random.choice(number+alphabet)#最后5个随机数或字母platennumber.append(n)str=''.join(platennumber)#拼接成字符串returnstr通过自定义的random_platen函数,可以随机得到一个车牌号。这时候可以定义变量来指定生成的样本数量和最终生成的车牌图片的保存路径size=1000#生成车牌数量以上准备工作完成后,接下来就是开始生成图片。这里使用pygame模块生成图片。由于我们生成的车牌是包含中文的,所以在生成的时候注意指定字体(可以在系统字体中选择字体)。为了方便后面训练时对比结果,这里创建一个文本文件,用来在生成图片的同时保存生成的车牌数据#生成车牌图片pygame.image.save(font,os.path.join(platepath,(platennumber+".jpg")).encode('gb2312'))#生成车牌号文本withopen(label_filename,"a")asf:f.writelines(label+'')执行Python文件后,可以查看生成的车牌数据,重点关注:获取完整代码,点击https://github.com/yanwydxf/create-plate-number