0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

樹(shù)莓派上使用OpenCV和Python實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)

工程師 ? 2018-03-06 09:00 ? 次閱讀

本文介紹了如何在樹(shù)莓派上,使用 OpenCV 和 Python 完成人臉檢測(cè)項(xiàng)目。該項(xiàng)目不僅描述了識(shí)別人臉?biāo)枰木唧w步驟,同時(shí)還提供了很多擴(kuò)展知識(shí)。此外,該項(xiàng)目并不需要讀者了解詳細(xì)的人臉識(shí)別理論知識(shí),因此初學(xué)者也能輕松跟著步驟實(shí)現(xiàn)。

項(xiàng)目所需設(shè)備

硬件

樹(shù)莓派 3 Model B;

樹(shù)莓派攝像頭模塊(PiCam)。

語(yǔ)言和庫(kù):

OpenCV

Python 3

步驟

本文主要講述如何使用 PiCam 實(shí)現(xiàn)實(shí)時(shí)人臉識(shí)別,如下圖所示:

教程使用 OpenCV 完成,一個(gè)神奇的「開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù)」,并主要關(guān)注樹(shù)莓派(因此,操作系統(tǒng)是樹(shù)莓派系統(tǒng))和 Python,但是我也在 Mac 電腦上測(cè)試了代碼,同樣運(yùn)行很好。OpenCV 具備很強(qiáng)的計(jì)算效率,且專(zhuān)門(mén)用于實(shí)時(shí)應(yīng)用。因此,它非常適合使用攝像頭的實(shí)時(shí)人臉識(shí)別。要?jiǎng)?chuàng)建完整的人臉識(shí)別項(xiàng)目,我們必須完成3個(gè)階段:

1)人臉檢測(cè)和數(shù)據(jù)收集;

2)訓(xùn)練識(shí)別器;

3)人臉識(shí)別。

如下圖所示:

樹(shù)莓派上使用OpenCV和Python實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)

第1步:材料清單

主件:

樹(shù)莓派 V3:283 RMB(淘寶)

500 萬(wàn)像素 1080p 傳感器 OV5647 迷你攝像頭模塊:83 RMB(淘寶)

第2步:安裝OpenCV 3包

我使用的是更新了最新版樹(shù)莓派系統(tǒng)(Stretch)的樹(shù)莓派 V3,因此安裝 OpenCV 的最佳方式是按照 Adrian Rosebrock 寫(xiě)的教程來(lái)進(jìn)行:《Raspbian Stretch: Install OpenCV 3 + Python on your Raspberry Pi》。經(jīng)過(guò)幾次嘗試后,我覺(jué)得Adrian的教程最好,建議按照該教程一步步來(lái)安裝。

完成上述教程之后,你應(yīng)該安裝好了 OpenCV 虛擬環(huán)境,可用于在樹(shù)莓派設(shè)備上運(yùn)行本次實(shí)驗(yàn)。

我們來(lái)到虛擬環(huán)境,確認(rèn) OpenCV 3 已經(jīng)正確安裝。

Adrian 推薦在每次打開(kāi)新的終端時(shí)都運(yùn)行命令行「source」,以確保系統(tǒng)變量都得到正確設(shè)置。

source ~/.profile

然后,我們進(jìn)入虛擬環(huán)境:

workon cv

如果你看到 (cv) 出現(xiàn)在提示符之前,那么你就進(jìn)入了 cv 虛擬環(huán)境:

(cv) pi@raspberry:~$

Adrian 希望大家注意 cv Python 虛擬環(huán)境是完全獨(dú)立的,且與 Raspbian Stretch 中包含的默認(rèn) Python 版本彼此隔絕。因此,全局站點(diǎn)包目錄中的任意 Python 包對(duì)于 cv 虛擬環(huán)境而言都是不可用的。類(lèi)似地,cv 站點(diǎn)包中的任意 Python 包對(duì)于全局 Python 包安裝也都是不可用的。

現(xiàn)在,進(jìn)入 Python 解釋器:

python

確認(rèn)你正在運(yùn)行3.5(或以上)版本。

