欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

20行python代碼實(shí)現(xiàn)人臉識(shí)別

 更新時(shí)間:2019年05月05日 11:18:56   作者:Python編程爬蟲(chóng)工程師  
這篇文章主要介紹了python人臉識(shí)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

OpenCV 是最流行的計(jì)算機(jī)視覺(jué)庫(kù),原本用 C 和 C++ 開(kāi)發(fā),現(xiàn)在也支持 Python。

它使用機(jī)器學(xué)習(xí)算法在圖像中搜索人的面部。對(duì)于人臉這么復(fù)雜的東西,并沒(méi)有一個(gè)簡(jiǎn)單的檢測(cè)能對(duì)是否存在人臉下結(jié)論,而需要成千上萬(wàn)的特征匹配。算法把人臉識(shí)別任務(wù)分解成數(shù)千個(gè)小任務(wù),每個(gè)都不難處理。這些任務(wù)也被稱(chēng)為分類(lèi)器。

對(duì)于類(lèi)似于人臉的對(duì)象,你或許需要不少于 6000 個(gè)分類(lèi)器,每一個(gè)都需要成功匹配(當(dāng)然,有容錯(cuò)率),才能檢測(cè)出人臉。但這有一個(gè)問(wèn)題:對(duì)于人臉識(shí)別,算法從左上角開(kāi)始計(jì)算一個(gè)個(gè)數(shù)據(jù)塊,不停問(wèn)“這是張臉嗎”。每個(gè)數(shù)據(jù)塊有超過(guò) 6000 個(gè)檢測(cè),加起來(lái)的計(jì)算量會(huì)達(dá)到數(shù)百萬(wàn)級(jí)別,計(jì)算機(jī)很可能會(huì)讓你等得花兒都謝了。

OpenCV 使用 cascades 來(lái)避免這種情況。Cascade 是什么?最佳答案已經(jīng)在字典里了:一條瀑布或者連續(xù)瀑布。

好比連續(xù)瀑布,OpenCV cascade 把人臉檢測(cè)問(wèn)題分解為好幾步。對(duì)于每個(gè)數(shù)據(jù)塊,它都進(jìn)行一個(gè)粗略、快速的檢測(cè)。若通過(guò),會(huì)再進(jìn)行一個(gè)更仔細(xì)的檢測(cè),以此不斷類(lèi)推。該算法有 30 到 50 個(gè)這樣的階段,或者說(shuō) cascade。

只有通過(guò)全部階段,算法才會(huì)判斷檢測(cè)到人臉。這樣做的好處是:大多數(shù)圖形都會(huì)在頭幾步就產(chǎn)生否定反饋,算法因而不需要在它上面測(cè)試所有 6000 個(gè)特征,大大節(jié)省了時(shí)間。相對(duì)于“正常流程”耗費(fèi)數(shù)個(gè)小時(shí),這可以實(shí)時(shí)實(shí)現(xiàn)人臉檢測(cè)。

軟件環(huán)境:

python3+openCV

代碼:

#encoding:utf-8
import cv2
filename = "/users/Downloads/20181102142518.png"
def detect(filename):
 # haarcascade_frontalface_default.xml存儲(chǔ)在package安裝的位置
face_cascade = cv2.CascadeClassifier("/usr/local/lib/python3.6/site-packages/cv2/data/haarcascade_frontalface_default.xml")
 img = cv2.imread(filename)
 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
 #傳遞參數(shù)是scaleFactor和minNeighbors,分別表示人臉檢測(cè)過(guò)程中每次迭代時(shí)圖像的壓縮率以及每個(gè)人臉矩形保留近鄰數(shù)目的最小值
 #檢測(cè)結(jié)果返回人臉矩形數(shù)組
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
 for (x, y, w, h) in faces:
 img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
 cv2.namedWindow("Human Face Result!")
 cv2.imshow("Human Face Result!", img)
 cv2.imwrite("images/Face.jpg", img)
 cv2.waitKey(0)
 cv2.destroyAllWindows()
detect(filename)

識(shí)別后:

以上所述是小編給大家介紹的python人臉識(shí)別詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論