首页 > 系统相关 >manjora Linux下使用howdy实现人脸识别登录的简明教程

manjora Linux下使用howdy实现人脸识别登录的简明教程

时间:2024-06-04 15:26:09浏览次数:35  
标签:manjora 人脸识别 windows howdy Linux pam 摄像头

前言

从windows切换到Linux会有很多的不适应,自然会想找一些类似于windows体验的Linux替代品,比如windows上的windows hello 就很好用,可以使用指纹或者摄像头实现人脸识别在很多场景下可以避免输入密码。

经过一番搜索发现howdy是目前Linux上最流行的人脸识别认证的软件,于是就第一时间安装,虽然是跟着arch linux wiki走,但是其中还是遇到了很多坑,在此记录下来方便大家参考。

安装

首先使用yay安装aur的包,yay是一个很好用的aur包管理工具,支持模糊搜索,建议arch系的都安装。

yay -S howdy-beta-git

在这里建议安装howdy-beta-git包,相对于howdy包来说会更新一些,howdy有些问题可以已经在这个包里面得到龙解决。

PAM配置

首先我们安装完成之后需要配置PAM,也就是让Linux的的认证通过howdy来进行,每个文件代表其中一个地方的认证。这一步非常关键,但是arch wiki上有点含糊不清,导致总是有部分地方无法使用howdy。
最后我总结的在KDE+SDDM下修改如下四个文件可以保证在登录、锁屏、终端、KDE中调用howdy来认证

/etc/pam.d/sddm
/etc/pam.d/kde
/etc/pam.d/sudo
/etc/pam.d/system-auth

在以上四个文件中的#%PAM-1.0的下一行,也就是下面的各配置语句的最顶部,加入下面两行配置

auth sufficient pam_unix.so try_first_pass likeauth nullok # 同时启用人脸识别和密码登录
auth sufficient /lib/security/pam_howdy.so # 3.0.0+版本howdy beta配置

注意如果你安装的howdy版本低于3.0,第二行配置需要改成auth sufficient pam_python.so /lib/security/howdy/pam.py

howdy配置

首先我们需要确定howdy需要用到的摄像头名称,一般能在windows中开启windows hello的摄像头都有红外摄像头和光学摄像头两种,一般建议如果有红外摄像头的优先用红外摄像头,以便于确保微光环境下的识别成功率。
arch linux wiki中给出的方法是使用v4l2-ctl --list-devices命令来列出所有的摄像头,不过我个人觉得有更好的办法,就是使用VLC播放器。打开VLC——打开媒体——打开捕获设备,在设备选择里面选择视频设备,然后点击播放就可以方便的查看设备来确定哪个设备是可用的,还可以关闭室内光源拉上窗帘来查看哪个摄像头是红外摄像头,一般来说红外摄像头即便是在微光环境下也能清晰的拍摄视频。
根据上述方法确定之后将摄像头的名称记下来,使用sudo howdy config命令来打开howdy的配置,将device_path = /dev/video0改为你自己的设备名即可。
另外对于其他可能有必要修改的选项说明如下:

  • certainty = 3.5这里的值范围为1到10,约小的值代表人脸识别的匹配度要求越严格,默认值一般足够,但是如果自己对于安全有特殊要求可以适当的进行调节
  • use_cnn = false是否使用cnn模型进行人脸识别,cnn模型的识别率更高但是对于显卡的要求也更高,规格较低的显卡可能会导致识别速度较慢
  • dark_threshold = 60红外摄像头在微光环境下需要依赖红外光发射模块提供光源,而红外光模块发射的频率是有限的,所以部分视频帧可能会出现全黑的情况。这个选项就是设置过滤这些黑暗帧的阈值,适当的跳高可能会对于微光环境下的识别成功率有益。

配置完毕之后我们可以使用sudo howdy -U 用户名 add来添加人脸,输入名称之后就会自动添加人脸。可以在不同距离和光线环境下多添加几次,以便于提高识别的成功率。

最后我们使用sudo howdy test来检验配置是否成功,配置正确的情况下会在人脸周边显示一个绿色的圆圈,如果始终显示的是红色的,那么建议再添加几次人脸或者更改certainty的配置。

最后

最后我们可以通过在终端使用sudo、重新登录、锁屏等地方检验是否成功生效,注意在密码提示输入界面需要按下回车才能调用howdy进行识别,可能是为了安全方面的考虑。

