首先,我在OpenCV库中尝试了默认的人物检测器。
HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
hog.detectMultiScale(img, found, 0, Size(8,8), Size(0,0), 1.05, 2);
虽然它在带有网络摄像头的室内环境中返回正匹配,但它们非常罕见。因此,我使用INRIA数据集的负面和正面图像训练描述符,但这次误报太多了。我不是试图将假匹配降低到零,将它们降低到合理的水平就足够了。我该怎么办?
另一个问题是我认为我的样本视频中的人太远而不能像人类图像那样容易区分。我试过减小细胞大小,但不确定这是正确的方法。可以做些什么呢?
图片会对你有所帮助,但由于声誉我无法发布。
由于
答案 0 :(得分:0)
检查opencv [doc]:http://docs.opencv.org/modules/gpu/doc/object_detection.html#gpu-hogdescriptor-detectmultiscale您似乎没有正确使用该界面。
您是否对经过训练的SVM进行了评估并发现了检测率不佳的情况?如果是,您需要使用训练参数或输入数据。据我所知,INRIA集包括人和非人的图像,但只有正确定义的正片。当我训练一个生猪分类器时,阴性样本的选择会产生很大的影响。哦,你是否使用了助推器? IIRC的推动在原始论文中提供了巨大的性能提升。