• Linux人脸识别登录认证


    本人主机使用系统为Manjaro,其他系统未做尝试

    安装

    $ yay -S howdy v4l-utils
    

    具体选项在这里就不多过多介绍,安装过程最好使用代理,安装时需要在github下载源码进行编译,未使用代理时下载速度感人

    配置

    在使用sudo时启用howdy,编辑/etc/pam.d/sudo,添加:

    auth sufficient pam_python.so /lib/security/howdy/pam.py
    

    在登录时使用howdy,编辑/etc/pam.d/system-local-login(GDM或者SDDM),添加:

    auth sufficient pam_python.so /lib/security/howdy/pam.py
    

    查看摄像头设备位置

    $ v4l2-ctl --list-devices
    

    编辑howdy配置文件,将 device_path的路径修改为设备实际的路径,比如/etc/video0:

    $ sudo howdy config
    

    为howdy添加面部信息,面朝摄像头:

    $ sudo howdy add
    

    测试

    新打开一个终端输入sudo -s测试howdy是否可用

    问题

    在认证成功后会出现类似下面的警告:

    [ WARN:0] global /build/opencv/src/opencv-4.4.0/modules/videoio/src/cap_gstreamer.cpp (1760) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module source reported: Could not read from resource.
    [ WARN:0] global /build/opencv/src/opencv-4.4.0/modules/videoio/src/cap_gstreamer.cpp (888) open OpenCV | GStreamer warning: unable to start pipeline
    [ WARN:0] global /build/opencv/src/opencv-4.4.0/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
    

    原因是上游构建opencv软件包时使用默认警告级别LOG_LEVEL_WARNING = 3,C++中cv::utils::logging API可以设置更高级别的日志等级去隐藏低级别的警告,但是此API未在python-cv2中公开。临时解决的方法是在每个用户或者全局中添加OPENCV_LOG_LEVEL=ERROR的环境变量。

    解决方法

    打开.xprofile添加:

    export OPENCV_LOG_LEVEL=ERROR
    

    注销重新登录

    PS:此方法可能带来其他潜在隐藏问题

  • 相关阅读:
    Android native CursorWindow数据保存原理
    王立平--EditText实现单行显示,左側图标,提示信息
    Cocos2d-x 3.4 之 消灭星星 > 第三篇(终) <
    关于Segmentation fault错误
    python 2.x 与3.x的区别
    σ 代数与测度(measures)
    中文的表达 —— 句式、段落、结构(逻辑)
    中文的表达 —— 句式、段落、结构(逻辑)
    matlab 快捷键
    matlab 快捷键
  • 原文地址:https://www.cnblogs.com/venoms/p/13779262.html
Copyright © 2020-2023  润新知