L2CS-Net

L2CS-Net adalah estimator arah pandang dua tahap: detector wajah menemukan wajah, lalu trunk ResNet dengan dua head klasifikasi bin sudut memprediksi pitch dan yaw per wajah. LibreYOLO membungkusnya hanya untuk inferensi.

Task
gaze
Ukuran
r18, r34, r50, r101, r152 at 448 px
Instalasi
pip install libreyolo
Tier dukungan
Hanya inferensi, sejak v. Hanya prediksi, validasi, dan ekspor. Fitur pelatihan tidak berlaku.
Proyek upstream
L2CS-Net oleh Ahmed A. Abdelrahman et al., Gaze360 dataset terms: research and non-commercial use only, no redistribution. Makalah, sumber
Lisensi
Kode MIT, bobot Gaze360 dataset terms: research and non-commercial use only, no redistribution. Penggunaan komersial

Instalasi

L2CS-Net tidak memerlukan extra untuk membuat, menjalankan prediksi, atau mengekspor model yang checkpoint-nya sudah tersedia.

bash
pip install libreyolo

Satu checkpoint yang dapat diambil LibreYOLO secara otomatis, yaitu ResNet-50 yang dilatih pada Gaze360, diunduh melalui gdown, bukan cermin HTTP biasa, karena berada di Google Drive milik penulis dan bukan organisasi LibreYOLO. Jalur tersebut memerlukan extra gaze:

bash
pip install "libreyolo[gaze]"

Tanpa extra itu, LibreYOLO mencetak petunjuk unduhan manual alih-alih gagal secara diam-diam.

Prediksi

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Tidak ada face_detector yang diberikan: gunakan detector wajah bawaan OpenCV# (Haar pada OpenCV 4, YuNet pada OpenCV 5), sehingga kode ini berjalan tanpa# unduhan tambahan selain checkpoint L2CS itu sendiri.model = LibreYOLO("LibreL2CSr50.pt")result = model(SAMPLE_IMAGE) print(result.gaze.pitch, result.gaze.yaw)
CLI
libreyolo predict model=LibreL2CSr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True
Sumber wajah
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreL2CSr50.pt") # Berikan L2CS box dari detector yang sudah dijalankan.result = model(SAMPLE_IMAGE, face_boxes=[[34, 12, 90, 80]]) # Atau sebutkan detector wajah bawaan tertentu.result = model(SAMPLE_IMAGE, face_detector="yunet")

L2CS-Net adalah estimator dua tahap. Detector wajah berjalan lebih dulu, lalu head arah pandang membaca pitch dan yaw dari setiap crop wajah yang dihasilkannya. Jika dibiarkan, prediksi menggunakan detector bawaan OpenCV, sehingga panggilan polos dapat berjalan tanpa unduhan tambahan setelah checkpoint L2CS tersedia. face_boxes menerima box dari detector yang sudah dijalankan. face_detector menerima "auto", "haar", "yunet", model deteksi LibreYOLO, atau callable biasa. result.gaze memuat pitch dan yaw dalam radian, yang diselaraskan baris demi baris dengan result.boxes, yaitu box wajah yang terdeteksi. Lihat prediksi untuk sumber, streaming, dan penanganan hasil.

Varian

Lima kedalaman backbone memakai satu resolusi input dan menerima argumen yang sama. Gaze360, dataset di balik satu-satunya checkpoint yang dipublikasikan, melatih ResNet-50. Empat kedalaman lainnya didukung secara arsitektural, tetapi tidak memiliki bobot terpublikasi untuk dimuat.

Ekspor

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
gazegaze to ONNX: didukunggaze to TorchScript: didukunggaze to ExecuTorch: didukunggaze to TensorRT: didukunggaze to OpenVINO: didukunggaze to Paddle: tidak didukunggaze to MNN: tidak didukunggaze to RKNN: tidak didukunggaze to ncnn: tidak didukunggaze to TFLite: tidak didukunggaze to CoreML: tidak didukunggaze to Core AI: tidak didukung

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreL2CSr50.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreL2CSr50.pt format=onnx
Gunakan berkas hasil ekspor
import numpy as npimport onnxruntime as ort # Graph hasil ekspor hanya berisi trunk ResNet dan dua head bin sudut:# menerima crop wajah 448x448 yang telah diproses dan mengembalikan# (yaw_logits, pitch_logits) mentah, bukan sudut yang sudah didekode. Softmax,# ekspektasi bin, dan konversi derajat tetap dalam Python. Lihat# 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)})

Lisensi

Periksa lisensi di repositori Hugging Face untuk bobot tertentu yang diunduh. Setiap checkpoint di organisasi LibreYOLO memiliki lisensi, dan lisensinya tidak selalu sama dalam satu family. Repositori tersebut adalah sumber resmi. Ringkasan di bawah menjelaskan ketentuan yang berlaku saat halaman ini terakhir diverifikasi.

Ini adalah deskripsi lisensi yang terlibat, bukan nasihat hukum. Jika jawabannya penting secara komersial, baca sendiri lisensinya dan mintalah nasihat dari penasihat hukum Anda.

Karya asli
L2CS-Net, Ahmed A. Abdelrahman et al.
Lisensi upstream
Gaze360 dataset terms: research and non-commercial use only, no redistribution
Kode LibreYOLO
MIT
Bobot
Gaze360 dataset terms: research and non-commercial use only, no redistribution, didistribusikan oleh penulisnya. LibreYOLO tidak menghosting atau mencerminkannya.
Interpretasi
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 tidak menghosting atau mencerminkan checkpoint L2CS apa pun. Tidak ada artefak family ini dalam organisasi Hugging Face LibreYOLO, tidak seperti sebagian besar family lain di situs ini. Satu checkpoint yang dapat diambil library secara otomatis berasal langsung dari distribusi Google Drive milik penulis, dibatasi oleh pemberitahuan lisensi Gaze360 yang dicetak sebelum transfer dimulai. Checkpoint ini bukan salinan "dipublikasikan ulang di huggingface.co/LibreYOLO" seperti yang tersirat dalam ringkasan di atas.

Diverifikasi dengan LibreYOLO v1.5.0. Tabel dukungan, checkpoint, dan angka benchmark di halaman ini dihasilkan dari library yang telah dirilis dan bobot yang dipublikasikan, bukan ditulis manual.