日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python+Tensorflow+CNN实现车牌识别

發(fā)布時(shí)間:2023/12/31 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python+Tensorflow+CNN实现车牌识别 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言:文章如有錯(cuò)誤之處,敬請告知,謝謝~

文章目錄

  • 一、項(xiàng)目概述
  • 二、生成車牌數(shù)據(jù)集
  • 三、數(shù)據(jù)導(dǎo)入
  • 四、CNN模型構(gòu)建
  • 五、模型訓(xùn)練
  • 六、訓(xùn)練結(jié)果展示
  • 七、預(yù)測單張車牌
  • 八、總結(jié)

一、項(xiàng)目概述

本次項(xiàng)目目標(biāo)是實(shí)現(xiàn)對自動(dòng)生成的帶有各種噪聲的車牌識別。在噪聲干擾情況下,車牌字符分割較困難,此次車牌識別是將車牌7個(gè)字符同時(shí)訓(xùn)練,字符包括31個(gè)省份簡稱、10個(gè)阿拉伯?dāng)?shù)字、24個(gè)英文字母('O’和’I’除外),共有65個(gè)類別,7個(gè)字符使用單獨(dú)的loss函數(shù)進(jìn)行訓(xùn)練。
(運(yùn)行環(huán)境:tensorflow1.14.0-GPU版)

二、生成車牌數(shù)據(jù)集

import os import cv2 as cv import numpy as np from math import * from PIL import ImageFont from PIL import Image from PIL import ImageDrawindex = {"京": 0, "滬": 1, "津": 2, "渝": 3, "冀": 4, "晉": 5, "蒙": 6, "遼": 7, "吉": 8, "黑": 9,"蘇": 10, "浙": 11, "皖": 12, "閩": 13, "贛": 14, "魯": 15, "豫": 16, "鄂": 17, "湘": 18, "粵": 19,"桂": 20, "瓊": 21, "川": 22, "貴": 23, "云": 24, "藏": 25, "陜": 26, "甘": 27, "青": 28, "寧": 29,"新": 30, "0": 31, "1": 32, "2": 33, "3": 34, "4": 35, "5": 36, "6": 37, "7": 38, "8": 39,"9": 40, "A": 41, "B": 42, "C": 43, "D": 44, "E": 45, "F": 46, "G": 47, "H": 48, "J": 49,"K": 50, "L": 51, "M": 52, "N": 53, "P": 54, "Q": 55, "R": 56, "S": 57, "T": 58, "U": 59,"V": 60, "W": 61, "X": 62, "Y": 63, "Z": 64}chars = ["京", "滬", "津", "渝", "冀", "晉", "蒙", "遼", "吉", "黑","蘇", "浙", "皖", "閩", "贛", "魯", "豫", "鄂", "湘", "粵","桂", "瓊", "川", "貴", "云", "藏", "陜", "甘", "青", "寧","新", "0", "1", "2", "3", "4", "5", "6", "7", "8","9", "A", "B", "C", "D", "E", "F", "G", "H", "J","K", "L", "M", "N", "P", "Q", "R", "S", "T", "U","V", "W", "X", "Y", "Z"]def AddSmudginess(img, Smu):"""模糊處理:param img: 輸入圖像:param Smu: 模糊圖像:return: 添加模糊后的圖像"""rows = r(Smu.shape[0] - 50)cols = r(Smu.shape[1] - 50)adder = Smu[rows:rows + 50, cols:cols + 50]adder = cv.resize(adder, (50, 50))img = cv.resize(img,(50,50))img = cv.bitwise_not(img)img = cv.bitwise_and(adder, img)img = cv.bitwise_not(img)return imgdef rot(img, angel, shape, max_angel):"""添加透視畸變"""size_o = [shape[1], shape[0]]size = (shape[1]+ int(shape[0] * cos((float(max_angel ) / 180) * 3.14)), shape[0])interval = abs(int(sin((float(angel) / 180) * 3.14) * shape[0]))pts1 = np.float32([[0, 0], [0, size_o[1]], [size_o[0], 0], [size_o[0], size_o[1]]])if angel > 0:pts2 = np.float32([[interval, 0], [0, size[1]], [size[0], 0], [size[0] - interval, size_o[1]]])else:pts2 = np.float32([[0, 0], [interval, size[1]], [size[0] - interval, 0], [size[0], size_o[1]]])M = cv.getPerspectiveTransform(pts1, pts2)dst = cv.warpPerspective(img, M, size)return dstdef rotRandrom(img, factor, size):"""添加放射畸變:param img: 輸入圖像:param factor: 畸變的參數(shù):param size: 圖片目標(biāo)尺寸:return: 放射畸變后的圖像"""shape = sizepts1 = np.float32([[0, 0], [0, shape[0]], [shape[1], 0], [shape[1], shape[0]]])pts2 = np.float32([[r(factor), r(factor)], [r(factor), shape[0] - r(factor)], [shape[1] - r(factor), r(factor)],[shape[1] - r(factor), shape[0] - r(factor)]])M = cv.getPerspectiveTransform(pts1, pts2)dst = cv.warpPerspective(img, M, size)return dstdef tfactor(img):"""添加飽和度光照的噪聲"""hsv = cv.cvtColor(img,cv.COLOR_BGR2HSV)hsv[:, :, 0] = hsv[:, :, 0] * (0.8 + np.random.random() * 0.2)hsv[:, :, 1] = hsv[:, :, 1] * (0.3 + np.random.random() * 0.7)hsv[:, :, 2] = hsv[:, :, 2] * (0.2 + np.random.random() * 0.8)img = cv.cvtColor(hsv, cv.COLOR_HSV2BGR)return imgdef random_envirment(img, noplate_bg):"""添加自然環(huán)境的噪聲, noplate_bg為不含車牌的背景圖"""bg_index = r(len(noplate_bg))env = cv.imread(noplate_bg[bg_index])env = cv.resize(env, (img.shape[1], img.shape[0]))bak = (img == 0)bak = bak.astype(np.uint8) * 255inv = cv.bitwise_and(bak, env)img = cv.bitwise_or(inv, img)return imgdef GenCh(f, val):"""生成中文字符"""img = Image.new("RGB", (45, 70), (255, 255, 255))draw = ImageDraw.Draw(img)draw.text((0, 3), val, (0, 0, 0), font=f)img = img.resize((23, 70))A = np.array(img)return Adef GenCh1(f, val):"""生成英文字符"""img =Image.new("RGB", (23, 70), (255, 255, 255))draw = ImageDraw.Draw(img)draw.text((0, 2), val, (0, 0, 0), font=f) # val.decode('utf-8')A = np.array(img)return Adef AddGauss(img, level):"""添加高斯模糊""" return cv.blur(img, (level * 2 + 1, level * 2 + 1))def r(val):return int(np.random.random() * val)def AddNoiseSingleChannel(single):"""添加高斯噪聲"""diff = 255 - single.max()noise = np.random.normal(0, 1 + r(6), single.shape)noise = (noise - noise.min()) / (noise.max() - noise.min())noise *= diff# noise= noise.astype(np.uint8)dst = single + noisereturn dstdef addNoise(img): # sdev = 0.5,avg=10img[:, :, 0] = AddNoiseSingleChannel(img[:, :, 0])img[:, :, 1] = AddNoiseSingleChannel(img[:, :, 1])img[:, :, 2] = AddNoiseSingleChannel(img[:, :, 2])return imgclass 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)))self.bg = cv.resize(cv.imread("data\\images\\template.bmp"), (226, 70)) # template.bmp:車牌背景圖self.smu = cv.imread("data\\images\\smu2.jpg") # smu2.jpg:模糊圖像self.noplates_path = []for parent, parent_folder, filenames in os.walk(NoPlates):for filename in filenames:path = parent + "\\" + filenameself.noplates_path.append(path)def draw(self, val):offset = 2self.img[0:70, offset+8:offset+8+23] = GenCh(self.fontC, val[0])self.img[0:70, offset+8+23+6:offset+8+23+6+23] = GenCh1(self.fontE, val[1])for i in range(5):base = offset + 8 + 23 + 6 + 23 + 17 + i * 23 + i * 6self.img[0:70, base:base+23] = GenCh1(self.fontE, val[i+2])return self.imgdef generate(self, text):if len(text) == 7:fg = self.draw(text) # decode(encoding="utf-8")fg = cv.bitwise_not(fg)com = cv.bitwise_or(fg, self.bg)com = rot(com, r(60)-30, com.shape,30)com = rotRandrom(com, 10, (com.shape[1], com.shape[0]))com = tfactor(com)com = random_envirment(com, self.noplates_path)com = AddGauss(com, 1+r(4))com = addNoise(com)return com@staticmethoddef genPlateString(pos, val):"""生成車牌string,存為圖片生成車牌list,存為label"""plateStr = ""plateList=[]box = [0, 0, 0, 0, 0, 0, 0]if pos != -1:box[pos] = 1for unit, cpos in zip(box, range(len(box))):if unit == 1:plateStr += valplateList.append(val)else:if cpos == 0:plateStr += chars[r(31)]plateList.append(plateStr)elif cpos == 1:plateStr += chars[41 + r(24)]plateList.append(plateStr)else:plateStr += chars[31 + r(34)]plateList.append(plateStr)plate = [plateList[0]]b = [plateList[i][-1] for i in range(len(plateList))]plate.extend(b[1:7])return plateStr, plate@staticmethoddef genBatch(batchsize, outputPath, size):"""將生成的車牌圖片寫入文件夾,對應(yīng)的label寫入label.txt:param batchsize: 批次大小:param outputPath: 輸出圖像的保存路徑:param size: 輸出圖像的尺寸:return: None"""if not os.path.exists(outputPath):os.mkdir(outputPath)outfile = open('data\\plate\\label.txt', 'w', encoding='utf-8')for i in range(batchsize):plateStr, plate = G.genPlateString(-1, -1)# print(plateStr, plate)img = G.generate(plateStr)img = cv.resize(img, size)cv.imwrite(outputPath + "\\" + str(i).zfill(2) + ".jpg", img)outfile.write(str(plate) + "\n")if __name__ == '__main__':G = GenPlate("data\\font\\platech.ttf", 'data\\font\\platechar.ttf', "data\\NoPlates")G.genBatch(101, 'data\\plate', (272, 72))

生成的車牌圖像尺寸盡量不要超過300,本次尺寸選取:272 * 72
生成車牌所需文件:

  • 字體文件:中文‘platech.ttf’,英文及數(shù)字‘platechar.ttf’
  • 背景圖:來源于不含車牌的車輛裁剪圖片
  • 車牌(藍(lán)底):template.bmp
  • 噪聲圖像:smu2.jpg

文件百度云盤下載鏈接 密碼:h67g

車牌生成后保存至plate文件夾,示例如下:

三、數(shù)據(jù)導(dǎo)入

from genplate import * import matplotlib.pyplot as plt# 產(chǎn)生用于訓(xùn)練的數(shù)據(jù) class OCRIter:def __init__(self, batch_size, width, height):super(OCRIter, self).__init__()self.genplate = GenPlate("data\\font\\platech.ttf", 'data\\font\\platechar.ttf', "data\\NoPlates")self.batch_size = batch_sizeself.height = heightself.width = widthdef iter(self):data = []label = []for i in range(self.batch_size):img, num = self.gen_sample(self.genplate, self.width, self.height)data.append(img)label.append(num)return np.array(data), np.array(label)@staticmethoddef rand_range(lo, hi):return lo + r(hi - lo)def gen_rand(self):name = ""label = list([])label.append(self.rand_range(0, 31)) #產(chǎn)生車牌開頭32個(gè)省的標(biāo)簽label.append(self.rand_range(41, 65)) #產(chǎn)生車牌第二個(gè)字母的標(biāo)簽for i in range(5):label.append(self.rand_range(31, 65)) #產(chǎn)生車牌后續(xù)5個(gè)字母的標(biāo)簽name += chars[label[0]]name += chars[label[1]]for i in range(5):name += chars[label[i+2]]return name, labeldef gen_sample(self, genplate, width, height):num, label = self.gen_rand()img = genplate.generate(num)img = cv.resize(img, (height, width))img = np.multiply(img, 1/255.0)return img, label #返回的label為標(biāo)簽,img為車牌圖像''' # 測試代碼 O = OCRIter(2, 272, 72) img, lbl = O.iter() for im in img:plt.imshow(im, cmap='gray')plt.show() print(img.shape) print(lbl) '''

四、CNN模型構(gòu)建

import tensorflow as tfdef cnn_inference(images, keep_prob):W_conv = {'conv1': tf.Variable(tf.random.truncated_normal([3, 3, 3, 32],stddev=0.1)),'conv2': tf.Variable(tf.random.truncated_normal([3, 3, 32, 32],stddev=0.1)),'conv3': tf.Variable(tf.random.truncated_normal([3, 3, 32, 64],stddev=0.1)),'conv4': tf.Variable(tf.random.truncated_normal([3, 3, 64, 64],stddev=0.1)),'conv5': tf.Variable(tf.random.truncated_normal([3, 3, 64, 128],stddev=0.1)),'conv6': tf.Variable(tf.random.truncated_normal([3, 3, 128, 128],stddev=0.1)),'fc1_1': tf.Variable(tf.random.truncated_normal([5*30*128, 65],stddev=0.01)),'fc1_2': tf.Variable(tf.random.truncated_normal([5*30*128, 65],stddev=0.01)),'fc1_3': tf.Variable(tf.random.truncated_normal([5*30*128, 65],stddev=0.01)),'fc1_4': tf.Variable(tf.random.truncated_normal([5*30*128, 65],stddev=0.01)),'fc1_5': tf.Variable(tf.random.truncated_normal([5*30*128, 65],stddev=0.01)),'fc1_6': tf.Variable(tf.random.truncated_normal([5*30*128, 65],stddev=0.01)),'fc1_7': tf.Variable(tf.random.truncated_normal([5*30*128, 65],stddev=0.01)),} b_conv = { 'conv1': tf.Variable(tf.constant(0.1, dtype=tf.float32, shape=[32])),'conv2': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[32])),'conv3': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[64])),'conv4': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[64])),'conv5': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[128])),'conv6': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[128])),'fc1_1': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[65])),'fc1_2': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[65])),'fc1_3': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[65])),'fc1_4': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[65])),'fc1_5': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[65])),'fc1_6': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[65])),'fc1_7': tf.Variable(tf.constant(0.1, dtype=tf.float32,shape=[65])),} # 第1層卷積層conv1 = tf.nn.conv2d(images, W_conv['conv1'], strides=[1,1,1,1], padding='VALID')conv1 = tf.nn.bias_add(conv1, b_conv['conv1'])conv1 = tf.nn.relu(conv1)# 第2層卷積層conv2 = tf.nn.conv2d(conv1, W_conv['conv2'], strides=[1,1,1,1], padding='VALID')conv2 = tf.nn.bias_add(conv2, b_conv['conv2'])conv2 = tf.nn.relu(conv2)# 第1層池化層pool1 = tf.nn.max_pool2d(conv2, ksize=[1,2,2,1], strides=[1,2,2,1], padding='VALID')# 第3層卷積層conv3 = tf.nn.conv2d(pool1, W_conv['conv3'], strides=[1,1,1,1], padding='VALID')conv3 = tf.nn.bias_add(conv3, b_conv['conv3'])conv3 = tf.nn.relu(conv3)# 第4層卷積層conv4 = tf.nn.conv2d(conv3, W_conv['conv4'], strides=[1,1,1,1], padding='VALID')conv4 = tf.nn.bias_add(conv4, b_conv['conv4'])conv4 = tf.nn.relu(conv4)# 第2層池化層pool2 = tf.nn.max_pool2d(conv4, ksize=[1,2,2,1], strides=[1,2,2,1], padding='VALID')# 第5層卷積層conv5 = tf.nn.conv2d(pool2, W_conv['conv5'], strides=[1,1,1,1], padding='VALID')conv5 = tf.nn.bias_add(conv5, b_conv['conv5'])conv5 = tf.nn.relu(conv5)# 第4層卷積層conv6 = tf.nn.conv2d(conv5, W_conv['conv6'], strides=[1,1,1,1], padding='VALID')conv6 = tf.nn.bias_add(conv6, b_conv['conv6'])conv6 = tf.nn.relu(conv6)# 第3層池化層pool3 = tf.nn.max_pool2d(conv6, ksize=[1,2,2,1], strides=[1,2,2,1], padding='VALID')#第1_1層全連接層# print(pool3.shape)reshape = tf.reshape(pool3, [-1, 5 * 30 * 128])fc1 = tf.nn.dropout(reshape, keep_prob)fc1_1 = tf.add(tf.matmul(fc1, W_conv['fc1_1']), b_conv['fc1_1'])#第1_2層全連接層fc1_2 = tf.add(tf.matmul(fc1, W_conv['fc1_2']), b_conv['fc1_2'])#第1_3層全連接層fc1_3 = tf.add(tf.matmul(fc1, W_conv['fc1_3']), b_conv['fc1_3'])#第1_4層全連接層fc1_4 = tf.add(tf.matmul(fc1, W_conv['fc1_4']), b_conv['fc1_4'])#第1_5層全連接層fc1_5 = tf.add(tf.matmul(fc1, W_conv['fc1_5']), b_conv['fc1_5'])#第1_6層全連接層fc1_6 = tf.add(tf.matmul(fc1, W_conv['fc1_6']), b_conv['fc1_6'])#第1_7層全連接層fc1_7 = tf.add(tf.matmul(fc1, W_conv['fc1_7']), b_conv['fc1_7'])return fc1_1, fc1_2, fc1_3, fc1_4, fc1_5, fc1_6, fc1_7def calc_loss(logit1, logit2, logit3, logit4, logit5, logit6, logit7, labels):labels = tf.convert_to_tensor(labels, tf.int32)loss1 = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit1, labels=labels[:, 0]))tf.compat.v1.summary.scalar('loss1', loss1)loss2 = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit2, labels=labels[:, 1]))tf.compat.v1.summary.scalar('loss2', loss2)loss3 = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit3, labels=labels[:, 2]))tf.compat.v1.summary.scalar('loss3', loss3)loss4 = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit4, labels=labels[:, 3]))tf.compat.v1.summary.scalar('loss4', loss4)loss5 = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit5, labels=labels[:, 4]))tf.compat.v1.summary.scalar('loss5', loss5)loss6 = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit6, labels=labels[:, 5]))tf.compat.v1.summary.scalar('loss6', loss6)loss7 = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit7, labels=labels[:, 6]))tf.compat.v1.summary.scalar('loss7', loss7)return loss1, loss2, loss3, loss4, loss5, loss6, loss7def train_step(loss1, loss2, loss3, loss4, loss5, loss6, loss7, learning_rate):optimizer1 = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)train_op1 = optimizer1.minimize(loss1)optimizer2 = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)train_op2 = optimizer2.minimize(loss2)optimizer3 = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)train_op3 = optimizer3.minimize(loss3)optimizer4 = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)train_op4 = optimizer4.minimize(loss4)optimizer5 = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)train_op5 = optimizer5.minimize(loss5)optimizer6 = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)train_op6 = optimizer6.minimize(loss6)optimizer7 = tf.compat.v1.train.AdamOptimizer(learning_rate=learning_rate)train_op7 = optimizer7.minimize(loss7)return train_op1, train_op2, train_op3, train_op4, train_op5, train_op6, train_op7def pred_model(logit1, logit2, logit3, logit4, logit5, logit6, logit7, labels):labels = tf.convert_to_tensor(labels, tf.int32)labels = tf.reshape(tf.transpose(labels), [-1])logits = tf.concat([logit1, logit2, logit3, logit4, logit5, logit6, logit7], 0)prediction = tf.nn.in_top_k(logits, labels, 1)accuracy = tf.reduce_mean(tf.cast(prediction, tf.float32))tf.compat.v1.summary.scalar('accuracy', accuracy)return accuracy