在解釋器內(nèi)部(將出現(xiàn)》》》),導(dǎo)入 OpenCV 庫(kù):

importcv2

如果沒(méi)有錯(cuò)誤信息,則 OpenCV 已在你的 Python 虛擬環(huán)境中正確安裝。

你還可以檢查已安裝的 OpenCV 版本:

cv2.__version__

將會(huì)出現(xiàn)3.3.0(或未來(lái)有可能發(fā)布更高版本)。

上面的終端截圖顯示了以上步驟。

第3步:測(cè)試攝像頭

在樹(shù)莓派上安裝 OpenCV 之后,我們測(cè)試一下,以確認(rèn)攝像頭正常運(yùn)轉(zhuǎn)。假設(shè)你已經(jīng)在樹(shù)莓派上安裝了 PiCam。

在 IDE 中輸入下列 Python 代碼:

importnumpy asnp

importcv2

cap = cv2.VideoCapture(0)

cap.set(3,640) # set Width

cap.set(4,480) # set Height

while(True):

ret, frame = cap.read()

frame = cv2.flip(frame, -1) # Flip camera vertically

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.imshow(‘frame’, frame)

cv2.imshow(‘gray’, gray)

k = cv2.waitKey(30) & 0xff

ifk == 27: # press ‘ESC’ to quit

break

cap.release()

cv2.destroyAllWindows()

上面的代碼可捕捉PiCam生成的視頻流,用BGR顏色和灰色模式展示。

注意:我按照組裝方式垂直旋轉(zhuǎn)了攝像頭。如果你的情況并非如此,那么注釋或刪除「flip」命令行。

你還可以從我的 GitHub 下載代碼:https://github.com/Mjrovai/OpenCV-Object-Face-Tracking/blob/master/simpleCamTest.py

輸入下面的命令行,開(kāi)始執(zhí)行:

python simpleCamTest.py

要完成該程序,你必須在鍵盤(pán)上按 [ESC] 鍵。在按 [ESC] 鍵之前,先鼠標(biāo)點(diǎn)擊視頻窗口。

上圖展示了結(jié)果。

想更多地了解 OpenCV,請(qǐng)查看該教程:https://pythonprogramming.net/loading-video-python-opencv-tutorial/

第4步:人臉檢測(cè)

人臉識(shí)別的最基礎(chǔ)任務(wù)是「人臉檢測(cè)」。你必須首先「捕捉」人臉(第 1 階段)才能在未來(lái)與捕捉到的新人臉對(duì)比時(shí)(第 3 階段)識(shí)別它。

最常見(jiàn)的人臉檢測(cè)方式是使用「Haar 級(jí)聯(lián)分類(lèi)器」。使用基于 Haar 特征的級(jí)聯(lián)分類(lèi)器的目標(biāo)檢測(cè)是 Paul Viola 和 Michael Jones 2001 年在論文《Rapid Object Detection using a Boosted Cascade of Simple Features》中提出的一種高效目標(biāo)檢測(cè)方法。這種機(jī)器學(xué)習(xí)方法基于大量正面、負(fù)面圖像訓(xùn)練級(jí)聯(lián)函數(shù),然后用于檢測(cè)其他圖像中的對(duì)象。這里,我們將用它進(jìn)行人臉識(shí)別。最初,該算法需要大量正類(lèi)圖像(人臉圖像)和負(fù)類(lèi)圖像(不帶人臉的圖像)來(lái)訓(xùn)練分類(lèi)器。然后我們需要從中提取特征。好消息是 OpenCV 具備訓(xùn)練器和檢測(cè)器。如果你想要訓(xùn)練自己的對(duì)象分類(lèi)器,如汽車(chē)、飛機(jī)等,你可以使用 OpenCV 創(chuàng)建一個(gè)。

詳情參見(jiàn):https://docs.opencv.org/3.3.0/dc/d88/tutorial_traincascade.html。

如果不想創(chuàng)建自己的分類(lèi)器,OpenCV 也包含很多預(yù)訓(xùn)練分類(lèi)器,可用于人臉、眼睛、笑容等的檢測(cè)。相關(guān)的 XML 文件可從該目錄下載:https://github.com/Itseez/opencv/tree/master/data/haarcascades。

