AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

基于 Python 的人臉檢測(cè) :人臉識(shí)別的前提

來(lái)源: 責(zé)編: 時(shí)間:2024-06-12 17:28:51 126觀看
導(dǎo)讀人臉檢測(cè)是一種識(shí)別數(shù)字圖像中人類面孔的技術(shù)。人臉檢測(cè)是一項(xiàng)相對(duì)成熟的技術(shù),還記得在您的數(shù)碼相機(jī)的舊日子里,當(dāng)您通過(guò)取景器看時(shí)?您會(huì)看到圍繞在取景器中的人們臉部的矩形框。在進(jìn)行人臉識(shí)別之前,您需要學(xué)習(xí)的技術(shù)就是

人臉檢測(cè)是一種識(shí)別數(shù)字圖像中人類面孔的技術(shù)。人臉檢測(cè)是一項(xiàng)相對(duì)成熟的技術(shù),還記得在您的數(shù)碼相機(jī)的舊日子里,當(dāng)您通過(guò)取景器看時(shí)?您會(huì)看到圍繞在取景器中的人們臉部的矩形框。在進(jìn)行人臉識(shí)別之前,您需要學(xué)習(xí)的技術(shù)就是人臉檢測(cè),也就是試圖給臉部賦予一個(gè)名字。zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

對(duì)于人臉檢測(cè),其中最著名的算法之一是被稱為Viola-Jones人臉檢測(cè)技術(shù),通常稱為Haar級(jí)聯(lián)。Haar級(jí)聯(lián)在深度學(xué)習(xí)流行之前就被發(fā)明了,是最常用于檢測(cè)人臉的技術(shù)之一。zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

人臉檢測(cè)/識(shí)別的道德考慮

zL928資訊網(wǎng)——每日最新資訊28at.com

盡管檢測(cè)和識(shí)別人臉的能力確實(shí)很酷,但它肯定涉及很多道德問(wèn)題。在將面部識(shí)別應(yīng)用到項(xiàng)目中之前,您需要注意一些關(guān)切事項(xiàng)。這些關(guān)切事項(xiàng)包括隱私(人臉檢測(cè)可用于在未經(jīng)同意的情況下追蹤人們的活動(dòng))、偏見(jiàn)(人臉檢測(cè)可能對(duì)不同種族、性別或年齡的個(gè)體存在偏見(jiàn))以及濫用(捕捉到的面部可能被用于其他非法用途或惡意目的)。因此,盡管本文側(cè)重于人臉檢測(cè)的技術(shù)能力,但在將其應(yīng)用到工作中之前,您應(yīng)該仔細(xì)考慮道德和倫理問(wèn)題。zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

以下是一些低風(fēng)險(xiǎn)項(xiàng)目,可以在其中實(shí)施人臉檢測(cè)/識(shí)別:zL928資訊網(wǎng)——每日最新資訊28at.com

  • 考勤跟蹤 —— 您可以在學(xué)校或工作場(chǎng)所使用人臉識(shí)別進(jìn)行考勤。
  • 個(gè)性化 —— 使用人臉識(shí)別來(lái)個(gè)性化服務(wù)。一個(gè)很好的例子是在娛樂(lè)服務(wù)中,根據(jù)用戶的觀看歷史推薦特定的電視節(jié)目。
  • 安全 —— 使用人臉識(shí)別來(lái)解鎖非關(guān)鍵系統(tǒng),如智能手機(jī)和計(jì)算機(jī)。

zL928資訊網(wǎng)——每日最新資訊28at.com

然而,在某些應(yīng)用中使用人臉識(shí)別具有嚴(yán)重的道德影響。以下是一些例子:zL928資訊網(wǎng)——每日最新資訊28at.com

  • 執(zhí)法 —— 盡管人臉識(shí)別對(duì)執(zhí)法可能有用,但人們對(duì)其不準(zhǔn)確性和偏見(jiàn)存在一些嚴(yán)重的擔(dān)憂。
  • 監(jiān)視 —— 人臉識(shí)別技術(shù)已經(jīng)在一些國(guó)家用于監(jiān)視和追蹤其公民,特別是持不同政見(jiàn)者。一些公司還使用人臉識(shí)別來(lái)監(jiān)視員工的生產(chǎn)力,這直接侵犯了他們的隱私。

zL928資訊網(wǎng)——每日最新資訊28at.com

如何做Haar級(jí)聯(lián)

zL928資訊網(wǎng)——每日最新資訊28at.com

