回答

收藏

【米尔-NXP iMX9系列开发板试用评测】8 基于opencv的人脸检测

NXP NXP 2206 人阅读 | 0 人回复 | 2024-07-03

【前言】
要实现人脸识别功能,首先要进行人脸检测,判断出图片中人脸的位置,才能进行下一步的操作。
OpenCV人脸检测方法
在OpenCV中主要使用了两种特征(即两种方法)进行人脸检测,Haar特征和LBP特征。用的最多的是Haar特征人脸检测,此外OpenCV中还集成了深度学习方法来实现人脸检测。

【参考资料】
使用OpenCV工具包成功实现人脸检测与人脸识别,包括传统视觉和深度学习方法(附完整代码,模型下载......)_opencv人脸识别-CSDN博客
Haar级联检测器预训练模型下载】
opencv/opencv: Open Source Computer Vision Library (github.com)
下载好的,在opencv-4.x\data\haarcascades文件夹下有模型,把他上传到开发板。

【获取检测人脸的图片】
我在百度上找到了**的图片,并把他也上传到开发板。
【编写检测代码】
  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.     # 加载 Haar 级联分类器 预训练模型
  9.     model_path = "haarcascade_frontalface_alt2.xml"
  10.     face_detector = cv.CascadeClassifier(model_path)  # <class 'cv2.CascadeClassifier'>
  11.     # 使用级联分类器检测人脸
  12.     faces = face_detector.detectMultiScale(img, scaleFactor=1.1, minNeighbors=1,
  13.                                            minSize=(30, 30), maxSize=(300, 300))
  14.     print(faces.shape)  # (17, 4)
  15.     print(faces[0])  # (x, y, width, height)

  16.     # 绘制人脸检测框
  17.     for x, y, width, height in faces:
  18.         cv.rectangle(img, (x, y), (x + width, y + height), (0, 0, 255), 2, cv.LINE_8, 0)
  19.     # 显示图片
  20.     cv.imshow("faces", img)
  21.     cv.waitKey(0)
  22.     cv.destroyAllWindows()
复制代码
【实验效果】
运行程序后,可以正确的识别,效果如下:


分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条