日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

【OpenCV入门指南】第十三篇 人脸检测

發布時間:2025/5/22 pytorch 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【OpenCV入门指南】第十三篇 人脸检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文出處:http://blog.csdn.net/MoreWindows/article/details/8426318#t2

??? 本篇介紹圖像處理與模式識別中最熱門的一個領域——人臉檢測(人臉識別)。人臉檢測可以說是學術界的寵兒,在不少EISCI高級別論文都能看到它的身影。甚至很多高校學生的畢業設計都會涉及到人臉檢測。當然人臉檢測的巨大實用價值也讓很多公司紛紛關注,很多公司都擁有這方面的專利或是開發商業產品出售。

????OpenCV中,人臉檢測也是其熱門應用之一。在OpenCV特征檢測專題就詳細介紹了人臉檢測的原理——通過Haar特征來識別是否為人臉。Haar特征檢測原理與Haar特征分類器的訓練放到下一篇《【OpenCV入門指南】第十四篇? Haartraining》來講,本篇主要介紹如何在OpenCV中使用Haar特征分類器來對圖像中的人臉進行檢測和識別。下面將分成五步來詳細示范如何在OpenCV中進行人臉識別:

??? 一.人臉的Haar特征分類器是什么

??? 二.在哪找人臉的Haar特征分類器

??? 三.怎么用人臉的Haar特征分類器

??? 四.人臉識別示例代碼

??? 五.人臉識別程序運行結果

?

一.人臉的Haar特征分類器是什么

人臉的Haar特征分類器就是一個XML文件,該文件中會描述人臉的Haar特征值。當然Haar特征的用途可不止可以用來描述人臉這一種,用來描述眼睛,嘴唇或是其它物體也是可以的。

?

二.在哪找人臉的Haar特征分類器

OpenCV有已經自帶了人臉的Haar特征分類器。OpenCV安裝目錄中的\data\ haarcascades目錄下的haarcascade_frontalface_alt.xmlhaarcascade_frontalface_alt2.xml都是用來檢測人臉的Haar分類器。這個haarcascades目錄下還有人的全身,眼睛,嘴唇的Haar分類器。讀者可以仿照本方的例子來試驗下效果看看。

?

三.怎么用人臉的Haar特征分類器

使用人臉的Haar特征分類器非常之簡單,直接使用cvHaarDetectObjects。下面來看看這個函數的介紹:

函數功能:檢測圖像中的目錄

函數原型:

CVAPI(CvSeq*)?cvHaarDetectObjects(

? const?CvArr*?image,

? CvHaarClassifierCascade*?cascade,

? CvMemStorage*?storage,

? double?scale_factor?CV_DEFAULT(1.1),

? int?min_neighbors?CV_DEFAULT(3),

? int?flags?CV_DEFAULT(0),

? CvSize?min_size?CV_DEFAULT(cvSize(0,0)),

? CvSize?max_size?CV_DEFAULT(cvSize(0,0))

);

函數說明:

第一個參數表示輸入圖像,盡量使用灰度圖以加快檢測速度。

第二個參數表示Haar特征分類器,可以用cvLoad()函數來從磁盤中加載xml文件作為Haar特征分類器。

第三個參數為CvMemStorage類型,大家應該很熟悉這個CvMemStorage類型了,《OpenCV入門指南》中很多文章都介紹過了。

第四個參數表示在前后兩次相繼的掃描中,搜索窗口的比例系數。默認為1.1即每次搜索窗口依次擴大10%

第五個參數表示構成檢測目標的相鄰矩形的最小個數(默認為3)。如果組成檢測目標的小矩形的個數和小于?min_neighbors - 1?都會被排除。如果min_neighbors??0,?則函數不做任何操作就返回所有的被檢候選矩形框,這種設定值一般用在用戶自定義對檢測結果的組合程序上。

第六個參數要么使用默認值,要么使用CV_HAAR_DO_CANNY_PRUNING,如果設置為CV_HAAR_DO_CANNY_PRUNING,那么函數將會使用Canny邊緣檢測來排除邊緣過多或過少的區域,因此這些區域通常不會是人臉所在區域。

第七個,第八個參數表示檢測窗口的最小值和最大值,一般設置為默認即可。

函數返回值:

函數將返回CvSeq對象,該對象包含一系列CvRect表示檢測到的人臉矩形。

?

