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:此方法可能帶來其他潛在隱藏問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM