成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

Python-OpenCV進(jìn)行人臉識(shí)別

Pines_Cheng / 2838人閱讀

摘要:在之前的文章中,我們學(xué)習(xí)了使用數(shù)據(jù)集訓(xùn)練出一個(gè)識(shí)別器。現(xiàn)在,我們將使用這個(gè)訓(xùn)練好的文件去識(shí)別人臉了。我們把程序改成釋放資源記得釋放資源測(cè)試然后在測(cè)試階段,這個(gè)人工智障完美地識(shí)別不出我。

在之前的文章中,我們學(xué)習(xí)了使用數(shù)據(jù)集訓(xùn)練出一個(gè)識(shí)別器。本文中,我們將載入這個(gè)識(shí)別器,然后來(lái)看見(jiàn)怎么識(shí)別人臉。

如果看過(guò)之前的文章,你就已經(jīng)準(zhǔn)備好了一個(gè)識(shí)別器,它就在trainner文件夾和trainner.yml文件里面。

現(xiàn)在,我們將使用這個(gè)訓(xùn)練好的文件去識(shí)別人臉了。

導(dǎo)入
import cv2
import numpy as np
加載識(shí)別器

接下來(lái),我們用OpenCV庫(kù)以及我們訓(xùn)練好的數(shù)據(jù)(yml文件)創(chuàng)建一個(gè)識(shí)別器對(duì)象:

recognizer = cv2.face.LBPHFaceRecognizer_create()
# recognizer = cv2.createLBPHFaceRecognizer() # in OpenCV 2
recognizer.read("trainner/trainner.yml")
# recognizer.load("trainner/trainner.yml") # in OpenCV 2

然后用之前準(zhǔn)備好的xml創(chuàng)建一個(gè)分類(lèi)器:

cascade_path = "haarcascade_frontalface_default.xml"
face_cascade = cv2.CascadeClassifier(cascade_path)

獲取到攝像頭的控制對(duì)象:

cam = cv2.VideoCapture(0)

加載一個(gè)字體,用于在識(shí)別后,在圖片上標(biāo)注出識(shí)別對(duì)象的名字:

# font = cv2.cv.InitFont(cv2.cv.CV_FONT_HERSHEY_SIMPLEX, 1, 1, 0, 1, 1)
font = cv2.FONT_HERSHEY_SIMPLEX
識(shí)別程序的主循環(huán)

在程序的主循環(huán)中,我們需要做的是:

從攝像頭中獲取圖像

將圖像轉(zhuǎn)換為灰度圖片

在圖片中檢測(cè)人臉

用識(shí)別器識(shí)別該人的id

將識(shí)別出人臉的id或名稱(chēng)用矩形在圖片中標(biāo)出來(lái)

