DeepFace เป็นเฟรมเวิร์กการจดจำใบหน้าและการวิเคราะห์คุณลักษณะใบหน้า (อายุ เพศ อารมณ์ และเชื้อชาติ) ที่ไม่ซับซ้อนสำหรับ Python เป็นเฟรมเวิร์กการจดจำใบหน้าแบบ ไฮบริดที่รวมโมเดลล้ำ สมัย: VGG-Face
, FaceNet
, OpenFace
, DeepFace
, DeepID
, ArcFace
, Dlib
, SFace
และ GhostFaceNet
Experiments
แสดงให้เห็นว่า มนุษย์มีความแม่นยำ 97.53% ในงานจดจำใบหน้า ในขณะที่แบบจำลองเหล่านั้นถึงและผ่านระดับความแม่นยำนั้นแล้ว
วิธีที่ง่ายที่สุดในการติดตั้ง deepface คือการดาวน์โหลดจาก PyPI
มันจะติดตั้งไลบรารี่เองและข้อกำหนดเบื้องต้นด้วย
$ pip install deepface
หรือคุณสามารถติดตั้ง deepface จากซอร์สโค้ดได้ ซอร์สโค้ดอาจมีฟีเจอร์ใหม่ที่ยังไม่ได้เผยแพร่ใน pip release
$ git clone https://github.com/serengil/deepface.git
$ cd deepface
$ pip install -e .
เมื่อคุณติดตั้งไลบรารีแล้ว คุณจะสามารถนำเข้าและใช้ฟังก์ชันต่างๆ ของไลบรารีได้
from deepface import DeepFace
กระบวนการจดจำใบหน้าสมัยใหม่ - Demo
ไปป์ไลน์การจดจำใบหน้า สมัยใหม่ประกอบด้วย 5 ขั้นตอนทั่วไป: ตรวจจับ จัดเรียง ทำให้เป็นมาตรฐาน นำเสนอ และตรวจสอบ แม้ว่า DeepFace จะจัดการกับขั้นตอนทั่วไปทั้งหมดนี้ในเบื้องหลัง แต่คุณไม่จำเป็นต้องได้รับความรู้เชิงลึกเกี่ยวกับกระบวนการทั้งหมดที่อยู่เบื้องหลัง คุณสามารถเรียกใช้ฟังก์ชันการตรวจสอบ ค้นหา หรือวิเคราะห์ได้ด้วยโค้ดเพียงบรรทัดเดียว
การยืนยันใบหน้า - Demo
ฟังก์ชันนี้จะตรวจสอบการจับคู่ใบหน้าว่าเป็นบุคคลเดียวกันหรือคนละบุคคล คาดว่าเส้นทางรูปภาพที่แน่นอนเป็นอินพุต เรายินดีส่งภาพที่เข้ารหัสแบบ numpy หรือ base64 ด้วยเช่นกัน จากนั้นระบบจะส่งคืนพจนานุกรมและคุณควรตรวจสอบเฉพาะรหัสที่ได้รับการตรวจสอบแล้ว
result = DeepFace . verify (
img1_path = "img1.jpg" ,
img2_path = "img2.jpg" ,
)
การจดจำใบหน้า - Demo
การจดจำใบหน้าจำเป็นต้องใช้การยืนยันใบหน้าหลายครั้ง ในที่นี้ Deepface มีฟังก์ชันการค้นหาที่พร้อมใช้งานทันทีเพื่อจัดการกับการกระทำนี้ มันจะค้นหาข้อมูลประจำตัวของรูปภาพอินพุตในเส้นทางฐานข้อมูลและจะส่งคืนรายการกรอบข้อมูลแพนด้าเป็นเอาต์พุต ในขณะเดียวกันการฝังฐานข้อมูลใบหน้าจะถูกจัดเก็บไว้ในไฟล์ดองเพื่อให้สามารถค้นหาได้เร็วขึ้นในครั้งต่อไป ผลลัพธ์จะเป็นขนาดของใบหน้าที่ปรากฏในรูปภาพต้นฉบับ นอกจากนี้รูปภาพเป้าหมายในฐานข้อมูลยังสามารถมีหลายใบหน้าได้อีกด้วย
dfs = DeepFace . find (
img_path = "img1.jpg" ,
db_path = "C:/workspace/my_db" ,
)
การฝัง - Demo
โมเดลการจดจำใบหน้าโดยพื้นฐานแล้วจะแสดงภาพใบหน้าเป็นเวกเตอร์หลายมิติ บางครั้ง คุณต้องการเวกเตอร์ที่ฝังไว้โดยตรง DeepFace มาพร้อมกับฟังก์ชันการแสดงภาพโดยเฉพาะ ฟังก์ชันเป็นตัวแทนส่งคืนรายการการฝัง ผลลัพธ์จะเป็นขนาดของใบหน้าที่ปรากฏในเส้นทางรูปภาพ
embedding_objs = DeepFace . represent (
img_path = "img.jpg"
)
ฟังก์ชันนี้ส่งคืนอาร์เรย์เป็นการฝัง ขนาดของอาร์เรย์ที่ฝังจะแตกต่างกันขึ้นอยู่กับชื่อรุ่น ตัวอย่างเช่น VGG-Face เป็นโมเดลเริ่มต้นและแสดงภาพใบหน้าเป็นเวกเตอร์ขนาด 4,096 มิติ
for embedding_obj in embedding_objs :
embedding = embedding_obj [ "embedding" ]
assert isinstance ( embedding , list )
assert (
model_name == "VGG-Face"
and len ( embedding ) == 4096
)
ที่นี่ การฝังจะถูกพล็อตด้วยช่อง 4096 ในแนวนอนด้วย แต่ละช่องจะสอดคล้องกับค่ามิติในเวกเตอร์ที่ฝัง และค่ามิติจะอธิบายไว้ในแถบสีทางด้านขวา เช่นเดียวกับบาร์โค้ด 2 มิติ มิติแนวตั้งไม่มีการจัดเก็บข้อมูลในภาพประกอบ
โมเดลการจดจำใบหน้า - Demo
DeepFace เป็นแพ็คเกจจดจำใบหน้า แบบไฮบริด ปัจจุบันมีโมเดลการจดจำใบหน้า ที่ล้ำสมัย มากมาย: VGG-Face
, FaceNet
, OpenFace
, DeepFace
, DeepID
, ArcFace
, Dlib
, SFace
และ GhostFaceNet
การกำหนดค่าเริ่มต้นใช้รุ่น VGG-Face
models = [
"VGG-Face" ,
"Facenet" ,
"Facenet512" ,
"OpenFace" ,
"DeepFace" ,
"DeepID" ,
"ArcFace" ,
"Dlib" ,
"SFace" ,
"GhostFaceNet" ,
]
#face verification
result = DeepFace . verify (
img1_path = "img1.jpg" ,
img2_path = "img2.jpg" ,
model_name = models [ 0 ],
)
#face recognition
dfs = DeepFace . find (
img_path = "img1.jpg" ,
db_path = "C:/workspace/my_db" ,
model_name = models [ 1 ],
)
#embeddings
embedding_objs = DeepFace . represent (
img_path = "img.jpg" ,
model_name = models [ 2 ],
)
FaceNet, VGG-Face, ArcFace และ Dlib มีประสิทธิภาพเหนือกว่ารายการต่างๆ จากการทดลอง - ดูรายละเอียดเพิ่มเติม BENCHMARKS
คุณสามารถดูคะแนนที่วัดได้ของรุ่นต่างๆ ใน DeepFace และคะแนนที่รายงานจากการศึกษาดั้งเดิมในตารางต่อไปนี้
แบบอย่าง | คะแนนที่วัดได้ | คะแนนที่ประกาศ |
---|---|---|
เฟสเน็ต512 | 98.4% | 99.6% |
มนุษย์ | 97.5% | 97.5% |
เฟสเน็ต | 97.4% | 99.2% |
ดีลิบ | 96.8% | 99.3 % |
VGG-ใบหน้า | 96.7% | 98.9% |
อาร์คเฟซ | 96.7% | 99.5% |
GhostFaceNet | 93.3% | 99.7% |
เอสเฟซ | 93.0% | 99.5% |
เปิดหน้า | 78.7% | 92.9% |
ดีพเฟซ | 69.0% | 97.3% |
DeepID | 66.5% | 97.4% |
การทำการทดลองกับโมเดลเหล่านั้นภายใน DeepFace อาจเผยให้เห็นความแตกต่างเมื่อเปรียบเทียบกับการศึกษาดั้งเดิม เนื่องจากการนำเทคนิคการตรวจจับที่แตกต่างกันหรือการทำให้เป็นมาตรฐานมาใช้ นอกจากนี้ บางรุ่นยังวางจำหน่ายแบบมีกระดูกสันหลังเท่านั้น โดยไม่มีตุ้มน้ำหนักที่ผ่านการฝึกอบรมมาก่อน ดังนั้นเราจึงใช้การนำไปปฏิบัติใหม่แทนการใช้ตุ้มน้ำหนักที่ได้รับการฝึกล่วงหน้าแบบเดิม
ความคล้ายคลึงกัน - Demo
โมเดลการจดจำใบหน้าเป็นเครือข่ายประสาทเทียมแบบปกติ และมีหน้าที่รับผิดชอบในการแสดงใบหน้าเป็นเวกเตอร์ เราคาดหวังว่าใบหน้าของคนคนเดียวกันควรจะคล้ายกันมากกว่าใบหน้าของคนที่แตกต่างกัน
ความคล้ายคลึงกันสามารถคำนวณได้จากหน่วยเมตริกต่างๆ เช่น ความคล้ายคลึงกันของโคไซน์ ระยะทางแบบยุคลิด หรือแบบยุคลิดที่ปรับให้เป็นมาตรฐาน L2 การกำหนดค่าเริ่มต้นใช้ความคล้ายคลึงโคไซน์ จากการทดลองต่างๆ ไม่มีการวัดระยะทางใดที่มีประสิทธิภาพเหนือกว่าการวัดอื่นๆ
metrics = [ "cosine" , "euclidean" , "euclidean_l2" ]
#face verification
result = DeepFace . verify (
img1_path = "img1.jpg" ,
img2_path = "img2.jpg" ,
distance_metric = metrics [ 1 ],
)
#face recognition
dfs = DeepFace . find (
img_path = "img1.jpg" ,
db_path = "C:/workspace/my_db" ,
distance_metric = metrics [ 2 ],
)
การวิเคราะห์ลักษณะใบหน้า - Demo
DeepFace ยังมาพร้อมกับโมดูลการวิเคราะห์คุณลักษณะใบหน้าที่แข็งแกร่ง รวมถึง age
gender
facial expression
(รวมถึงความโกรธ ความกลัว เป็นกลาง เศร้า รังเกียจ มีความสุข และประหลาดใจ) และ race
(รวมถึงเอเชีย ขาว ตะวันออกกลาง อินเดีย ลาติน และผิวดำ) การคาดการณ์ ผลลัพธ์จะเป็นขนาดของใบหน้าที่ปรากฏในรูปภาพต้นฉบับ
objs = DeepFace . analyze (
img_path = "img4.jpg" ,
actions = [ 'age' , 'gender' , 'race' , 'emotion' ],
)
แบบจำลองอายุได้ ± 4.65 MAE; แบบจำลองเพศมีความแม่นยำ 97.44% ความแม่นยำ 96.29% และการเรียกคืน 95.05% ตามที่กล่าวไว้ในบทช่วยสอน
การตรวจจับใบหน้าและการจัดตำแหน่ง - Demo
การตรวจจับใบหน้าและการจัดตำแหน่งเป็นช่วงเริ่มต้นที่สำคัญของกระบวนการจดจำใบหน้าสมัยใหม่ การทดลองแสดงให้เห็นว่าการตรวจจับเพิ่มความแม่นยำในการจดจำใบหน้าได้มากถึง 42% ในขณะที่การจัดตำแหน่งจะเพิ่มได้มากถึง 6% เครื่องตรวจจับ OpenCV
, Ssd
, Dlib
, MtCnn
, Faster MtCnn
, RetinaFace
, MediaPipe
, Yolo
, YuNet
และ CenterFace
ถูกห่อหุ้มด้วย Deepface
ฟังก์ชัน Deepface ทั้งหมดยอมรับแบ็กเอนด์ตัวตรวจจับเสริมและจัดแนวอาร์กิวเมนต์อินพุต คุณสามารถสลับระหว่างตัวตรวจจับและโหมดการจัดตำแหน่งเหล่านั้นด้วยอาร์กิวเมนต์เหล่านี้ OpenCV เป็นตัวตรวจจับเริ่มต้นและการจัดตำแหน่งจะเปิดอยู่ตามค่าเริ่มต้น
backends = [
'opencv' ,
'ssd' ,
'dlib' ,
'mtcnn' ,
'fastmtcnn' ,
'retinaface' ,
'mediapipe' ,
'yolov8' ,
'yunet' ,
'centerface' ,
]
alignment_modes = [ True , False ]
#face verification
obj = DeepFace . verify (
img1_path = "img1.jpg" ,
img2_path = "img2.jpg" ,
detector_backend = backends [ 0 ],
align = alignment_modes [ 0 ],
)
#face recognition
dfs = DeepFace . find (
img_path = "img.jpg" ,
db_path = "my_db" ,
detector_backend = backends [ 1 ],
align = alignment_modes [ 0 ],
)
#embeddings
embedding_objs = DeepFace . represent (
img_path = "img.jpg" ,
detector_backend = backends [ 2 ],
align = alignment_modes [ 0 ],
)
#facial analysis
demographies = DeepFace . analyze (
img_path = "img4.jpg" ,
detector_backend = backends [ 3 ],
align = alignment_modes [ 0 ],
)
#face detection and alignment
face_objs = DeepFace . extract_faces (
img_path = "img.jpg" ,
detector_backend = backends [ 4 ],
align = alignment_modes [ 0 ],
)
โมเดลการจดจำใบหน้าจริงๆ แล้วเป็นโมเดลของ CNN และคาดว่าจะมีอินพุตขนาดมาตรฐาน ดังนั้นจำเป็นต้องปรับขนาดก่อนที่จะแสดง เพื่อหลีกเลี่ยงการเสียรูป Deepface จะเพิ่มพิกเซลเสริมสีดำตามอาร์กิวเมนต์ขนาดเป้าหมายหลังจากการตรวจจับและการจัดตำแหน่ง
RetinaFace และ MtCnn ดูเหมือนจะมีประสิทธิภาพเหนือกว่าในขั้นตอนการตรวจจับและการจัดแนว แต่จะช้ากว่ามาก หากความเร็วของไปป์ไลน์ของคุณมีความสำคัญมากกว่า คุณควรใช้ opencv หรือ ssd ในทางกลับกัน หากคุณพิจารณาถึงความแม่นยำแล้ว คุณควรใช้เรตินาเฟสหรือ mtcnn
ประสิทธิภาพของ RetinaFace เป็นที่น่าพอใจมากแม้อยู่ท่ามกลางฝูงชน ดังที่เห็นในภาพประกอบต่อไปนี้ นอกจากนี้ยังมาพร้อมกับประสิทธิภาพการตรวจจับจุดสังเกตใบหน้าที่น่าทึ่งอีกด้วย จุดสีแดงที่ไฮไลท์จะแสดงจุดสังเกตบนใบหน้า เช่น ตา จมูก และปาก นั่นเป็นเหตุผลว่าทำไมคะแนนการจัดตำแหน่งของ RetinaFace จึงสูงเช่นกัน
The Yellow Angels - ทีมวอลเลย์บอลหญิงเฟเนร์บาห์เช่
คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับ RetinaFace ได้ใน repo นี้
การวิเคราะห์แบบเรียลไทม์ - Demo
คุณสามารถเรียกใช้ Deepface สำหรับวิดีโอแบบเรียลไทม์ได้เช่นกัน ฟังก์ชันสตรีมจะเข้าถึงเว็บแคมของคุณและใช้ทั้งการจดจำใบหน้าและการวิเคราะห์ลักษณะใบหน้า ฟังก์ชั่นจะเริ่มวิเคราะห์เฟรมว่าสามารถโฟกัสใบหน้าตามลำดับ 5 เฟรมได้หรือไม่ จากนั้นจะแสดงผล 5 วินาที
DeepFace . stream ( db_path = "C:/User/Sefik/Desktop/database" )
แม้ว่าการจดจำใบหน้าจะขึ้นอยู่กับการเรียนรู้แบบนัดเดียว แต่คุณสามารถใช้รูปภาพใบหน้าของบุคคลหลายรูปได้เช่นกัน คุณควรจัดเรียงโครงสร้างไดเร็กทอรีของคุณใหม่ตามภาพด้านล่าง
user
├── database
│ ├── Alice
│ │ ├── Alice1.jpg
│ │ ├── Alice2.jpg
│ ├── Bob
│ │ ├── Bob.jpg
React UI - Demo part-i
, Demo part-ii
หากคุณตั้งใจที่จะดำเนินการตรวจสอบใบหน้าโดยตรงจากเบราว์เซอร์ของคุณ deepface-react-ui เป็นพื้นที่เก็บข้อมูลแยกต่างหากที่สร้างโดยใช้ ReactJS โดยขึ้นอยู่กับ API ของ Deepface
การต่อต้านการปลอมแปลงใบหน้า - Demo
DeepFace ยังมีโมดูลการวิเคราะห์ป้องกันการปลอมแปลงเพื่อทำความเข้าใจว่าภาพที่ระบุนั้นเป็นของจริงหรือของปลอม หากต้องการเปิดใช้งานคุณสมบัตินี้ ให้ตั้งค่าอาร์กิวเมนต์ anti_spoofing
เป็น True ในงาน DeepFace ใดๆ
# anti spoofing test in face detection
face_objs = DeepFace . extract_faces (
img_path = "dataset/img1.jpg" ,
anti_spoofing = True
)
assert all ( face_obj [ "is_real" ] is True for face_obj in face_objs )
# anti spoofing test in real time analysis
DeepFace . stream (
db_path = "C:/User/Sefik/Desktop/database" ,
anti_spoofing = True
)
API - Demo
DeepFace ให้บริการ API เช่นกัน - ดู api folder
สำหรับรายละเอียดเพิ่มเติม คุณสามารถโคลนซอร์สโค้ด Deepface และรัน API ด้วยคำสั่งต่อไปนี้ มันจะใช้เซิร์ฟเวอร์ gunicorn เพื่อให้บริการส่วนที่เหลือ ด้วยวิธีนี้ คุณสามารถเรียก Deepface จากระบบภายนอก เช่น แอปบนอุปกรณ์เคลื่อนที่หรือเว็บได้
cd scripts
./service.sh
API ครอบคลุมถึงฟังก์ชันการจดจำใบหน้า การวิเคราะห์ลักษณะใบหน้า และการแสดงเวกเตอร์ คุณจะต้องเรียกใช้ฟังก์ชันเหล่านี้เป็นวิธีการโพสต์ http จุดสิ้นสุดบริการเริ่มต้นจะเป็น http://localhost:5005/verify
สำหรับการจดจำใบหน้า, http://localhost:5005/analyze
สำหรับการวิเคราะห์คุณลักษณะใบหน้า และ http://localhost:5005/represent
สำหรับการแสดงเวกเตอร์ API ยอมรับรูปภาพเป็นการอัปโหลดไฟล์ (ผ่านข้อมูลแบบฟอร์ม) หรือเป็นเส้นทางรูปภาพ, URL หรือสตริงที่เข้ารหัส base64 (ผ่าน JSON หรือข้อมูลแบบฟอร์ม) ซึ่งให้ตัวเลือกที่หลากหลายสำหรับความต้องการของลูกค้าที่แตกต่างกัน ที่นี่ คุณจะพบโครงการบุรุษไปรษณีย์เพื่อดูว่าควรเรียกวิธีการเหล่านี้อย่างไร
บริการเทียบท่า - Demo
ชุดคำสั่งต่อไปนี้จะให้บริการ Deepface บน localhost:5005
ผ่านนักเทียบท่า จากนั้นคุณจะสามารถใช้บริการแบบเจาะลึก เช่น ตรวจสอบ วิเคราะห์ และเป็นตัวแทนได้ นอกจากนี้ หากคุณต้องการสร้างอิมเมจของคุณเองแทนที่จะสร้างอิมเมจที่สร้างไว้ล่วงหน้าจากฮับนักเทียบท่า Dockerfile จะพร้อมใช้งานในโฟลเดอร์รูทของโปรเจ็กต์
# docker build -t serengil/deepface . # build docker image from Dockerfile
docker pull serengil/deepface # use pre-built docker image from docker hub
docker run -p 5005:5000 serengil/deepface
อินเทอร์เฟซบรรทัดคำสั่ง - Demo
DeepFace มาพร้อมกับอินเทอร์เฟซบรรทัดคำสั่งเช่นกัน คุณสามารถเข้าถึงฟังก์ชั่นต่างๆ ได้ในบรรทัดคำสั่งดังที่แสดงด้านล่าง คำสั่ง deepface คาดว่าชื่อฟังก์ชันจะเป็นอาร์กิวเมนต์ที่ 1 และอาร์กิวเมนต์ของฟังก์ชันหลังจากนั้น
# face verification
$ deepface verify -img1_path tests/dataset/img1.jpg -img2_path tests/dataset/img2.jpg
# facial analysis
$ deepface analyze -img_path tests/dataset/img1.jpg
คุณยังสามารถเรียกใช้คำสั่งเหล่านี้ได้หากคุณใช้งาน Deepface ด้วย Docker โปรดปฏิบัติตามคำแนะนำในเชลล์สคริปต์
การจดจำใบหน้าขนาดใหญ่ - Playlist
หากงานของคุณต้องการการจดจำใบหน้าบนชุดข้อมูลขนาดใหญ่ คุณควรรวม DeepFace เข้ากับดัชนีเวกเตอร์หรือฐานข้อมูลเวกเตอร์ การตั้งค่านี้จะดำเนินการค้นหาเพื่อนบ้านที่ใกล้ที่สุดโดยประมาณ แทนที่จะค้นหาแบบเจาะจง ช่วยให้คุณสามารถระบุใบหน้าในฐานข้อมูลที่มีรายการนับพันล้านรายการภายในเสี้ยววินาที โซลูชันดัชนีเวกเตอร์ทั่วไป ได้แก่ Annoy, Faiss, Voyager, NMSLIB, ElasticSearch สำหรับฐานข้อมูลเวกเตอร์ ตัวเลือกยอดนิยมคือ Postgres ที่มีส่วนขยาย pgvector และ RediSearch
ในทางกลับกัน หากงานของคุณเกี่ยวข้องกับการจดจำใบหน้าในฐานข้อมูลขนาดเล็กถึงขนาดกลาง คุณสามารถใช้ฐานข้อมูลเชิงสัมพันธ์ เช่น Postgres หรือ SQLite หรือฐานข้อมูล NoSQL เช่น Mongo, Redis หรือ Cassandra เพื่อทำการค้นหาเพื่อนบ้านที่ใกล้ที่สุด
คำขอดึงนั้นยินดีเป็นอย่างยิ่ง! หากคุณวางแผนที่จะสนับสนุนแพตช์ใหญ่ โปรดสร้างปัญหาก่อนเพื่อรับคำถามล่วงหน้าหรือการตัดสินใจในการออกแบบก่อน
ก่อนที่จะสร้าง PR คุณควรรันการทดสอบหน่วยและ linting ในเครื่องโดยการรันคำสั่ง make test && make lint
เมื่อส่ง PR แล้ว เวิร์กโฟลว์การทดสอบ GitHub จะทำงานโดยอัตโนมัติ และงานการทดสอบหน่วยและงาน Lining จะพร้อมใช้งานในการดำเนินการ GitHub ก่อนที่จะอนุมัติ
มีหลายวิธีในการสนับสนุนโครงการ - นำแสดงโดย repo GitHub เป็นเพียงวิธีเดียว
หากคุณชอบงานนี้ คุณสามารถสนับสนุนทางการเงินได้ที่ Patreon, GitHub Sponsors หรือ Buy Me a Coffee
นอกจากนี้ โลโก้บริษัทของคุณจะแสดงบน README บน GitHub และ PyPI หากคุณเป็นผู้สนับสนุนระดับทอง เงิน หรือทองแดง
โปรดอ้างอิงข้อมูลเชิงลึกในสิ่งพิมพ์ของคุณหากสามารถช่วยการวิจัยของคุณได้ - ดู CITATIONS
สำหรับรายละเอียดเพิ่มเติม นี่คือรายการ BibTex:
หากคุณใช้ Deepface ในการวิจัยของคุณเพื่อการจดจำใบหน้าหรือการตรวจจับใบหน้า โปรดอ้างอิงสิ่งตีพิมพ์เหล่านี้:
@article { serengil2024lightface ,
title = { A Benchmark of Facial Recognition Pipelines and Co-Usability Performances of Modules } ,
author = { Serengil, Sefik and Ozpinar, Alper } ,
journal = { Journal of Information Technologies } ,
volume = { 17 } ,
number = { 2 } ,
pages = { 95-107 } ,
year = { 2024 } ,
doi = { 10.17671/gazibtd.1399077 } ,
url = { https://dergipark.org.tr/en/pub/gazibtd/issue/84331/1399077 } ,
publisher = { Gazi University }
}
@inproceedings { serengil2020lightface ,
title = { LightFace: A Hybrid Deep Face Recognition Framework } ,
author = { Serengil, Sefik Ilkin and Ozpinar, Alper } ,
booktitle = { 2020 Innovations in Intelligent Systems and Applications Conference (ASYU) } ,
pages = { 23-27 } ,
year = { 2020 } ,
doi = { 10.1109/ASYU50717.2020.9259802 } ,
url = { https://ieeexplore.ieee.org/document/9259802 } ,
organization = { IEEE }
}
ในทางกลับกัน หากคุณใช้ Deepface ในการวิจัยเพื่อวัตถุประสงค์ในการวิเคราะห์คุณลักษณะของใบหน้า เช่น อายุ เพศ อารมณ์ หรืองานทำนายเชื้อชาติ โปรดอ้างอิงเอกสารเผยแพร่นี้
@inproceedings { serengil2021lightface ,
title = { HyperExtended LightFace: A Facial Attribute Analysis Framework } ,
author = { Serengil, Sefik Ilkin and Ozpinar, Alper } ,
booktitle = { 2021 International Conference on Engineering and Emerging Technologies (ICEET) } ,
pages = { 1-4 } ,
year = { 2021 } ,
doi = { 10.1109/ICEET53442.2021.9659697 } ,
url = { https://ieeexplore.ieee.org/document/9659697 } ,
organization = { IEEE }
}
นอกจากนี้ หากคุณใช้ Deepface ในโปรเจ็กต์ GitHub โปรดเพิ่ม deepface
ใน requirements.txt
DeepFace ได้รับอนุญาตภายใต้ใบอนุญาต MIT - ดู LICENSE
สำหรับรายละเอียดเพิ่มเติม
DeepFace รวมโมเดลการจดจำใบหน้าภายนอกบางรุ่น: VGG-Face, Facenet (ทั้ง 128d และ 512d), OpenFace, DeepFace, DeepID, ArcFace, Dlib, SFace และ GhostFaceNet นอกจากนี้ โมเดลอายุ เพศ และเชื้อชาติ/ชาติพันธุ์ยังได้รับการฝึกอบรมบนแกนหลักของ VGG-Face ด้วยการเรียนรู้แบบถ่ายโอนข้อมูล ในทำนองเดียวกัน DeepFace ล้อมเครื่องตรวจจับใบหน้าจำนวนมาก: OpenCv, Ssd, Dlib, MtCnn, Fast MtCnn, RetinaFace, MediaPipe, YuNet, Yolo และ CenterFace สุดท้ายนี้ DeepFace สามารถเลือกใช้การป้องกันการปลอมแปลงใบหน้าเพื่อพิจารณาว่ารูปภาพที่ให้มานั้นเป็นของจริงหรือของปลอม ประเภทใบอนุญาตจะได้รับการสืบทอดเมื่อคุณตั้งใจจะใช้รุ่นเหล่านั้น โปรดตรวจสอบประเภทใบอนุญาตของรุ่นเหล่านั้นเพื่อวัตถุประสงค์ในการผลิต
โลโก้ DeepFace สร้างขึ้นโดย Adrien Coquet และได้รับอนุญาตภายใต้ Creative Commons: By Attribution 3.0 License