java中的opencv face-detection:概念步骤

时间:2013-05-27 13:31:21

标签: java xml image opencv adaboost

我正在通过使用opencv的网络摄像头进行面部检测项目 在这种方法(viola-jones)中,检测图像中的对象结合了四个关键概念:

1 - 简单的矩形特征称为haar特征(我可以在haarcascade_frontalface_alt.xml文件中找到这个)。

2-用于强奸特征检测的整数图像。

3- AdaBoost机器学习方法。

4-A级联分类器,可有效组合多种功能。

我的问题是:

-does haarcascade_frontalface_alt.xml包含级联分类器还有haar功能?

- 我可以在我的项目中添加积分图像和AdaBoost以及如何使用它?或者它是否已经自动完成?

1 个答案:

答案 0 :(得分:3)

看来,你已经阅读了很多论文并思考了一些想法,但没有找到opencv implementation;)

使用它实际上非常简单:

// setup a  cascade classifier:
CascadeClassifier cascade;

// load a pretrained cascadefile(and PLEASE CHECK!):
bool ok = cascade.load("haarcascade_frontalface_alt.xml");
if ( ! ok ) 
{
    ...
}


// later, search for stuff in your img:
Mat gray; // uchar grayscale!
vector<Rect> faces; // the result vec

cascade.detectMultiScale( gray, faces, 1.1, 3, 
    CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_ROUGH_SEARCH  ,
    cv::Size(20, 20) );

for ( size_t i=0; i<faces.size(); i++ )
{
// gray( faces[i] ); is the img portion that contains the detected object
}