下面,我們就開(kāi)始用 OpenCV 創(chuàng)建人臉檢測(cè)器吧!

從我的 GitHub 下載文件 faceDetection.py:https://github.com/Mjrovai/OpenCV-Face-Recognition/blob/master/FaceDetection/faceDetection.py。

importnumpy asnp

importcv2

faceCascade = cv2.CascadeClassifier(‘Cascades/haarcascade_frontalface_default.xml’)

cap = cv2.VideoCapture(0)

cap.set(3,640) # set Width

cap.set(4,480) # set Height

whileTrue:

ret, img = cap.read()

img = cv2.flip(img, -1)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale(

gray,

scaleFactor=1.2,

minNeighbors=5,

minSize=(20, 20)

for(x,y,w,h) infaces:

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

roi_gray = gray[y:y+h, x:x+w]

roi_color = img[y:y+h, x:x+w]

cv2.imshow(‘video’,img)

k = cv2.waitKey(30) & 0xff

ifk == 27: # press ‘ESC’ to quit

break

cap.release()

cv2.destroyAllWindows()

使用 Python 和 OpenCV 執(zhí)行人臉檢測(cè),上面的幾行代碼就足夠了。注意下面的代碼:

faceCascade = cv2.CascadeClassifier(‘Cascades/haarcascade_frontalface_default.xml’)

這行代碼可以加載「分類(lèi)器」(必須在項(xiàng)目文件夾下面的 Cascades/目錄中)。然后,我們?cè)谠谘h(huán)內(nèi)部調(diào)用攝像頭,并以 grayscale 模式加載我們的輸入視頻?,F(xiàn)在,我們必須調(diào)用分類(lèi)器函數(shù),向其輸入一些非常重要的參數(shù),如比例因子、鄰近數(shù)和人臉檢測(cè)的最小尺寸。

faces = faceCascade.detectMultiScale(

gray,

scaleFactor=1.2,

minNeighbors=5,

minSize=(20, 20)

其中:

gray 表示輸入 grayscale 圖像。

scaleFactor 表示每個(gè)圖像縮減的比例大小。

minNeighbors 表示每個(gè)備選矩形框具備的鄰近數(shù)量。數(shù)字越大,假正類(lèi)越少。

minSize 表示人臉識(shí)別的最小矩形大小。

該函數(shù)將檢測(cè)圖像中的人臉。接下來(lái),我們必須「標(biāo)記」圖像中的人臉,比如,用藍(lán)色矩形。使用下列代碼完成這一步:

for(x,y,w,h) infaces:

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

roi_gray = gray[y:y+h, x:x+w]

roi_color = img[y:y+h, x:x+w]

如果已經(jīng)標(biāo)記好人臉,則函數(shù)將檢測(cè)到的人臉的位置返回為一個(gè)矩形,左上角 (x,y),w 表示寬度,h 表示高度 ==》 (x,y,w,h)。詳見(jiàn)下圖。

得到這些位置信息后,我們可以為人臉創(chuàng)建一個(gè)「感興趣區(qū)域」(繪制矩形),用 imshow() 函數(shù)呈現(xiàn)結(jié)果。使用樹(shù)莓派終端,在你的 Python 環(huán)境中運(yùn)行上面的 Python 腳本:

python faceDetection.py

結(jié)果如下:

你也可以加入諸如「眼睛檢測(cè)」甚至「微笑檢測(cè)」這樣的檢測(cè)器。在那些用例中,你需要把分類(lèi)器函數(shù)和矩形框內(nèi)加入原有的面部識(shí)別區(qū)域中,因?yàn)樵趨^(qū)域外進(jìn)行識(shí)別沒(méi)有意義。

注意,在樹(shù)莓派上,分類(lèi)方法(HaarCascades)會(huì)消耗大量算力,所以在同一代碼中使用多個(gè)分類(lèi)器將會(huì)顯著減慢處理速度。在臺(tái)式機(jī)上運(yùn)行這些算法則非常容易。