五、模型訓(xùn)練

import os import time import datetime import numpy as np import tensorflow as tf from input_data import OCRIter import modelos.environ["TF_CPP_MIN_LOG_LEVEL"] = '3'img_h = 72 img_w = 272 num_label = 7 batch_size = 32 epoch = 10000 learning_rate = 0.0001logs_path = 'logs\\1005' model_path = 'saved_model\\1005'image_holder = tf.compat.v1.placeholder(tf.float32, [batch_size, img_h, img_w, 3]) label_holder = tf.compat.v1.placeholder(tf.int32, [batch_size, 7]) keep_prob = tf.compat.v1.placeholder(tf.float32)def get_batch():data_batch = OCRIter(batch_size, img_h, img_w)image_batch, label_batch = data_batch.iter()return np.array(image_batch), np.array(label_batch)logit1, logit2, logit3, logit4, logit5, logit6, logit7 = model.cnn_inference(image_holder, keep_prob)loss1, loss2, loss3, loss4, loss5, loss6, loss7 = model.calc_loss(logit1, logit2, logit3, logit4, logit5, logit6, logit7, label_holder)train_op1, train_op2, train_op3, train_op4, train_op5, train_op6, train_op7 = model.train_step(loss1, loss2, loss3, loss4, loss5, loss6, loss7, learning_rate)accuracy = model.pred_model(logit1, logit2, logit3, logit4, logit5, logit6, logit7, label_holder)input_image=tf.compat.v1.summary.image('input', image_holder)summary_op = tf.compat.v1.summary.merge(tf.compat.v1.get_collection(tf.compat.v1.GraphKeys.SUMMARIES))init_op = tf.compat.v1.global_variables_initializer()with tf.compat.v1.Session() as sess:sess.run(init_op)train_writer = tf.compat.v1.summary.FileWriter(logs_path, sess.graph)saver = tf.compat.v1.train.Saver()start_time1 = time.time()for step in range(epoch):# 生成車牌圖像以及標(biāo)簽數(shù)據(jù)img_batch, lbl_batch = get_batch()start_time2 = time.time()time_str = datetime.datetime.now().isoformat()feed_dict = {image_holder:img_batch, label_holder:lbl_batch, keep_prob:0.6}_1, _2, _3, _4, _5, _6, _7, ls1, ls2, ls3, ls4, ls5, ls6, ls7, acc = sess.run([train_op1, train_op2, train_op3, train_op4, train_op5, train_op6, train_op7, loss1, loss2, loss3, loss4, loss5, loss6, loss7, accuracy], feed_dict)summary_str = sess.run(summary_op, feed_dict)train_writer.add_summary(summary_str,step)duration = time.time() - start_time2loss_total = ls1 + ls2 + ls3 + ls4 + ls5 + ls6 + ls7if step % 10 == 0:sec_per_batch = float(duration)print('%s: Step %d, loss_total = %.2f, acc = %.2f%%, sec/batch = %.2f' %(time_str, step, loss_total, acc * 100, sec_per_batch))if step % 5000 == 0 or (step + 1) == epoch:checkpoint_path = os.path.join(model_path,'model.ckpt')saver.save(sess, checkpoint_path, global_step=step)end_time = time.time()print("Training over. It costs {:.2f} minutes".format((end_time - start_time1) / 60))

