페이스 스페이스 데모 앱 포옹?
Google Colab 노트북 데모
사용자 안내서, 문서, ChatGpt Facetorch 가이드
도커 허브 (GPU)
FaceTorch는 깊은 신경망의 힘을 활용하여 얼굴 감지 및 분석을 위해 설계된 파이썬 라이브러리입니다. 주요 목표는 커뮤니티에서 오픈 소스 얼굴 분석 모델을 큐 레이트하고 Torchscript를 사용하여 고성능을 최적화하고 다재다능한 얼굴 분석 툴킷에 통합하는 것입니다. 라이브러리는 다음과 같은 주요 기능을 제공합니다.
사용자 정의 가능한 구성 : Hydra 및 강력한 Omegaconf 기능을 사용하여 설정을 쉽게 구성 할 수 있습니다.
재현 가능한 환경 : 의존성 관리를위한 Conda-Lock과 같은 도구 및 컨테이너 화를위한 Docker를 사용하여 재현성을 보장합니다.
가속화 된 성능 : 토치 스크립트 최적화로 CPU 및 GPU 모두에서 향상된 성능을 누리십시오.
간단한 확장 성 : 모델 파일을 Google 드라이브에 업로드하고 해당 구성 YAML 파일을 리포지토리에 추가하여 라이브러리를 확장합니다.
FaceTorch는 Facial Analysis 작업을위한 효율적이고 확장 가능하며 사용자 친화적 인 솔루션을 제공하며 유연성과 성능을 찾는 개발자 및 연구원에게 제공합니다.
이 라이브러리를 책임감 있고주의해서 사용하십시오. 신뢰할 수있는 AI에 대한 유럽위원회의 윤리 지침을 준수하여 윤리적 및 공정한 사용을 보장합니다. 모델에는 한계와 잠재적 편견이있을 수 있으므로 출력을 비판적으로 평가하고 그 영향을 고려하는 것이 중요합니다.
pypi
pip install facetorch콘다
conda install -c conda-forge facetorchDocker Compose는 단일 명령으로 작업 Facetorch 환경을 쉽게 구축하는 방법을 제공합니다.
docker compose run facetorch python ./scripts/example.pydocker compose run facetorch-gpu python ./scripts/example.py analyzer.device=cuda경계 상자와 얼굴 3D 랜드 마크가있는 결과 이미지에 대한 데이터/출력을 확인하십시오.
(Apple Mac M1) Docker Desktop에서 Rosetta 2 에뮬레이터를 사용하여 CPU 버전을 실행하십시오.
이 프로젝트는 Conf 에있는 파일로 구성되어 있습니다 : conf/config.yaml . 구성에서 모듈을 쉽게 추가하거나 제거 할 수 있습니다.
FaceAnalyzer는 다음 구성 요소를 초기화하고 실행하는 오케스트레이터이므로 Facetorch의 주요 클래스입니다.
analyzer
├── reader
├── detector
├── unifier
└── predictor
├── embed
├── verify
├── fer
├── au
├── va
├── deepfake
└── align
└── utilizer
├── align
├── draw
└── save
| model | source | params | license | version |
| ------------- | --------- | --------- | ----------- | ------- |
| RetinaFace | biubug6 | 27.3M | MIT license | 1 |
| model | source | params | license | version |
| ----------------- | ---------- | ------- | ----------- | ------- |
| ResNet-50 VGG 1M | 1adrianb | 28.4M | MIT license | 1 |
include_tensors 사실이어야합니다. | model | source | params | license | version |
| ---------------- | ----------- | -------- | ------------------ | ------- |
| MagFace+UNPG | Jung-Jun-Uk | 65.2M | Apache License 2.0 | 1 |
| AdaFaceR100W12M | mk-minchul | - | MIT License | 2 |
include_tensors 사실이어야합니다.include_tensors 사실이어야합니다. | model | source | params | license | version |
| ----------------- | -------------- | -------- | ------------------ | ------- |
| EfficientNet B0 7 | HSE-asavchenko | 4M | Apache License 2.0 | 1 |
| EfficientNet B2 8 | HSE-asavchenko | 7.7M | Apache License 2.0 | 2 |
| model | source | params | license | version |
| ------------------- | --------- | ------- | ------------------ | ------- |
| OpenGraph Swin Base | CVI-SZU | 94M | MIT License | 1 |
| model | source | params | license | version |
| ----------------- | ---------- | ------- | ----------- | ------- |
| ELIM AL AlexNet | kdhht2334 | 2.3M | MIT license | 1 |
| model | source | params | license | version |
| -------------------- | ---------------- | -------- | ----------- | ------- |
| EfficientNet B7 | selimsef | 66.4M | MIT license | 1 |
| model | source | params | license | version |
| ----------------- | ---------------- | -------- | ----------- | ------- |
| MobileNet v2 | choyingw | 4.1M | MIT license | 1 |
include_tensors 사실이어야합니다.모델은 런타임 중에 모델 디렉토리에 자동으로 다운로드됩니다. 공개 Google 드라이브 폴더에서 모델을 수동으로 다운로드 할 수도 있습니다.
이미지 test.jpg (4면)는 약 486ms의 약 486ms에서 (4면)를 분석하고 ( 저장되지 않음), NVIDIA TESLA T4 GPU에서 약 1845ms (batch_size = 8)에서 약 486ms 및 test3.jpg (25면)에서 분석됩니다. 달리다. 디버그 레벨을 사용하여 로그에서 실행 시간을 모니터링 할 수 있습니다.
세부 테스트 .jpg 실행 시간 :
analyzer
├── reader: 27 ms
├── detector: 193 ms
├── unifier: 1 ms
└── predictor
├── embed: 8 ms
├── verify: 58 ms
├── fer: 28 ms
├── au: 57 ms
├── va: 1 ms
├── deepfake: 117 ms
└── align: 5 ms
└── utilizer
├── align: 8 ms
├── draw_boxes: 22 ms
├── draw_landmarks: 7 ms
└── save: 298 ms
Docker 컨테이너를 실행하십시오.
docker compose -f docker-compose.dev.yml run facetorch-devdocker compose -f docker-compose.dev.yml run facetorch-dev-gpuFaceTorch는 Pytorch에서 Torchscript로 내보낸 모델과 함께 작동합니다. Torch.jit.Trace 함수를 적용하여 Pytorch 모델을 TorchScript 모듈로 컴파일 할 수 있습니다. 추적 모델의 출력이 원래 모델의 출력과 동일인지 확인하십시오.
첫 번째 모델은 공개 Google 드라이브 폴더에서 호스팅됩니다. 업로드를 위해 새 모델을 보내거나 Google 드라이브에서 모델을 호스팅하거나 다른 곳에서 호스팅하고 코드베이스에 자신의 다운로드 객체를 추가 할 수 있습니다.
/conf/analyzer/predictor/ 에서 작업의 짧은 이름으로 새 폴더를 만듭니다 /conf/analyzer/predictor/fer//conf/analyzer/predictor/fer/efficientnet_b2_8.yaml 을 새 폴더 /conf/analyzer/predictor/<predictor_name>/ 로 복사하십시오./conf/analyzer/predictor/<predictor_name>/<model_name>.yaml /tests/conftest.py 파일에 추가하십시오./tests/test_<predictor_name>.py 에서 새로운 예측 변수에 대한 테스트를 작성하십시오 black facetorchCPU :
environment.yml 파일에 추가하십시오conda lock -p linux-64 -f environment.yml --lockfile conda-lock.ymldocker compose -f docker-compose.dev.yml run facetorch-lockconda-lock install --name env conda-lock.ymlGPU :
gpu.environment.yml 파일에 해당 버전의 패키지를 추가하십시오conda lock -p linux-64 -f gpu.environment.yml --lockfile gpu.conda-lock.ymldocker compose -f docker-compose.dev.yml run facetorch-lock-gpuconda-lock install --name env gpu.conda-lock.ymlpytest tests --verbose --cov-report html:coverage --cov facetorchpdoc --html facetorch --output-dir docs --force --template-dir pdoc/templates/ 사용하여 docstrings에서 문서 생성python -m cProfile -o profiling/example.prof scripts/example.pysnakeviz profiling/example.prof Sharma, Paritosh, Camille Challant 및 Michael Filhol. "Facshuman과 Azee를 사용한 수화 합성에 대한 얼굴 표정." LREC-COLE 2024 11 번째 수화의 표현 및 처리에 관한 Workshop의 절차 , pp. 354–360, 2024.
Liang, Cong, Jiahe Wang, Haofan Zhang, Bing Tang, Junshan Huang, Shangfei Wang 및 Xiaoping Chen. "Unifarn : 안면 반응 생성을위한 통합 변압기." 멀티미디어에 관한 31 번째 ACM 국제 회의 절차 , pp. 9506–9510, 2023.
Gue, Jia Xuan, Chun Yong Chong 및 Mei Kuan Lim. "우울증의 표식으로서 얼굴 표정 인식." 2023 아시아 태평양 신호 및 정보 처리 협회 연례 정상 회의 및 회의 (APSIPA ASC) , 674–680, 2023 쪽.
나는 오픈 소스 커뮤니티와 그들의 작품과 출판 된 모델을 공유 한 연구원들에게 감사하고 싶습니다. 이 프로젝트는 그들의 기여 없이는 불가능했을 것입니다.
작업에서 Facetorch를 사용하는 경우 사용하는 모델의 원래 저자에게 적절하게 신용하십시오. 또한 FaceTorch 라이브러리 자체를 인용하는 것을 고려할 수 있습니다. 아래는 FaceTorch에 대한 예제 인용입니다.
@misc{facetorch,
author = {Gajarsky, Tomas},
title = {Facetorch: A Python Library for Analyzing Faces Using PyTorch},
year = {2024},
publisher = {GitHub},
journal = {GitHub Repository},
howpublished = {url{https://github.com/tomas-gajarsky/facetorch}}
}