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

ops/2024/11/8 20:26:36/

本篇测评由优秀测评者“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 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)  # <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()

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


http://www.ppmy.cn/ops/132023.html

相关文章

【WebRTC】视频采集模块流程的简单分析

目录 1.从摄像头获取视频帧&#xff08;CaptureInputPin::Receive()&#xff09;2.处理摄像头获取的帧&#xff08;CaptureSinkFilter::ProcessCaptureFrame())3.处理Windows层帧信息并发送到帧处理器&#xff08;VideoCaptureImpl::IncomingFrame())4.帧处理器&#xff08;Vid…

【系统架构设计师】2021年真题论文: 论面向方面的编程技术及其应用(AOP)(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2021年 试题1)解题思路面向方面的编程(AOP)技术概念和原理AOP的核心机制AOP 在软件系统开发中的应用场景AOP 应用案例分析论文素材参考真题题目(2021年 试题1) 面向过程编程是一种自顶向下的编程方…

2024MoonBit全球编程创新挑战赛参赛作品“飞翔的小鸟”技术开发指南

本文转载自 CSDN&#xff1a;https://blog.csdn.net/m0_61243965/article/details/143510089作者&#xff1a;言程序plus 实战开发基于moonbit和wasm4的飞翔的小鸟游戏 游戏中&#xff0c;玩家需要通过上下左右按键控制Bird&#xff0c;在不断移动的障碍pipe之间穿梭&#xf…

网络技术---网络通信概述

网络通信概述 网络通信概述一、网络通信的层次二、OSI七层网络模型三、TCP/IP五层模型1. 物理层1.1 物理层作用1.2 物理层概述1.3 信号调制1.4 信道复用技术 2. 数据链路层2.1 数据链路层作用2.2 点对点数据链路层三个基本问题2.3 滑动窗口协议2.4 以太网 3. 网络层3.1 概述3.2…

【Python】anancode怎么快速找到site-packages 的路径位置

在Python环境中&#xff0c;site_packages是一个特殊的目录&#xff0c;用于存放第三方库文件&#xff0c;我们所有运行的python包&#xff0c;就在这个文件夹底下。 要查找site-packages的路径&#xff0c;你可以使用以下几种方法&#xff1a; 方法1&#xff1a;使用Python解…

关于Websocket

Websocket的基本概念 Websocket是一个“应用层协议”&#xff0c;和HTTP地位是对等的。都是基于传输层的TCP实现的一个广泛被使用的应用层协议。这个协议可以实现服务器主动给客户端推送数据这样的功能。 websocket报文格式 简单了解一下Websocket的报文格式&#xff1a; FIN表…

[ 杂谈 ] 浅谈网络安全学习和职场成功之路及招聘网站的重要性

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

宠护将功能猫条:纯净营养,守护爱宠健康

在如今这个宠物用品琳琅满目的时代&#xff0c;选择一款适合猫咪的猫条并非易事。许多品牌为了追求口感和保质期&#xff0c;不惜在产品中添加各种防腐剂、肉粉、色素和诱食剂。这些成分不仅对猫咪的健康无益&#xff0c;甚至可能带来潜在的危害。 在这个背景下&#xff0c;宠…