【OpenCV实战】OpenCV实现人脸检测详解(含代码)

OpenCV中有许多可以进行人脸、人眼检测的特征文件,今天我们利用OpenCV中自带的特征文件haarcascade_frontalface_default.xml来进行人脸检测。

【OpenCV实战】OpenCV实现人脸检测“超详解”(含代码)

1、整体思路

第一:利用Python根据特征词从百度爬取人物图片
第二:训练
第三:测试,绘制框和标签

2、代码详解

2.1从百度爬取图片

本段代码实现的功能:根据特征词从百度爬取一定数量的图片

import requests
import os
import re

# word是要爬的图片名字;max_num 是要爬取的数量
word = input("请输入关
### 如何使用 MediaPipe 实现人脸识别 #### 导入所需库 为了实现人脸识别功能,首先需要导入必要的 Python 库。这包括 OpenCV 用于图像处理,NumPy 提供数组支持以及 MediaPipe 进行人脸检测。 ```python import cv2 import numpy as np import mediapipe as mp ``` #### 初始化 MediaPipe 面部网格模块 MediaPipe 的 `FaceMesh` 组件可以用来提取面部特征点并绘制这些点之间的连接线来形成完整的面部结构图。 ```python mp_face_mesh = mp.solutions.face_mesh face_mesh = mp_face_mesh.FaceMesh(static_image_mode=True, max_num_faces=1) ``` #### 加载图片并转换颜色空间 读取一张包人脸的照片,并将其从 BGR 色彩模式转为 RGB 模式以便于后续处理。 ```python image_path = "path_to_your_image.jpg" image = cv2.imread(image_path) rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) height, width, _ = rgb_image.shape ``` #### 执行人脸关键点检测 通过调用 `process()` 方法传入待处理的图像数据,从而获取到该张照片中的所有人脸信息及其对应的地标位置列表。 ```python results = face_mesh.process(rgb_image) if results.multi_face_landmarks is not None: for single_face_landmarks in results.multi_face_landmarks: landmarks = [(int(lm.x * width), int(lm.y * height)) for lm in single_face_landmarks.landmark] ``` #### 可视化结果 最后一步是在原始图像上画出识别出来的人脸轮廓线条,这样就可以直观看到检测效果了。 ```python annotated_image = image.copy() for landmark in landmarks: cv2.circle(annotated_image, landmark, radius=2, color=(0, 255, 0), thickness=-1) cv2.imshow('Face Mesh', annotated_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 以上就是利用 MediaPipe 完成人脸识别的一个简单实例[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值