我正在尝试使用提供的xml文件haarcascade_frontalface_alt和hogcascade_pedestrians.xml来检测人脸和行人。到目前为止,我可以得到一些检测,但是行人检测相当差,人脸检测一般。我在iphone上用640x480或480x640的图像做这件事。我也可以让图像变大,但是处理速度会更快。此外,我可能会将处理转移到服务器上,但是问题仍然是一样的。到目前为止,我这样做是为了得到结果。
Faces:下面的第一个甚至不起作用。它不能编译。
faceDetector.detectMultiScale(matgrey, faces, 1, 1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(30,30));所以我求助于下面的函数调用。
faceDetector.detectMultiScale(matgrey, faces);行人:
hog.detectMultiScale(rgbMat, found, 0, cv::Size(8,8), cv::Size(32,32), 1.05, 2);我真的很想提高结果的质量。我很好奇,改变参数是否会提高结果。我想要最优的结果,所以处理时间不是一个大问题。
谢谢,任何反馈都会很棒。
发布于 2014-04-30 11:40:35
对于人脸检测,您不能将第三个参数(即scaleFactor -指定在每个图像比例下图像大小缩小多少的参数)设置为1,您将失去多尺度方式搜索人脸的能力,因为它将无法重新调整大小。尝试将其更改为1.05 (即默认值)或其他。
要获得更好的人脸检测,请查看this thread,了解CascadeClassifier::detectMultiScale()参数的推荐值。
对于行人检测,为了提高其质量,应该尝试修改HOGDescriptor::detectMultiScale()的第三个参数(即hit_threshold)和最后一个参数(即group_threshold)。
特别是,为了获得更好的行人检测结果,您应该将它们都调高:
以支持向量机作为特征间距离的阈值,并利用支持向量机的plane.
group_threshold:系数来调整相似度阈值。当检测到某些对象时,可能会被许多矩形覆盖。阈值在一组矩形中使用,以保留它。https://stackoverflow.com/questions/23374685
复制相似问题