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:此方法可能带来其他潜在隐藏问题

  • 相关阅读:
    Google File System(中文翻译)
    Hadoop学习之路一 Single Node Setup
    大数据建模比赛--金融市场板块划分和轮动规律研究.
    华中建模-人脸识别
    计算循环队列的元素个数
    低价租用高性能GPU进行深度学习
    vscode+PyQt+QtDesigner
    mask_rcnn(Keras+TensorFlow)环境搭建_新手向(毕业设计使用,亲测可用)
    博客园美化
    Task1 赛题理解
  • 原文地址:https://www.cnblogs.com/venoms/p/13779262.html
Copyright © 2011-2022 走看看