while True:
    ret, im = cam.read()
    gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.2, 5)
    for (x, y, w, h) in faces:
        cv2.rectangle(im, (x - 50, y - 50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
        img_id, conf = recognizer.predict(gray[y:y + h, x:x + w])
        # cv2.cv.PutText(cv2.cv.fromarray(im), str(Id), (x, y + h), font, 255)
        cv2.putText(im, str(img_id), (x, y + h), font, 0.55, (0, 255, 0), 1)
    cv2.imshow("im", im)
    if cv2.waitKey(10) & 0xFF == ord("q"):
        break

recognizer.predict為預(yù)測(cè)函數(shù),putText則是在圖片上添加文字

更進(jìn)一步

由于可能識(shí)別不出來(lái),或者存在未知的人臉。而且,如果只用id1,id2就會(huì)大大地降低了程序的體驗(yàn)。因此,我們可以把id換成名字,把未知的臉標(biāo)為未知。

我們把程序改成:

        img_id, conf = recognizer.predict(gray[y:y + h, x:x + w])
        if conf > 50:
            if img_id == 1:
                img_id = "jianyujianyu"
            elif img_id == 2:
                img_id = "ghost"
        else:
            img_id = "Unknown"
        # cv2.cv.PutText(cv2.cv.fromarray(im), str(Id), (x, y + h), font, 255)
        cv2.putText(im, str(img_id), (x, y + h), font, 0.55, (0, 255, 0), 1)
釋放資源

記得釋放資源

cam.release()
cv2.destroyAllWindows()
測(cè)試

然后在測(cè)試階段,這個(gè)人工智障完美地識(shí)別不出我。

我覺(jué)得是素材不夠豐富,我回頭改改。。。

完整代碼

現(xiàn)在的目錄:

import cv2
import numpy as np

recognizer = cv2.face.LBPHFaceRecognizer_create()
# recognizer = cv2.createLBPHFaceRecognizer() # in OpenCV 2
recognizer.read("trainner/trainner.yml")
# recognizer.load("trainner/trainner.yml") # in OpenCV 2

cascade_path = "haarcascade_frontalface_default.xml"
face_cascade = cv2.CascadeClassifier(cascade_path)
cam = cv2.VideoCapture(0)
# font = cv2.cv.InitFont(cv2.cv.CV_FONT_HERSHEY_SIMPLEX, 1, 1, 0, 1, 1) # in OpenCV 2
font = cv2.FONT_HERSHEY_SIMPLEX

while True:
    ret, im = cam.read()
    gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.2, 5)
    for (x, y, w, h) in faces:
        cv2.rectangle(im, (x - 50, y - 50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
        img_id, conf = recognizer.predict(gray[y:y + h, x:x + w])
        if conf > 50:
            if img_id == 1:
                img_id = "jianyujianyu"
            elif img_id == 2:
                img_id = "ghost"
        else:
            img_id = "Unknown"
        # cv2.cv.PutText(cv2.cv.fromarray(im), str(Id), (x, y + h), font, 255)
        cv2.putText(im, str(img_id), (x, y + h), font, 0.55, (0, 255, 0), 1)
    cv2.imshow("im", im)
    if cv2.waitKey(10) & 0xFF == ord("q"):
        break

cam.release()
cv2.destroyAllWindows()

先這樣吧

原文,若有錯(cuò)誤之處請(qǐng)指出,更多地關(guān)注煎魚(yú)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/41757.html

相關(guān)文章

  • Python-OpenCV人臉識(shí)別之?dāng)?shù)據(jù)集生成

    摘要:我們把要做的事分成三部分創(chuàng)建數(shù)據(jù)集訓(xùn)練識(shí)別在本文中,我們會(huì)嘗試寫(xiě)一個(gè)程序來(lái)生成數(shù)據(jù)集。生成數(shù)據(jù)集我們來(lái)寫(xiě)一個(gè)數(shù)據(jù)集生成腳本。為了不會(huì)將不同的人臉照片弄混,我們需要定一個(gè)命名規(guī)則,用于給照片命名。 在上一篇文章中,我們學(xué)習(xí)了如何安裝配置OpenCV和Python,然后寫(xiě)了些代碼玩玩人臉檢測(cè)?,F(xiàn)在我們要進(jìn)行下一步了,即搞一個(gè)人臉識(shí)別程序,就是不只是檢測(cè)還需要識(shí)別到人是誰(shuí)。 來(lái),搞人臉識(shí)別 ...

    ivyzhang 評(píng)論0 收藏0
  • Python-OpenCV訓(xùn)練一個(gè)人臉識(shí)別

    摘要:想要能人臉識(shí)別,我們需要訓(xùn)練一個(gè)識(shí)別器處理?,F(xiàn)在,是時(shí)候用這個(gè)訓(xùn)練集來(lái)訓(xùn)練一個(gè)人臉識(shí)別器了。同目錄下,創(chuàng)建一個(gè)文件夾,名為,用于存放我們訓(xùn)練后的識(shí)別器。訓(xùn)練差不多完成了,現(xiàn)在我們調(diào)用一下這個(gè)函數(shù),然后將我們的數(shù)據(jù)喂給識(shí)別器去訓(xùn)練吧。 想要能人臉識(shí)別,我們需要訓(xùn)練一個(gè)識(shí)別器處理。訓(xùn)練的話就需要之前已經(jīng)標(biāo)注好的訓(xùn)練集,在前一篇文章中,我們創(chuàng)建了一個(gè)已經(jīng)標(biāo)注好的訓(xùn)練集?,F(xiàn)在,是時(shí)候用這個(gè)訓(xùn)練...

    付永剛 評(píng)論0 收藏0
  • 首次公開(kāi),整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過(guò)得那么快,一晃從年注冊(cè),到現(xiàn)在已經(jīng)過(guò)去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評(píng)論0 收藏0
  • 淺談人臉識(shí)別技術(shù)的方法和應(yīng)用

    摘要:人臉識(shí)別技術(shù)所獨(dú)具的活性判別能力保證了他人無(wú)法以非活性的照片木偶蠟像來(lái)欺騙識(shí)別系統(tǒng)。人臉識(shí)別技術(shù)所采用的依據(jù)是人臉照片或?qū)崟r(shí)攝取的人臉圖像,因而無(wú)疑是最容易獲得的。 人臉識(shí)別是近年來(lái)模式識(shí)別、圖像處理、機(jī)器視覺(jué)、神經(jīng)網(wǎng)絡(luò)以及認(rèn)知科學(xué)等領(lǐng)域研究的熱點(diǎn)課題之一,被廣泛應(yīng)用于公共安全(罪犯識(shí)別等)...

    Charles 評(píng)論0 收藏0
  • 深度學(xué)習(xí)在人臉識(shí)別中的應(yīng)用 —— 優(yōu)圖祖母模型的「進(jìn)化」

    摘要:本文著重以人臉識(shí)別為例介紹深度學(xué)習(xí)技術(shù)在其中的應(yīng)用,以及優(yōu)圖團(tuán)隊(duì)經(jīng)過(guò)近五年的積累對(duì)人臉識(shí)別技術(shù)乃至整個(gè)人工智能領(lǐng)域的一些認(rèn)識(shí)和分享。從年左右,受深度學(xué)習(xí)在整個(gè)機(jī)器視覺(jué)領(lǐng)域迅猛發(fā)展的影響,人臉識(shí)別的深時(shí)代正式拉開(kāi)序幕。 騰訊優(yōu)圖隸屬于騰訊社交網(wǎng)絡(luò)事業(yè)群(SNG),團(tuán)隊(duì)整體立足于騰訊社交網(wǎng)絡(luò)大平臺(tái),專(zhuān)注于圖像處理、模式識(shí)別、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘、深度學(xué)習(xí)、音頻語(yǔ)音分析等領(lǐng)域開(kāi)展技術(shù)研發(fā)和業(yè)務(wù)落地。...

    546669204 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<