Skip to content

smk462/Smile2Unlock

 
 

Repository files navigation

logo

Smile2Unlock

帮助无"windows Hello"摄像头的电脑,在开机/解锁时,进行人脸识别

Platform Win GPLv3 v1.0.0

注意

本分支推荐普通用户使用,相对足够方便和安全,如果您注重更高安全性,希望接入windows登录密码凭据系统,请移步CredentialProvider分支。

支持

  • 人脸识别
  • 侧脸识别
  • 活体检测(防止照片解锁)
  • 备用解锁方式(可关闭)
  • 数据持久化
  • 开机自启/解锁自启
  • 多用户识别
202406101920647

运行时,键鼠将禁止使用(防止任务管理器退出),必须在一分钟内人脸识别成功(每0.5秒一次检测,共120次),自动解锁,否则锁定计算机。

上图为透明度为0.5时,显示屏状态,透明度可调。

此外,本程序在人脸识别时并不会展示当前人脸,正如上图,您可以根据需求自行修改代码。

如何使用

您可以手动git clone本项目,并按以下步骤安装必备库,或直接前往release界面使用已经打包好的exe程序

1.安装

由于环境错综复杂,本项目也不提供requirements.txt

推荐按照以下步骤使用

1.创建 conda 环境

conda create -n Smile2Unlock python=3.11.9 -y

2.通过 conda 安装 dlib

conda install dlib=19.24.4 -c conda-forge -y

3.通过 pip 安装其他必要库

pip install cmake==3.29.3 face_recognition opencv-contrib-python==4.9.0.80 pynput screeninfo numpy==1.26.4 torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 

总结:该版本测试成功,仅供参考:

python=3.11.9		创建conda指定版本,推荐该版本
cmake=3.29.3		最新版皆可,无严格版本限制
dlib=19.24.4		特殊的,只有此库使用conda安装
face-recognition=1.3.0
opencv-contrib-python=4.9.0.80
pynput=1.7.7
screeninfo=0.8.1
torch=2.2.2
torchaudio=2.2.2
torchvision=0.17.2
numpy=1.26.4

2. 导入自身人脸数据

在进入conda环境后,运行 python generate_db.py 在gui界面录入即可

本流程仅需一次,如改人脸需要删除,在db文件夹下直接删除即可。

3. 尝试启动

如果您仅需运行程序,使用 python smile2unlock_entry.py 而如果您想生成本地可执行文件,请自行修改smile2unlock_entry.bat 文件

可以直接运行,查看效果

4. 加入开机自启

参考windows锁屏时启动某个程序(使用win任务计划库)_windows 计划任务 用户登录时运行 锁屏状态执行吗-CSDN博客

202406102010831

值得注意的是 请务必指定bat文件夹路径(在“起始于”中填写文件夹)

202406102005548

完成后,您可以在右侧运行中尝试运行。

5. 其他

您可以在config.json中启动特殊按键,1为启动(默认),0为关闭,当开启时,你可以按下“分钟的十分位”来强制关闭人脸识别,比如“20:13”可以按数字“1”。

如果您有任何不理解的地方,请加入QQ群:702645243。

您可以在config.json中设置透明度,1为完全透明,0为完全不透明,默认0.5

6.打包

pyinstaller --clean --noconfirm .\smile2unlock.spec

项目结构

|----config.json			配置json,自动生成
|----config.py				配置程序
|----db\					人脸数据库
|----smile2unlock_entry.bat			最后导入计划库的可执行程序
|----smile2unlock_entry.py			检测程序,项目核心程序  程序入口!!!
|----generate_db.py		录入程序,项目核心程序
|----hook.py				使用tk生成透明白布,并禁用键鼠
|----log\ 					日志文件
|----logger.py				生成日志程序
|----login.py				登录程序
|----README.md			README
|----resources\			第三方人脸识别资源文件
|----src\					第三方人脸识别资源文件

流程图

1.generate_db.py <img width="458" height="655" alt="202406102023562" src="https://github.com/user-attachments/assets/482650f0-8b26-402c-849a-c199e970a405" />

2.smile2unlock_entry.py <img width="1571" height="2257" alt="202406102024455" src="https://github.com/user-attachments/assets/cfe6ca65-2ba5-4f6c-acf5-773d4c554767" />

参考

Yiqingde/Lock-Unlock-Laptop-PC-Screen-Using-Face-Recognition-Opencv-Tensorflow

saksham-jain/Lock-Unlock-Laptop-PC-Screen-Using-Face-Recognition (github.com)

computervisioneng/face-attendance-system (github.com)

minivision-ai/Silent-Face-Anti-Spoofing: 静默活体检测(Silent-Face-Anti-Spoofing(github.com)

About

为不支持windows Hello的摄像头 提供人脸识别解锁电脑

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 99.5%
  • Batchfile 0.5%