本文將介紹基于米爾電子MYD-LMX93開發板(米爾基于NXP i.MX93開發板)的基于OpenCV的人臉檢測方案測試。
OpenCV提供了一個非常簡單的接口,用于相機捕捉一個視頻(我用的電腦內置攝像頭)
1、安裝python3-opencv
apt install python3-opencv
(左右移動查看全部內容)
2、查看攝像頭支持的格式與分辨率
root@debian:~# v4l2-ctl --device=/dev/video0 --list-formats-ext
(左右移動查看全部內容)
經測試,只能支持640*480,為此建立opencv_test.py
import cv2video = cv2.VideoCapture(0)
(左右移動查看全部內容)
設置相機參數
video .set(cv2.CAP_PROP_FRAME_WIDTH, 1280)video .set(cv2.CAP_PROP_FRAME_HEIGHT, 720)while True: ret, frame = video.read() cv2.imshow("A video", frame)c = cv2.waitKey(1)if c == 27: breakvideo.release()cv2.destroyAllWindows()
(左右移動查看全部內容)
保存后執行”python3 opencv_test.py
OpenCV裝好后,可以為后面的人臉檢測提供可行性。
要實現人臉識別功能,首先要進行人臉檢測,判斷出圖片中人臉的位置,才能進行下一步的操作。
OpenCV人臉檢測方法
在OpenCV中主要使用了兩種特征(即兩種方法)進行人臉檢測,Haar特征和LBP特征。用得最多的是Haar特征人臉檢測,此外OpenCV中還集成了深度學習方法來實現人臉檢測。
參考資料
使用OpenCV工具包成功實現人臉檢測與人臉識別,包括傳統視覺和深度學習方法(附完整代碼,模型下載......)
Haar級聯檢測器預訓練模型下載
opencv/opencv: Open Source Computer Vision Library (github.com)
下載好的,在opencv-4.xdatahaarcascades文件夾下有模型,把他上傳到開發板。
獲取檢測人臉的圖片
我在百度上找到了**的圖片,并把它也上傳到開發板。
編寫檢測代碼
import numpy as npimport cv2 as cvif __name__ == '__main__': # (6) 使用 Haar 級聯分類器 預訓練模型 檢測人臉 # 讀取待檢測的圖片 img = cv.imread("yanmi.jpg") print(img.shape) # 加載 Haar 級聯分類器 預訓練模型 model_path = "haarcascade_frontalface_alt2.xml" face_detector = cv.CascadeClassifier(model_path) # # 使用級聯分類器檢測人臉 faces = face_detector.detectMultiScale(img, scaleFactor=1.1, minNeighbors=1, minSize=(30, 30), maxSize=(300, 300)) print(faces.shape) # (17, 4) print(faces[0]) # (x, y, width, height) # 繪制人臉檢測框 for x, y, width, height in faces: cv.rectangle(img, (x, y), (x + width, y + height), (0, 0, 255), 2, cv.LINE_8, 0) # 顯示圖片 cv.imshow("faces", img) cv.waitKey(0) cv.destroyAllWindows()
(左右移動查看全部內容)
實驗效果
運行程序后,可以正確地識別,效果如下:
-
開發板
+關注
關注
25文章
5503瀏覽量
102204 -
OpenCV
+關注
關注
32文章
642瀏覽量
42421 -
米爾電子
+關注
關注
0文章
134瀏覽量
715
發布評論請先 登錄
米爾NXP i.MX 93開發板的Qt開發指南

【新品體驗】正點原子i.MX93開發板免費試用
【正點原子i.MX93開發板試用連載體驗】第一篇:開箱
【正點原子i.MX93開發板試用連載體驗】第二篇:細節評測
如何用OpenCV的相機捕捉視頻進行人臉檢測--基于米爾NXP i.MX93開發板
米爾NXP i.MX 93開發板限量6折!賦能入門級邊緣處理市場

評論