duanshengliu / End-to-end-for-chinese-plate-recognition

基于u-net,cv2以及cnn的中文车牌定位,矫正和端到端识别软件,其中unet和cv2用于车牌定位和矫正,cnn进行车牌识别,unet和cnn都是基于tensorflow的keras实现
Apache License 2.0
515 stars 117 forks source link

cnn前做灰度化或二值化是否效果更好? #8

Closed deeyi2000 closed 8 months ago

deeyi2000 commented 3 years ago

请教一个问题,我看代码cnn网络使用的是车牌图片修正后的3通道数据做输入,如果将输入图片做灰度化或二值化后再输入cnn是否训练速度更快,识别效果更好?


Model: "model"


Layer (type) Output Shape Param # Connected to

input_1 (InputLayer) [(None, 80, 240, 3)] 0


conv2d (Conv2D) (None, 80, 240, 16) 448 input_1[0][0]


max_pooling2d (MaxPooling2D) (None, 40, 120, 16) 0 conv2d[0][0]


conv2d_1 (Conv2D) (None, 38, 118, 32) 4640 max_pooling2d[0][0]


conv2d_2 (Conv2D) (None, 36, 116, 32) 9248 conv2d_1[0][0]


max_pooling2d_1 (MaxPooling2D) (None, 18, 58, 32) 0 conv2d_2[0][0]


dropout (Dropout) (None, 18, 58, 32) 0 max_pooling2d_1[0][0]


conv2d_3 (Conv2D) (None, 16, 56, 64) 18496 dropout[0][0]


conv2d_4 (Conv2D) (None, 14, 54, 64) 36928 conv2d_3[0][0]


max_pooling2d_2 (MaxPooling2D) (None, 7, 27, 64) 0 conv2d_4[0][0]


dropout_1 (Dropout) (None, 7, 27, 64) 0 max_pooling2d_2[0][0]


conv2d_5 (Conv2D) (None, 5, 25, 128) 73856 dropout_1[0][0]


conv2d_6 (Conv2D) (None, 3, 23, 128) 147584 conv2d_5[0][0]


max_pooling2d_3 (MaxPooling2D) (None, 2, 12, 128) 0 conv2d_6[0][0]


dropout_2 (Dropout) (None, 2, 12, 128) 0 max_pooling2d_3[0][0]


flatten (Flatten) (None, 3072) 0 dropout_2[0][0]


dropout_3 (Dropout) (None, 3072) 0 flatten[0][0]


c1 (Dense) (None, 65) 199745 dropout_3[0][0]


c2 (Dense) (None, 65) 199745 dropout_3[0][0]


c3 (Dense) (None, 65) 199745 dropout_3[0][0]


c4 (Dense) (None, 65) 199745 dropout_3[0][0]


c5 (Dense) (None, 65) 199745 dropout_3[0][0]


c6 (Dense) (None, 65) 199745 dropout_3[0][0]


c7 (Dense) (None, 65) 199745 dropout_3[0][0]

Total params: 1,689,415 Trainable params: 1,689,415 Non-trainable params: 0


duanshengliu commented 3 years ago

二值化的阈值不太好设定,因为每张图片的彩色不一致,所以二值化以后图片车牌可能模糊化,效果不佳,会使得后续识别效果欠佳

------------------ 原始邮件 ------------------ 发件人: "duanshengliu/End-to-end-for-chinese-plate-recognition" <notifications@github.com>; 发送时间: 2020年11月8日(星期天) 中午11:44 收件人: "duanshengliu/End-to-end-for-chinese-plate-recognition"<End-to-end-for-chinese-plate-recognition@noreply.github.com>; 抄送: "Subscribed"<subscribed@noreply.github.com>; 主题: [duanshengliu/End-to-end-for-chinese-plate-recognition] cnn前做灰度化或二值化是否效果更好? (#8)

请教一个问题,我看代码cnn网络使用的是车牌图片修正后的3通道数据做输入,如果将输入图片做灰度化或二值化后再输入cnn是否训练速度更快,识别效果更好?

Model: "model"

Layer (type) Output Shape Param # Connected to

input_1 (InputLayer) [(None, 80, 240, 3)] 0

conv2d (Conv2D) (None, 80, 240, 16) 448 input_1[0][0]

max_pooling2d (MaxPooling2D) (None, 40, 120, 16) 0 conv2d[0][0]

conv2d_1 (Conv2D) (None, 38, 118, 32) 4640 max_pooling2d[0][0]

conv2d_2 (Conv2D) (None, 36, 116, 32) 9248 conv2d_1[0][0]

max_pooling2d_1 (MaxPooling2D) (None, 18, 58, 32) 0 conv2d_2[0][0]

dropout (Dropout) (None, 18, 58, 32) 0 max_pooling2d_1[0][0]

conv2d_3 (Conv2D) (None, 16, 56, 64) 18496 dropout[0][0]

conv2d_4 (Conv2D) (None, 14, 54, 64) 36928 conv2d_3[0][0]

max_pooling2d_2 (MaxPooling2D) (None, 7, 27, 64) 0 conv2d_4[0][0]

dropout_1 (Dropout) (None, 7, 27, 64) 0 max_pooling2d_2[0][0]

conv2d_5 (Conv2D) (None, 5, 25, 128) 73856 dropout_1[0][0]

conv2d_6 (Conv2D) (None, 3, 23, 128) 147584 conv2d_5[0][0]

max_pooling2d_3 (MaxPooling2D) (None, 2, 12, 128) 0 conv2d_6[0][0]

dropout_2 (Dropout) (None, 2, 12, 128) 0 max_pooling2d_3[0][0]

flatten (Flatten) (None, 3072) 0 dropout_2[0][0]

dropout_3 (Dropout) (None, 3072) 0 flatten[0][0]

c1 (Dense) (None, 65) 199745 dropout_3[0][0]

c2 (Dense) (None, 65) 199745 dropout_3[0][0]

c3 (Dense) (None, 65) 199745 dropout_3[0][0]

c4 (Dense) (None, 65) 199745 dropout_3[0][0]

c5 (Dense) (None, 65) 199745 dropout_3[0][0]

c6 (Dense) (None, 65) 199745 dropout_3[0][0]

c7 (Dense) (None, 65) 199745 dropout_3[0][0]

Total params: 1,689,415 Trainable params: 1,689,415 Non-trainable params: 0

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.