YIYIMZ / my_orc_keras_verification_code_identification

本项目实现了ocr主流算法gru/lstm+ctc+cnn架构,进行不定长度验证码识别,达到不分割字符而识别验证码内容的效果。验证码内容包含了大小字母以及数字,并增加点、线、颜色、位置、字体等干扰项。本项目对gru +ctc+cnn、lstm+ctc+cnn、cnn三种架构进行了对比,实践说明同等训练下gru/lstm+ctc+cnn架构准确率和速度均明显优于cnn架构,gru +ctc+cnn优于lstm+ctc+cnn,在实验2500个样本数据200轮训练时,gru +ctc+cnn架构在500样本测试准确率达90.2%。本项目技术能够训练长序列的ocr识别,更换数据集和相关调整,即可用于比如身份证号码、车牌、手机号、邮编等识别任务,也可用于汉字识别。
239 stars 96 forks source link

acc 精度 永远都在 0.26附近 #9

Closed stringk245 closed 4 years ago

stringk245 commented 5 years ago

cnn训练,dataset_gen_image.py 生成 2000张图片,试了三次,训练结果批次 acc精度永远都是在 0.26 附近荡漾,acc就没有超过0.5,val_acc 也没有超过0.5

是我训练的图片太少了吗??

Epoch 15/15 记录如下: 1824/2107 [========================>.....] - ETA: 17s - loss: 6.1614 - acc: 0.2686 1856/2107 [=========================>....] - ETA: 15s - loss: 6.1604 - acc: 0.2689 1888/2107 [=========================>....] - ETA: 13s - loss: 6.1609 - acc: 0.2675 1920/2107 [==========================>...] - ETA: 11s - loss: 6.1598 - acc: 0.2672 1952/2107 [==========================>...] - ETA: 9s - loss: 6.1600 - acc: 0.2690 1984/2107 [===========================>..] - ETA: 7s - loss: 6.1612 - acc: 0.2686 2016/2107 [===========================>..] - ETA: 5s - loss: 6.1612 - acc: 0.2698 2048/2107 [============================>.] - ETA: 3s - loss: 6.1616 - acc: 0.2695 2080/2107 [============================>.] - ETA: 1s - loss: 6.1609 - acc: 0.2687


37s 65ms/step - loss: 22.7355 - acc: 0.1974 - val_loss: 12.8355 - val_acc: 0.3455 134s 64ms/step - loss: 9.3424 - acc: 0.3037 - val_loss: 10.1870 - val_acc: 0.2879 135s 64ms/step - loss: 8.0493 - acc: 0.2691 - val_loss: 9.3654 - val_acc: 0.3754 135s 64ms/step - loss: 7.3769 - acc: 0.2805 - val_loss: 8.9034 - val_acc: 0.3776 137s 65ms/step - loss: 6.9218 - acc: 0.2658 - val_loss: 8.7271 - val_acc: 0.3876 135s 64ms/step - loss: 6.7014 - acc: 0.2577 - val_loss: 8.5050 - val_acc: 0.3876 135s 64ms/step - loss: 6.5993 - acc: 0.2672 - val_loss: 8.3277 - val_acc: 0.3876 134s 64ms/step - loss: 6.5015 - acc: 0.2644 - val_loss: 8.2935 - val_acc: 0.3643 136s 65ms/step - loss: 6.4255 - acc: 0.2520 - val_loss: 8.1753 - val_acc: 0.4009 137s 65ms/step - loss: 6.3728 - acc: 0.2449 - val_loss: 8.1918 - val_acc: 0.4031 138s 65ms/step - loss: 6.2617 - acc: 0.2606 - val_loss: 8.0773 - val_acc: 0.4042 134s 64ms/step - loss: 6.2646 - acc: 0.2530 - val_loss: 8.0425 - val_acc: 0.4120 137s 65ms/step - loss: 6.2721 - acc: 0.2558 - val_loss: 7.9845 - val_acc: 0.4131 36s 65ms/step - loss: 6.1599 - acc: 0.2696 - val_loss: 7.9338 - val_acc: 0.4131

训练脚本如下: dataset = Dataset('./img_data/cnn/') dataset.load()

model = Training_Predict() model.build_model(dataset) model.train(dataset) model.save_model(file_path = './model/cnn_model.h5')

vance-coder commented 4 years ago

请问解决了吗? 我的3200测试集、20个epoch了accuracy竟然一直在0.06? Epoch 22/100 20/3200 [..............................] - ETA: 37s - loss: 0.0512 - accuracy: 0.0625 40/3200 [..............................] - ETA: 38s - loss: 0.1130 - accuracy: 0.0469

stringk245 commented 4 years ago

请问解决了吗? 我的3200测试集、20个epoch了accuracy竟然一直在0.06? Epoch 22/100 20/3200 [..............................] - ETA: 37s - loss: 0.0512 - accuracy: 0.0625��������������������������������������������������������������������������������������� 40/3200 [..............................] - ETA: 38s - loss: 0.1130 - accuracy: 0.0469���������������������������������������������������������������������������������������

这玩意不行,弃了弃了