分享

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

 处女座的程序猿 2021-09-28

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

导读
利用CNN-OCR算法训练车牌数据集评估模型并实现车牌照片字符识别,训练中的车牌数据集是Numpy.ndarray格式数据,当然也可以进一步生成图片,方便直接查看。


输出结果

gen_sample之后




1、训练感悟

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

相关文章:
生成图片,CV:设计自动生成汽车车牌图片算法(cv2+PIL)根据指定七个字符自动生成逼真车牌图片数据集(带各种噪声效果)
MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型

设计思路

第一次

第二次

总思路

核心代码

后期更新……

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

更多输出

start
start
[21:56:28] c:\jenkins\workspace\mxnet-tag\mxnet\src\operator\tensor\./matrix_op-inl.h:189: Using target_shape will be deprecated.
2019-05-04 21:56:28,024 Start training with [cpu(0)]
[21:56:28] c:\jenkins\workspace\mxnet-tag\mxnet\src\operator\tensor\./matrix_op-inl.h:189: Using target_shape will be deprecated.
[21:56:28] c:\jenkins\workspace\mxnet-tag\mxnet\src\operator\tensor\./matrix_op-inl.h:189: Using target_shape will be deprecated.
2019-05-04 21:56:50,213 Epoch[0] Batch [0-50]Speed: 18.52 samples/secAccuracy=0.000000
2019-05-04 21:57:11,041 Epoch[0] Batch [50-100]Speed: 19.21 samples/secAccuracy=0.000000
2019-05-04 21:57:37,527 Epoch[0] Batch [100-150]Speed: 15.10 samples/secAccuracy=0.000000
2019-05-04 21:58:04,827 Epoch[0] Batch [150-200]Speed: 14.65 samples/secAccuracy=0.000000
2019-05-04 21:58:31,717 Epoch[0] Batch [200-250]Speed: 14.88 samples/secAccuracy=0.000000
2019-05-04 21:58:57,243 Epoch[0] Batch [250-300]Speed: 15.67 samples/secAccuracy=0.000000
2019-05-04 21:59:21,087 Epoch[0] Batch [300-350]Speed: 16.78 samples/secAccuracy=0.000000
2019-05-04 21:59:45,344 Epoch[0] Batch [350-400]Speed: 16.49 samples/secAccuracy=0.000000
2019-05-04 22:00:03,961 Epoch[0] Batch [400-450]Speed: 21.49 samples/secAccuracy=0.000000

……

2019-05-04 22:46:30,698 Epoch[0] Batch [7050-7100]Speed: 19.49 samples/secAccuracy=0.000000
2019-05-04 22:46:50,442 Epoch[0] Batch [7100-7150]Speed: 20.26 samples/secAccuracy=0.000000
2019-05-04 22:47:13,577 Epoch[0] Batch [7150-7200]Speed: 17.29 samples/secAccuracy=0.000000
2019-05-04 22:47:35,495 Epoch[0] Batch [7200-7250]Speed: 18.25 samples/secAccuracy=0.000000
2019-05-04 22:47:58,486 Epoch[0] Batch [7250-7300]Speed: 17.40 samples/secAccuracy=0.000000
2019-05-04 22:48:22,143 Epoch[0] Batch [7300-7350]Speed: 16.91 samples/secAccuracy=0.000000
2019-05-04 22:48:43,430 Epoch[0] Batch [7350-7400]Speed: 18.79 samples/secAccuracy=0.000000
2019-05-04 22:49:03,882 Epoch[0] Batch [7400-7450]Speed: 19.56 samples/secAccuracy=0.000000

……

2019-05-05 03:45:30,533 Epoch[0] Batch [62100-62150]Speed: 25.21 samples/secAccuracy=0.000000
2019-05-05 03:45:46,024 Epoch[0] Batch [62150-62200]Speed: 25.82 samples/secAccuracy=0.000000
2019-05-05 03:46:01,867 Epoch[0] Batch [62200-62250]Speed: 25.25 samples/secAccuracy=0.000000
2019-05-05 03:46:17,135 Epoch[0] Batch [62250-62300]Speed: 26.20 samples/secAccuracy=0.000000
2019-05-05 03:46:33,650 Epoch[0] Batch [62300-62350]Speed: 24.22 samples/secAccuracy=0.000000
2019-05-05 03:46:49,428 Epoch[0] Batch [62350-62400]Speed: 25.35 samples/secAccuracy=0.000000
2019-05-05 03:47:05,570 Epoch[0] Batch [62400-62450]Speed: 24.78 samples/secAccuracy=0.000000
2019-05-05 03:47:21,043 Epoch[0] Batch [62450-62500]Speed: 25.85 samples/secAccuracy=0.000000
2019-05-05 03:47:21,043 Epoch[0] Resetting Data Iterator
2019-05-05 03:47:21,046 Epoch[0] Time cost=21053.006
2019-05-05 03:47:43,604 Epoch[0] Validation-Accuracy=0.000000
2019-05-05 03:47:43,885 Saved checkpoint to "cnn-ocr-0001.params"
('浙CUR7QJ', [11, 43, 59, 56, 38, 55, 49])


相关文章
CV:设计自动生成汽车车牌图片算法(cv2+PIL)根据指定七个字符自动生成逼真车牌图片数据集(带各种噪声效果)
MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并评估模型
MXNet之CNN:自定义CNN-OCR算法训练车牌数据集(umpy.ndarray格式数据)实现车牌照片字符识别并进行新车牌照片字符预测

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多