L2CS-Net
L2CS-Net은 2단계 시선 추정기입니다. 얼굴 탐지기가 얼굴을 찾고 각도 구간 분류 헤드 2개가 있는 ResNet 트렁크가 얼굴마다 피치와 요를 예측합니다. 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을 생성, 예측, 내보내기하는 데는 extra가 필요하지 않습니다.
pip install libreyoloLibreYOLO가 자동으로 가져올 수 있는 유일한 체크포인트는 Gaze360으로 학습한
ResNet-50입니다. LibreYOLO 조직이 아니라 저자의 Google Drive에 있으므로 일반 HTTP
미러 대신 gdown으로 내려받으며, 이 경로에는 gaze extra가 필요합니다.
pip install "libreyolo[gaze]"이 extra가 없으면 조용히 실패하는 대신 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단계 추정기입니다. 먼저 얼굴 탐지기를 실행하고 시선 헤드가 반환된 각
얼굴 크롭에서 피치와 요를 읽습니다. 그대로 사용하면 예측이 OpenCV 번들 탐지기로
대체되므로 L2CS 체크포인트가 있으면 추가로 내려받지 않고 기본 호출이 작동합니다.
face_boxes는 이미 실행한 탐지기의 바운딩 박스를 받고, face_detector는
"auto", "haar", "yunet", LibreYOLO 탐지 모델 또는 일반 호출 가능 객체를
받습니다. result.gaze에는 탐지된 얼굴 바운딩 박스인 result.boxes와 행별로
정렬된 라디안 단위 피치와 요가 들어 있습니다. 소스, 스트리밍, 결과 처리는
예측을 참조합니다.
변형
백본 깊이 5개가 하나의 입력 해상도를 공유하고 같은 인수를 받습니다. 공개된 유일한 체크포인트의 데이터셋인 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 트렁크와 각도 구간 헤드 2개만 포함합니다.# 전처리된 448x448 얼굴 크롭을 입력받고 디코딩된 각도가 아닌 원시# (yaw_logits, pitch_logits)를 반환합니다. softmax, 구간 기댓값, 도 변환은# 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 조직의 모든 체크포인트에는 라이선스가 있으며 한 계열 안에서도 항상 같지는 않습니다. 해당 저장소가 신뢰할 수 있는 기준입니다. 아래 요약은 이 페이지를 마지막으로 검증했을 때 적용된 내용을 설명합니다.
관련 라이선스에 관한 설명이며 법률 자문이 아닙니다. 상업적으로 중요한 사안이라면 라이선스를 직접 읽고 별도의 법률 자문을 받으십시오.
- 원작
- L2CS-Net, Ahmed A. Abdelrahman et al.
- 업스트림 라이선스
- Gaze360 dataset terms: research and non-commercial use only, no redistribution
- 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에 다시 게시된" 사본이 아닙니다.