# 简介

Howdy 为 Linux 提供 Windows Hello 风格的身份验证。
使用内置红外发射器和摄像头与面部识别相结合来证明您是谁。

使用中央身份验证系统 (PAM),这可以在您需要密码的任何地方使用:登录、锁定屏幕、sudo、su 等。

# 安装前提

确保 pypigithub 访问正常

# 安装 (Ubuntu)

sudo add-apt-repository ppa:boltgolt/howdy
sudo apt update
sudo apt install howdy

在安装过程中会有如下 3 个选项可供选择:
F:Fast 快速
B:Balanced 平衡
S:Securs 安全

# 查看所有摄像头设备

在大多数 Linux 系统中, /dev/video* 为摄像头设备。

ls /dev/video*
# /dev/video0  /dev/video1  /dev/video2  /dev/video3
# thinkbook 中 video0 为红外相机

# 配置 Howdy

sudo howdy config

查找以 device_path 开头的行,将其改为 /dev/video0 或你摄像头的实际路径。

[video]
# ...
# The path of the device to capture frames from
# Should be set automatically by an installer if your distro has one
device_path = /dev/video0

# 添加面部模型记录

通过以下命令将人脸与特定 username 用户相关联:

sudo howdy -U username add

配置好后 Howdy 就会随系统启动而自动启动,你可以在下次登录时就自动通过人脸设别登录。
在其它要验证权限的时候,Howdy 也可以直接免密授权,例如执行 sudo 提权时。

# 其他

# 添加面部模型记录
sudo howdy add
sudo howdy -U username add
# 编辑配置
sudo howdy config
# 查看面部模型记录
sudo howdy list
# 删除指定 ID 的面部记录
sudo howdy remove <face_ID>
# 清除所有面部模型记录
sudo howdy clear
# 禁用 Howdy 功能
sudo howdy disable 1
# 启用 Howdy 功能
sudo howdy disable 0
# 保存快照
sudo howdy snapshot
# 测试摄像头是否能找到面部 (Ctrl+C 取消)
sudo howdy test
# 查看版本
sudo howdy version

# 错误

# 在添加面部模型时

Traceback (most recent call last):
  File "/usr/local/bin/howdy", line 95, in <module>
    import cli.add
  File "/usr/lib/security/howdy/cli/add.py", line 48, in <module>
    face_encoder = dlib.face_recognition_model_v1(path + "/../dlib-data/dlib_face_recognition_resnet_model_v1.dat")
RuntimeError: Unable to open /usr/lib/security/howdy/cli/../dlib-data/dlib_face_recognition_resnet_model_v1.dat for reading.

原因:因网络或其他问题导致的模型数据缺失

解决方法:重新安装模型数据

cd /usr/lib/security/howdy/dlib-data
./install.sh

# 参考

Howdy— 适用于 Linux 系统的人脸识别身份验证,安装和配置指南
RuntimeError: Unable to open /usr/lib/security/howdy/cli/…/dlib-data/dlib_face_recognition_resnet_model_v1.dat for reading.