基于OpenCV的相机捕捉视频进行人脸检测--米尔NXP i.MX93开发板

本篇测评由优秀测评者"eefocus_3914144"提供。

本文将介绍基于米尔电子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 cv2
video = 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工具包成功实现人脸检测与人脸识别,包括传统视觉和深度学习方法(附完整代码,模型下载......)_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()

【实验效果】

运行程序后,可以正确地识别,效果如下:

相关推荐
学习前端的小z3 分钟前
【GPTs】Front-end Expert:助力前端开发的智能工具
人工智能·gpt·chatgpt·aigc
使者大牙16 分钟前
【LLM学习笔记】第四篇:模型压缩方法——量化、剪枝、蒸馏、分解
人工智能·深度学习·算法·机器学习
Matlab程序猿小助手17 分钟前
【MATLAB源码-第222期】基于matlab的改进蚁群算法三维栅格地图路径规划,加入精英蚁群策略。包括起点终点,障碍物,着火点,楼梯。
开发语言·人工智能·算法·matlab·机器人·无人机
相醉为友17 分钟前
006 单片机嵌入式中的C语言与代码风格规范——常识
c语言·单片机·嵌入式硬件
岛屿旅人19 分钟前
2025-2026财年美国CISA国际战略规划(下)
网络·人工智能·安全·web安全·网络安全
卧式纯绿22 分钟前
自动驾驶3D目标检测综述(三)
人工智能·python·深度学习·目标检测·3d·cnn·自动驾驶
不朽の燃梦44 分钟前
OpenCV图像视频分析(1)
opencv·计算机视觉·音视频
ZOMI酱1 小时前
【AI系统】GPU 架构回顾(从2018年-2024年)
人工智能·架构
土豆炒马铃薯。2 小时前
【深度学习】Pytorch 1.x 安装命令
linux·人工智能·pytorch·深度学习·ubuntu·centos
阿_旭2 小时前
【超全】目标检测模型分类对比与综述:单阶段、双阶段、有无锚点、DETR、旋转框
人工智能·深度学习·目标检测·分类