Haar級(jí)聯(lián)分類器用于檢測(cè)其經(jīng)過(guò)訓(xùn)練的對(duì)象。以下是Haar面部分類器的工作原理的高級(jí)概述:zL928資訊網(wǎng)——每日最新資訊28at.com

  • 首先,使用一組正圖像(包含面部的圖像)和一組負(fù)圖像(不包含面部的圖像)對(duì)分類器進(jìn)行訓(xùn)練。
  • 然后從圖像中提取特征。以下圖顯示了從包含面部圖像中提取的一些特征。

zL928資訊網(wǎng)——每日最新資訊28at.com

  • 為了從圖像中檢測(cè)人臉,您需要尋找通常在人臉上找到的各種特征的存在(見(jiàn)下圖),例如眉毛,其中眉毛上方的區(qū)域比下方的區(qū)域亮。

zL928資訊網(wǎng)——每日最新資訊28at.com

  • 當(dāng)一幅圖像包含所有這些特征的組合時(shí),它被認(rèn)為包含一個(gè)人臉。

幸運(yùn)的是,不需要知道Haar級(jí)聯(lián)是如何工作的,OpenCV可以直接使用預(yù)訓(xùn)練的Haar級(jí)聯(lián)進(jìn)行人臉檢測(cè),以及用于識(shí)別其他對(duì)象的其他Haar級(jí)聯(lián)。預(yù)定義的Haar級(jí)聯(lián)列表可在GitHub上找到,鏈接為:https://github.com/opencv/opencv/tree/master/data/haarcascades。zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

開(kāi)源計(jì)算機(jī)視覺(jué)(OpenCV)是由英特爾最初開(kāi)發(fā)的開(kāi)源計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù)。它旨在為計(jì)算機(jī)視覺(jué)應(yīng)用程序提供共同的基礎(chǔ)架構(gòu),并加速機(jī)器感知在商業(yè)產(chǎn)品中的使用。OpenCV附帶了幾個(gè)預(yù)訓(xùn)練的Haar級(jí)聯(lián),可以檢測(cè)眼睛、臉部、俄羅斯車牌、微笑等。對(duì)于人臉檢測(cè),您將需要`haarcascade_frontalface_default.xml`文件,可以從上文的GitHub鏈接中下載。zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

安裝OpenCV

讓我們嘗試使用OpenCV進(jìn)行人臉檢測(cè)。首先,您需要使用以下命令進(jìn)行安裝:zL928資訊網(wǎng)——每日最新資訊28at.com

!pip install opencv-python

對(duì)于本文示例,您需要?jiǎng)?chuàng)建一個(gè)名為`face_detection.py`的文件。首先,通過(guò)以下語(yǔ)句導(dǎo)入OpenCV庫(kù):zL928資訊網(wǎng)——每日最新資訊28at.com

import cv2

zL928資訊網(wǎng)——每日最新資訊28at.com

從Webcam讀取

接下來(lái)要做的是連接到您的網(wǎng)絡(luò)攝像頭并在屏幕上顯示圖像:zL928資訊網(wǎng)——每日最新資訊28at.com

import cv2# default webcamstream = cv2.VideoCapture(0)while(True):    # Capture frame-by-frame    (grabbed, frame) = stream.read()    # Show the frame    cv2.imshow("Image", frame)    key = cv2.waitKey(1) & 0xFF        if key == ord("q"):    # Press q to break out of the loop        break# Cleanupstream.release()cv2.waitKey(1)cv2.destroyAllWindows()cv2.waitKey(1)

為引用您的網(wǎng)絡(luò)攝像頭,請(qǐng)使用`VideoCapture`類并傳遞一個(gè)數(shù)字,表示您的攝像頭實(shí)例(0表示第一個(gè)攝像頭,1表示第二個(gè)攝像頭,依此類推)。zL928資訊網(wǎng)——每日最新資訊28at.com

stream = cv2.VideoCapture(0)

為了持續(xù)捕獲來(lái)自網(wǎng)絡(luò)攝像頭的輸入,使用一個(gè)無(wú)限循環(huán)(`while(True)`)讀取每一幀然后顯示它:zL928資訊網(wǎng)——每日最新資訊28at.com

 # Capture frame-by-frame    (grabbed, frame) = stream.read()    # Show the frame    cv2.imshow("Image", frame)

為了使程序能夠優(yōu)雅地退出,等待用戶在鍵盤(pán)上按鍵。當(dāng)按下"q"鍵時(shí),循環(huán)終止:zL928資訊網(wǎng)——每日最新資訊28at.com

   key = cv2.waitKey(1) & 0xFF        if key == ord("q"):    # Press q to break out of the loop        break

然后進(jìn)行清理工作:zL928資訊網(wǎng)——每日最新資訊28at.com

# Cleanupstream.release()cv2.waitKey(1)cv2.destroyAllWindows()cv2.waitKey(1)

