摘要:有个粉丝小伙伴找我做一个python人脸识别的项目。他考公没有时间搞自己的毕设,找到我辅导。
你好,我是程序员小孟。
有个粉丝小伙伴找我做一个python人脸识别的项目。他考公没有时间搞自己的毕设,找到我辅导。
核心资料给大家了,大家想学习的话,可以找小孟要,搞完你可以直接搞私活,非常香。
开发周期2个周,开发费用1500,项目是给远程部署好的。
技术框架采用的是Django,他是一个web的框架, 人脸检测和特征提取,采用的是dlib。
图像处理采用的是OpenCV,数据处理采用的是NumPy,计算余弦的距离是SciPy。
•Django 4.2.17:Web 框架
•dlib:人脸检测和特征提取
•OpenCV (cv2):图像处理
•NumPy:数据处理
•SciPy:用于计算余弦距离
•HTML5
•CSS3
•JavaScript
•WebRTC:用于摄像头访问
•Canvas:用于图像捕获
•Font Awesome:图标库
•SQLite(Django 默认数据库)
项目结构:
faceRecognition/
├── faceRecognition/# 项目配置目录
│├── __init__.py
│├── settings.py# 项目设置
│├── urls.py# 主 URL 配置
│└── wsgi.py
│
├── face_recognition_app/# 应用目录
│├── migrations/# 数据库迁移文件
│├── templates/# 模板文件
││└── admin/
││├── face_recognition.html# 人脸识别页面
││└── face_registration.html# 人脸录入页面
│├── __init__.py
│├── admin.py# 管理后台配置
│├── models.py# 数据模型
│├── urls.py# 应用 URL 配置
│└── views.py# 视图函数
│
├── model/# 预训练模型目录
│├── shape_predictor_68_face_landmarks.dat
│└── dlib_face_recognition_resnet_model_v1.dat
│
└── manage.py# Django 管理脚本
核心功能模块:
#开发找小孟,微:fly996868• 使用 dlib 的预训练模型– shape_predictor_68_face_landmarks.dat:68点人脸特征点检测– dlib_face_recognition_resnet_model_v1.dat:ResNet深度学习模型,用于提取128维人脸特征向量数据模型
class FaceRecognition(models.Model):
user_id = models.CharField(max_length=100, unique=True)
name = models.CharField(max_length=100)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
feature_vector = models.BinaryField
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
人脸特征提取
def extract_features(image_data):
# 图像预处理
image = cv2.imdecode(np_array, cv2.IMREAD_COLOR)
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 人脸检测
faces = face_detector(rgb_image)
# 特征点检测
shape = shape_predictor(rgb_image, face)
# 特征向量提取
face_descriptor = face_recognizer.compute_face_descriptor(rgb_image, shape)
5.2 人脸比对
def compare_faces(feature1, feature2, threshold=0.6):
# 使用余弦距离进行特征比对
distance = cosine(feature1, feature2)
return distance
安装步骤
1. 安装依赖:
pip install django dlib opencv-python numpy scipy
1. 下载预训练模型:
• shape_predictor_68_face_landmarks.dat
• dlib_face_recognition_resnet_model_v1.dat
1. 数据库迁移:
python manage.py makemigrations
python manage.py migrate
适用场景,小区、学校、各个单位,录入人脸的才能进入,不录入人脸的就不能进入。
主要实现的功能:
1. 人脸识别
– 实时摄像头捕获
– 人脸检测
– 特征提取
– 数据库匹配
2. 人脸录入
– 人脸采集
– 特征提取
– 重复检测
– 信息录入
人脸特征提取包括:
# 图像预处理
# 人脸检测
# 特征点检测
# 特征向量提取
人脸比对的话使用余弦距离进行特征比对,越小就证明越相似。
项目演示地址:
https://www.bilibili.com/video/BV12H44zTEEH/?spm_id_from=333.1387.homepage.video_card.click&vd_source=e64f225fc5daf048d2687502cb23bb3b
详细的文档,都是免费的:
项目和文档整理不易,三连支持,文档、核心资料拿去学习。
我是程序员小孟,需要学习文档的,可以找我要。
备注:人脸资料获取
需要定制开发的也可以找我,包售后。
来源:程序员springmeng一点号
