-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.py
89 lines (76 loc) · 2.78 KB
/
test.py
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#coding:utf-8
import tensorflow as tf
from tensorflow import keras
from train import train
import numpy as np
import os
import sys
import matplotlib.pyplot as plt
from processPicture import gen_dataset
import time
Model_Path="/home/ly0kos/tensorflow/CPD/model/"
AUTOTUNE = tf.data.experimental.AUTOTUNE
write_path="/home/ly0kos/WD/tensorflow/CCPD2019/ccpd_test/"
index={
"A" : 0,"B" : 1,"C" : 2,"D" : 3,"E" : 4,"F" : 5,"G" : 6,"H" : 7,"J" : 8,"K" : 9,"L" : 10,"M" : 11,
"N" : 12,"P" : 13,"Q" : 14,"R" : 15,"S" : 16,"T" : 17,"U" : 18,"V" : 19,"W" : 20,"X": 21,
"Y" : 22,"Z" : 23,"0" : 24,"1" : 25,"2" : 26,"3" : 27,"4" : 28,"5" : 29,"6" : 30,"7" : 31,
"8" : 32,"9" : 33,
"皖": 34,"沪": 35,"津": 36,"渝": 37,"冀": 38,"晋": 39,"蒙": 40,"辽": 41,"吉": 42,"黑": 43,"苏": 44,"浙": 45,
"京": 46,"闽": 47,"赣": 48,"鲁": 49,"豫": 50,"鄂": 51,"湘": 52,"粤": 53,"桂": 54,"琼": 55,
"川": 56,"贵": 57,"云": 58,"西": 59,"陕": 60,"甘": 61,"青": 62,"宁": 63,"新": 64
}
try:
model=keras.models.load_model(Model_Path)
except :
print("load Model Error!\nTrying to train first!\n")
train()
model=keras.models.load_model(Model_Path)
def gen_image_dataset(path):
img_path=[]
for root,dirs,files in os.walk(path):
for name in files:
img_path.append(name)
img_set=[]
test=1
for i in img_path:
i=os.path.join(path,i)
image=cv2.imread(i)
image=cv2.resize(image,(64,64))
img_set.append(image)
img_set=np.asarray(img_set)
img_set=np.true_divide(img_set,255.0)
return img_set,img_path
def getKeysByValue(dictOfElements, valueToFind):
listOfKeys = str()
listOfItems = dictOfElements.items()
for item in listOfItems:
if item[1] == valueToFind:
listOfKeys=item[0]
return listOfKeys
#PlateData(5000,273,76,1)
start=time.clock()
count=1000
path_tmp="/home/ly0kos/WD/tensorflow/CCPD2019/ccpd_rotate/"
path=[]
path.append(path_tmp)
test_dataset,label_dataset=gen_dataset(path,count,2)
result=model.predict(test_dataset,verbose=1)
end=time.clock()
print("Run time = ",end-start)
result=np.asarray(result)
for i in range(0,10):
ran=np.random.randint(0,count)
predict_key=str()
for j in range(0,7):
key=np.where(result[j][ran]==np.amax(result[j][ran])) #result[charlocate][#plate]
key=np.asscalar(key[0])
key=getKeysByValue(index,key)
predict_key=predict_key+key
char=str()
for i in range(0,7):
char+=getKeysByValue(index,label_dataset[ran][i]) #decode filename
plt.imshow(test_dataset[ran][:,:,::-1])
plt.title(u'真实车牌号:'+char)
plt.xlabel(u'预测车牌号:'+predict_key)
plt.show()