从数人到考勤 技术笔记

从数人到考勤

如果照片不被遮挡、正面照片,是否可以用来考勤呢?

1、很简单的一段代码

import face_recognition  
import os  
  
# 加载学生大头照数据库  
known_faces = []  
known_names = []  
students_dir = 'students_photos'  # 假设学生照片存储在这个目录下  
for name in os.listdir(students_dir):  
    student_photo = face_recognition.load_image_file(f"{students_dir}/{name}")  
    student_encoding = face_recognition.face_encodings(student_photo)[0]  
    known_faces.append(student_encoding)  
    known_names.append(name.split('.')[0])  # 假设文件名是“张三.jpg”形式  
  
# 加载并处理输入照片  
input_photo = face_recognition.load_image_file("input_photo.jpg")  
face_locations = face_recognition.face_locations(input_photo)  
face_encodings = face_recognition.face_encodings(input_photo, face_locations)  
  
# 面部识别并输出结果  
face_names = []  
for face_encoding in face_encodings:  
    matches = face_recognition.compare_faces(known_faces, face_encoding)  
    name = "Unknown"  
    if True in matches:  
        first_match_index = matches.index(True)  
        name = known_names[first_match_index]  
    face_names.append(name)  
  
# 输出结果  
print(f"照片中学生总数: {len(face_names)}")  
print(f"学生名单: {', '.join(face_names)}")

2、每次考勤都要使用jupyter这样的环境吗?

  所以应该改成小程序,拍照,计算人数,生成考勤名单。
  该小程序应该与学习通中一样,可以手工考勤,标记学生迟到、请假、正常点到。

未完待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值