要運(yùn)行程序,請(qǐng)轉(zhuǎn)到終端并鍵入:zL928資訊網(wǎng)——每日最新資訊28at.com

$ python face_detection.py

現(xiàn)在您應(yīng)該看到您的臉:zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

檢測(cè)到臉部

zL928資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在來(lái)玩?zhèn)€有趣的部分 —— 檢測(cè)臉部。首先,創(chuàng)建`CascadeClassifier`類的一個(gè)實(shí)例,并將`haarcascade_frontalface_default.xml`文件傳遞給它:zL928資訊網(wǎng)——每日最新資訊28at.com

import cv2# for face detectionface_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

您需要復(fù)制`haarcascade_frontalface_default.xml`文件并將其放在與`face_detection.py`文件相同的文件夾中。您可以從https://github.com/opencv/opencv/tree/master/data/haarcascades下載XML文件。現(xiàn)在,您可以使用`detectMultiScale()`函數(shù)來(lái)檢測(cè)臉部:zL928資訊網(wǎng)——每日最新資訊28at.com

while(True):    # Capture frame-by-frame    (grabbed, frame) = stream.read()    #===============DETECTING FACES============    # Convert to grayscale    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)    # Try to detect faces in the webcam    faces = face_cascade.detectMultiScale(gray,                                           scaleFactor=1.3,                                           minNeighbors=5)        # for each faces found    for (x, y, w, h) in faces:                # Draw a rectangle around the face        color = (0, 255, 255) # in BGR        stroke = 5            cv2.rectangle(frame, (x, y), (x + w, y + h),             color, stroke)    #===============DETECTING FACE=============    # Show the frame    cv2.imshow("Image", frame)    key = cv2.waitKey(1) & 0xFF        if key == ord("q"):    # Press q to break out of the loop        break

請(qǐng)注意`detectMultiScale()`函數(shù)中的以下參數(shù):zL928資訊網(wǎng)——每日最新資訊28at.com

  • scaleFactor` 參數(shù)允許您將捕獲圖像重新縮放到新的尺寸,以便算法能夠檢測(cè)到人臉。
  • minNeighbors` 參數(shù)指定每個(gè)候選矩形應(yīng)具有多少鄰居才能保留它。此參數(shù)影響檢測(cè)到的人臉的質(zhì)量。較高的值導(dǎo)致更少的檢測(cè),但質(zhì)量更高。通常,4到6是一個(gè)不錯(cuò)的數(shù)字。

您可以變化這兩個(gè)參數(shù)的值以確保正確檢測(cè)到人臉。zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

當(dāng)檢測(cè)到臉部時(shí),您希望在它們周圍畫(huà)出矩形:zL928資訊網(wǎng)——每日最新資訊28at.com

# for each faces found    for (x, y, w, h) in faces:                # Draw a rectangle around the face        color = (0, 255, 255) # in BGR        stroke = 5            cv2.rectangle(frame, (x, y), (x + w, y + h),             color, stroke)

當(dāng)您重新運(yùn)行`face_detection.py`文件時(shí),現(xiàn)在應(yīng)該能夠檢測(cè)到臉部了。zL928資訊網(wǎng)——每日最新資訊28at.com

zL928資訊網(wǎng)——每日最新資訊28at.com

`face_detection.py`文件的完整內(nèi)容如下:zL928資訊網(wǎng)——每日最新資訊28at.com

import cv2# for face detectionface_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')# default webcamstream = cv2.VideoCapture(0)while(True):    # Capture frame-by-frame    (grabbed, frame) = stream.read()    # Convert to grayscale    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)    # Try to detect faces in the webcam    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)        # for each faces found    for (x, y, w, h) in faces:                # Draw a rectangle around the face        color = (0, 255, 255) # in BGR        stroke = 5            cv2.rectangle(frame, (x, y), (x + w, y + h),             color, stroke)    # Show the frame    cv2.imshow("Image", frame)    key = cv2.waitKey(1) & 0xFF        if key == ord("q"):    # Press q to break out of the loop        break# Cleanupstream.release()cv2.waitKey(1)cv2.destroyAllWindows()cv2.waitKey(1)

zL928資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

希望這篇簡(jiǎn)短的文章為您提供了一種使用Python和您的網(wǎng)絡(luò)攝像頭檢測(cè)臉部的簡(jiǎn)單方法。確保下載`haarcascade_frontalface_default.xml`文件并將其放入與您的Python文件相同的文件夾中。zL928資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-93353-0.html基于 Python 的人臉檢測(cè) :人臉識(shí)別的前提

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: ASP.NET Core 十大優(yōu)秀第三方中間件推薦

下一篇: 事務(wù)中存在多線程,怎么處理?

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
Top