zoukankan      html  css  js  c++  java
  • 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:此方法可能带来其他潜在隐藏问题

  • 相关阅读:
    POJ 2342 树形DP入门题
    《4》CentOS7.0+OpenStack+kvm云平台部署—配置Nova
    GDI+ 填充背景时,非常多时候不起作用,GDI、GDI+配合运用
    Jave中System.getProperty()获取的值
    NYOJ128 前缀式计算(栈的运用)
    Web安全測试二步走
    一个SQL update语句
    C#时间格式之GMT时间的格式
    粘包的处理
    socket对于大数据的发送和接收
  • 原文地址:https://www.cnblogs.com/venoms/p/13779262.html
Copyright © 2011-2022 走看看