MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型

本文涉及的产品
教育场景识别,教育场景识别 200次/月
车辆物流识别,车辆物流识别 200次/月
票证核验,票证核验 50次/账号
简介: MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型

输出结果


gen_sample之后

image.png

image.pngimage.png




1、训练感悟


22:58训练记录:我勒个去,跑了半天,准确度还没上来,啊啊啊,要疯了……



相关文章:

生成图片,CV:设计自动生成汽车车牌图片算法(cv2+PIL)根据指定七个字符自动生成逼真车牌图片数据集(带各种噪声效果)

MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型



设计思路


第一次


image.png


第二次


image.png




总思路


image.png

核心代码

class GenPlate:

   def __init__(self,fontCh,fontEng,NoPlates):

       self.fontC =  ImageFont.truetype(fontCh,43,0);

       self.fontE =  ImageFont.truetype(fontEng,60,0);

       self.img=np.array(Image.new("RGB", (226,70),(255,255,255)))

……

   def draw(self,val):

       offset= 2 ;

       self.img[0:70,offset+8:offset+8+23]= GenCh(self.fontC,val[0]);    

……

       return self.img

 

   def generate(self,text):                             #generate()方法,

#         print('text', text, len(text))

       if len(text) == 7:    # 9

#             print('开始运行if语句')

           fg = self.draw(text);  

……

     

   def genPlateString(self,pos,val):  #定义genPlateString函数

……

       for unit,cpos in zip(box,range(len(box))):

           if unit == 1:

               plateStr += val

           else:

               if cpos == 0:

                   plateStr += chars[r(31)]

               elif cpos == 1:

                   plateStr += chars[41+r(24)]

               else:

                   plateStr += chars[31 + r(34)]

       return plateStr;

   def genBatch(self, batchSize,pos,charRange, outputPath,size):

       if (not os.path.exists(outputPath)):

           os.mkdir(outputPath)

       l_plateStr = []

       l_plateImg = []

       for i in range(batchSize):

           plateStr = G.genPlateString(-1,-1)

           img =  G.generate(plateStr);

           img = cv2.resize(img,size);

           l_plateStr.append(plateStr)

           l_plateImg.append(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

       return l_plateStr,l_plateImg


相关文章
|
11天前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
28 4
|
2月前
|
数据采集 机器学习/深度学习 算法
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
【python】python客户信息审计风险决策树算法分类预测(源码+数据集+论文)【独一无二】
|
3月前
|
文字识别 数据可视化 数据处理
印刷文字识别使用问题之已经训练的数据集是否可以删除
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
3月前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
【7月更文挑战第23天】在Python编程中,掌握算法复杂度—时间与空间消耗,是提升程序效能的关键。算法如冒泡排序($O(n^2)$时间/$O(1)$空间),或使用Python内置函数找最大值($O(n)$时间),需精确诊断与优化。数据结构如哈希表可将查找从$O(n)$降至$O(1)$。运用`timeit`模块评估性能,深入理解数据结构和算法,使Python代码更高效。持续实践与学习,精通复杂度管理。
54 9
|
2月前
|
机器学习/深度学习 算法 搜索推荐
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
|
2月前
|
数据采集 机器学习/深度学习 文字识别
OCR -- 文本检测 - 训练DB文字检测模型
OCR -- 文本检测 - 训练DB文字检测模型
24 0
|
3月前
|
机器学习/深度学习 数据采集 算法
Python实现贝叶斯岭回归模型(BayesianRidge算法)并使用K折交叉验证进行模型评估项目实战
Python实现贝叶斯岭回归模型(BayesianRidge算法)并使用K折交叉验证进行模型评估项目实战
|
4月前
|
算法 物联网 调度
操作系统调度算法的演进与性能评估
本文深入探讨了操作系统中进程调度算法的发展轨迹,从早期的先来先服务(FCFS)到现代的多级队列和反馈控制理论。通过引用实验数据、模拟结果和理论分析,文章揭示了不同调度策略如何影响系统性能,特别是在响应时间、吞吐量和公平性方面。同时,本文也讨论了在云计算和物联网等新兴领域,调度算法面临的挑战和未来的发展方向。
|
4月前
|
存储 算法 Java
Java数据结构与算法:用于高效地存储和检索字符串数据集
Java数据结构与算法:用于高效地存储和检索字符串数据集
|
9天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其应用
【9月更文挑战第24天】本文将深入探讨深度学习中的一种重要模型——卷积神经网络(CNN)。我们将通过简单的代码示例,了解CNN的工作原理和应用场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。
29 1

热门文章

最新文章

下一篇
无影云桌面