在我的 GitHub上你可以看到另外的例子:

faceEyeDetection.py

faceSmileDetection.py

faceSmileEyeDetection.py

在下圖中,你可以看到我們的結(jié)果:

要想深入理解面部識(shí)別,可以參考這一教程:https://pythonprogramming.net/haar-cascade-face-eye-detection-python-opencv-tutorial/

第5步:收集數(shù)據(jù)

我推薦各位讀者可以查看以下兩個(gè)關(guān)于人臉識(shí)別的教程:

使用 OpenCV 和 Python 從頭實(shí)現(xiàn)人臉識(shí)別:https://www.superdatascience.com/opencv-face-recognition/

理解人臉識(shí)別:https://thecodacus.com/category/opencv/face-recognition/

現(xiàn)在,我們項(xiàng)目的第一步是創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)據(jù)集,該數(shù)據(jù)集將儲(chǔ)存每張人臉的 ID 和一組用于人臉檢測(cè)的灰度圖。

樹(shù)莓派上使用OpenCV和Python實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)

因此,以下命令行將為我們的項(xiàng)目創(chuàng)建一個(gè)目錄,目錄名可以如以下為 FacialRecognitionProject 或其它:

mkdir FacialRecognitionProject

在該目錄中,除了我們?yōu)轫?xiàng)目創(chuàng)建的 3 個(gè) Python 腳本外,我們還需要儲(chǔ)存人臉?lè)诸?lèi)器。我們可以從 GitHub 中下載:haarcascade_frontalface_default.xml。

下一步需要?jiǎng)?chuàng)建一個(gè)子目錄「dtatset」,并用它來(lái)儲(chǔ)存人臉樣本:

mkdir dataset

然后從我的 GitHub 中下載代碼 01_face_dataset.py。

importcv2

importos

cam = cv2.VideoCapture(0)

cam.set(3, 640) # set video width

cam.set(4, 480) # set video height

face_detector = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)

# For each person, enter one numeric face id

face_id = input(‘n enter user id end press 《return》 ==》 ’)

print(“n [INFO] Initializing face capture. Look the camera and wait 。。?!保?/p>

# Initialize individual sampling face count

count = 0

while(True):

ret, img = cam.read()

img = cv2.flip(img, -1) # flip video image vertically

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = face_detector.detectMultiScale(gray, 1.3, 5)

for(x,y,w,h) infaces:

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

count += 1

# Save the captured image into the datasets folder

cv2.imwrite(“dataset/User.”+ str(face_id) + ‘?!? str(count) + “.jpg”, gray[y:y+h,x:x+w])

cv2.imshow(‘image’, img)

k = cv2.waitKey(100) & 0xff# Press ‘ESC’ for exiting video

ifk == 27:

break

elifcount 》= 30: # Take 30 face sample and stop video

break

# Do a bit of cleanup

print(“n [INFO] Exiting Program and cleanup stuff”)

cam.release()

cv2.destroyAllWindows()

上述的代碼和人臉識(shí)別的代碼非常像,我們只是添加了一個(gè)「input command」來(lái)捕捉用戶(hù) ID(整數(shù))。

face_id = input(‘n enter user id end press ==》 ’)

對(duì)于每一個(gè)捕捉的幀,我們應(yīng)該在「dataset」目錄中保存為文檔:

cv2.imwrite(“dataset/User.”+ str(face_id) + ‘。’+ str(count) + “.jpg”, gray[y:y+h,x:x+w])

對(duì)于保存上述文件,我們需要導(dǎo)入「os」庫(kù),每一個(gè)文件的名字都服從以下結(jié)構(gòu):

User.face_id.count.jpg

例如,對(duì)于 face_id = 1 的用戶(hù),dataset/ 目錄下的第四個(gè)樣本文件名可能為:

User.1.4.jpg

在我的樹(shù)莓派中,該圖像可以打開(kāi)為:

樹(shù)莓派上使用OpenCV和Python實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)

在我的代碼中,我從每一個(gè) ID 捕捉 30 個(gè)樣本,我們能在最后一個(gè)條件語(yǔ)句中修改抽取的樣本數(shù)。如果我們希望識(shí)別新的用戶(hù)或修改已存在用戶(hù)的相片,我們就必須以上腳本。

