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

发布时间:2024-11-15 18:00    发布者:swiftman
关键词: NXP , i.MX93 , 嵌入式 , 开发板 , 人脸识别
本篇测评由优秀测评者“eefocus_3914144”提供。

本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXP i.MX93开发板)的基于OpenCV的人脸检测方案测试。
OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置摄像头)
1、安装python3-opencv
  1. apt install python3-opencv
复制代码

2、查看摄像头支持的格式与分辨率
  1. root@debian:~# v4l2-ctl --device=/dev/video0 --list-formats-ext
复制代码

经测试,只能支持640*480
为此建立opencv_test.py
  1. import cv2
  2. video = cv2.VideoCapture(0)
复制代码

设置相机参数
video .set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
video .set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
  1. while True:
  2.     ret, frame = video.read()
  3.     cv2.imshow("A video", frame)
  4. c = cv2.waitKey(1)
  5. if c == 27:
  6.     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文件夹下有模型,把他上传到开发板。
【获取检测人脸的图片】
我在百度上找到了**的图片,并把它也上传到开发板。
【编写检测代码】
  1. import numpy as np
  2. import cv2 as cv

  3. if __name__ == '__main__':
  4.     # (6) 使用 Haar 级联分类器 预训练模型 检测人脸
  5.     # 读取待检测的图片
  6.     img = cv.imread("yanmi.jpg")
  7.     print(img.shape)
  8.    
  9.     # 加载 Haar 级联分类器 预训练模型
  10.     model_path = "haarcascade_frontalface_alt2.xml"
  11.     face_detector = cv.CascadeClassifier(model_path)  #
  12.     # 使用级联分类器检测人脸
  13.     faces = face_detector.detectMultiScale(img, scaleFactor=1.1, minNeighbors=1,
  14.                                              minSize=(30, 30), maxSize=(300, 300))
  15.     print(faces.shape)  # (17, 4)
  16.     print(faces[0])  # (x, y, width, height)
  17.    
  18.     # 绘制人脸检测框
  19.     for x, y, width, height in faces:
  20.         cv.rectangle(img, (x, y), (x + width, y + height), (0, 0, 255), 2, cv.LINE_8, 0)
  21.      # 显示图片
  22.      cv.imshow("faces", img)
  23.      cv.waitKey(0)
  24.      cv.destroyAllWindows()
复制代码

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



本文地址:https://www.eechina.com/thread-876734-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 使用SAM-IoT Wx v2开发板演示AWS IoT Core应用程序
  • 使用Harmony3加速TCP/IP应用的开发培训教程
  • 集成高级模拟外设的PIC18F-Q71家族介绍培训教程
  • 探索PIC16F13145 MCU系列——快速概览
  • 贸泽电子(Mouser)专区

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表