新聞中心

        EEPW首頁 > 智能計算 > 設計應用 > 基于OPENCV的相機捕捉視頻進行人臉檢測--米爾NXP i.MX93開發板

        基于OPENCV的相機捕捉視頻進行人臉檢測--米爾NXP i.MX93開發板

        作者: 時間:2024-11-08 來源:EEPW 收藏

        本篇測評由與非網的優秀測評者“eefocus_3914144”提供。

        本文引用地址:http://www.104case.com/article/202411/464467.htm

        本文將介紹基于米爾電子MYD-LMX93開發板(米爾基于NXP i.MX93開發板)的基于OpenCV的人臉檢測方案測試。

        OpenCV提供了一個非常簡單的接口,用于相機捕捉一個視頻(我用的電腦內置攝像頭)

        1、安裝python3-opencv

        apt install python3-opencv

        1731061571702409.png

        2、查看攝像頭支持的格式與分辨率

        root@debian:~# v4l2-ctl --device=/dev/video0 --list-formats-ext

        1731061593948387.png

        經測試,只能支持640*480

        為此建立opencv_test.py

        import cv2

        video = cv2.VideoCapture(0)

        1731061630649222.png

        設置相機參數

        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工具包成功實現人臉檢測與人臉識別,包括傳統視覺和深度學習方法(附完整代碼,模型下載......)_opencv人臉識別-CSDN博客

        【Haar級聯檢測器預訓練模型下載】

        opencv/opencv: Open Source Computer Vision Library (github.com)

        下載好的,在opencv-4.xdatahaarcascades文件夾下有模型,把他上傳到開發板。

        【獲取檢測人臉的圖片】

        我在百度上找到了**的圖片,并把它也上傳到開發板。

        【編寫檢測代碼】

        import numpy as np

        import cv2 as cv

        if __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)  # <class 'cv2.CascadeClassifier'>

        # 使用級聯分類器檢測人臉

        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()

        【實驗效果】

        運行程序后,可以正確地識別,效果如下:

        1731061696647682.png



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 柘城县| 瑞金市| 若羌县| 潼南县| 太康县| 万荣县| 梁河县| 增城市| 昭苏县| 特克斯县| 西城区| 烟台市| 广德县| 沂南县| 桑植县| 清丰县| 开江县| 普兰县| 六盘水市| 铜梁县| 永嘉县| 武乡县| 忻州市| 绥阳县| 鱼台县| 沭阳县| 涞水县| 于田县| 呼和浩特市| 漠河县| 平乐县| 垣曲县| 华安县| 广州市| 大方县| 巴林左旗| 安远县| 安化县| 大新县| 东源县| 广宁县|