基于opencv的简单人脸检测实现

在深度学习领域内,人脸检测技术利用卷积神经网络进行监督式学习,而现如今广泛使用的是haar算法。

该算法基于灰度图来判断人脸,简略来说是计算区域内不同像素的灰度差别来判断区域是否是人脸。

本次实验使用opencv自包含的已经训练好的人脸检测haar模型进行简单的人脸检测实现

1.环境

python:3.8

opencv2

Anaconda3

同时在如下目录找到haar模型

Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml

2.代码

导入cv2模块以及测试图片

import cv2
img = cv2.imread('human.jpg')

基于opencv的简单人脸检测实现_第1张图片

 (图片来源网络,侵删)

detector = cv2.CascadeClassifier('E:\Anaconda3\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml')
face_zone = detector.detectMultiScale(img)
for x, y, w, h in face_zone:
    cv2.rectangle(img, pt1=(x, y), pt2=(x + w, y + h), color=[0, 0, 255])

 识别效果如上

cv2.imshow('human', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

你可能感兴趣的:(opencv,计算机视觉,人工智能)