第六步:訓(xùn)練

在第二階段中,我們需要從數(shù)據(jù)集中抽取所有的用戶(hù)數(shù)據(jù),并訓(xùn)練 OpenCV 識(shí)別器,這一過(guò)程可由特定的 OpenCV 函數(shù)直接完成。這一步將在「trainer/」目錄中保存為.yml 文件。

樹(shù)莓派上使用OpenCV和Python實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)

所以,下面開(kāi)始創(chuàng)建子目錄以?xún)?chǔ)存訓(xùn)練數(shù)據(jù):

mkdir trainer

從我的 GitHub 中下載第二個(gè) Python 腳本:02_face_training.py。

importcv2

importnumpy asnp

fromPIL importImage

importos

# Path for face image database

path = ‘dataset’

recognizer = cv2.face.LBPHFaceRecognizer_create()

detector = cv2.CascadeClassifier(“haarcascade_frontalface_default.xml”);

# function to get the images and label data

defgetImagesAndLabels(path):

imagePaths = [os.path.join(path,f) forf inos.listdir(path)]

faceSamples=[]

ids = []

forimagePath inimagePaths:

PIL_img = Image.open(imagePath).convert(‘L’) # convert it to grayscale

img_numpy = np.array(PIL_img,‘uint8’)

id = int(os.path.split(imagePath)[-1].split(“?!保?])

faces = detector.detectMultiScale(img_numpy)

for(x,y,w,h) infaces:

faceSamples.append(img_numpy[y:y+h,x:x+w])

ids.append(id)

returnfaceSamples,ids

print(“n [INFO] Training faces. It will take a few seconds. Wait 。。?!保?/p>

faces,ids = getImagesAndLabels(path)

recognizer.train(faces, np.array(ids))

# Save the model into trainer/trainer.yml

recognizer.write(‘trainer/trainer.yml’) # recognizer.save() worked on Mac, but not on Pi

# Print the numer of faces trained and end program

print(“n [INFO] {0} faces trained. Exiting Program”.format(len(np.unique(ids))))

確定在 Rpi 中已經(jīng)安裝了 PIL 庫(kù),如果沒(méi)有的話(huà),在終端運(yùn)行以下命令:

pip install pillow

我們將使用 LBPH(LOCAL BINARY PATTERNS HISTOGRAMS)人臉識(shí)別器,它由 OpenCV 提供:

recognizer = cv2.face.LBPHFaceRecognizer_create()

函數(shù)「getImagesAndLabels (path)」將抽取所有在目錄「dataset/」中的照片,并返回 2 個(gè)數(shù)組:「Ids」和「faces」。通過(guò)將這些數(shù)組作為輸入,我們就可以訓(xùn)練識(shí)別器。

recognizer.train(faces, ids)

在訓(xùn)練過(guò)后,文件「trainer.yml」將保存在我們前面定義的 trainer 目錄下。此外,我們還在最后使用了 print 函數(shù)以確認(rèn)已經(jīng)訓(xùn)練的用戶(hù)面部數(shù)量。

第7步:識(shí)別器

這是該項(xiàng)目的最后階段。這里,我們將通過(guò)攝像頭捕捉一個(gè)新人臉,如果這個(gè)人的面孔之前被捕捉和訓(xùn)練過(guò),我們的識(shí)別器將會(huì)返回其預(yù)測(cè)的 id 和索引,并展示識(shí)別器對(duì)于該判斷有多大的信心。

樹(shù)莓派上使用OpenCV和Python實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)

讓我們從 GitHub 03_face_recognition.py 上下載第三階段的 python 腳本。

importcv2

importnumpy asnp

importos

recognizer = cv2.face.LBPHFaceRecognizer_create()

recognizer.read(‘trainer/trainer.yml’)

cascadePath = “haarcascade_frontalface_default.xml”

faceCascade = cv2.CascadeClassifier(cascadePath);

font = cv2.FONT_HERSHEY_SIMPLEX

#iniciate id counter

