尽管有人还心存一些顾虑,但人脸识别已经在终端消费者中越来越流行。最新的 Android 和 iOS 设备都配备了人脸识别和指纹识别的认证解锁功能。而最终用户上船之后,一旦习惯了面部解锁或指纹解锁,就很难再退回到拾人牙慧的密码输入过程了。
为了跟紧时代的步伐,微软也相继在 Windows 10 系统中推出了 Windows Hello 功能,为用户提供基于人脸识别和指纹验证的登录功能。目前还没有 Linux 桌面发行版为用户内置「开箱即用」的相关功能,但是,就庞大的开源 Linux 生态圈而言,要找到一个替代解决方案不要太过容易。下面,系统极客就为大家介绍,如何在 Ubuntu 系统中安装并配置一套与 Windows Hello 类似的人脸识别解决方案。
Howdy——适用于Linux的人脸识别身份验证系统
Howdy 是一款开源软件,它可以让用户通过人脸识别来登录类似于 Ubuntu Desktop 这样的桌面 Linux 系统,我们可以把它看作是 Linux 生态圈匹配 Windows Hello 功能的一件替代品。
Howdy 通过 OpenCV 和 Python 构建,使用电脑内置的红外发射器和摄像头组件来识别用户面部。而通过调用 Linux 的 PAM 身份验证系统,意味着不仅可以人脸识别登录,还可以将其用于 sudo、su 以及大多数需要使用其他帐户密码的场景。
在Ubuntu系统中安装Howdy
在安装之前,为了避免 pip 源被墙,建议将 pip 源改到国内。我将 pip 源改到了阿里提供的源(我也是在安装过程中报错才发现这个问题的):
1 创建一个名为 pip.conf 的配置文件,在「终端」中执行:
mkdir ~/.pip cd ~/.pip touch pip.conf
2 用 vi 或 nano 编辑器在 pip.conf 文件中写入阿里云的 pip 源地址:
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host = mirrors.aliyun.com
写入上述内容后保存退出。
Howdy的开发人员提供了 PPA,这就让在 Ubuntu 系统中的安装过程变得非常容易:
3 打开「终端」执行以下命令添加 PPA,并安装
sudo add-apt-repository ppa:boltgolt/howdy sudo apt update sudo apt install howdy
Howdy 是一款大型套件,它会安装和调用大量软件库,下载大小约 140MB,磁盘大小要求约 700MB。
4 在安装过程中会有如下 3 个选项可供选择:
- F:Fast 快速
- B:Balanced 平衡
- S:Securs 安全
不想等待太久,但也不希望全性降低,所以我选择了 b 平衡。
配置Howdy在Ubuntu系统中使用人脸识别
更改配置文件
使用 Howdy 之前,必需更改配置文件以指定摄像头设备。
在大多数 Linux 系统中,/dev/video0 应该是用于摄像头的设备,但我们还是要再用 v4l2-ctl 命令来确认一下:
1 使用如下命令安装 v4l-utils
sudo apt install v4l-utils
2 使用 v4l2-ctl 命令查看摄像头设备:
v4l2-ctl --list-devices
3 下面我们在Howdy 配置中设置摄像头设备路径,可以直接使用 vi 或 nano 等编辑器直接修改 /lib/security/howdy/config.ini 文件,或者使用如下命令:
sudo howdy config
查找以 device_path 开头的行,将其改为 /dev/video0 或你摄像头的实际路径。
添加人脸面部识别信息
在配置文件中正确设置了摄像头路径后,也是时候在其数据库中添加一些人脸以进行识别了。由于 Howdy 是命令行工具,所有工作都得在「终端」中以命令的方式进行操作。
1 执行以下命令将人脸与当前登录的用户相关联:
sudo howdy add
命令执行后,会让你输入一个 24 字符之内的「标签」进行区分和标识,然后程序会自动打开摄像头进行人脸扫描,出现「Scan complete」提示后则表示记录成功。
2 也可以通过以下命令将人脸与特定 username
用户相关联:
sudo howdy -U username add
配置好后 Howdy 就会随系统启动而自动启动,你可以在下次登录时就自动通过人脸设别登录。在其它要验证权限的时候,Howdy 也可以直接免密授权,例如执行 sudo 提权时。
管理Howdy面部模型记录
- sudo howdy list ——面部模型记录
- sudo howdy remove face_ID ——删除指定 ID 的面部记录
- sudo howdy clear ——清除所有面部模型记录
- sudo howdy disable 1 ——禁用 Howdy 功能
- sudo howdy disable 0 ——启用 Howdy 功能