Memeluk Aplikasi Demo Face Space?
Demo Notebook Google Colab
Panduan Pengguna, Dokumentasi, Panduan Facetorch ChatGPT
Hub Docker (GPU)
Facetorch adalah perpustakaan Python yang dirancang untuk deteksi dan analisis wajah, memanfaatkan kekuatan jaringan saraf yang dalam. Tujuan utamanya adalah untuk membuat model analisis wajah open-source dari komunitas, mengoptimalkannya untuk kinerja tinggi menggunakan Torchscript, dan mengintegrasikannya ke dalam toolkit analisis wajah yang serbaguna. Perpustakaan menawarkan fitur utama berikut:
Konfigurasi yang dapat disesuaikan: Mudah mengonfigurasi pengaturan Anda menggunakan Hydra dan kemampuan omegaconf yang kuat.
Lingkungan yang dapat direproduksi: Pastikan reproduktifitas dengan alat-alat seperti conda-lock untuk manajemen ketergantungan dan buruh pelabuhan untuk kontainerisasi.
Performa yang Dipercepat: Nikmati kinerja yang ditingkatkan pada CPU dan GPU dengan optimasi Torchscript.
Extensibilitas Sederhana: Perluas pustaka dengan mengunggah file model Anda ke Google Drive dan menambahkan file YAML konfigurasi yang sesuai ke repositori.
FaceTorch menyediakan solusi yang efisien, dapat diskalakan, dan ramah pengguna untuk tugas analisis wajah, melayani pengembang dan peneliti yang mencari fleksibilitas dan kinerja.
Harap gunakan perpustakaan ini secara bertanggung jawab dan dengan hati -hati. Patuhi pedoman etika Komisi Eropa untuk AI yang dapat dipercaya untuk memastikan penggunaan etis dan adil. Perlu diingat bahwa model mungkin memiliki keterbatasan dan bias potensial, sehingga sangat penting untuk mengevaluasi output mereka secara kritis dan mempertimbangkan dampaknya.
Pypi
pip install facetorchConda
conda install -c conda-forge facetorchDocker Compose menyediakan cara mudah untuk membangun lingkungan facetorch yang berfungsi dengan satu perintah.
docker compose run facetorch python ./scripts/example.pydocker compose run facetorch-gpu python ./scripts/example.py analyzer.device=cudaPeriksa data/output untuk gambar yang dihasilkan dengan kotak pembatas dan landmark 3D wajah.
(Apple Mac M1) Gunakan rosetta 2 emulator di Docker Desktop untuk menjalankan versi CPU.
Proyek ini dikonfigurasi oleh file yang terletak di conf dengan file utama: conf/config.yaml . Seseorang dapat dengan mudah menambah atau menghapus modul dari konfigurasi.
FaceAnalyzer adalah kelas utama Facetorch karena merupakan orkestra yang bertanggung jawab untuk menginisialisasi dan menjalankan komponen berikut:
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 harus benar untuk memasukkan prediksi model dalam prediksi.logits | 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 harus benar untuk memasukkan prediksi model dalam prediksi.logitsinclude_tensors harus benar untuk memasukkan prediksi model dalam prediksi.logits | 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 harus benar untuk memasukkan prediksi model dalam prediksi.logitsModel diunduh selama runtime secara otomatis ke direktori model . Anda juga dapat mengunduh model secara manual dari folder Google Drive publik.
Tes gambar.jpg (4 wajah) dianalisis (termasuk kotak gambar dan landmark, tetapi tidak menabung) dalam sekitar 486ms dan test3.jpg (25 wajah) dalam sekitar 1845ms (Batch_Size = 8) pada NVIDIA TESLA T4 GPU setelah konfigurasi default ( conf/config.yamin ) dari Models. Seseorang dapat memantau waktu eksekusi dalam log menggunakan level debug.
Tes terperinci.jpg waktu eksekusi:
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
Jalankan wadah Docker:
docker compose -f docker-compose.dev.yml run facetorch-devdocker compose -f docker-compose.dev.yml run facetorch-dev-gpuFaceTorch bekerja dengan model yang diekspor dari Pytorch ke Torchscript. Anda dapat menerapkan fungsi torch.jit.trace untuk mengkompilasi model Pytorch sebagai modul Torchscript. Harap verifikasi bahwa output dari model yang dilacak sama dengan output dari model asli.
Model pertama di -host di folder Google Drive publik saya. Anda dapat mengirim model baru untuk diunggah kepada saya, meng -host model di Google Drive Anda atau meng -hostnya di tempat lain dan menambahkan objek pengunduh Anda sendiri ke basis kode.
/conf/analyzer/predictor/ mengikuti contoh fer di /conf/analyzer/predictor/fer//conf/analyzer/predictor/fer/efficientnet_b2_8.yaml ke folder baru /conf/analyzer/predictor/<predictor_name>//conf/analyzer/predictor/<predictor_name>/<model_name>.yaml /tests/conftest.py ./tests/test_<predictor_name>.py black facetorchCPU:
environment.ymlconda 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.ymlconda 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/python -m cProfile -o profiling/example.prof scripts/example.pysnakeviz profiling/example.prof Sharma, Paritosh, Camille Challant, dan Michael Filhol. "Ekspresi Wajah untuk Sintesis Bahasa Isyarat Menggunakan Facshuman dan Azee." Prosiding LREC-COLING 2024 Lokakarya ke-11 tentang Representasi dan Pemrosesan Bahasa Isyarat , hlm. 354-360, 2024.
Liang, Cong, Jiehe Wang, Haofan Zhang, Bing Tang, Junshan Huang, Shangfei Wang, dan Xiaoping Chen. "Unifarn: Transformator Unified untuk Generasi Reaksi Wajah." Prosiding Konferensi Internasional ACM ke -31 tentang Multimedia , hlm. 9506–9510, 2023.
Gue, Jia Xuan, Chun Yong Chong, dan Mei Kuan Lim. "Pengenalan Ekspresi Wajah sebagai Penanda Depresi." 2023 Asia Pasifik Sinyal dan Informasi Pemrosesan Asosiasi dan Konferensi Tahunan (APSIPA ASC) , hlm. 674-680, 2023.
Saya ingin mengucapkan terima kasih kepada komunitas open-source dan para peneliti yang telah berbagi karya mereka dan menerbitkan model. Proyek ini tidak akan mungkin terjadi tanpa kontribusi mereka.
Jika Anda menggunakan Facetorch dalam pekerjaan Anda, pastikan untuk mengkredit secara tepat penulis asli model yang digunakannya. Selain itu, Anda dapat mempertimbangkan mengutip Perpustakaan FaceTorch itu sendiri. Di bawah ini adalah contoh kutipan untuk 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}}
}