id = 0

# names related to ids: example ==》 Marcelo: id=1, etc

names = [‘None’, ‘Marcelo’, ‘Paula’, ‘Ilza’, ‘Z’, ‘W’]

# Initialize and start realtime video capture

cam = cv2.VideoCapture(0)

cam.set(3, 640) # set video widht

cam.set(4, 480) # set video height

# Define min window size to be recognized as a face

minW = 0.1*cam.get(3)

minH = 0.1*cam.get(4)

whileTrue:

ret, img =cam.read()

img = cv2.flip(img, -1) # Flip vertically

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale(

gray,

scaleFactor = 1.2,

minNeighbors = 5,

minSize = (int(minW), int(minH)),

for(x,y,w,h) infaces:

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

id, confidence = recognizer.predict(gray[y:y+h,x:x+w])

# Check if confidence is less them 100 ==》 “0” is perfect match

if(confidence 《 100):

id = names[id]

confidence = “ {0}%”.format(round(100- confidence))

else:

id = “unknown”

confidence = “ {0}%”.format(round(100- confidence))

cv2.putText(img, str(id), (x+5,y-5), font, 1, (255,255,255), 2)

cv2.putText(img, str(confidence), (x+5,y+h-5), font, 1, (255,255,0), 1)

cv2.imshow(‘camera’,img)

k = cv2.waitKey(10) & 0xff# Press ‘ESC’ for exiting video

ifk == 27:

break

# Do a bit of cleanup

print(“n [INFO] Exiting Program and cleanup stuff”)

cam.release()

cv2.destroyAllWindows()

這里我們包含了一個(gè)新數(shù)組,因此我們將會(huì)展示「名稱(chēng)」,而不是編號(hào)的 id:

names = [‘None’, ‘Marcelo’, ‘Paula’, ‘Ilza’, ‘Z’, ‘W’]

所以,如上所示的列表,Marcelo 的 ID 或索引為 1,Paula 的 ID 等于 2。

下一步,我們將檢測(cè)一張人臉,正如我們?cè)谥暗?haasCascade 分類(lèi)器中所做的那樣。

id, confidence = recognizer.predict(gray portion of the face)

recognizer.predict () 將把待分析人臉的已捕捉部分作為一個(gè)參數(shù),并返回其可能的所有者,指示其 id 以及識(shí)別器與這一匹配相關(guān)的置信度。

注意,如果匹配是完美的,置信度指數(shù)將返回「零」。

最后,如果識(shí)別器可以預(yù)測(cè)人臉,我們將在圖像上放置一個(gè)文本,帶有可能的 id,以及匹配是否正確的概率(概率=100 - 置信度指數(shù))。如果沒(méi)有,則把「未知」的標(biāo)簽放在人臉上。

下面是這一結(jié)果的圖片:

在這張圖像上,我展示了一些由該項(xiàng)目完成的測(cè)試,其中我也使用圖像驗(yàn)證識(shí)別器是否有效。

第 8 步:結(jié)語(yǔ)

