不少笔记本都会配备 IR 红外线感应摄像头,为的是实现面部解锁,尤其是 Surface 就是标配,在 Windows 10 里这个功能被称为 Windows Hello,简单说就是你掀开机器,就会直接扫脸解锁进入系统,不再需要你输入密码什么的。
在 Linux 下是否可以使用这个功能呢?
可以。
使用这个叫做 howdy 的项目即可。
https://github.com/boltgolt/howdy
安装
Ubuntu Linux 安装 howdy 可以添加 PPA
sudo add-apt-repository ppa:boltgolt/howdy
sudo apt update
sudo apt install howdy
至于其他系统呢可以参考官方的安装手册。
这里需要注意的是,安装 howdy 的过程中会使用 pip 等包管理器安装一些第三方的 Python 包,最好确保你的网络是科学上网状态,不谈速度很慢。当然你也可以使用 proxychains4 之类的工具强制走代理。
howdy 这个工具简单来说似乎是使用 opencv 之类的库来计算完成面部识别的,安装起来依赖的内容很多,而且占用很大的磁盘空间,有洁癖的高贵的 Archer 们可以选择不装。
配置
安装完毕后我们还不能马上使用,需要进行一些调整。ThinkPad X1 Carbon 2017 IR 摄像头版实际上是有两个摄像头的,一个是 IR 摄像头,一个是普通摄像头,我们需要先确定 IR 摄像头的位置。
sudo apt install v4l-utils
先安装 v4l-ctl 工具来检查摄像头状态。
v4l2-ctl --list-devices
可以看到我的摄像头有两个,一个是 IR,一个是普通的,我们可以记下 IR 摄像头是 /dev/video0
这时候可以进入 howdy 的配置文件里,修改对应的摄像头路径,并且进行一些配置修改。
sudo howdy config
修改以下几条信息:
device_path = /dev/video0 #修改 IR 摄像头路径
dark_threshold = 100 #修改 IR 摄像头的暗光阈值,可以调高一点,这样在暗光下也能识别
force_mjpeg = true #如果你摄像头支持 mjpeg 格式,就可以用这个
配置修改完毕后就可以测试一下摄像头是否可用了。
sudo howdy test
你有可能遇到一些类似“setMouseCallback on Qt windows”的错误,这个错误的原因可能是 howdy 的安装脚本是用 pip 安装的 opencv,而新版 opencv 在 Ubuntu 下有问题,我们可以卸载掉 pip 安装的,换回 Ubuntu 官方源的。
sudo pip remove opencv-python
sudo apt install libopencv-dev python3-opencv
理论上安装完毕后再测试一下,测试没问题的话,你就可以使用了, 首先用命令添加自己的人脸:
sudo howdy add
每一张人脸可以增加一个识别的标识,随便输入就行了。
你可以尝试锁屏然后直视 IR 摄像头,看看是不是可以直接解锁,我这里就 OK 了,我的环境是诸多 Archer 们最不屑的 Gnome-Shell 3.36.3,可能高贵的 KDE 也可以用吧。
下面是一些问题:
Q:我解锁的时候有时候会失败,提示 Unknown Error 1。
A:这是权限问题,你可以给对应的信息一些权限:
sudo chmod o+x /lib/security/howdy/dlib-data
sudo chmod a+x /lib/security/howdy/recorders/
或者你也可以
sudo chmod a+x -R /lib/security/howdy/recorders/
但我感觉不太推荐就是了。
Q:我录脸之后,戴眼镜/戴口罩可以解锁吗?
A:不可以,我建议你每个状态都录一下脸,不戴眼镜录一个,戴眼睛录一个,戴眼睛戴口罩录一个……而且每个脸可以多录几次,提高识别率,但是戴口罩录的话我不保证会被别人冒充。
Q:不开灯可以识别吗?
A:我测试了,IR 摄像头是可以的。毕竟暗光没问题,那些说暗光不能解锁的,你特么有 IR 摄像头吗?
Q:普通摄像头可以识别码?
A:可以,摄像头在配置文件里写入普通摄像头就行了。但是暗光环境下可能就无效了。
Q:录脸之后每次打开 Terminal 后 sudo 命令直接就扫脸识别了?这也太惊悚了。
A:howdy config 命令里可以进行详细设置。更多可以看官方 Wiki。
想到上次在有 IR 鏡頭的裝置上跑 Chromium OS,無意間打開了相機,然後切換攝像頭的時候發現它辨識到了 IR 模組並且還能正確顯示和拍攝圖像
hhh,前两天换设备,忘了李先生的博客域名了
之后各种关键字搜索,没搜到,最后“博客 galgame 李先生”搜到了
见习魔法师李先生的三个问题 - Plum's Blog
https://plumz.me/archives/38
用这个关键词搜到的第一个李先森结果是这个
galgame 李先生 牛逼
其实域名还是挺好记的
想请问一下, T14 amd 版本, 也是在ubuntu支持列表中
也有 IR 摄像头
但是却找不到, 我应该如何做呢?
我怎么搜也搜不到相关信息
所以才求问, 谢谢了!
找到的4个摄像头我都尝试了, 一个是正常的彩色镜头 video0
1, 3 都不能用
video2 是黑色的镜头, 拍出来看不到脸, 似乎不能使用
v4l2-ctl --list-devices
Integrated Camera: Integrated C (usb-0000:06:00.0-2):
/dev/video0
/dev/video1
/dev/video2
/dev/video3
忘了说系统版本是 20.04, 安装了 oem 内核(应该是5.6)