六、訓(xùn)練結(jié)果展示

訓(xùn)練參數(shù):
batch_size = 32
epoch = 10000
learning_rate = 0.0001
在tensorboard中查看訓(xùn)練過程
accuracy :
accuracy曲線在epoch = 10000左右時(shí)達(dá)到收斂,最終精確度在94%左右

loss :
以上三張分別是loss1,loss2, loss7的曲線圖像,一號位字符是省份簡稱,識別相對字母數(shù)字較難,loss1=0.08左右,二號位字符是字母,loss2穩(wěn)定在0.001左右,但是隨著字符往后,loss值也將越來越大,7號位字符loss7穩(wěn)定在0.6左右。

七、預(yù)測單張車牌

import os import cv2 as cv import numpy as np import tensorflow as tf import matplotlib.pyplot as plt from PIL import Image import modelos.environ["TF_CPP_MIN_LOG_LEVEL"] = '3' # 只顯示 Errorindex = {"京": 0, "滬": 1, "津": 2, "渝": 3, "冀": 4, "晉": 5, "蒙": 6, "遼": 7, "吉": 8, "黑": 9,"蘇": 10, "浙": 11, "皖": 12, "閩": 13, "贛": 14, "魯": 15, "豫": 16, "鄂": 17, "湘": 18, "粵": 19,"桂": 20, "瓊": 21, "川": 22, "貴": 23, "云": 24, "藏": 25, "陜": 26, "甘": 27, "青": 28, "寧": 29,"新": 30, "0": 31, "1": 32, "2": 33, "3": 34, "4": 35, "5": 36, "6": 37, "7": 38, "8": 39,"9": 40, "A": 41, "B": 42, "C": 43, "D": 44, "E": 45, "F": 46, "G": 47, "H": 48, "J": 49,"K": 50, "L": 51, "M": 52, "N": 53, "P": 54, "Q": 55, "R": 56, "S": 57, "T": 58, "U": 59,"V": 60, "W": 61, "X": 62, "Y": 63, "Z": 64}chars = ["京", "滬", "津", "渝", "冀", "晉", "蒙", "遼", "吉", "黑","蘇", "浙", "皖", "閩", "贛", "魯", "豫", "鄂", "湘", "粵","桂", "瓊", "川", "貴", "云", "藏", "陜", "甘", "青", "寧","新", "0", "1", "2", "3", "4", "5", "6", "7", "8","9", "A", "B", "C", "D", "E", "F", "G", "H", "J","K", "L", "M", "N", "P", "Q", "R", "S", "T", "U","V", "W", "X", "Y", "Z"]def get_one_image(test):""" 隨機(jī)獲取單張車牌圖像 """n = len(test)rand_num =np.random.randint(0,n)img_dir = test[rand_num]image_show = Image.open(img_dir)plt.imshow(image_show) # 顯示車牌圖片image = cv.imread(img_dir)image = image.reshape(72, 272, 3)image = np.multiply(image, 1 / 255.0)return imagebatch_size = 1 x = tf.compat.v1.placeholder(tf.float32, [batch_size, 72, 272, 3]) keep_prob = tf.compat.v1.placeholder(tf.float32)test_dir = 'data\\plate\\' test_image = [] for file in os.listdir(test_dir):test_image.append(test_dir + file) test_image = list(test_image)image_array = get_one_image(test_image)logit1, logit2, logit3, logit4, logit5, logit6, logit7 = model.cnn_inference(x, keep_prob)model_path = 'saved_model\\1005'saver = tf.compat.v1.train.Saver()with tf.compat.v1.Session() as sess:print ("Reading checkpoint...")ckpt = tf.train.get_checkpoint_state(model_path)if ckpt and ckpt.model_checkpoint_path:global_step = ckpt.model_checkpoint_path.split('/')[-1].split('-')[-1]saver.restore(sess, ckpt.model_checkpoint_path)print('Loading success, global_step is %s' % global_step)else:print('No checkpoint file found')pre1, pre2, pre3, pre4, pre5, pre6, pre7 = sess.run([logit1, logit2, logit3, logit4, logit5, logit6, logit7],feed_dict={x:image_array, keep_prob:1.0})prediction = np.reshape(np.array([pre1, pre2, pre3, pre4, pre5, pre6, pre7]), [-1, 65])max_index = np.argmax(prediction, axis=1)print(max_index)line = ''result = np.array([])for i in range(prediction.shape[0]):if i == 0:result = np.argmax(prediction[i][0:31])if i == 1:result = np.argmax(prediction[i][41:65]) + 41if i > 1:result = np.argmax(prediction[i][31:65]) + 31line += chars[result]+" "print ('predicted: ' + line) plt.show()

