我使用一个HOG描述符,再加上一个SVM分类器,来识别图片中的人类。我正在为OpenCV使用。我在pymagesearch上使用了出色的教程,它解释了算法的作用,并提供了如何设置detectMultiScale方法参数的提示。
特别是,我知道
# initialize the HOG descriptor
hog = cv2.HOGDescriptor()
# Set the support vector machine to be pre-trained for people detection
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
# Detect people in the image
(rects, weights) = hog.detectMultiScale(image,
winStride=(4, 4),
padding=(8, 8),
scale=1.05)参数的选择是根据微调的准确性和性能,在本教程本身的解释。
我的问题是,根据文献(最初的纸日期是2005年),这种方法似乎是目前识别图片中人类的最佳方法,在我的图像上表现得相当糟糕。我有包含衣服的图像,无论是模特还是没有衣服,我都在尝试用这种方法来识别那些与模特相关的衣服。在我手动扫描的300幅图像的子集上,该方法失败了30%,用于标记是否包含模型。
这些都是一些图像作为例子。
在这里它发现了一个失踪的人类:

在这里,它没有得到完整的人类:

在这里,它根本没有意识到这一点:

我知道探测器适用于直立的人类。他们也应该是完整的数字吗?我的照片包括半身像,没有头或没有脚的数字。
在此之前,我尝试了一种基于Haar特征的级联分类器来识别图像中的人脸,并且同一组图像的准确率已经达到90%,因此我试图在这方面进行改进。另外,我很想了解为什么这里的事情不起作用。
发布于 2015-12-25 12:16:45
您正在使用opencv提供给您的培训集,它与您使用的图像类型不一致。您使用的数据来自getDefaultPeopleDetector,默认检测器使用的图像是许多人的照片,而不是时尚电子商务中的女性模特。
如果你想区分模特和服装,你可以尝试用猪或其他特征来训练你自己的分类器。
你可以选择的另一条路是检测是否有一张脸。你可以用haar级联来做这个。
https://datascience.stackexchange.com/questions/9459
复制相似问题