Ubuntu安装人脸识别Howdy-源码安装-中文汉化
Ubuntu安装人脸识别Howdy-源码安装
📖 前言
Howdy 是一个为 Linux 系统提供类似 Windows Hello™ 面部识别认证的工具。通过红外摄像头和面部识别技术,可以实现快速、便捷的身份验证,支持登录、锁屏、sudo 等场景。
本文将详细介绍如何在 Ubuntu 系统上从源码安装 Howdy,并配置完整的中文界面支持。
✨ 特性介绍
- ✅ Windows Hello 风格认证 - 类似 Windows 的面部识别体验
- ✅ PAM 集成 - 支持登录、sudo、su 等所有认证场景
- ✅ 完整中文支持 - CLI、GTK 界面、PAM 模块全面汉化
- ✅ 高安全性 - 使用 dlib 深度学习模型,难以欺骗
- ✅ 开源免费 - MIT 许可证,完全开源
📋 系统要求
硬件要求
- 红外摄像头或者普通摄像头也行
- 内存 - 至少 2GB RAM
软件要求
- 操作系统 - Ubuntu 20.04/22.04/24.04 或其他 Debian 系发行版
- Python - 3.6 或更高版本
- 编译器 - GCC/G++
- 构建工具 - Meson、Ninja
🔧 一、安装依赖
1.1 更新系统
sudo apt update
sudo apt upgrade -y
1.2 安装基础依赖
sudo apt install -y \
python3 python3-pip python3-setuptools python3-wheel \
cmake make build-essential \
libpam0g-dev libinih-dev libevdev-dev \
python3-opencv python3-dev libopencv-dev \
gettext pkg-config
1.3 安装 Meson 和 Ninja
# 方法一:使用 pip 安装(推荐)
pip3 install meson ninja
# 方法二:使用 apt 安装
sudo apt install -y meson ninja-build
验证安装:
meson --version
ninja --version
📥 二、下载源码
2.1 克隆仓库
# 从 Gitee 克隆(国内推荐)
git clone https://gitee.com/fish--big/howdy_zh_-cn.git
cd howdy_zh_-cn
# 或者从 GitHub 克隆
# git clone https://github.com/boltgolt/howdy.git
# cd howdy
2.2 查看项目结构
ls -la
应该看到以下主要文件和目录:
howdy/ # 核心模块
howdy-gtk/ # GTK 图形界面
scripts/ # 部署脚本
README_zh_CN.md # 中文文档
🏗️ 三、编译安装
3.1 配置构建
# 创建构建目录并配置
meson setup build --prefix=/usr --buildtype=release
参数说明:
--prefix=/usr- 安装到系统目录--buildtype=release- 发布模式(优化性能)
3.2 编译
meson compile -C build
⚠️ 注意:dlib 的编译可能需要较长时间(5-15分钟),并且在 100% 处可能停留一段时间,请耐心等待。
3.3 安装
sudo meson install -C build
这里安装失败大概了是meson和sudo meson的版本不同,下面的方法可以解决
sudo "$(which meson)" install -C build
3.4 验证安装
# 检查命令是否可用
which howdy
# 查看版本
howdy version
# 查看帮助
howdy --help
🌏 四、配置中文界面
本项目已完整汉化,包括 CLI 命令行、GTK 界面和 PAM 模块。
4.1 设置语言环境
# 临时设置
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
# 永久设置(添加到 ~/.bashrc)
echo 'export LANG=zh_CN.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=zh_CN.UTF-8' >> ~/.bashrc
source ~/.bashrc
4.2 部署翻译文件
项目提供了两个自动化脚本来简化部署:
方法一:快速部署(推荐)
sudo ./scripts/deploy_zh.sh
方法二:完整部署(带详细诊断)
sudo ./scripts/install_zh_translations.sh
4.3 验证中文界面
# 测试帮助命令
sudo howdy --help
# 测试列表命令
sudo howdy list
如果看到中文输出,说明配置成功!✅
📷 五、硬件配置
5.1 查看摄像头设备
# 列出所有视频设备
v4l2-ctl --list-devices
输出示例:
Integrated Camera: Integrated C (usb-0000:00:14.0-5):
/dev/video0
/dev/video1
USB Camera: USB Camera (usb-0000:00:14.0-8):
/dev/video2
/dev/video3
💡 提示:通常
/dev/video0是主摄像头,红外摄像头可能是/dev/video1或其他编号。
5.2 配置摄像头路径
# 打开配置文件
sudo howdy config
在配置文件中找到并修改:
# The path of the device to capture frames from
# Video devices are usually found in /dev/v4l/by-path/
device_path = /dev/video0
将 device_path 设置为您的红外摄像头设备路径。
使用稳定路径(推荐)
# 查看稳定的设备路径
ls -l /dev/v4l/by-path/
输出示例:
pci-0000:00:14.0-usb-0:5:1.0-video-index0 -> ../../video0
pci-0000:00:14.0-usb-0:5:1.0-video-index1 -> ../../video1
在配置文件中使用稳定路径:
device_path = /dev/v4l/by-path/pci-0000:00:14.0-usb-0:5:1.0-video-index0
这样可以避免设备重启后路径变化的问题。
🧪 六、测试与添加面部模型
6.1 测试摄像头
# 测试摄像头和识别
sudo howdy test
这个命令会:
- 打开摄像头预览
- 尝试识别您的面部
- 显示识别结果和置信度
⚠️ 重要提示:务必执行此测试!如果配置不正确,可能会导致系统锁定。
6.2 添加面部模型
# 添加面部模型
sudo howdy add
按照提示操作:
- 输入模型标签:例如 “默认”、“戴眼镜”、“晚上” 等
- 直视摄像头:保持头部稳定,不要移动
- 等待捕获:系统会捕获多帧图像
- 生成模型:自动创建面部识别模型
可以添加多个模型以提高识别率:
# 添加不同光线条件下的模型
sudo howdy add
# 标签:白天
sudo howdy add
# 标签:晚上
sudo howdy add
# 标签:戴眼镜
6.3 管理面部模型
# 列出所有模型
sudo howdy list
# 删除特定模型(ID 从 list 命令获取)
sudo howdy remove <ID>
# 清除所有模型
sudo howdy clear
🔐 七、PAM 权限配置
7.1 配置 sudo 认证
编辑 /etc/pam.d/sudo:
sudo nano /etc/pam.d/sudo
在文件开头添加:
auth sufficient pam_howdy.so
完整示例:
#%PAM-1.0
auth sufficient pam_howdy.so
auth include @common-auth
account include @common-account
session include @common-session
session include @common-session-noninteractive
7.2 配置登录认证(Debian/Ubuntu)
编辑 /etc/pam.d/common-auth:
sudo nano /etc/pam.d/common-auth
确保包含以下内容:
# here are the per-package modules (the "Primary" block)
auth [success=3 default=ignore] pam_howdy.so
auth [success=2 default=ignore] pam_unix.so nullok try_first_pass
auth [success=1 default=ignore] pam_sss.so use_first_pass
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth optional pam_cap.so
# end of pam-auth-update config
关键配置说明:
pam_howdy.so应该在pam_unix.so之前[success=3 default=ignore]表示如果 Howdy 认证成功,跳过后面 3 行- 如果 Howdy 失败,会继续尝试密码认证
7.3 配置登录管理器
GDM(GNOME)
编辑 /etc/pam.d/gdm-password:
sudo nano /etc/pam.d/gdm-password
添加:
auth sufficient pam_howdy.so
auth substack password-auth
SDDM(KDE)
编辑 /etc/pam.d/sddm:
sudo nano /etc/pam.d/sddm
添加:
auth sufficient pam_howdy.so
auth include system-auth
⚙️ 八、高级配置
8.1 编辑配置文件
sudo howdy config
8.2 常用配置项
[core]
# 认证超时时间(秒)
timeout = 4
# 识别置信度阈值(0.0-1.0,越低越宽松)
certainty = 3.5
# 是否在工作时禁用(防止误触发)
disable_when_closed = true
# 日志级别(0=无,1=错误,2=警告,3=信息)
log_level = 2
[video]
# 摄像头设备路径
device_path = /dev/video0
# 帧宽度
frame_width = 400
# 帧高度
frame_height = 400
# 曝光补偿
exposure = -6
[behavior]
# 认证成功后是否播放声音
sound = false
# 是否在终端显示通知
notification = true
8.3 禁用/启用 Howdy
# 临时禁用 Howdy
sudo howdy disable 1
# 重新启用 Howdy
sudo howdy disable 0
# 检查当前状态
sudo howdy disable
🎨 九、GTK 图形界面(可选)
如果安装了 howdy-gtk,可以使用图形界面进行配置:
sudo howdy-gtk
提供功能:
- 📷 摄像头配置
- 👤 面部模型管理
- ⚙️ 设置调整
- 🧪 实时测试
❓ 十、常见问题
Q1: 为什么还是显示英文?
解决方法:
# 1. 检查语言环境
locale | grep LANG
# 2. 设置中文环境
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
# 3. 重新部署翻译
sudo ./scripts/deploy_zh.sh
# 4. 清除缓存
sudo find /usr/lib/x86_64-linux-gnu/howdy/ -name "*.pyc" -delete
sudo find /usr/lib/x86_64-linux-gnu/howdy/ -name "__pycache__" -type d -exec rm -rf {} +
Q2: 摄像头无法打开
解决方法:
# 1. 检查设备是否存在
ls -l /dev/video*
# 2. 检查权限
sudo chmod 666 /dev/video0
# 3. 测试摄像头
ffplay /dev/video0
# 4. 检查是否有其他程序占用
sudo lsof /dev/video0
Q3: 识别失败或超时
解决方法:
# 1. 降低置信度阈值(更容易识别)
sudo howdy config
# 修改 certainty = 3.5 为 certainty = 2.5
# 2. 增加超时时间
# 修改 timeout = 4 为 timeout = 6
# 3. 重新添加面部模型(在不同光线下)
sudo howdy add
# 4. 检查日志
tail -f /var/log/auth.log
Q4: 系统锁定无法登录
紧急恢复方法:
# 1. 切换到 TTY(Ctrl+Alt+F2)
# 2. 登录并禁用 Howdy
sudo howdy disable 1
# 3. 或者从恢复模式启动
# 4. 或者使用 Live USB 挂载系统分区
# 5. 编辑 PAM 配置文件,注释掉 pam_howdy.so 行
⚠️ 预防建议:始终保留一个 root 终端会话,直到确认 Howdy 工作正常。
Q5: 编译时卡在 dlib
解决方法:
这是正常现象,dlib 编译需要较长时间。请:
- 耐心等待(可能需要 10-15 分钟)
- 确保有足够的内存(建议 4GB+)
- 不要中断编译过程
🔍 十一、故障排查
查看日志
# 认证日志
tail -f /var/log/auth.log
# 系统日志
journalctl -u howdy -f
# Howdy 调试模式
sudo HOWDY_LOG_LEVEL=3 howdy test
重新部署
如果遇到问题,可以重新运行部署脚本:
# 快速重新部署
cd /path/to/howdy_zh_-cn
sudo ./scripts/deploy_zh.sh
# 或完整重新部署(带详细诊断)
sudo ./scripts/install_zh_translations.sh
⚠️ 十二、安全说明
重要警告
Howdy 的安全性不如密码,永远不应该作为唯一的认证方式。
虽然面部识别比传统人脸识别更难欺骗,但以下情况仍可能绕过:
- 与您相似的人
- 高质量的照片
- 精心制作的视频
安全建议
-
不要将 Howdy 作为唯一认证方式
- 始终保留密码作为后备
- PAM 配置应允许密码认证
-
保护 Howdy 文件
# 保持只读权限 sudo chmod 755 /lib/security/pam_howdy.so sudo chmod 644 /usr/lib/howdy/config.ini -
定期更新
- 保持 Howdy 和依赖项最新
- 关注安全公告
-
谨慎使用场景
- 适合个人电脑的日常使用
- 不建议用于高安全性环境
- 不建议作为服务器认证方式
📚 十三、参考资源
- 项目地址:https://gitee.com/fish–big/howdy_zh_-cn
- 官方仓库:https://github.com/boltgolt/howdy
- 中文文档:README_zh_CN.md
- 常见问题 Wiki:https://github.com/boltgolt/howdy/wiki/Common-issues
- ArchWiki:https://wiki.archlinux.org/index.php/Howdy
🤝 十四、贡献与支持
参与方式
- ⭐ Star 本仓库
- 🐛 提交 Issues 报告问题或建议
- 💻 提交 Pull Request 贡献代码
- 🌍 改进翻译质量
- ☕ 支持开发者
反馈渠道
- Gitee Issues: https://gitee.com/fish–big/howdy_zh_-cn/issues
- GitHub Issues: https://github.com/boltgolt/howdy/issues
📝 总结
通过本文的详细教程,您已经成功在 Ubuntu 系统上从源码安装了 Howdy 面部识别系统,并配置了完整的中文支持。
主要步骤回顾:
- ✅ 安装系统依赖
- ✅ 下载并编译源码
- ✅ 部署中文翻译
- ✅ 配置摄像头硬件
- ✅ 添加面部模型
- ✅ 配置 PAM 认证
- ✅ 测试验证
现在您可以享受便捷的面部识别认证体验了!🎉
最后更新:2026-04-04
作者:FishLight
许可证:MIT License
如果觉得本文有帮助,欢迎点赞、收藏、转发!如有疑问,欢迎在评论区留言交流。😊
更多推荐
所有评论(0)