「Howdy」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(2人の利用者による、間の6版が非表示)
1行目: 1行目:
 
[[Category:認証]]
 
[[Category:認証]]
 
[[en:Howdy]]
 
[[en:Howdy]]
  +
[[pl:Howdy]]
 
[https://github.com/boltgolt/howdy Howdy] は Linux 上で Windows Hello と同じことを実現するプログラムです。コンピュータの赤外線センサーとカメラを使ってユーザーの顔を認識します。
 
[https://github.com/boltgolt/howdy Howdy] は Linux 上で Windows Hello と同じことを実現するプログラムです。コンピュータの赤外線センサーとカメラを使ってユーザーの顔を認識します。
   
6行目: 7行目:
   
 
{{AUR|howdy}} パッケージを[[インストール]]してください。
 
{{AUR|howdy}} パッケージを[[インストール]]してください。
{{Note|現在、該当するAURのバージョンが古くなっています。以下のURLからPKGFILEをダウンロードしてパッケージを作成可能です。 https://github.com/boltgolt/howdy/tree/master/archlinux}}
 
   
 
== 設定 ==
 
== 設定 ==
37行目: 37行目:
   
 
== トラブルシューティング ==
 
== トラブルシューティング ==
  +
  +
=== IR エミッターが動作しない ===
  +
  +
IR カメラがオンで、IR エミッターが動作しない場合、考えられる状況の一つは、間違ったファイルの選択があります。例えば、{{ic|/dev/video0}} と {{ic|/dev/video2}} のどちらも顔の認識には問題ありませんが、{{ic|/dev/video2}} だけが、IRエミッターをオンにします。したがって、すべての {{ic|/dev/video''X''}} にチェックを入れていることを確認してください。
  +
  +
そうでなければ、[https://github.com/EmixamPP/linux-enable-ir-emitter linux-enable-ir-emitter] の指示に従って IR エミッターを有効にしてください。
   
 
=== 赤外線カメラのテスト ===
 
=== 赤外線カメラのテスト ===
   
赤外線カメラが正しく機能してを最初に確認する事が有用。以下のコマンドgstreamerパッケージを使用し、デバイスをテストするために10枚jpg写真を撮影できます。(/dev/video0 あなたの赤外線カメラのデバイスファイルに置き換えます)
+
まず最初に赤外線カメラが機能するかどうか試してると良いしょう。以下のコマンドを使って gstreamer パッケージを使て10枚 jpg 写真を撮影することができます (/dev/video0 あなたの使用する赤外線カメラのデバイスに置き換えてください):
   
 
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=10 ! image/jpeg ! multifilesink location="frame-%02d.jpg"
 
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=10 ! image/jpeg ! multifilesink location="frame-%02d.jpg"
49行目: 55行目:
   
 
=== 入力デバイスの認識エラー ===
 
=== 入力デバイスの認識エラー ===
  +
一部の赤外線センサー (例: ThinkPad T480 のセンサー) は設定ファイルにフレームの高さと幅を設定する必要があります:
 
一部の赤外線センサー(Thinkpad T480など)では、構成ファイルでフレームの幅と高さを定義する必要があります。
 
 
{{bc|1=frame_width = 400
 
{{bc|1=frame_width = 400
 
frame_height = 400}}
 
frame_height = 400}}
赤外線カメラ出力の幅と高さ: {{ic|v4l2-ctl --list-devices --all}}。
+
センサーの幅と高さの出力: {{ic|v4l2-ctl --list-devices --all}}。
  +
  +
=== GStreamer がシェルに警告を吐く ===
  +
  +
howdy を動かしたときに以下のようにシェルに警告が表示される場合:
  +
{{hc|# 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 (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
  +
...
  +
</nowiki>}}
  +
上流の {{Pkg|opencv}} パッケージをビルドするときに警告レベルがデフォルトで {{ic|<nowiki>LOG_LEVEL_WARNING = 3</nowiki>}} になっていることが原因です。C++ の cv::utils::logging API はログレベルを高く設定して警告を非表示にできますが、この API はまだ python-cv2 からは使えません。
  +
  +
一時的な解決策としては {{ic|<nowiki>OPENCV_LOG_LEVEL=ERROR</nowiki>}} 環境変数を追加することで警告を消すことができます。
  +
{{Note|上記の環境変数で警告は消えますが他の問題も隠してしまう可能性があります。}}

2021年7月25日 (日) 18:23時点における最新版

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

インストール

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

設定

必要に応じて 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 を実行してください。

トラブルシューティング

IR エミッターが動作しない

IR カメラがオンで、IR エミッターが動作しない場合、考えられる状況の一つは、間違ったファイルの選択があります。例えば、/dev/video0/dev/video2 のどちらも顔の認識には問題ありませんが、/dev/video2 だけが、IRエミッターをオンにします。したがって、すべての /dev/videoX にチェックを入れていることを確認してください。

そうでなければ、linux-enable-ir-emitter の指示に従って IR エミッターを有効にしてください。

赤外線カメラのテスト

まず最初に赤外線カメラが機能するかどうか試してみると良いでしょう。以下のコマンドを使って 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 を動かしたときに以下のようにシェルに警告が表示される場合:

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

上流の opencv パッケージをビルドするときに警告レベルがデフォルトで LOG_LEVEL_WARNING = 3 になっていることが原因です。C++ の cv::utils::logging API はログレベルを高く設定して警告を非表示にできますが、この API はまだ python-cv2 からは使えません。

一時的な解決策としては OPENCV_LOG_LEVEL=ERROR 環境変数を追加することで警告を消すことができます。

ノート: 上記の環境変数で警告は消えますが他の問題も隠してしまう可能性があります。