使用mediapipe和OpenCV 实现简单人脸检测

该博客介绍了如何利用OpenCV和Mediapipe库进行实时的人脸检测。通过导入和配置这两个工具包,定义了一个可视化图像的函数,并展示了如何应用BlazeFace模型来检测并标记图像中的人脸。最后,代码演示了如何在图像上绘制人脸检测框和关键点,并保存处理后的图像。
摘要由CSDN通过智能技术生成
#人脸检测
# opencv
import cv2
# mediapipe ai工具包
import mediapipe as mp
# 进度条库
from tqdm import tqdm
import time
import matplotlib.pyplot as plt



# 定义一个可视化图像函数
def look_img(img):
    img_RGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    plt.imshow
    plt.show()


# 导入BlazeFace模型
mp_face_detection = mp.solutions.face_detection
model = mp_face_detection.FaceDetection(
    min_detection_confidence=0.5,  # 置信度阈值,过滤掉小于置信度的预测框
    model_selection=1,  # 选择模型,0 适用于人脸离摄像头比较近(2米内),1 适用于比较远(5米以内)
)
# 导入可视化函数以及可视化样式
mp_drawing=mp.solutions.drawing_utils
# 关键点样式
keypoint_style=mp_drawing.DrawingSpec(thickness=5,circle_radius=3,color=(0,255,0))
# 人脸预测框样式
bbox_style=mp_drawing.DrawingSpec(thickness=5,circle_radius=3,color=(255,0,0))



# 读入图像
img = cv2.imread('images/img.png')
# BGR转RGB
img_RGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 将RGB输入模型预测结果
results=model.process(img_RGB)

# 可视化人脸框和人脸关键点
annotated_image=img.copy()
for detection in results.detections:
    mp_drawing.draw_detection(annotated_image,
                              detection,
                              keypoint_drawing_spec=keypoint_style,
                              bbox_drawing_spec=bbox_style)
look_img(annotated_image)
cv2.imwrite('Test.jpg',annotated_image)

素材

处理效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值