共计 1254 个字符,预计需要花费 4 分钟才能阅读完成。
机器学习的外围是“应用算法解析数据,从中学习,而后对世界上的某件事情做出决定或预测”。这意味着,与其显式地编写程序来执行某些工作,不如教计算机如何开发一个算法来实现工作。当初生存中咱们所体验到的各大零碎的智能举荐,它们可能比你还要理解你本人,这都要归功于机器学习了
机器学习的前提咱们要给它投喂大量的数据,让它从中学习得出模型,这里以中文车牌辨认我的项目来探讨。要正确辨认车牌,要筹备大量的车牌数据,但因为车牌信息的特殊性,波及到隐衷,这时要训练就须要手动筹备车牌数据,上面通过 Python 来实现
一、实现思路
1. 初始化车牌所用数据
2. 应用 random 随机组织车牌数据
3. 应用 pygame 生成车牌图片
二、代码实现
首先要理解车牌号码的组成规定,在我国车牌号码共 7 位,如“冀 A2GJDW”,其中第一位为该车所在省的简称,第二位为该车所在地的地市一级代码,法则个别是这样的,A 是省会,B 是该省第二大城市,C 是该省第三大城市,依此类推,后五位由数字或字母随机组成
依据车牌号码规定,初始化车牌所用数据:
number = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
数据筹备实现后,通过 random 模块随机抉择数据进行组装
# 随机生成车牌组合
def random_platen():
platennumber = []
platennumber.append(random.choice(city)) # 随机抉择省的简称
platennumber.append(random.choice(alphabet)) # 随机抉择所在地的地市一级代码
for i in range(2, 7):
n = random.choice(number+alphabet) # 后 5 位随机数字或字母
platennumber.append(n)
str = ''.join(platennumber) # 拼接成字符串
return str
通过自定义的 random_platen 函数,能够随机失去一个车牌号码,这时能够定义变量来指定生成的样本数量以及最终生成的车牌图片保留门路
size = 1000 # 生成车牌数量
下面筹备完后,接下来就能够开始生成图片了,这里生成图片用到了 pygame 模块,因为咱们生成的车牌中蕴含中文,所以在生成时,留神指定字体(对于字体能够在零碎字体中进行选取)。为了便于前期训练时比对后果,这里在生成图片的同时,创立一个文本文件,用于保留所生成的车牌数据
# 生成车牌图片
pygame.image.save(font,os.path.join(platepath,(platennumber+".jpg")).encode('gb2312'))
# 生成车牌号文本
with open(label_filename, "a") as f:
f.writelines(label + ' ')
这时执行 Python 文件后,就能够看到生成后的车牌数据了
划重点:想要获取残缺代码,戳 https://github.com/yanwydxf/create-plate-number