|
|
@@ -0,0 +1,97 @@ |
|
|
|
#coding=utf-8 |
|
|
|
import os |
|
|
|
import numpy as np |
|
|
|
import cv2 |
|
|
|
import json |
|
|
|
from hyperlpr import pipline as pp |
|
|
|
import sys |
|
|
|
from Levenshtein import StringMatcher as sm |
|
|
|
|
|
|
|
reload(sys) |
|
|
|
sys.setdefaultencoding("utf-8") |
|
|
|
# parent= "/Users/yujinke/车牌图片/云南车牌" |
|
|
|
parent= "/Users/yujinke/车牌图片/收费站_完成标注" |
|
|
|
|
|
|
|
# parent= "./cache/bad2" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def comparestring(a,b): |
|
|
|
g = 0 |
|
|
|
if len(a) == len(b): |
|
|
|
for x,y in zip(a,b): |
|
|
|
if x!=y: |
|
|
|
g+=1 |
|
|
|
return g |
|
|
|
|
|
|
|
|
|
|
|
count = 0 ; |
|
|
|
|
|
|
|
count_p = 0 |
|
|
|
count_d = 0 |
|
|
|
count_lev = 0 |
|
|
|
count_undetected = 0 |
|
|
|
|
|
|
|
roi = [470,400,650,580] |
|
|
|
|
|
|
|
for filename in os.listdir(parent): |
|
|
|
|
|
|
|
path = os.path.join(parent,filename) |
|
|
|
print path |
|
|
|
|
|
|
|
if path.endswith(".jpg") or path.endswith(".png"): |
|
|
|
ics,name = os.path.split(path) |
|
|
|
|
|
|
|
|
|
|
|
name,ext = name.split(".") |
|
|
|
|
|
|
|
image = cv2.imread(path) |
|
|
|
image = image[roi[1]:roi[1]+roi[3],roi[0]:roi[0]+roi[2]] |
|
|
|
# cv2.imshow("test",image) |
|
|
|
# cv2.waitKey(0) |
|
|
|
info,dataset = pp.SimpleRecognizePlate(image) |
|
|
|
ext = ext.strip() |
|
|
|
name = name.strip() |
|
|
|
|
|
|
|
if len(dataset)==0: |
|
|
|
count_undetected +=1 |
|
|
|
|
|
|
|
# cv2.imwrite("./cache/bad2/" + name + ".png", image) |
|
|
|
|
|
|
|
for one in dataset: |
|
|
|
|
|
|
|
# p = sm.StringMatcher(seq1=one.encode("utf-8"),seq2=name.encode("utf-8")) |
|
|
|
A = one.encode("utf-8") |
|
|
|
B = name.encode("utf-8") |
|
|
|
print one.encode("utf-8"),"<->",name.encode("utf-8"),"编辑距离:",comparestring(A,B) |
|
|
|
if comparestring(A,B)<2: |
|
|
|
count_lev+=1 |
|
|
|
if one.encode("utf-8") == name.encode("utf-8"): |
|
|
|
count_p+=1 |
|
|
|
break |
|
|
|
else: |
|
|
|
print "error",one.encode("utf-8"), name.encode("utf-8") |
|
|
|
count_d+=1 |
|
|
|
# cv2.imshow("image",image) |
|
|
|
# cv2.waitKey(0) |
|
|
|
cv2.imwrite("./cache/bad2/"+name+".png",image) |
|
|
|
break |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
count+=1 |
|
|
|
print count_p / float(count),"编辑距离[1]:",count_lev/float(count),u"识出",count_p,u"总数",count,u"未识出",count_d,u"未检测出",count_undetected |
|
|
|
|
|
|
|
if count_p+count_d+count_undetected!=count: |
|
|
|
print dataset,len(dataset) |
|
|
|
exit(0) |
|
|
|
|
|
|
|
|
|
|
|
# |
|
|
|
# cv2.imshow("image",image) |
|
|
|
# cv2.waitKey(0) |
|
|
|
|
|
|
|
# print count_p/float(count) |