从数人到考勤
如果照片不被遮挡、正面照片,是否可以用来考勤呢?
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这样的环境吗?
所以应该改成小程序,拍照,计算人数,生成考勤名单。
该小程序应该与学习通中一样,可以手工考勤,标记学生迟到、请假、正常点到。
未完待续。。。。。。