OpenCV Python车牌号检测

时间:2016-04-01 14:06:33

标签: python opencv

我正在使用HoG进行车牌检测。我现在正处于测试阶段。当我使用

hog.detectmultiscale()

本地化号牌,我只得到一个矩形假阳性定位。此外,上述功能还为我测试的所有图像返回相同的点集。这些点总是我用于计算HoG特征的winstride的倍数。

以下是代码:

hog = cv2.HOGDescriptor((64,64), (16,16), (8,8), (8,8), 9)
svm = cv2.SVM()
svm.load('trained.xml')
img = cv2.imread('6.png', cv2.IMREAD_COLOR)
h = hog.compute(img) 
p = svm.predict(h)
print p

model = pickle.load(open("svm.pickle"))
hog.setSVMDetector(np.array(model)) 
rects, weights= hog.detectMultiScale(img, 1.5, (7,7),(10,10), 1,1)  

for (x, y, w, h) in rects:
   cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
   print x,y,w,h

cv2.imshow('plate', img)
cv2.waitKey(0) 
cv2.destroyAllWindows()

您能告诉我如何正确定位盘子吗?

以下是结果的快照:

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为Billal谈到的是正确的,特别是第一点。在您的情况下,HOG的检测器大小是64 * 64(hog = cv2.HOGDescriptor((64,64),(16,16),(8,8),(8,8),9))。它只能找到相同或接近长宽比的子图像。您应该在探测器和训练中更改窗口大小。适当的比例应为1:4(取决于您的图像)。我最近关注这个并且我使用了数千张图片,但似乎结果也不好,只有50%的成功率,也许你应该尝试其他描述符。

相关问题