最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python基于OpenCV庫Adaboost實現(xiàn)人臉識別功能詳解

 更新時間:2018年08月25日 11:17:00   作者:Kedi  
這篇文章主要介紹了Python基于OpenCV庫Adaboost實現(xiàn)人臉識別功能,結(jié)合實例形式分析了Python下載與安裝OpenCV庫及相關(guān)人臉識別操作實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Python基于OpenCV庫Adaboost實現(xiàn)人臉識別功能。分享給大家供大家參考,具體如下:

以前用Matlab寫神經(jīng)網(wǎng)絡(luò)的面部眼鏡識別算法,研究算法邏輯,采集大量訓(xùn)練數(shù)據(jù),迭代,計算各感知器的系數(shù)。。。相當(dāng)之麻煩~而現(xiàn)在運用調(diào)用pythonOpenCV庫Adaboost算法,無需知道算法邏輯,無需進(jìn)行模型訓(xùn)練,人臉識別變得相當(dāng)之簡單了。
需要用到的庫是opencv(open source computer vision),下載安裝方式如下:

使用pip install numpy語句安裝numpy

(如果出現(xiàn)錯誤:Microsoft Visual C++ 9.0 is required <unable to find vcvarsall.bat>,使用管理員身份安裝 Microsoft Visual C++ 9.0,重新啟動計算機(jī),再使用使用pip install numpy語句安裝numpy

opencv2.4.10下載

下載之后解壓(隨便解壓到哪里),將解壓目錄opencv文件夾中,build->python->2.7->x86下的文件cv2.pyd 復(fù)制到python2.7\Lib\site-packages

測試是否安裝成功,執(zhí)行解壓目錄下的sources\samples\python\drawing.py或者進(jìn)入python環(huán)境,使用import cv2

首先講講需要用到的新函數(shù):

CascadeClassifier()函數(shù),導(dǎo)入分類器

cv2.CascadeClassifier('xxxxx.xml')
#haarcascade_frontalface_alt.xml臉部識別文件
#haarcascade_eye.xml眼部識別文件

函數(shù)的參數(shù)是xml完整路徑(具體看你的opencv安裝在哪里的,在opencv\sources\data\haarcascades下面),xml文件中是封裝好的算法

detectMultiScale()函數(shù),進(jìn)行識別

detectMultiScale(image,scaleFactor,minNeighbors,flags,minSize,maxSize)

  • 最終返回值為識別出的矩陣框[x, y, w, h],(x,y)左上角起始坐標(biāo),w寬,h高
  • image:用于檢測的圖像
  • scaleFactor:前后兩次相繼的掃描中,搜索窗口的比例系數(shù).例如1.1指將搜索窗口依次擴(kuò)大10%。圖片小的時候,比例系數(shù)盡量小能提高準(zhǔn)確率
  • minNeighbors:構(gòu)成檢測目標(biāo)的相鄰矩形的最小個數(shù)。一般使用2or3,為0時返回所有的被檢候選矩形框。

rectangle()函數(shù),在圖片上畫矩陣

cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)

  • image是原始圖片
  • (x,y)是矩形左上角
  • (x+w,y+h)是矩形右下角
  • (0,255,0)是矩形的BGR顏色, 為紅色
  • 2, 是繪制矩形的線寬

程序邏輯:

導(dǎo)入Haar級聯(lián)分類器算法,讀入要處理圖片,將圖片變成時候的大小,用detectMultiScale()函數(shù)先識別出人臉,在原圖上框出,然后提取出識別出的人臉矩形框,在人臉矩形框內(nèi)識別出眼睛,在原圖上框出,展示出識別完的圖像。

完整程序及注解:

