1

我正在尝试将视频分割成前景和背景。假设我的视频主要包含人脸,我从人脸检测器开始,并使用人脸检测器内的所有像素作为 GrabCut 的可能前景种子。

问题是有时(在几帧中),人脸检测器不会检测到人脸,尽管人脸肯定存在。特别是当用户从屏幕上移开视线并且可以看到脸部的侧面轮廓时。

有针对这个的解决方法吗?

我想到的一个明显的答案是使用侧面轮廓 Haar 分类器,但是我如何融合它们呢?从某种意义上说,在任何时候我都应该拥有脸部的正面轮廓或侧面轮廓(或根本没有)。

我想知道检测到的人脸是否有任何相关的置信度值,因此我可以使用来自级联的检测来提供更自信的检测。

4

1 回答 1

0

CascadeClassifier::detectMultiScale() 有一个(未记录的)重载:

virtual void detectMultiScale( InputArray image,
                               CV_OUT std::vector<Rect>& objects,
                               CV_OUT std::vector<int>& rejectLevels,
                               CV_OUT std::vector<double>& levelWeights,
                               double scaleFactor,
                               int minNeighbors, int flags,
                               Size minSize, Size maxSize,
                               bool outputRejectLevels ) = 0;

rejectLevels 应该是您正在寻找的置信度值

于 2014-07-08T12:05:23.207 回答