标签:manjora,人脸识别,windows,howdy,Linux,pam,摄像头
From: https://www.cnblogs.com/dingnosakura/p/18223572

相关文章

  • OpenCv之简单的人脸识别项目(特征标注页面)
    人脸识别准备八、特征标注页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件3.定义两个全局变量4.定义选择图片的函数4.1函数定义和全局变量声明4.2打开文件对话框并获取文件路径4.3处理图片并创建标签4.4显示图......
  • 基于深度神经网络的人脸识别相关问题
    基于深度神经网络的人脸识别相关问题1、DNN与CNN的关系CNN可以看作是一种特殊的DNN,它们之间的关系是包含和被包含的关系。CNN的核心是卷积层,该层可以有效地识别图像中的局部模式,并使用池化层来减少特征映射的维度。此外,CNN还包括其他类型的层,例如全连接层和激活函数层,用于将卷......
  • OpenCv之简单的人脸识别项目(人脸识别页面以及人脸比对页面)
    人脸识别准备三、人脸识别页面1.导入所需的包2.设置窗口2.1定义窗口外观和大小2.2设置窗口背景2.2.1设置背景图片2.2.2创建label控件3.定义两个全局变量4.定义选择并显示图片的函数4.1声明全局变量4.2设置文件选择对话框4.3设置条件语句4.4创建一个标签显示图像5.定义......
  • 人脸识别——Webface-OCC遮挡人脸识别算法解析
    1.概述自2019年被誉为人脸识别技术的元年,各地纷纷引入这项技术。然而,自2020年起,为了抵御冠状病毒(COVID-19)的全球传播,人们普遍开始佩戴口罩。众所周知,现有人脸识别模型在面对遮挡物(如口罩)时,其识别精度会显著下降。这一现象的主要原因在于,现有数据集往往没有充分考虑遮挡因......
  • IdentiFace——多模态人脸识别系统,可捕捉从情绪到性别的所有信息及其潜力
    1.概述面部识别系统的开发极大地推动了计算机视觉领域的发展。如今,人们正在积极开发多模态系统,将多种生物识别特征高效、有效地结合起来。本文介绍了一种名为IdentiFace的多模态人脸识别系统。该系统利用基于VGG-16架构的模型,将人脸识别与性别、脸型和情绪等重要生物......
  • 人脸识别:基于卷积神经网络(CNN)分类思想的人脸识别系统
    ​本文来自公众号“AI大道理”  ——————项目配套视频课程:平台:荔枝微课链接:十方教育项目地址:https://github.com/AIBigTruth/CNN_faces_recognition 之前很多人来询问这个项目怎么做,代码跑不起来,里面的原理不是很懂,现在参与这个视频课程就能无痛做这个项目啦。 ......
  • 人脸识别库 虹软 客户端 服务端 示例
    https://github.com/18628271760/MultipleFacesProcess 一、前言虹软开发SDK以来,其免费使用的营销策略,成功降低了中小企业使用人脸识别技术的成本。然而,对.NET开发者来说,虹软没有提供C#版本的SDK供开发者直接调用(为什么JAVA就有?!),而是建议开发者利用C++版本封装。大龄的C系程......
  • 结合人脸识别,实现渠道风控管理和客户精准营销
    数字客渠道风控系统,助力案场数字化,解决房企客户渠道飞单问题。我们结合阿里、华为、海康等最新计算机视觉算法,实现毫秒级抓拍、一秒上千张图片处理的计算能力,算法+软件开发的结合为房企渠道风控管理、智慧案场实现带来了全新的解决方案。一、客户到访全动线无感抓拍,案场数字化......
  • 基于肤色模型的人脸识别FPGA实现,包含tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览matlab2022a的测试结果如下:   vivado2019.2的仿真结果如下:   将数据导入到matlab中,   系统的RTL结构图如下图所示:   系统包括中值滤波,RGB转换为ycbcr,人脸检测三个模块 2.算法运行软件版本vivado2019.2 matlab2022a......
  • Unraid 使用 Docker Compose 安装 Immich 套件无法启用人脸识别的原因及修复方法
    原因问题原因是官方教程中的docker-compose.yml指明的机器学习组件immich-machine-learning中的container_name也就是docker-compose.yml中不同service可以互访的媒介hostname与immich-server默认设置中的机器学习服务器url的hostname不匹配造成的。解决方法......