我希望該項(xiàng)目能幫助其他人發(fā)現(xiàn)更好玩的項(xiàng)目,也希望有助于各位讀者實(shí)現(xiàn)自己的人臉識(shí)別應(yīng)用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 人臉識(shí)別
    +關(guān)注

    關(guān)注

    76

    文章

    4002

    瀏覽量

    81675
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    624

    瀏覽量

    41214
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1688

    瀏覽量

    105456
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于OPENCV的相機(jī)捕捉視頻進(jìn)行人臉檢測(cè)--米爾NXP i.MX93開(kāi)發(fā)板

    本文將介紹基于米爾電子MYD-LMX93開(kāi)發(fā)板(米爾基于NXPi.MX93開(kāi)發(fā)板)的基于OpenCV人臉檢測(cè)方案測(cè)試。OpenCV提供了一個(gè)非常簡(jiǎn)單的接口,用于相機(jī)捕捉一個(gè)視頻(我用
    的頭像 發(fā)表于 11-07 09:03 ?520次閱讀
    基于<b class='flag-5'>OPENCV</b>的相機(jī)捕捉視頻進(jìn)行<b class='flag-5'>人臉</b><b class='flag-5'>檢測(cè)</b>--米爾NXP i.MX93開(kāi)發(fā)板

    使用OpenVINO C# API部署YOLO-World實(shí)現(xiàn)實(shí)時(shí)開(kāi)放詞匯對(duì)象檢測(cè)

    YOLO-World是一個(gè)融合了實(shí)時(shí)目標(biāo)檢測(cè)與增強(qiáng)現(xiàn)實(shí)(AR)技術(shù)的創(chuàng)新平臺(tái),旨在將現(xiàn)實(shí)世界與數(shù)字世界無(wú)縫對(duì)接。該平臺(tái)以YOLO(You Only Look Once)算法為核心,
    的頭像 發(fā)表于 08-30 16:27 ?522次閱讀
    使用OpenVINO C# API部署YOLO-World<b class='flag-5'>實(shí)現(xiàn)實(shí)時(shí)</b>開(kāi)放詞匯對(duì)象<b class='flag-5'>檢測(cè)</b>

    opencv-pythonopencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?880次閱讀

    基于OpenCV人臉識(shí)別系統(tǒng)設(shè)計(jì)

    基于OpenCV人臉識(shí)別系統(tǒng)是一個(gè)復(fù)雜但功能強(qiáng)大的系統(tǒng),廣泛應(yīng)用于安全監(jiān)控、人機(jī)交互、智能家居等多個(gè)領(lǐng)域。下面將詳細(xì)介紹基于OpenCV人臉識(shí)別系統(tǒng)的基本原理、
    的頭像 發(fā)表于 07-11 15:37 ?1.1w次閱讀

    人臉檢測(cè)模型有哪些

    : Viola-Jones 算法 Viola-Jones 算法是一種基于 Haar 特征和 AdaBoost 算法的人臉檢測(cè)方法。它通過(guò)訓(xùn)練一個(gè)級(jí)聯(lián)分類(lèi)器來(lái)實(shí)現(xiàn)人臉
    的頭像 發(fā)表于 07-03 17:05 ?870次閱讀

    人臉檢測(cè)人臉識(shí)別的區(qū)別是什么

    人臉檢測(cè)人臉識(shí)別是計(jì)算機(jī)視覺(jué)領(lǐng)域的兩個(gè)重要技術(shù),它們?cè)谠S多應(yīng)用場(chǎng)景中都有廣泛的應(yīng)用,如安全監(jiān)控、身份驗(yàn)證、社交媒體等。盡管它們?cè)谀承┓矫嬗邢嗨浦?,但它們之間存在一些關(guān)鍵的區(qū)別。本文將詳細(xì)介紹
    的頭像 發(fā)表于 07-03 14:49 ?841次閱讀

    人臉檢測(cè)的五種方法各有什么特征和優(yōu)缺點(diǎn)

    來(lái)實(shí)現(xiàn)人臉檢測(cè)。這種方法通常使用膚色模型來(lái)描述人臉膚色的分布,然后通過(guò)膚色模型與圖像像素的匹配程度來(lái)判斷是否為人臉。 優(yōu)點(diǎn): 計(jì)算簡(jiǎn)單,
    的頭像 發(fā)表于 07-03 14:47 ?603次閱讀

    英碼科技EA500I基于昇騰Mind SDK實(shí)現(xiàn)實(shí)時(shí)人體關(guān)鍵點(diǎn)檢測(cè)

    在教育、體育、安防、交通、醫(yī)療等領(lǐng)域中,實(shí)時(shí)人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用發(fā)揮著至關(guān)重要的作用,比如在體育訓(xùn)練時(shí),實(shí)時(shí)人體關(guān)鍵點(diǎn)檢測(cè)可以精確、實(shí)時(shí)地捕捉
    的頭像 發(fā)表于 04-21 17:44 ?946次閱讀
    英碼科技EA500I基于昇騰Mind SDK<b class='flag-5'>實(shí)現(xiàn)實(shí)時(shí)人</b>體關(guān)鍵點(diǎn)<b class='flag-5'>檢測(cè)</b>

    英碼科技EA500I基于昇騰Mind SDK實(shí)現(xiàn)實(shí)時(shí)人體關(guān)鍵點(diǎn)檢測(cè)

    在教育、體育、安防、交通、醫(yī)療等領(lǐng)域中,實(shí)時(shí)人體關(guān)鍵點(diǎn)檢測(cè)應(yīng)用發(fā)揮著至關(guān)重要的作用,比如在體育訓(xùn)練時(shí),實(shí)時(shí)人體關(guān)鍵點(diǎn)檢測(cè)可以精確、實(shí)時(shí)地捕捉
    的頭像 發(fā)表于 04-20 08:25 ?502次閱讀
    英碼科技EA500I基于昇騰Mind SDK<b class='flag-5'>實(shí)現(xiàn)實(shí)時(shí)人</b>體關(guān)鍵點(diǎn)<b class='flag-5'>檢測(cè)</b>

    itop-RK3588開(kāi)發(fā)板機(jī)器視覺(jué)開(kāi)發(fā)OpenCV-Python的安裝

    itop-RK3588開(kāi)發(fā)板機(jī)器視覺(jué)開(kāi)發(fā)OpenCV-Python的安裝
    的頭像 發(fā)表于 01-26 15:18 ?4046次閱讀
    itop-RK3588開(kāi)發(fā)板機(jī)器視覺(jué)開(kāi)發(fā)<b class='flag-5'>OpenCV-Python</b>的安裝

    在全志H616核桃派上實(shí)現(xiàn)USB攝像頭的OpenCV顏色檢測(cè)

    在給核桃派開(kāi)發(fā)板用OpenCV讀取圖像并顯示到pyqt5的窗口上并加入顏色檢測(cè)功能,嘗試將圖像中所有藍(lán)色的東西都用一個(gè)框標(biāo)記出來(lái)。顏色檢測(cè)核心api按照慣例,先要介紹一下opencv
    發(fā)表于 01-22 10:10

    在核桃派上實(shí)現(xiàn)USB攝像頭的OpenCV顏色檢測(cè)

    在前幾周的文章中已經(jīng)介紹過(guò)如何在核桃派上OpenCV讀取圖像并顯示到pyqt5的窗口上,這里在上一篇文章的基礎(chǔ)上,給開(kāi)發(fā)板加入顏色檢測(cè)功能,嘗試將圖像中所有藍(lán)色的東西都用一個(gè)框標(biāo)記出來(lái)。
    的頭像 發(fā)表于 01-20 17:50 ?876次閱讀
    在核桃<b class='flag-5'>派上</b><b class='flag-5'>實(shí)現(xiàn)</b>USB攝像頭的<b class='flag-5'>OpenCV</b>顏色<b class='flag-5'>檢測(cè)</b>

    【EASY EAI Nano】RV1126實(shí)時(shí)讀取攝像頭并進(jìn)行yolo檢測(cè)顯示

    實(shí)現(xiàn)了三個(gè)并行模塊,分別是 攝像頭讀取,使用opencv轉(zhuǎn)換到適合大小 yolo檢測(cè) 托管到Qt進(jìn)行現(xiàn)實(shí) 檢測(cè)的DEMO從每幀10次
    發(fā)表于 01-14 18:53

    【飛騰派4G版免費(fèi)試用】飛騰派SeetafaceEngine人臉對(duì)齊(PART2)

    繼續(xù)玩飛騰派。。。 接著上一篇【飛騰派4G版免費(fèi)試用】飛騰派SeetafaceEngine人臉檢測(cè) 繼續(xù)補(bǔ)充。 FaceAlignment人臉對(duì)齊是標(biāo)出面部眼、鼻、嘴等,需要用
    發(fā)表于 12-19 09:57

    【飛騰派4G版免費(fèi)試用】飛騰派SeetafaceEngine人臉檢測(cè)

    使用的OpenCV版本是早期OpenCV–2.4.11,需手工修改為支持OpenCV-4.x版本函數(shù)。Seetaface包含 人臉檢測(cè)Fac
    發(fā)表于 12-18 10:53