debian12 stable 使用howdy实现类似windows hello的面部识别(支持红外)

最近浅浅折腾了下debian12上的面容识别解锁功能,网上能搜索到的大部分教程都不适用于debian12,所以在这里分享一下

测试平台:amd64 rog幻14 2022,理论上有相机的都可以使用

howdy的github主页:https://github.com/boltgolt/howdy

1. 安装依赖:

由于debian12的python库不允许通过pip管理,所以这里要取消掉这个限制(目前没有其他办法解决依赖问题)
# sudo mv /usr/lib/python3.x/EXTERNALLY-MANAGED /usr/lib/python3.x/EXTERNALLY-MANAGED.backup
#注意,这是不安全的选项,执行操作后将可以直接使用pip管理python库,可能会对系统造成影响

#安装python依赖库
sudo apt-get update && sudo apt-get install -y \
python3 python3-pip python3-setuptools python3-wheel \
cmake make build-essential \
libpam0g-dev libinih-dev libevdev-dev \
python3-dev libopencv-dev python3-opencv 
sudo apt reinstall python3-numpy

2.安装howdy:

howdy在debian12上release版本已经失效,需要用作者重新打包的3.0测试版及python3-dlib库,下载链接:
https://github.com/DingoBits/howdy/releases/tag/3.0.0-git20230625.c17a834

稳定版选择12 测试版选择13,选错了可能会遇到依赖问题

完成以上依赖项安装后,开始安装howdy,安装过程中可能出现下载不了以下三个文件的错误(需要科学上网),也可以手动进行下载,链接:

https://github.com/davisking/dlib-models/raw/master/dlib_face_recognition_resnet_model_v1.dat.bz2
https://github.com/davisking/dlib-models/raw/master/mmod_human_face_detector.dat.bz2
https://github.com/davisking/dlib-models/raw/master/shape_predictor_5_face_landmarks.dat.bz2

下载完成后cp到这两个路径,如果没有就创建一下,然后重新进行安装

/etc/howdy/dlib-data
/usr/lib/security/howdy/dlib-data

安装完成后终端输入howdy验证

❯ howdy
current active user: 

usage: howdy [-U USER] [--plain] [-h] [-y] command [arguments...]

Command line interface for Howdy face authentication.

positional arguments:
  command               The command option to execute, can be one of
                        the following: add, clear, config, disable,
                        list, remove, snapshot, set, test or version.
  arguments             Optional arguments for the add, disable, remove
                        and set commands.

options:
  -U USER, --user USER  Set the user account to use.
  -y                    Skip all questions.
  --plain               Print machine-friendly output.
  -h, --help            Show this help message and exit.

For support please visit
https://github.com/boltgolt/howdy
命令 描述
add 为用户添加新的面部模型
clear 删除用户的所有面部模型
config 在默认编辑器中打开配置文件
disable 禁用或启用 howdy
list 列出用户所有已保存的面部模型
remove 删除用户的特定型号
snapshot 拍摄相机输入的快照
test 测试摄像头和识别方法
version 打印当前版本号

3.安装红外摄像头驱动linux-enable-ir-emitter(没有红外摄像头略过即可)
github链接
https://github.com/EmixamPP/linux-enable-ir-emitter

#安装linux-enable-ir-emitter
wget https://github.com/EmixamPP/linux-enable-ir-emitter/releases/download/5.2.4/linux-enable-ir-emitter-5.2.4.systemd.x86-64.tar.gz
sudo tar -C / --no-same-owner -h -xzf linux-enable-ir-emitter*.tar.gz

安装完成后,执行如下命令:

sudo linux-enable-ir-emitter configure
sudo linux-enable-ir-emitter boot enable

此时红外摄像头会不停闪烁
按照终端内提示操作即可
然后复制这里的摄像头路径,后面需要用到

4.配置howdy
sudo howdy config
找到device_path = none ,将none改为刚刚复制的摄像头路径,如果是普通摄像头,一般写/dev/video0即可
sudo howdy add
添加人脸信息
sudo howdy test
弹出视频框,测试摄像头是否识别正常,如果正常识别,会有一个绿圈

5.配置完成
使用sudo 锁屏 进入tty 打开timeshift或者商店卸载软件测试是否正常调用摄像头识别。

1 个赞