littlebot
Published on 2025-04-13 / 1 Visits
0

【源码】基于PyTorch框架的MTCNN人脸检测系统

项目简介

本项目借助多任务级联卷积神经网络(MTCNN)达成人脸检测功能。MTCNN作为深度学习模型,综合考虑人脸检测概率、人脸边框回归以及面部关键点检测,通过多任务同时建立损失函数并训练,实现高效准确的人脸检测。

项目的主要特性和功能

  1. 人脸多任务检测:可同时完成人脸检测、人脸边框回归和面部关键点检测。
  2. 图像金字塔处理:构建图像金字塔,处理不同尺寸的人脸,提升检测的适用性。
  3. 两种检测方式:支持静态图像检测和摄像头实时检测,满足不同场景需求。
  4. 归一化操作:将图像归一化到 [-1, 1] 区间,加快收敛速度。

安装使用步骤

环境准备

安装Python和PyTorch框架,保证PyTorch版本与代码兼容。

依赖安装

使用pip安装opencv-python、PIL等必要依赖包。

代码运行

静态图像检测

参考以下代码示例: ```python from src import FaceDetector from PIL import Image

detector = FaceDetector()

image = Image.open("./images/face_1.jpg")

bboxes, landmarks = detector.detect(image)

drawed_image = detector.draw_bboxes(image) drawed_image.save("./images/drawed_image.jpg") drawed_image.show()

```

摄像头实时检测

参考以下代码示例: ```python import cv2 from src import FaceDetector from PIL import Image import numpy as np

detector = FaceDetector()

def camera_detect(): video = cv2.VideoCapture(0) while True: ret, frame = video.read()

    pil_im = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
    drawed_pil_im = detector.draw_bboxes(pil_im)
    frame = cv2.cvtColor(np.asarray(drawed_pil_im), cv2.COLOR_RGB2BGR)

    cv2.imshow("Face Detection", frame)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

video.release()
cv2.destroyAllWindows()

if name == "main": camera_detect() ```

结果查看

对于静态图像检测,可查看保存的标注图像;对于摄像头实时检测,可在屏幕上查看检测结果。

注意:本项目假设用户已经下载了本项目的源码文件,并具备运行Python代码的环境。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】