问题:使用OpenCV+Python在视频中训练SIFT或SURF进行汽车检测

2024-05-17 14:45:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用SIFT或SURF来转储汽车的关键点,并将这些关键点与视频匹配,以便检测汽车。使用Keypoints比Haar级联更方便,因为我需要使用很多图像,例如5000来训练,这将需要大量的计算过程。SURF或SIFT的关键点是标度不变的,在每辆车上几乎都是一样的。在

将关键点转储到txt文件的代码是:

import cv2
import numpy as np
import os
import cPickle

surf = cv2.xfeatures2d.SURF_create()

descriptors = []

image = cv2.imread('1.jpg')
kp, dsc = surf.detectAndCompute(image, None)
img = cv2.drawKeypoints(image, kp, image)

descriptors.append(dsc)

des = np.array(descriptors)

k = 5
bow = cv2.BOWKMeansTrainer(k)
cluster = bow.cluster(des)
add = bow.add(dsc)

f = open("descriptors.pkl", "w")
f.write(cPickle.dumps(des))
f.close()

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

之后,我不知道如何匹配这些关键点在我生成的文本文件与我的视频,有许多特征匹配算法,如暴力和KNN匹配器,以及分类器作为支持向量机分类器,我将使用在许多论文阅读

我试着用这个图片original image来提取它的关键点keypoints,而在txt文件中提取的关键点就在这个[GitHub][3]链接中,里面有我需要检测汽车的代码和视频。在

你知道如何将这辆车的关键点与视频中的汽车匹配吗交通.avi'). 在

我想用视觉文字包的方法检测汽车,试过这么做,但不知道怎么做编码

注意:我使用的是opencv3.1和python2.7.x


Tags: 文件imageimporttxtimg视频cv2汽车