當前位置:編程學習大全網 - 源碼下載 - 怎樣使用 OpenCV 進行人臉識別

怎樣使用 OpenCV 進行人臉識別

1、首先就是數據的準備,妳要從網絡上下載壹些人臉庫,後面用來訓練人臉識別模型。人臉檢測模型opencv是自帶的,但是識別模型需要自己訓練。下載人臉庫之後需要對人臉進行標記,這是壹個繁瑣的工作,不過網上有腳本或者自己寫個程序簡化工作量。

2、把數據標記好之後就是opencv的事情。訓練的函數非常簡單。只有下面這三句:

Ptr<FaceRecognizer> model = createEigenFaceRecognizer();

model->train(images, labels);

model->save("MyFacePCAModel.xml");

3、然後打開攝像頭進行人臉檢測,就是框出人臉的位置。人臉檢測模型是opencv自帶的。

CascadeClassifier cascade;

cascade.load("haarcascade_frontalface_alt.xml");

這是加載的方法。

cascade.detectMultiScale(gray, faces,

1.1, 2, 0

//|CV_HAAR_FIND_BIGGEST_OBJECT

//|CV_HAAR_DO_ROUGH_SEARCH

| CV_HAAR_SCALE_IMAGE,

Size(30, 30));

這是檢測的方法。這裏檢測得到的就是壹個壹個的人臉的矩形框,然後用畫矩形的方法把它們畫出來就行了。

4、然後就是對檢測到的人臉進行識別了,用我們剛才訓練好的人臉模型。加載:

Ptr<FaceRecognizer> modelPCA = createEigenFaceRecognizer();

modelPCA->load("MyFacePCAModel.xml");

檢測:

int predictPCA = 0;

if (face.rows >= 120)

{

resize(face, face_test, Size(92, 112));

}

if (!face_test.empty())

{

predictPCA = modelPCA->predict(face_test);

}

如果預測結果等於標記結果,說明識別正確。

大致流程就這樣了,如果妳對opencv有了壹定的了解,應該能看懂了。

  • 上一篇:大連疫情擴散中有哪些人被調查?
  • 下一篇:誰能給我Copy壹份白鹿原最後那部分沒容麽 我現在想看可是不方便
  • copyright 2024編程學習大全網