「Howdy」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(英語版より転記)
55行目: 55行目:
 
赤外線カメラ出力の幅と高さ: {{ic|v4l2-ctl --list-devices --all}}。
 
赤外線カメラ出力の幅と高さ: {{ic|v4l2-ctl --list-devices --all}}。
   
=== GStreamer warnings in shell ===
+
=== シェル上での GStreamer 警告 ===
   
  +
howdy は動作しているかもしれませんが、シェルで次の用な警告が表示されます。
You might have howdy working but get warning like this in shell:
 
  +
{{hc|$sudo howdy test|<nowiki>
 
  +
{{hc|$ sudo howdy test|<nowiki>
 
[ 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 (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 (886) open OpenCV | GStreamer warning: unable to start pipeline
64行目: 65行目:
 
...
 
...
 
</nowiki>}}
 
</nowiki>}}
This is caused by upstream {{Pkg|opencv}} package built with default warning level {{ic|<nowiki>LOG_LEVEL_WARNING = 3</nowiki>}}. 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.
 
   
  +
これは、デフォルトの警告レベル {{ic|<nowiki>LOG_LEVEL_WARNING = 3</nowiki>}} でビルドされた上流の {{Pkg|opencv}} パッケージが原因です。C++ の cv::utils::logging API は低レベルの警告を隠すためにログレベルを高く設定できますが、この API は python-cv2 にまだ公開されていません。
A temporary solution for this is addding an environment variable {{ic|<nowiki>OPENCV_LOG_LEVEL=ERROR</nowiki>}} to your system per user or globally.
 
  +
{{Note|This will make the warning disappear but might hide other potential problems}}
 
  +
これに対する一時的な解決策は、環境変数 {{ic|<nowiki>OPENCV_LOG_LEVEL=ERROR</nowiki>}} をユーザーごとまたはグローバルにシステムに追加することです。
  +
{{Note|これにより、警告は消えますが、他の潜在的な問題が隠される可能性があります}}

2019年10月16日 (水) 19:06時点における版

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 警告

howdy は動作しているかもしれませんが、シェルで次の用な警告が表示されます。

$ 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
...

これは、デフォルトの警告レベル LOG_LEVEL_WARNING = 3 でビルドされた上流の opencv パッケージが原因です。C++ の cv::utils::logging API は低レベルの警告を隠すためにログレベルを高く設定できますが、この API は python-cv2 にまだ公開されていません。

これに対する一時的な解決策は、環境変数 OPENCV_LOG_LEVEL=ERROR をユーザーごとまたはグローバルにシステムに追加することです。

ノート: これにより、警告は消えますが、他の潜在的な問題が隠される可能性があります