四.人臉識別示例代碼

下面給出一個完整的示例代碼,代碼中的GetTickCount可以參閱《Windows?各種計時函數總結》,cvEqualizeHist可以參閱《OpenCV入門指南】第八篇灰度直方圖》。

[cpp]?view plaincopy
  • <pre?class="cpp"?name="code">//?編譯前請配置好VS2008的編譯環境??
  • //?詳見《【OpenCV入門指南】第一篇?安裝OpenCV》??
  • //?地址:?http://blog.csdn.net/morewindows/article/details/8225783??
  • ??
  • //?本文配套博客文章地址:??
  • //?http://blog.csdn.net/morewindows/article/details/8426318??
  • ??
  • //?Haar特征檢測?-?人臉識別??
  • //By?MoreWindows?(http://blog.csdn.net/MoreWindows)??
  • #include?<opencv2/opencv.hpp>??
  • #include?<cstdio>??
  • #include?<cstdlib>??
  • #include?<Windows.h>??
  • using?namespace?std;??
  • int?main()??
  • {??
  • ????//?加載Haar特征檢測分類器??
  • ????//?haarcascade_frontalface_alt.xml系OpenCV自帶的分類器?下面是我機器上的文件路徑??
  • ????const?char?*pstrCascadeFileName?=?"G:\\OpenCV\\opencv\\data\\haarcascades\\haarcascade_frontalface_alt.xml";??
  • ????CvHaarClassifierCascade?*pHaarCascade?=?NULL;??
  • ????pHaarCascade?=?(CvHaarClassifierCascade*)cvLoad(pstrCascadeFileName);??
  • ??
  • ????//?載入圖像??
  • ????const?char?*pstrImageName?=?"101.jpg";??
  • ????IplImage?*pSrcImage?=?cvLoadImage(pstrImageName,?CV_LOAD_IMAGE_UNCHANGED);??
  • ??????
  • ????IplImage?*pGrayImage?=?cvCreateImage(cvGetSize(pSrcImage),?IPL_DEPTH_8U,?1);??
  • ????cvCvtColor(pSrcImage,?pGrayImage,?CV_BGR2GRAY);??
  • ??
  • ????//?人臉識別與標記??
  • ????if?(pHaarCascade?!=?NULL)??
  • ????{?????????
  • ????????CvScalar?FaceCirclecolors[]?=???
  • ????????{??
  • ????????????{{0,?0,?255}},??
  • ????????????{{0,?128,?255}},??
  • ????????????{{0,?255,?255}},??
  • ????????????{{0,?255,?0}},??
  • ????????????{{255,?128,?0}},??
  • ????????????{{255,?255,?0}},??
  • ????????????{{255,?0,?0}},??
  • ????????????{{255,?0,?255}}??
  • ????????};??
  • ??
  • ????????CvMemStorage?*pcvMStorage?=?cvCreateMemStorage(0);??
  • ????????cvClearMemStorage(pcvMStorage);??
  • ????????//?識別??
  • ????????DWORD?dwTimeBegin,?dwTimeEnd;??
  • ????????dwTimeBegin?=?GetTickCount();??
  • ????????CvSeq?*pcvSeqFaces?=?cvHaarDetectObjects(pGrayImage,?pHaarCascade,?pcvMStorage);??
  • ????????dwTimeEnd?=?GetTickCount();??
  • ??
  • ????????printf("人臉個數:?%d???識別用時:?%d?ms\n",?pcvSeqFaces->total,?dwTimeEnd?-?dwTimeBegin);??
  • ??????????
  • ????????//?標記??
  • ????????for(int?i?=?0;?i?<pcvSeqFaces->total;?i++)??
  • ????????{??
  • ????????????CvRect*?r?=?(CvRect*)cvGetSeqElem(pcvSeqFaces,?i);??
  • ????????????CvPoint?center;??
  • ????????????int?radius;??
  • ????????????center.x?=?cvRound((r->x?+?r->width?*?0.5));??
  • ????????????center.y?=?cvRound((r->y?+?r->height?*?0.5));??
  • ????????????radius?=?cvRound((r->width?+?r->height)?*?0.25);??
  • ????????????cvCircle(pSrcImage,?center,?radius,?FaceCirclecolors[i?%?8],?2);??
  • ????????}??
  • ????????cvReleaseMemStorage(&pcvMStorage);??
  • ????}??
  • ??????
  • ????const?char?*pstrWindowsTitle?=?"人臉識別?(http://blog.csdn.net/MoreWindows)";??
  • ????cvNamedWindow(pstrWindowsTitle,?CV_WINDOW_AUTOSIZE);??
  • ????cvShowImage(pstrWindowsTitle,?pSrcImage);??
  • ??
  • ????cvWaitKey(0);??
  • ??
  • ????cvDestroyWindow(pstrWindowsTitle);??
  • ????cvReleaseImage(&pSrcImage);???
  • ????cvReleaseImage(&pGrayImage);??
  • ????return?0;??
  • }</pre><br>??
  • 五.人臉識別程序運行結果

    運行結果一(單人正面):

    這張圖的干擾太少,換張干擾大點的圖來試試。

    ?

    運行結果二(單人側面):

    呵呵,左邊那個人眼睛被擋住了,因此普通的人臉檢測肯定難以識別的。

    ?

    運行結果三(多人):

    效果還不錯。當然商業級產品的準確度,性能,效率肯定會比OpenCV自帶的分類器高的多。

    ?

    下一篇《【OpenCV入門指南】第十四篇? Haartraining》將介紹如何訓練Haar特征分類器并簡要介紹Haar特征檢測的原理。歡迎繼續瀏覽。

    總結

    以上是生活随笔為你收集整理的【OpenCV入门指南】第十三篇 人脸检测的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美gv在线| 国产精品三级在线 | 一区亚洲 | 欧美精品18 | 国产精品久久999 | 国产精品aⅴ | 欧美激情性生活 | 男女黄色又爽大片 | 麻豆成人在线观看 | 麻豆视频在线看 | 亚洲天堂爱爱 | 亚洲一区二区三区四区在线观看 | 国产精品igao | 成人黄色一级 | 特黄特色免费视频 | 在线成人观看 | 亚洲区av | 日韩av自拍偷拍 | 黄瓜视频在线观看污 | 99精品视频99 | 久久激情久久 | 中文字幕一区二区三区乱码 | 无码人妻精品一区二区三区99不卡 | 欧洲亚洲天堂 | 国产suv精品一区二区69 | 国产91精品一区二区麻豆亚洲 | 久久对白 | 亚洲乱码国产乱码精品精软件 | 免费观看高清在线 | 亚洲夜夜爱 | 国产午夜精品久久 | 亚洲欧洲国产视频 | 操极品少妇 | 97视频免费看 | 日韩五月天 | 影音先锋中文字幕人妻 | 黄色片链接| 免费看国产曰批40分钟粉红裤头 | 激情亚洲网| 国产免费观看久久黄av片 | 伊人网在线免费观看 | 91美女在线 | 久久久久久中文 | 一级黄色美女 | 日韩精品在线观看免费 | 麻豆蜜桃在线观看 | 拔擦8x成人一区二区三区 | 欧美成人精品 | 97se.com| 欧美双性人妖o0 | 欧美九九| 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 亚洲精选一区 | 日本久久久久久久久 | 艳妇乳肉豪妇荡乳av无码福利 | 涩涩视频在线观看免费 | 天天操狠狠干 | 成人午夜免费网站 | 久久久久久黄色 | 豆花在线视频 | 国产99视频在线 | 无码人妻熟妇av又粗又大 | 日本免费小视频 | 99热99热 | 久草视频资源 | www夜片内射视频日韩精品成人 | 欧美在线视频你懂的 | 欧美区视频| 特级毛片网站 | 中日韩中文字幕 | 久久久999 | 午夜综合网 | 成人涩涩| 国产精品一卡二卡在线观看 | 老熟妇仑乱一区二区视频 | 亚洲av综合永久无码精品天堂 | 一级特级黄色片 | 国产精品.www| 狠狠爱综合 | 免费日b视频 | 精品人妻在线视频 | 91艹| 欧美日韩亚洲一区二区 | 精品综合久久久 | 国产视频精品视频 | 精品欧美一区二区精品久久 | 免费se99se| 国产精品麻豆一区二区三区 | 99热中文| 日韩久久一区二区 | 亚洲经典一区二区三区四区 | 久久国产精品国语对白 | 制服丝袜先锋 | aa视频网站| 亚洲免费片| 日本高清www| 日韩视频精品在线 | 国产情侣一区二区 | 乌克兰黄色片 |