【发布时间】:2017-12-15 17:09:50
【问题描述】:
我正在尝试通过在 OpenCV 上使用 HOG+SVM 方法来训练自定义对象检测器。
我已经成功地使用下面的代码行从我的正样本和负样本中提取了 HOG 特征:
import cv2
hog = cv2.HOGDescriptor()
def poshoggify():
for i in range(1,20):
image = cv2.imread("/Users/munirmalik/cvprojek/cod/pos/" + str(i)+ ".jpg")
(winW, winH) = (500, 500)
for resized in pyramid(image, scale=1.5):
# loop over the sliding window for each layer of the pyramid
for (x, y, window) in sliding_window(resized, stepSize=32, windowSize=(winW, winH)):
# if the window does not meet our desired window size, ignore it
if window.shape[0] != winH or window.shape[1] != winW:
continue
img_pos = hog.compute(image)
np.savetxt('posdata.txt',img_pos)
return img_pos
以及负样本的等效函数。
如何格式化数据,让 SVM 知道哪个是正的,哪个是负的?
此外,我如何将这种训练转化为通过网络摄像头检测所需对象的“测试”?
【问题讨论】:
-
您想使用哪个库/功能进行 svm 训练? Afaik 通常为每个类添加 1 或 0 或 -1 或任何其他数字
-
@Micka 我很擅长 sklearn 的 svm 或 opencv 中内置的 SVM 函数。我不太清楚你所说的每个班级的人数是什么意思。
标签: python-2.7 opencv svm