我正在尝试将视频细分为前景和背景。假设我的视频主要是面部,我首先使用面部检测器并使用面部检测器内的所有像素作为GrabCut的可能前景种子。
问题在于,有时(在几帧中),面部检测器不会检测到面部,尽管面部肯定存在。特别是当用户远离屏幕并且可以看到面部的侧面轮廓时。
有解决方案吗?
我想到的一个明显的答案是使用侧面轮廓Haar分类器,但我如何融合它们?从某种意义上说,在任何时候我应该具有面部或侧面轮廓的正面轮廓(或者根本没有)。
我想知道检测到的面部是否存在任何类型的相关置信度值,因此我可以使用级联检测来提供更自信的检测。
答案 0 :(得分: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应该是您正在寻找的置信度值