0

車を検出するために、SIFT または SURF を使用して車のキーポイントをダンプし、これらのキーポイントをビデオと照合しようとしています。キーポイントは、Haar Cascades の代わりに使用する方が便利です。トレーニングには、たとえば 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()

その後、私が持っているビデオで生成したtxtファイルのこれらのキーポイントを一致させる方法がわかりません。ブルートフォースおよびKNNマッチャーとして多くの機能マッチングアルゴリズムがあり、SVM分類子としての分類子もあり、読みながら使用されます多くの論文で

この画像元の画像でキーポイントを抽出しようとしましキーポイントたが、txt ファイルに抽出されたキーポイントは、この [GitHub][3] リンクにあり、車を検出するために必要なコードとビデオが含まれています。

この車のキーポイントをビデオ ('traffic.avi') の車と一致させる方法を教えてください。

Bag of Visual Words メソッドを使用して車を検出したい、そうしようとしたが、コーディングの方法がわからない

注: OpenCV 3.1 と Python 2.7.x を使用しています。

4

0 に答える 0