「Howdy」の版間の差分
細 (カテゴリ変更) |
Kusanaginoturugi (トーク | 投稿記録) |
||
(2人の利用者による、間の8版が非表示) | |||
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 と同じことを実現するプログラムです。コンピュータの赤外線センサーとカメラを使ってユーザーの顔を認識します。 |
||
36行目: | 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 はあなたの使用する赤外線カメラのデバイスに置き換えてください): |
||
+ | |||
+ | gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=10 ! image/jpeg ! multifilesink location="frame-%02d.jpg" |
||
=== Howdy が機能しない === |
=== Howdy が機能しない === |
||
root で {{ic|howdy test}} を実行することで Howdy が正しく機能するかどうか確認できます。機能している場合、PAM の設定ファイルを確認してください。[[SDDM]] など一部のプログラムは PAM で正しく機能せず、問題が発生することがあります [https://github.com/sddm/sddm/issues/284]。 |
root で {{ic|howdy test}} を実行することで Howdy が正しく機能するかどうか確認できます。機能している場合、PAM の設定ファイルを確認してください。[[SDDM]] など一部のプログラムは PAM で正しく機能せず、問題が発生することがあります [https://github.com/sddm/sddm/issues/284]。 |
||
+ | |||
+ | === 入力デバイスの認識エラー === |
||
+ | 一部の赤外線センサー (例: ThinkPad T480 のセンサー) は設定ファイルにフレームの高さと幅を設定する必要があります: |
||
+ | {{bc|1=frame_width = 400 |
||
+ | frame_height = 400}} |
||
+ | センサーの幅と高さの出力: {{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 と同じことを実現するプログラムです。コンピュータの赤外線センサーとカメラを使ってユーザーの顔を認識します。
目次
インストール
設定
必要に応じて 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
ファイルを確認してください。cheese や fswebcamAUR などのプログラムで確認できます。ファイル名が確認できたら /lib/security/howdy/config.ini
をテキストエディタを使って手動で編集するか sudo howdy config
を実行してください。
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
環境変数を追加することで警告を消すことができます。