L2CS-Net
L2CS-Netは2段階の視線推定器です。顔検出器が顔を見つけ、2個のangle-bin分類ヘッドを持つResNet trunkが顔ごとにpitchとyawを予測します。LibreYOLOは推論専用でラップします。
- タスク
- gaze
- サイズ
- r18, r34, r50, r101, r152 at 448 px
- インストール
pip install libreyolo- サポートティア
- 推論のみ、v以降。推論、検証、エクスポートのみです。学習機能は対象外です。
- アップストリーム
- Ahmed A. Abdelrahman et al.のL2CS-Net、Gaze360 dataset terms: research and non-commercial use only, no redistribution。論文、ソース
- ライセンス
- コード:MIT、重み:Gaze360 dataset terms: research and non-commercial use only, no redistribution。商用利用
インストール
すでにチェックポイントがあるモデルの構築、推論、エクスポートでは、L2CS-Netに追加パッケージは 必要ありません。
pip install libreyoloLibreYOLOが自動取得できる唯一のチェックポイントは、Gaze360学習済みResNet-50です。LibreYOLO
組織ではなく作者のGoogle Driveにあるため、通常のHTTPミラーではなくgdownでダウンロードします。
この経路にはgaze追加パッケージが必要です。
pip install "libreyolo[gaze]"追加パッケージがない場合、LibreYOLOは黙って失敗せず、手動ダウンロードの手順を表示します。
推論
from libreyolo import LibreYOLO, SAMPLE_IMAGE # face_detector未指定時はOpenCV同梱の顔検出器へフォールバック# OpenCV 4ではHaar、OpenCV 5ではYuNet。L2CSチェックポイント# 自体以外の追加ダウンロードなしで実行model = LibreYOLO("LibreL2CSr50.pt")result = model(SAMPLE_IMAGE) print(result.gaze.pitch, result.gaze.yaw)libreyolo predict model=LibreL2CSr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreL2CSr50.pt") # 実行済みの検出器からL2CSへボックスを渡すresult = model(SAMPLE_IMAGE, face_boxes=[[34, 12, 90, 80]]) # または同梱された特定の顔検出器を名前で指定result = model(SAMPLE_IMAGE, face_detector="yunet")L2CS-Netは2段階の推定器です。最初に顔検出器を実行し、返された各顔クロップから視線ヘッドが
pitchとyawを読み取ります。何も指定しない場合、推論はOpenCV同梱の検出器へフォールバックします。
そのため、L2CSチェックポイント自体を取得した後は、追加ダウンロードなしで通常の呼び出しが動作します。
face_boxesは実行済みの検出器からのボックスを受け付けます。face_detectorは"auto"、"haar"、
"yunet"、LibreYOLO検出モデル、または通常のcallableを受け付けます。result.gazeにはラジアン単位の
pitchとyawが入り、検出された顔ボックスのresult.boxesと行単位で揃います。入力ソース、
ストリーミング、結果の処理については推論を参照してください。
バリアント
5種類のバックボーン深度が1つの入力解像度を共有し、同じ引数を受け取ります。唯一の公開 チェックポイントの基になったデータセットGaze360はResNet-50を学習しました。ほかの4種類の 深度はアーキテクチャとして対応しますが、読み込める公開済みの重みはありません。
エクスポート
| タスク | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| gaze | gaze to ONNX:対応 | gaze to TorchScript:対応 | gaze to ExecuTorch:対応 | gaze to TensorRT:対応 | gaze to OpenVINO:対応 | gaze to Paddle:非対応 | gaze to MNN:非対応 | gaze to RKNN:非対応 | gaze to ncnn:非対応 | gaze to TFLite:非対応 | gaze to CoreML:非対応 | gaze to Core AI:非対応 |
from libreyolo import LibreYOLO model = LibreYOLO("LibreL2CSr50.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreL2CSr50.pt format=onnximport numpy as npimport onnxruntime as ort # エクスポートしたグラフはResNet trunkと2個のangle-binヘッドのみ# 前処理済み448x448顔クロップを受け取り、デコード済み角度ではなく生の# (yaw_logits, pitch_logits)を返す。softmax、bin期待値、度への変換は# Python側に残る。libreyolo.models.l2cs.utils.bin_logits_to_anglesを参照session = ort.InferenceSession("LibreL2CSr50.onnx")name = session.get_inputs()[0].nameyaw_logits, pitch_logits = session.run( None, {name: np.zeros((1, 3, 448, 448), dtype=np.float32)})ライセンス
ダウンロードする特定の重みについて、Hugging Faceリポジトリのライセンスを確認してください。LibreYOLO orgの各チェックポイントにはライセンスが付与されており、同じファミリー内でも常に同一とは限りません。そのリポジトリが正式な情報源です。以下の概要は、このページを最後に検証した時点で適用されていた内容を示します。
これは関連するライセンスの説明であり、法的助言ではありません。商用上重要な場合は、自分でライセンスを読み、専門家の助言を受けてください。
- 原著作物
- L2CS-Net, Ahmed A. Abdelrahman et al.
- アップストリームのライセンス
- Gaze360 dataset terms: research and non-commercial use only, no redistribution
- アップストリームのソース
- github.com/Ahmednull/L2CS-Net
- LibreYOLOのコード
- MIT
- 重み
- Gaze360 dataset terms: research and non-commercial use only, no redistribution、著者が配布。LibreYOLOではホストもミラーもしていません。
- 解釈
- The L2CS-Net source is MIT and may be used, modified and redistributed, including commercially. The one checkpoint LibreYOLO can fetch automatically, a ResNet-50 trained on Gaze360, is not covered by that grant: the Gaze360 dataset license restricts use of models trained on it to research and non-commercial purposes and forbids redistribution. LibreYOLO does not mirror or host that checkpoint. It downloads it, on request, directly from the author's own distribution and prints the Gaze360 terms once before the transfer starts. A model trained on data you hold the rights to, using this MIT architecture, carries none of those restrictions.
LibreYOLOはL2CSチェックポイントをホストもミラーもしません。このサイトの多くのファミリーと異なり、 LibreYOLOのHugging Face組織にこのファミリーのファイルはありません。ライブラリが自動取得できる唯一の チェックポイントは作者自身のGoogle Drive配布元から直接取得されます。転送開始前に表示される Gaze360ライセンス通知による制限があり、上記の概要が示唆する「huggingface.co/LibreYOLOで再公開」 されたコピーではありません。