隨機(jī)測試20張車牌,18張預(yù)測正確,2張預(yù)測錯(cuò)誤,從最后兩幅預(yù)測錯(cuò)誤的圖片可以看出,模型對相似字符以及遮擋字符識別成功率仍有待提高。測試結(jié)果部分展示如下:

八、總結(jié)

本次構(gòu)建的CNN模型較為簡單,只有6卷積層+3池化層+1全連接層,可以通過增加模型深度以及每層之間的神經(jīng)元數(shù)量來優(yōu)化模型,提高識別的準(zhǔn)確率。此次訓(xùn)練數(shù)據(jù)集來源于自動(dòng)生成的車牌,由于真實(shí)的車牌圖像與生成的車牌圖像在噪聲干擾上有所區(qū)分,所以識別率上會(huì)有所出入。如果使用真實(shí)的車牌數(shù)據(jù)集,需要對車牌進(jìn)行濾波、均衡化、腐蝕、矢量量化等預(yù)處理方法。

總結(jié)

以上是生活随笔為你收集整理的Python+Tensorflow+CNN实现车牌识别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

黄色大片国产 | 91探花在线 | 人人爽人人爽 | 日日操操 | 久草在线最新视频 | 又黄又爽的视频在线观看网站 | 99欧美视频 | 日韩网站在线观看 | 久久精彩免费视频 | 亚洲国产欧洲综合997久久, | 天天色天天骑天天射 | 亚洲精品免费观看视频 | 国产在线91在线电影 | 色播五月激情综合网 | 成人毛片在线观看 | 国产精品福利在线观看 | 国产亚洲综合在线 | 久久久久影视 | 亚洲午夜久久久久久久久 | 欧美国产一区在线 | 激情图片区 | 免费看污网站 | 日韩a在线看 | 中文字幕视频一区二区 | www.黄色片.com| 欧美日韩一区二区视频在线观看 | 国产免费午夜 | 黄色三级av | 日韩在线观看不卡 | 人人澡人人干 | 日韩色一区二区三区 | 九九综合在线 | 麻豆综合网 | 91亚洲在线 | 97人人精品 | 中文字幕三区 | 中文字幕av在线不卡 | 久久久国产精品免费 | 五月天综合激情 | 国产高清免费在线播放 | 日韩av网站在线播放 | 中文字幕精品一区二区三区电影 | 一区二区影院 | 美女啪啪图片 | 91精品视频网站 | 一区二区精品视频 | 亚洲精品视频在线观看免费视频 | 在线成人免费 | 欧美久久99 | 国产欧美精品一区二区三区 | 日韩av一区二区在线播放 | 亚洲欧美日韩精品久久久 | 国产精品亚洲精品 | 全久久久久久久久久久电影 | 亚洲精品xxx| 精品一区二区三区久久 | 成人a级黄色片 | 国产99精品| 99免费在线播放99久久免费 | 黄色一级动作片 | 日本aaa在线观看 | 亚洲最大av网站 | 91精品国产自产在线观看永久 | 欧美激情xxxx性bbbb | 日本女人在线观看 | 中文字幕在线视频免费播放 | 久久视频99 | 亚洲综合国产精品 | 黄色av免费看| 中文字幕在线观看完整 | 日韩欧美精品在线 | 成人h在线播放 | 色婷婷综合久久久中文字幕 | 91精品无人成人www | 看片网站黄| 国产3p视频| 亚洲日本欧美在线 | 国语久久 | 叶爱av在线| av看片网 | 成人黄色电影在线播放 | 欧美午夜性生活 | 日韩欧美一区二区三区在线观看 | 天天玩夜夜操 | 欧美精品免费一区二区 | 在线中文字幕一区二区 | 97精品伊人 | 91av资源在线| 日本在线视频一区二区三区 | 韩日精品在线 | 一区二区三区在线免费 | 天天干天天拍天天操 | 深爱激情亚洲 | avv天堂| 狠狠干我 | 欧美日韩国产页 | 91久久精品日日躁夜夜躁国产 | 久久视频免费在线观看 | 亚洲高清精品在线 | 欧美日韩二区在线 | 国产成人综合在线观看 | 夜夜躁狠狠躁日日躁视频黑人 | 97成人精品区在线播放 | 97中文字幕 | 国产乱码精品一区二区蜜臀 | 97网在线观看 | 69av在线视频| 成在人线av | 天天色天天干天天色 | 六月丁香婷 | 在线韩国电影免费观影完整版 | 天天操夜夜看 | 亚洲国产中文在线 | 五月婷婷操| 国产亚洲精品久久久久久大师 | 最近中文字幕 | 五月天综合激情网 | 99精品国产免费久久 | 丁香久久综合 | 狠狠地日 | 亚洲国产欧美在线看片xxoo | 999久久国精品免费观看网站 | 成人夜晚看av | 欧美精品中文在线免费观看 | 人人爽人人射 | 中文字幕在线观看国产 | 久久精品123 | a黄色大片| 亚洲免费一级电影 | 狠狠色丁香婷婷综合久久片 | 96av麻豆蜜桃一区二区 | 国产中文伊人 | 久久超碰免费 | 久久精品99视频 | 国产精品你懂的在线观看 | 成人免费在线播放视频 | av免费看网站 | 四虎在线免费 | 婷婷六月天在线 | 国产精品精品久久久久久 | 国产一区国产二区在线观看 | 黄免费在线观看 | 亚洲 欧美 综合 在线 精品 | 波多野结衣在线中文字幕 | 五月丁香 | 怡红院av | 国产视频日韩 | av免费在线观看1 | 精品在线观看一区二区三区 | 高清av在线 | 久久久久这里只有精品 | 黄色软件视频大全免费下载 | 欧美日韩精品免费观看视频 | 99re国产视频| 免费观看国产成人 | 免费网站色 | 国产视频色 | 五月天丁香亚洲 | 国产黄色资源 | 91香蕉视频污在线 | 国产亚洲精品成人 | 99c视频在线 | 五月天久久综合网 | 成人四虎影院 | 最近最新中文字幕视频 | 五月天综合色激情 | 992tv在线| 免费在线观看日韩视频 | 亚洲高清免费在线 | 久久九九影院 | 日韩羞羞 | 国产麻豆成人传媒免费观看 | 久久激情精品 | 精品一区二区av | 中文字幕成人在线观看 | 91九色精品女同系列 | 99久久这里只有精品 | 久久激情综合网 | 人九九精品 | 依人成人综合网 | 国产精品国产三级国产aⅴ无密码 | 欧美日韩一区三区 | 激情av在线资源 | 亚洲精品国产精品国自产在线 | 精品国产人成亚洲区 | 久久99精品国产99久久 | 韩日精品在线 | 天天综合区 | 怡红院av久久久久久久 | 亚洲我射av | 日韩精品久久一区二区三区 | 国产精品美女久久久久久久 | 欧美在线观看视频 | 九9热这里真品2 | 激情av一区二区 | 五月天久久婷婷 | 国产精品久久一卡二卡 | 欧美福利网站 | 在线视频一二三 | 首页中文字幕 | 日韩v欧美v日本v亚洲v国产v | 久久影院精品 | 福利精品在线 | av在线成人| 久久精品男人的天堂 | 91视频这里只有精品 | 91精选在线 | 免费视频在线观看网站 | 免费看成人a | 天天色天天色 | 一区二区三区影院 | 91视频-88av | 久久99热这里只有精品 | 国产 视频 久久 | 国产精品大片免费观看 | 在线国产一区二区 | 黄色的片子 | 黄色录像av| 不卡的av中文字幕 | 久久免费观看少妇a级毛片 久久久久成人免费 | 激情在线五月天 | 亚洲 欧洲av | 天天婷婷 | 午夜av免费在线观看 | 欧美在线视频第一页 | 亚洲网站在线 | 欧美日韩二三区 | 经典三级一区 | 久久综合狠狠综合久久狠狠色综合 | 日批视频在线观看免费 | 国产探花 | 久久精品—区二区三区 | 91最新地址永久入口 | 久久综合狠狠综合久久激情 | 亚洲精品久久久久久国 | 国产精品麻豆免费版 | 日韩精品视频免费专区在线播放 | av免费看电影 | 丁香婷婷电影 | 久久手机免费视频 | 免费99视频 | 久久免费a| 天天操夜夜想 | 99热这里只有精品免费 | av电影不卡 | 亚洲欧美日韩精品一区二区 | 最新日韩精品 | 日本激情视频中文字幕 | av片子在线观看 | 四虎亚洲精品 | 人人澡人人草 | 国产又粗又猛又爽又黄的视频免费 | 成 人 黄 色视频免费播放 | 五月婷综合 | av一本久道久久波多野结衣 | 人人超碰人人 | a在线观看视频 | 亚洲天堂网在线观看视频 | 久草在线最新免费 | 国产成人免费在线观看 | 国产一线二线三线性视频 | 国产视频网站在线观看 | 婷婷六月丁 | 成人av高清 | 午夜精品一区二区三区四区 | 91精品一区二区三区蜜桃 | 96av视频| 国产成人一区二区三区电影 | 91av片 | 国产精品va最新国产精品视频 | 国产视频网站在线观看 | 久久成人午夜视频 | 91亚洲精品久久久蜜桃 | 久久99久久久久久 | 成片视频免费观看 | 欧美亚洲三级 | 日批网站在线观看 | 色婷婷在线播放 | 成人免费看视频 | 亚洲成人精品在线 | 成人91在线| 玖玖玖在线 | 色久天 | 午夜黄色一级片 | 人人舔人人干 | 一级黄色大片 | 亚洲一区二区三区在线看 | 精品国产精品久久一区免费式 | 亚洲综合视频在线播放 | 国产精品第52页 | 在线免费高清一区二区三区 | 中文字幕视频 | 最近日本韩国中文字幕 | 国产精品va视频 | 日本黄色免费播放 | 国产精品 中文在线 | 深爱婷婷久久综合 | 久久免费视频3 | 国产3p视频| 久久精品美女视频网站 | 欧美成人h版在线观看 | 免费日韩电影 | 日韩电影一区二区在线 | 日韩色区 | 亚洲成人av一区二区 | 日韩精品视频在线观看网址 | 国产精品免费看久久久8精臀av | 亚洲国产精品人久久电影 | 激情黄色一级片 | 69久久99精品久久久久婷婷 | 在线观看91精品国产网站 | 美女网站视频免费都是黄 | 成人日批视频 | 久久理论片 | 亚洲精品午夜久久久久久久 | 五月天高清欧美mv | 亚洲毛片一区二区三区 | 免费在线播放视频 | 亚洲伊人色 | 色偷偷888欧美精品久久久 | 99精品视频免费全部在线 | 免费色视频在线 | 中文字幕精品久久 | 精品少妇一区二区三区在线 | 国产精品一区二区三区观看 | 91在线视频 | 久草香蕉在线 | 亚洲天天做 | 久久亚洲综合色 | 久久久资源 | 久久精品99国产精品亚洲最刺激 | 国产精品麻豆视频 | 色网站视频 | 一级欧美日韩 | 一区 在线 影院 | 午夜骚影| 亚洲女同ⅹxx女同tv | 91精品在线观看视频 | 久久99视频免费 | 狠狠色丁香婷婷综合久小说久 | 国产人成看黄久久久久久久久 | 天天射天天干 | 国产精品18久久久久久首页狼 | 丁香六月天 | 久久激情婷婷 | 国产日韩欧美在线免费观看 | 黄色一级大片在线免费看产 | 精品亚洲欧美无人区乱码 | 天天曰天天射 | 欧美日韩伦理一区 | 在线视频观看亚洲 | 91麻豆操 | 亚洲精品视频国产 | 亚洲国产精品视频 | 国产精品女主播一区二区三区 | 亚洲午夜精品电影 | 911国产在线观看 | 中文字幕在线观看免费 | 天天干天天做 | 99热最新精品| 香蕉视频在线免费看 | 国产精品视频免费看 | 国产在线观看你懂得 | 香蕉视频4aa| 精品国产电影一区二区 | 99这里只有 | 久久大片网站 | 欧美一级片播放 | 国产在线成人 | 97在线看| 久久人人97超碰国产公开结果 | 欧美动漫一区二区三区 | 久久综合影院 | 久久在线视频在线 | 九九九九九精品 | 91网在线观看 | 日韩视频中文 | 欧美精品久久久久久久免费 | 国产免费一区二区三区最新 | 在线免费观看黄色小说 | 99久久精品国产免费看不卡 | 狠狠精品 | 日日夜夜操操操操 | 国产免费观看久久 | 精品国产伦一区二区三区观看体验 | 日韩av成人在线 | 免费观看9x视频网站在线观看 | 国产精品欧美一区二区三区不卡 | 国产精品毛片久久蜜 | 国产又粗又硬又长又爽的视频 | 成人免费观看完整版电影 | 久久艹在线观看 | 成人黄色电影视频 | 国产亚洲久一区二区 | 色综合天天综合 | 久久激情久久 | av免费成人 | 在线观看中文字幕第一页 | 久久久av电影| 国产五月婷 | 欧洲亚洲精品 | 欧美精品亚州精品 | 中文字幕亚洲在线观看 | 国产一级淫片免费看 | 日本aaa在线观看 | 最新日韩中文字幕 | 亚洲成人av在线 | 片黄色毛片黄色毛片 | 六月激情婷婷 | 亚洲国产手机在线 | 黄色的视频网站 | 在线最新av | 综合久久网站 | 美女视频黄免费 | 亚洲伊人色 | 日韩电影在线观看中文字幕 | 成人资源在线观看 | 亚洲精品影视在线观看 | 最近中文字幕国语免费av | av千婊在线免费观看 | 麻豆传媒视频在线免费观看 | 成人免费xxx在线观看 | 蜜桃视频精品 | 午夜12点 | 久久久久久久电影 | 国产福利网站 | 亚洲国产视频在线 | 国产精品 中文在线 | 少妇自拍av| 国产原创91 | 欧美日韩在线观看视频 | 国产午夜精品一区二区三区在线观看 | 黄色成人在线 | 国产亚洲精品久久久久久电影 | 亚洲乱亚洲乱亚洲 | 成人毛片在线观看视频 | 天天操天天射天天操 | 国产视频一级 | 国产日韩欧美网站 | 日日日操| 天天色天天射综合网 | 国产婷婷| aaa日本高清在线播放免费观看 | 超碰在线94 | 久久夜夜夜 | 亚洲精品乱码久久久久久 | 国产精品久久久久久久久久久不卡 | 婷婷在线五月 | 91香蕉国产 | 视频在线日韩 | 久久热亚洲| 久草视频在线免费看 | 亚洲国产理论片 | 国产精品久久二区 | 久久这里只有精品9 | 国产精品免费看久久久8精臀av | 狠狠操操操 | 欧美一级高清片 | 久久er99热精品一区二区 | 亚洲精品中文在线观看 | 伊色综合久久之综合久久 | 亚洲视频精品在线 | 日韩资源在线播放 | 美女国内精品自产拍在线播放 | 999久久久久久久久 69av视频在线观看 | 日韩精品久久中文字幕 | 免费日韩在线 | 怡红院av| 欧美另类交人妖 | 免费观看福利视频 | 欧美日韩xxxxx | 成人免费视频在线观看 | 精品国内自产拍在线观看视频 | 欧美日韩精品久久久 | 亚洲资源片 | 久久人91精品久久久久久不卡 | 三级av免费看 | 一级做a爱片性色毛片www | 天天操偷偷干 | 欧美一级艳片视频免费观看 | 97成人精品视频在线播放 | 久久天天躁狠狠躁夜夜不卡公司 | 在线观看免费高清视频大全追剧 | 一区二区网 | 一级性生活片 | 亚洲欧美精品在线 | 免费看片网站91 | 久久不射电影院 | 天天色综合1 | 日韩激情精品 | 久久国产品 | 久久视精品 | 四虎国产视频 | 精品视频久久 | 天天色天天操天天爽 | 天天夜夜亚洲 | 亚洲精欧美一区二区精品 | 最近中文字幕在线中文高清版 | 中文字幕在线观看不卡 | 伊人永久在线 | 国产精品mv在线观看 | 亚洲精品无 | 欧美激情视频免费看 | 精品夜夜嗨av一区二区三区 | 国产精品日韩久久久久 | 黄色小视频在线观看免费 | 亚洲1级片 | 成人免费视频观看 | 久久色中文字幕 | 少妇av网 | 亚洲专区在线 | 国产成人久久精品77777 | 免费日韩一区二区三区 | 亚洲 综合 精品 | 字幕网av| 久草精品视频在线观看 | 99精品小视频 | 国产一级二级在线观看 | 黄色高清视频在线观看 | 国际av在线 | 91在线看网站 | 人人草在线视频 | 国产一级电影网 | 中文字幕人成乱码在线观看 | 91爱爱电影 | 亚洲91中文字幕无线码三区 | 97**国产露脸精品国产 | 国产第一页在线播放 | 成人免费网站视频 | 国产999视频 | 九九热国产视频 | 亚洲天堂香蕉 | 国产视频一二区 | 亚洲免费国产视频 | 在线视频a | 又爽又黄在线观看 | 国产成人精品一区二区在线观看 | 日韩精品亚洲专区在线观看 | 久久经典国产视频 | 爱情影院aqdy鲁丝片二区 | 婷婷久久网 | 小草av在线播放 | 日韩欧美国产免费播放 | 精品99久久| 成人毛片一区 | 日韩欧美一区二区在线观看 | 久热免费在线观看 | 久久99国产精品视频 | 国语自产偷拍精品视频偷 | 国产美女精品人人做人人爽 | 亚洲精品小视频 | aa一级片| 久久免费视频99 | 免费观看www视频 | 日韩二区三区在线观看 | 欧美美女视频在线观看 | 久久久久久久久久免费视频 | 在线中文视频 | 欧美另类交在线观看 | 久久97超碰 | 国产午夜视频在线观看 | 亚洲 欧美 综合 在线 精品 | 男女视频91 | 天天天天天天天操 | 91精品国产99久久久久久红楼 | 国产精品爽爽久久久久久蜜臀 | 国产成人三级在线观看 | 美女久久视频 | 91精品国产乱码久久桃 | 日日操网 | 国产一级电影网 | 国产精品1024 | 在线观看免费91 | 国产精品video爽爽爽爽 | 黄色在线观看污 | 九九影视理伦片 | 日日夜夜人人天天 | 精品黄色片| 欧美日韩精品在线观看 | 国产精品亚洲综合久久 | 日韩大片在线播放 | 久久一级片 | 久久精品一二区 | 国产免费黄视频在线观看 | 日韩理论片在线观看 | 免费在线观看成年人视频 | 日韩午夜大片 | 国产99一区视频免费 | 国产免费看| 国产在线观看地址 | 黄网站色成年免费观看 | 在线观看福利网站 | 最近日本中文字幕a | 99久久久| 日韩一区二区三区高清免费看看 | 国产视频每日更新 | 国产专区视频在线观看 | 国产黄免费 | 亚洲精品乱码久久久久久蜜桃动漫 | 热99在线视频| 亚洲伊人网在线观看 | 少妇视频一区 | 国产精品久久久久久久久久三级 | 欧美精品中文在线免费观看 | 91精品国自产在线观看 | 天堂av在线网站 | 96香蕉视频| 国产精品久久久久久久久久ktv | 日日夜色 | 91精品一区二区在线观看 | 丁香av在线 | 国产小视频国产精品 | 欧洲性视频 | 久久 地址 | 在线va网站 | 操高跟美女| 最新黄色av网址 | 在线视频99 | 丁香电影小说免费视频观看 | 激情五月激情综合网 | 91成人在线观看喷潮 | 日本高清xxxx | 亚洲波多野结衣 | 精一区二区 | 久久免费视频播放 | 69av国产| 国产又粗又硬又爽的视频 | 97超碰在 | 免费一级黄色 | 欧美日韩一区三区 | 国产在线视频在线观看 | 91资源在线免费观看 | 国产一级小视频 | 久久99精品久久久久婷婷 | av字幕在线 | 激情欧美日韩一区二区 | 五月情婷婷 | 日韩女同一区二区三区在线观看 | 色中色资源站 | 蜜臀av一区二区 | 日日夜夜免费精品 | 久久不射影院 | 中文字幕在线观看91 | 久久一区二区三区国产精品 | 天天爽夜夜爽精品视频婷婷 | 狠狠色伊人亚洲综合网站色 | 99这里只有精品99 | 九九热有精品 | 久草| 一区二区三区韩国免费中文网站 | 国产精品网站 | 在线视频 影院 | 亚洲 欧美变态 另类 综合 | 免费在线观看日韩欧美 | 国产乱码精品一区二区三区介绍 | 韩国一区在线 | 人人澡人人爽欧一区 | 91视频免费国产 | www.伊人网.com| 亚洲精品综合在线观看 | 欧美日韩国产高清视频 | 激情欧美丁香 | 在线观看电影av | 亚洲jizzjizz日本少妇 | 国产精品乱码在线 | 国产经典三级 | 欧美黄色软件 | 一区二区精品在线 | 国产日本亚洲高清 | 国产精品人人做人人爽人人添 | 亚洲精品视频在线播放 | 99视频99 | 国产爽妇网| 日韩精品中文字幕在线播放 | www亚洲国产 | 91精品国产99久久久久久红楼 | 99精品在线免费视频 | 精品1区2区 | 成人免费观看网站 | 国产高清av在线播放 | 一区二区视频在线观看免费 | 免费看国产黄色 | 国产原厂视频在线观看 | 免费a级毛片在线看 | 亚洲精品视频在线免费播放 | 九九九热精品免费视频观看 | 99热超碰在线 | 日韩av电影中文字幕在线观看 | 东方av在 | 久久网站免费 | 久久久久久视频 | 在线免费高清 | 在线播放日韩av | www.天天色.com| 在线中文字幕观看 | 911亚洲精品第一 | 国产午夜精品一区二区三区 | 亚洲高清视频一区二区三区 | 日本韩国中文字幕 | 国产亚洲视频在线免费观看 | 人人玩人人添人人澡97 | 亚洲黄色免费网站 | 国产精品少妇 | 久久久久久久久久电影 | 国产精品一区免费看8c0m | 中文字幕乱码电影 | 日韩免费在线观看视频 | 国产一区二区三区免费观看视频 | 亚洲jizzjizz日本少妇 | 中文字幕在线观看网址 | 另类老妇性bbwbbw高清 | 麻豆国产网站入口 | 欧美一区二视频在线免费观看 | 在线精品视频在线观看高清 | 在线成人一区二区 | 久草在线看片 | 精品国产欧美一区二区三区不卡 | 2019av在线视频 | 亚洲最新av网站 | 四虎国产 | 狠狠网站 | 97色在线视频 | 91精品在线麻豆 | 在线观看日本韩国电影 | 久久精品国亚洲 | 日本性xxx | 国产精品成人免费精品自在线观看 | 国产精品系列在线观看 | 一级久久精品 | 天天爱天天射 | 黄色成年片 | 波多野结衣在线视频免费观看 | 五月婷婷开心 | 中文字幕在线观看免费高清完整版 | 色爱区综合激月婷婷 | 激情欧美日韩一区二区 | 又色又爽又激情的59视频 | 91亚洲夫妻 | 国产精品久久网站 | 国产录像在线观看 | 五月婷婷在线视频 | 国产 欧美 日本 | 午夜美女wwww | 激情网五月| 手机在线小视频 | 狠狠操在线 | 美女黄久久 | 天天爽人人爽夜夜爽 | 久色网 | 99久久精品免费看国产免费软件 | 六月丁香在线视频 | 国产精国产精品 | 日本中文字幕在线 | 日韩av中文字幕在线免费观看 | 免费福利视频导航 | 国产在线视频在线观看 | 国产免费资源 | 欧美成人69av | 色五月色开心色婷婷色丁香 | 亚洲欧美视频在线 | 国产日韩精品一区二区在线观看播放 | 日韩一区二区三区不卡 | 国产精品黄色 | 99视频99| 欧美视频www | 国产一级片网站 | 天堂av免费观看 | 日日弄天天弄美女bbbb | 国产又粗又长又硬免费视频 | 日韩高清免费电影 | 日韩av片无码一区二区不卡电影 | 免费看黄电影 | 在线观看成人小视频 | 在线电影播放 | 久久免费福利 | 在线观看完整版免费 | 91久久国产综合精品女同国语 | 亚洲色五月 | av大全在线免费观看 | 九草在线视频 | 久久精品理论 | www.五月天婷婷 | 精品在线视频一区二区三区 | 天堂在线一区二区三区 | 99精品在线免费在线观看 | 97免费在线视频 | 91精品婷婷国产综合久久蝌蚪 | 人人网av| 亚洲国产操 | 午夜婷婷在线播放 | 欧美日韩在线观看一区二区三区 | 中文字幕日本电影 | 91在线国内视频 | 婷婷福利影院 | 最近高清中文在线字幕在线观看 | 成年人在线免费看片 | 成人av免费电影 | 日本mv大片欧洲mv大片 | 久草在线电影网 | www.天天色 | 中文字幕在线精品 | 九九久久婷婷 | 日韩欧美在线国产 | 婷婷色av | 一级一片免费视频 | 在线观看成人一级片 | 91精品国自产在线观看 | 久久香蕉电影 | 美女av在线免费 | 久久99精品久久只有精品 | 日韩精品免费一线在线观看 | 久久99精品国产99久久6尤 | 99久久精品网 | 精品一区二区在线观看 | 一区二区三区四区不卡 | 国产精品女教师 | 日韩免费看视频 | 在线观看日韩免费视频 | 91网页版免费观看 | 亚洲精品乱码久久久久久蜜桃动漫 | 日韩免费一二三区 | 日韩欧美在线综合网 | 日韩av免费观看网站 | 免费看搞黄视频网站 | 丁香婷婷久久久综合精品国产 | 久久国产精品99国产精 | 天天天干天天天操 | 国产在线精品国自产拍影院 | 日一日干一干 | 日韩视频1 | 特级黄录像视频 | 国产美女视频免费观看的网站 | 一级黄色电影网站 | 国产在线播放观看 | 国内精品美女在线观看 | 国产精品久久久av久久久 | 视频二区在线 | 国产在线观看你懂的 | 色综合久久88色综合天天人守婷 | 精品久久久久久久久久久久久久久久久久 | 天堂资源在线观看视频 | 超碰在线日本 | 在线播放视频一区 | 精品国产美女 | 日韩理论片在线 | 日韩啪啪小视频 | 97看片吧| 精品人人人人 | 国产高清视频在线播放一区 | 天天玩天天干天天操 | 在线免费av观看 | 在线播放日韩av | 一级免费片 | 91精品啪在线观看国产线免费 | 久久精品4| 啪啪小视频网站 | 黄色一级影院 | 欧美精品v国产精品v日韩精品 | 亚洲成人av片在线观看 | 午夜视频在线观看欧美 | 久久精品欧美一区二区三区麻豆 | 日本精品中文字幕 | 6080yy精品一区二区三区 | 91亚色视频 | 97网在线观看 | 日韩欧美国产精品 | 色噜噜狠狠狠狠色综合久不 | 99久久精品国产网站 | 久久久免费看片 | 久久久免费电影 | 成人免费观看视频网站 | 色婷婷久久 | 人人藻人人澡人人爽 | 成人亚洲免费 | 99久久这里有精品 | 最近高清中文字幕 | 久久草精品 | 91精品久久久久久久91蜜桃 | 91视频中文字幕 | 91中文字幕在线观看 | 99国产精品久久久久久久久久 | av观看免费在线 | 久久另类小说 | 中文字幕在线有码 | 麻豆果冻剧传媒在线播放 | 狠狠的操你 | 午夜国产福利视频 | 美女久久网站 | www.香蕉| 日韩欧美一级二级 | 久草综合视频 | 国产成人久久精品一区二区三区 | 黄色国产区 | 毛片网站在线看 | 久久久黄色免费网站 | 中文字幕亚洲字幕 | 国产色综合天天综合网 | 美国人与动物xxxx | 91亚洲欧美激情 | 精品亚洲一区二区 | 亚洲闷骚少妇在线观看网站 | 久久精品9| 日本中文字幕观看 | 亚洲成人软件 | 亚洲精品18p | 在线不卡的av | 日韩黄色免费看 | 天天操夜夜看 | 99精品亚洲 | 国产永久免费观看 | 色综合久久天天 | 国产91精品看黄网站 | 国产专区视频在线观看 | 国产精品久久久久三级 | 亚洲精品中文字幕视频 | 中文字幕日本电影 | 欧美激情视频一区 | 日韩久久精品一区二区三区下载 | 久久久久二区 | 国产成人777777 | 日本护士撒尿xxxx18 | 欧美日韩一区二区三区不卡 | 久久久综合香蕉尹人综合网 | 丁香六月国产 | 欧美精彩视频在线观看 | 亚洲视频资源在线 | 国产精品9区 | 91黄视频在线观看 | 亚洲精品h| 天天干天天操人体 | 成人免费观看完整版电影 | 国偷自产中文字幕亚洲手机在线 | 九九国产精品视频 | 特级西西444www大精品视频免费看 | 久久人人爽人人爽人人片 | 日本在线观看中文字幕无线观看 | 国产精成人品免费观看 | 最近中文字幕国语免费高清6 | 日韩三级视频在线看 | 亚洲综合视频在线播放 | 91九色老| 国产福利免费看 | 欧美日本不卡高清 | 久久久久久久久免费视频 | 国产精品电影一区二区 | 五月天婷婷在线播放 | 天堂网中文在线 | 九九九九精品九九九九 | 一级黄色片在线播放 | 热久久免费国产视频 | 国产视| 五月天综合激情网 | 国产精品毛片 | 久久一区二区免费视频 | 午夜视频欧美 | 成人午夜电影久久影院 | 日日草视频| 国产特黄色片 | 在线观看网站黄 | 97综合视频 | 免费下载高清毛片 | 亚洲免费在线观看视频 | 美女网站视频免费黄 | 天堂在线视频免费观看 | 成人av在线直播 | 久久久国产毛片 | 丁香六月婷 | 国产不卡在线观看 | 99爱爱 | 91成人在线网站 | 日韩黄色在线电影 | 国产精品99久久99久久久二8 | 一级全黄毛片 | 欧美成人亚洲 | 操高跟美女 | 亚洲桃花综合 | 美女一区网站 | 成+人+色综合 | 亚洲精品美女免费 | 日韩理论在线视频 | 草在线视频 | 成人国产电影在线观看 | 国产高清不卡av | 欧美日韩精品区 | 激情综合五月天 | 99久久婷婷国产精品综合 | 高清一区二区三区 | 黄色三级免费 | 4438全国亚洲精品观看视频 | 99国产一区二区三精品乱码 | 在线视频观看亚洲 | a午夜电影| 国产精品高 | 午夜视频免费播放 | 五月天激情视频在线观看 | 久久国产欧美日韩 | 久久久黄视频 | 丁香高清视频在线看看 |