กอดแอพสาธิตพื้นที่หน้า?
การสาธิตโน๊ตบุ๊ค Google Colab
คู่มือผู้ใช้, เอกสาร, คู่มือ facetorch Chatgpt
Docker Hub (GPU)
FaceTorch เป็นห้องสมุด Python ที่ออกแบบมาสำหรับการตรวจจับและวิเคราะห์ใบหน้าใช้ประโยชน์จากพลังของเครือข่ายประสาทลึก เป้าหมายหลักของมันคือการดูแลรูปแบบการวิเคราะห์ใบหน้าโอเพ่นซอร์สจากชุมชนเพิ่มประสิทธิภาพให้เหมาะกับประสิทธิภาพสูงโดยใช้ Torchscript และรวมเข้ากับชุดเครื่องมือวิเคราะห์ใบหน้าที่หลากหลาย ห้องสมุดมีคุณสมบัติสำคัญต่อไปนี้:
การกำหนดค่าที่ปรับแต่งได้: กำหนดค่าการตั้งค่าของคุณได้อย่างง่ายดายโดยใช้ไฮดราและความสามารถของโอเมก้าคอนที่ทรงพลัง
สภาพแวดล้อมที่ทำซ้ำได้: ตรวจสอบให้แน่ใจว่ามีการทำซ้ำด้วยเครื่องมือเช่น conda-lock สำหรับการจัดการการพึ่งพาและนักเทียบท่าสำหรับการจัดคอนเทนเนอร์
ประสิทธิภาพเร่งความเร็ว: เพลิดเพลินไปกับประสิทธิภาพที่เพิ่มขึ้นทั้ง CPU และ GPU ด้วยการเพิ่มประสิทธิภาพ Torchscript
Simple Extensibility: ขยายไลบรารีโดยการอัปโหลดไฟล์โมเดลของคุณไปยัง Google Drive และเพิ่มไฟล์ YAML การกำหนดค่าที่สอดคล้องกันไปยังที่เก็บ
Facetorch นำเสนอโซลูชันที่มีประสิทธิภาพปรับขนาดได้และเป็นมิตรกับผู้ใช้สำหรับงานการวิเคราะห์ใบหน้าจัดเลี้ยงให้กับนักพัฒนาและนักวิจัยที่กำลังมองหาความยืดหยุ่นและประสิทธิภาพ
โปรดใช้ห้องสมุดนี้อย่างรับผิดชอบและระมัดระวัง ปฏิบัติตามแนวทางจริยธรรมของคณะกรรมาธิการยุโรปสำหรับ 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) ใช้ Rosetta 2 Emulator ใน Docker Desktop เพื่อเรียกใช้ CPU เวอร์ชัน
โครงการได้รับการกำหนดค่าโดยไฟล์ที่อยู่ใน Conf ด้วยไฟล์หลัก: conf/config.yaml หนึ่งสามารถเพิ่มหรือลบโมดูลออกจากการกำหนดค่าได้อย่างง่ายดาย
faceanalyzer เป็นคลาสหลักของ facetorch เนื่องจากเป็น orchestrator ที่รับผิดชอบในการเริ่มต้นและเรียกใช้ส่วนประกอบต่อไปนี้:
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 จะต้องเป็นจริงเพื่อรวมการทำนายแบบจำลองในการทำนาย 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 จะต้องเป็นจริงเพื่อรวมการทำนายแบบจำลองในการทำนาย logitsinclude_tensors จะต้องเป็นจริงเพื่อรวมการทำนายแบบจำลองในการทำนาย 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 จะต้องเป็นจริงเพื่อรวมการทำนายแบบจำลองในการทำนาย logitsโมเดลจะถูกดาวน์โหลดระหว่างรันไทม์โดยอัตโนมัติไปยังไดเรกทอรี โมเดล นอกจากนี้คุณยังสามารถดาวน์โหลดโมเดลด้วยตนเองได้จากโฟลเดอร์ Google Drive สาธารณะ
การทดสอบรูปภาพ jpg (4 ใบหน้า) ถูกวิเคราะห์ (รวมถึงกล่องวาดภาพและสถานที่สำคัญ แต่ไม่ประหยัด) ในประมาณ 486ms และ test3.jpg ( 25 ใบหน้า) ในประมาณ 1845ms (batch_size = 8) บน nvidia tesla t4 gpu เมื่อค่าเริ่มต้นเริ่มต้น หนึ่งสามารถตรวจสอบเวลาดำเนินการในบันทึกโดยใช้ระดับการดีบัก
รายละเอียดการทดสอบ. 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 Drive สาธารณะของฉัน คุณสามารถส่งโมเดลใหม่เพื่ออัปโหลดให้ฉันโฮสต์รุ่นบน Google ไดรฟ์ของคุณหรือโฮสต์ที่อื่นและเพิ่มวัตถุดาวน์โหลดของคุณเองลงใน codebase
/conf/analyzer/predictor/ ติดตามตัวอย่าง FER ใน /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 <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 และ Michael Filhol "การแสดงออกทางสีหน้าสำหรับการสังเคราะห์ภาษามือโดยใช้ facshuman และ azee" การดำเนินการของการประชุมเชิงปฏิบัติการ LREC-Coling 2024 ครั้งที่ 11 เกี่ยวกับการเป็นตัวแทนและการประมวลผลภาษาลายเซ็น , หน้า 354–360, 2024
Liang, Cong, Jiahe Wang, Haofan Zhang, Bing Tang, Junshan Huang, Shangfei Wang และ Xiaoping Chen "Unifarn: Unified Transformer สำหรับการสร้างปฏิกิริยาใบหน้า" การประชุมวิชาการนานาชาติ ACM ครั้งที่ 31 เกี่ยวกับมัลติมีเดีย , หน้า 9506–9510, 2023
Gue, Jia Xuan, Chun Yong Chong และ Mei Kuan Lim "การรับรู้การแสดงออกทางสีหน้าเป็นเครื่องหมายของภาวะซึมเศร้า" 2023 Asia Pacific Signal และสมาคมการประมวลผลข้อมูลการประชุมสุดยอดประจำปีและการประชุม (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}}
}