我正在编写人脸识别程序。因此,我的目标是在某尺寸的图像上找到人脸。目前,我已经实现了HOG算法和SVM分类器。对于提供的图像,我可以判断它是否是人脸,但仅限于固定尺寸且人脸位于图像中央的图像。那么,如何找到比SVM训练的尺寸更大或更小的人脸,或者在图像上的未知位置上的人脸呢?
回答:
您需要的是“多尺度检测”。
基本思想是在图像的不同尺度上运行您的检测器。因此,您需要创建图像的金字塔,并在图像的每个层次上使用图像扫描运行您的检测器。
如果图像中的对象比您训练的分类器大,那么在您将图像作为金字塔的一部分进行降采样后,对象的尺寸将变小,当您在较低尺度上运行检测器时,您将找到该对象。
对于比您的原始分类器小的对象,您需要:上采样图像并运行检测器,或者在您期望检测到的最小尺寸上训练您的分类器。
请查看https://www.mpi-inf.mpg.de/fileadmin/inf/d2/HLCV/cv-ss13-0605-sliding-window.pdf以获取一些基本的解释。
此外,您还可以尝试使用OpenCV内置的多尺度检测。OpenCV HOG多尺度检测器