
<p style="text-align:center;"> </p><p> </p><p>本文将介绍基于米尔电子MYD-LMX93开发板(米尔基于NXP i.MX93开发板)的基于OpenCV的人脸检测方案测试。</p><p>OpenCV提供了一个非常简单的接口,用于相机捕捉一个视频(我用的电脑内置摄像头)<br />1、安装python3-opencv<br /> </p><ul><li> </li></ul><p>apt install python3-opencv</p><p><br />2、查看摄像头支持的格式与分辨率<br /> </p><ul><li> </li></ul><p>root@debian:~# v4l2-ctl --device=/dev/video0 --list-formats-ext</p><img src='https://file1.elecfans.com//web1/M00/F4/78/wKgZoWcsL4-AM6RdAAErxudPeCA931.png' alt='米尔电子' /><p>经测试,只能支持640*480</p><p>为此建立opencv_test.py</p><ul><li> </li><li> </li></ul><p>import cv2video = cv2.VideoCapture(0)</p><p>video .set(cv2.CAP_PROP_FRAME_WIDTH, 1280)</p><p>video .set(cv2.CAP_PROP_FRAME_HEIGHT, 720)</p><ul><li> </li><li> </li><li> </li><li> </li><li> </li><li> </li></ul><p>while True: ret, frame = video.read() cv2.imshow("A video", frame)c = cv2.waitKey(1)if c == 27: breakvideo.release()cv2.destroyAllWindows()</p><p>保存后执行”python3 opencv_test.py</p><img src='https://file1.elecfans.com//web1/M00/F4/78/wKgZoWcsL4-AFROqAAv-GLJniFc701.png' alt='米尔电子' /><p>OpenCV装好后,可以为后面的人脸检测提供可行性。</p><p><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">要实现人脸识别功能,首先要进行人脸检测,判断出图片中人脸的位置,才能进行下一步的操作。</span></p><p><span style="background-color:rgb(255,255,255);color:rgb(33,81,153);"><strong>OpenCV人脸检测方法</strong></span></p><p><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">在OpenCV中主要使用了两种特征(即两种方法)进行人脸检测,Haar特征和LBP特征。用得最多的是Haar特征人脸检测,此外OpenCV中还集成了深度学习方法来实现人脸检测。</span><br /><br /><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">【参考资料】</span><br />使用OpenCV工具包成功实现人脸检测与人脸识别,包括传统视觉和深度学习方法(附完整代码,模型下载......)_opencv人脸识别-CSDN博客</p><p><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">【</span><span style="background-color:rgb(255,255,255);color:rgb(79,79,79);">Haar级联检测器预训练模型下载】</span><br />opencv/opencv: Open Source Computer Vision Library (github.com)<br /><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">下载好的,在</span>opencv-4.xdatahaarcascades<span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">文件夹下有模型,把他上传到开发板。</span><br /> </p><p style="text-align:center;"><img src='https://file1.elecfans.com//web1/M00/F4/78/wKgZoWcsL5CAPvDIAAZWSF2UhDI324.png' alt='米尔电子' /></p><p><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">【获取检测人脸的图片】</span><br /><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">我在百度上找到了的图片,并把它也上传到开发板。</span></p><p><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">【编写检测代码】</span><br /> </p><p>import numpy as npimport cv2 as cv<br />if __name__ == '__main__': # (6) 使用 Haar 级联分类器 预训练模型 检测人脸 # 读取待检测的图片 img = cv.imread("yanmi.jpg") print(img.shape)<br /># 加载 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)<br /># 绘制人脸检测框 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()</p><p><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">【实验效果】</span><br /><span style="background-color:rgb(255,255,255);color:rgb(51,51,51);">运行程序后,可以正确地识别,效果如下:</span><br /> </p><p><img src='https://file1.elecfans.com//web1/M00/F4/78/wKgZoWcsL5CAN_hQAAfAp79cB-Q004.png' alt='米尔电子' /></p><p style="text-align:center;"><img src='https://file1.elecfans.com//web1/M00/F4/78/wKgZoWcsL5CAK-ttABUzXtvWjfM570.png' alt='米尔电子' /></p><p> </p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/197749.html