import cv2
face_cascade = cv2.CascadeClassifier('D:\opencv\sources\data\haarcascades/haarcascade_frontalface_alt.xml')
eye_cascade = cv2.CascadeClassifier('D:\opencv\sources\data\haarcascades/haarcascade_eye.xml')
img1 = cv2.imread('face1.png')
img = cv2.resize(img1,(240,320),interpolation=cv2.INTER_LINEAR)
faces = face_cascade.detectMultiScale(img,1.2,2)
for (x,y,w,h) in faces:
  cv2.rectangle(img,(x,y),(x+w,x+h),(255,0,0),2)#用顏色為BGR(255,0,0)粗度為2的線條在img畫出識別出的矩型
  face_re = img[y:y+h,x:x+w]#抽取出框出的臉部部分,注意順序y在前
  eyes = eye_cascade.detectMultiScale(face_re)#在框出的臉部部分識別眼睛
  for (ex,ey,ew,eh) in eyes:
    cv2.rectangle(face_re,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow('img',img)
key = cv2.waitKey(0)
if key==27:
  cv2.destoryWindow('img')

最后po個作者的照騙,展示一下最終的識別效果:


1--識別前


1——識別后


2——識別前


2——識別后

問題:

1.斜的臉識別率不高
2.大小不同的圖片識別率不同,所有最好把圖片處理成差不多大小的圖片
3.眼部有遮擋物時,眼睛識別率底,比如:有眼睛,有頭發(fā)

歡迎有能解決上面問題的朋友能夠交流一下~

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • 用Python實現(xiàn)斐波那契(Fibonacci)函數(shù)

    用Python實現(xiàn)斐波那契(Fibonacci)函數(shù)

    這篇文章主要介紹了用Python實現(xiàn)斐波那契(Fibonacci)函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Python?Black代碼格式化終極指南

    Python?Black代碼格式化終極指南

    Black是一款自動化的Python代碼格式化工具,旨在通過強(qiáng)制一致的代碼格式來提高代碼的可讀性和維護(hù)性,本文將深入探討B(tài)lack的使用方法、高級特性以及與其他格式化工具的比較,幫助你更好地理解并成功應(yīng)用Black在你的項目中
    2024-01-01
  • 手把手教你Python抓取數(shù)據(jù)并可視化

    手把手教你Python抓取數(shù)據(jù)并可視化

    很多小伙伴在提到python數(shù)據(jù)可視化的時候第一反應(yīng)就是matplotlib庫,但實際上python還有很多很好用的數(shù)據(jù)可視化的庫,下面這篇文章主要給大家介紹了關(guān)于如何利用Python抓取數(shù)據(jù)并可視化的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • python多線程調(diào)用exit無法退出的解決方法

    python多線程調(diào)用exit無法退出的解決方法

    今天小編就為大家分享一篇python多線程調(diào)用exit無法退出的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • python簡單驗證碼識別的實現(xiàn)過程

    python簡單驗證碼識別的實現(xiàn)過程

    很多網(wǎng)站登錄都需要輸入驗證碼,如果要實現(xiàn)自動登錄就不可避免的要識別驗證碼,這篇文章主要給大家介紹了關(guān)于python簡單驗證碼識別的實現(xiàn)過程,需要的朋友可以參考下
    2021-06-06
  • 利用Python函數(shù)實現(xiàn)一個萬歷表完整示例

    利用Python函數(shù)實現(xiàn)一個萬歷表完整示例

    這篇文章主要給大家介紹了關(guān)于如何利用Python函數(shù)實現(xiàn)一個萬歷表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Django ORM 常用字段與不常用字段匯總

    Django ORM 常用字段與不常用字段匯總

    這篇文章主要介紹了Django ORM 常用字段與不常用字段匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python?循環(huán)結(jié)構(gòu)詳解

    Python?循環(huán)結(jié)構(gòu)詳解

    這篇文章主要介紹了Python?循環(huán)結(jié)構(gòu),程序的循環(huán)結(jié)構(gòu)邏輯,循環(huán)就是按照一定的條件重復(fù)的去做一件事情,當(dāng)條件不成立時就結(jié)束循環(huán)的內(nèi)容,需要的小伙伴一起和小編一起進(jìn)入下面文章學(xué)習(xí)吧
    2022-02-02
  • 詳解如何用Flask中的Blueprints構(gòu)建大型Web應(yīng)用

    詳解如何用Flask中的Blueprints構(gòu)建大型Web應(yīng)用

    Blueprints是Flask中的一種模式,用于將應(yīng)用程序分解為可重用的模塊,這篇文章主要為大家詳細(xì)介紹了如何使用Blueprints構(gòu)建大型Web應(yīng)用,需要的可以參考下
    2024-03-03
  • python 音頻處理重采樣、音高提取的操作方法

    python 音頻處理重采樣、音高提取的操作方法

    這篇文章主要介紹了python 音頻處理重采樣、音高提取,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08

最新評論

嘉善县| 汽车| 正镶白旗| 五莲县| 民丰县| 镇赉县| 滕州市| 宜君县| 温泉县| 格尔木市| 横峰县| 永寿县| 河北区| 余姚市| 新兴县| 镇宁| 涡阳县| 东港市| 舟山市| 江永县| 卓资县| 井陉县| 米林县| 肥东县| 伊金霍洛旗| 广德县| 休宁县| 海原县| 嘉祥县| 静乐县| 石河子市| 晋中市| 馆陶县| 阳东县| 嘉义市| 宜都市| 涞源县| 迁安市| 阿拉尔市| 西乡县| 铁岭市|