有没有人试图在TUD-brussel数据集(从本网站引入)上训练HOG-liner svm行人探测器:
我尝试通过visual studio 2012在opencv上实现它。我根据他们的注释从原始正图像中裁剪出正样本(总共约1777个样本)。从原始负片图像中随机裁剪负样本,每个图像20个样本(总共约3840个样本)。
我还调整了两轮引导(检查hardexamples和重新训练)以改善其性能。然而,这个检测器在TUD-brussel上的测试结果很糟糕,当FPPG(每个图像的假阳性)等于1时,大约97%的未命中率。我发现另一篇论文在用HOG训练TUD-brussel时取得了合理的结果(在图3(a)): https://www1.ethz.ch/igp/photogrammetry/publications/pdf_folder/walk10cvpr.pdf。
有人对在TUD-brussel上训练HOG +线性SVM有任何想法吗?
答案 0 :(得分:0)
我最近不得不面对类似的情况。我使用pycharm在python中开发了一个带有hog和线性svm的图像分类器。我面临的问题是需要花费大量的时间进行训练。
<强>解决方案:强> 简单的我将每个图像的大小调整为250 * 250.在我的情况下确实增加了性能
将标签附加到培训标签
for file in listing1:
img = cv2.imread(path1 + file)
res=cv2.resize(img,(250,250))
gray_image = cv2.cvtColor(res, cv2.COLOR_BGR2GRAY)
xarr=np.squeeze(np.array(gray_image).astype(np.float32))
m,v=cv2.PCACompute(xarr)
arr= np.array(v)
flat_arr= arr.ravel()
training_set.append(flat_arr)
training_labels.append(1)
现在培训
trainData=np.float32(training_set)
responses=np.float32(training_labels)
svm = cv2.SVM()
svm.train(trainData,responses, params=svm_params)
svm.save('svm_data.dat')