Howdy

提供: ArchWiki
2019年10月16日 (水) 18:57時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (英語版より転記)
ナビゲーションに移動 検索に移動

Howdy は Linux 上で Windows Hello と同じことを実現するプログラムです。コンピュータの赤外線センサーとカメラを使ってユーザーの顔を認識します。

インストール

howdyAUR パッケージをインストールしてください。

ノート: 現在、該当するAURのバージョンが古くなっています。以下のURLからPKGFILEをダウンロードしてパッケージを作成可能です。 https://github.com/boltgolt/howdy/tree/master/archlinux

設定

必要に応じて Howdy を起動する

Howdy でユーザーを認証するには、Howdy を使用したい PAM の設定ファイルに修正を加える必要があります。設定ファイルに以下の行を追加してください:

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

/etc/pam.d/sudo
# PAM-1.0
auth    sufficient pam_python.so /lib/security/howdy/pam.py
auth    include    system-auth
account include    system-auth
session include    system-auth

赤外線センサーの追加

使用したい赤外線センサーと対応する /dev/videoX ファイルを確認してください。cheesefswebcamAUR などのプログラムで確認できます。ファイル名が確認できたら /lib/security/howdy/config.ini をテキストエディタを使って手動で編集するか sudo howdy config を実行してください。

ノート: sudo howdy config を実行するには gedit のインストールが必要です。

Howdy に顔を追加

Howdy に顔モデルを追加するには sudo howdy add を実行してください。

トラブルシューティング

赤外線カメラのテスト

赤外線カメラが正しく機能していることを最初に確認する事が有用です。以下のコマンドでgstreamerパッケージを使用して、デバイスをテストするために10枚のjpg写真を撮影できます。(/dev/video0 をあなたの赤外線カメラのデバイスファイルに置き換えます)

gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=10 ! image/jpeg ! multifilesink location="frame-%02d.jpg"

Howdy が機能しない

root で howdy test を実行することで Howdy が正しく機能するかどうか確認できます。機能している場合、PAM の設定ファイルを確認してください。SDDM など一部のプログラムは PAM で正しく機能せず、問題が発生することがあります [1]

入力デバイスの認識エラー

一部の赤外線センサー(Thinkpad T480など)では、構成ファイルでフレームの幅と高さを定義する必要があります。

frame_width = 400
frame_height = 400

赤外線カメラ出力の幅と高さ: v4l2-ctl --list-devices --all

GStreamer warnings in shell

You might have howdy working but get warning like this in shell:

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

This is caused by upstream opencv package built with default warning level LOG_LEVEL_WARNING = 3. The cv::utils::logging API in C++ can set log level higher in order to hide lower level warning, but this API is not exposed into python-cv2 yet.

A temporary solution for this is addding an environment variable OPENCV_LOG_LEVEL=ERROR to your system per user or globally.

ノート: This will make the warning disappear but might hide other potential problems