Linux CPU | Linux GPU | Mac OS CPU | Windows CPU |
|---|---|---|---|
การตรวจจับใบหน้าฟรีและโอเพ่นซอร์ส ขึ้นอยู่กับ mtcnn
เว็บไซต์ทางการ (https://dface.tech)
นอกจากนี้เรายังให้การจดจำ SDK อย่างเต็มที่มีการติดตามการตรวจจับการจดจำใบหน้าการต่อต้านการตบใบหน้าและอื่น ๆ ดู dface.tech สำหรับรายละเอียด
DFACE เป็นซอฟต์แวร์โอเพ่นซอร์สสำหรับการตรวจจับใบหน้าและการรับรู้ คุณสมบัติทั้งหมดที่นำมาใช้โดย pytorch (เฟรมเวิร์ก Facebook deeplearning) ด้วย Pytorch เราใช้เทคนิคที่เรียกว่าการแยกอัตโนมัติโหมดย้อนกลับซึ่งช่วยให้นักพัฒนาเปลี่ยนวิธีการทำงานของเครือข่ายของคุณโดยพลการโดยไม่ได้เป็นศูนย์หรือค่าใช้จ่าย DFACE สืบทอดคุณลักษณะขั้นสูงเหล่านี้ซึ่งทำให้การตรวจสอบรหัสแบบไดนามิกและง่ายขึ้น
DFACE รองรับการเร่งความเร็ว GPU กับ Nvidia Cuda เราขอแนะนำให้คุณใช้เวอร์ชัน Linux GPU มันเร็วและเรียลไทม์มาก
แรงบันดาลใจของเรามาจากงานวิจัยหลายฉบับในหัวข้อนี้รวมถึงงานปัจจุบันและในอดีตเช่นการตรวจจับใบหน้าร่วมและการจัดตำแหน่งโดยใช้เครือข่าย convolutional แบบหลายแบบและหัวข้อการจดจำใบหน้า: การฝังแบบรวมสำหรับการจดจำใบหน้าและการจัดกลุ่ม
โครงสร้าง MTCNN
หากคุณต้องการมีส่วนร่วมใน DFACE โปรดตรวจสอบการสนับสนุน. MD ในโครงการเราใช้ Slack สำหรับการติดตามคำขอและข้อบกพร่อง นอกจากนี้คุณสามารถติดตามกลุ่ม QQ 681403076 หรือ Wechat Jinkuaikuai005 ของฉัน
DFACE มีโมดูลที่สำคัญสองโมดูลการตรวจจับและการรับรู้ในสองนี้เราให้บริการแบบฝึกหัดทั้งหมดเกี่ยวกับวิธีการฝึกอบรมแบบจำลองและการวิ่ง การตั้งค่า Pytorch และ CV2 ครั้งแรก เราขอแนะนำให้ Anaconda สร้างสภาพแวดล้อมเสมือนจริงและเป็นอิสระ หากคุณต้องการฝึกอบรม GPU โปรดติดตั้ง Nvidia Cuda และ Cudnn
git clone https://github.com/kuaikuaikim/dface.gitนอกจากนี้เรายังมีรายการการพึ่งพาสภาพแวดล้อม Anaconda ที่เรียกว่า environment.yml (windows โปรดใช้ environment-win64.yml, mac environment_osx.yaml) ในเส้นทางรูท คุณสามารถสร้างสภาพแวดล้อม DFACE ของคุณได้อย่างง่ายดาย
cd DFace
conda env create -f path/to/environment.ymlเพิ่ม dface ไปยังเส้นทาง Python ในพื้นที่ของคุณ
export PYTHONPATH= $PYTHONPATH :{your local DFace root path}หากคุณมีความสนใจในการฝึกอบรมโมเดล MTCNN คุณสามารถทำตามขั้นตอนต่อไป
MTCNN มีสามเครือข่ายที่เรียกว่า PNET , RNET และ ONET ดังนั้นเราควรฝึกอบรมในสามขั้นตอนและแต่ละขั้นตอนขึ้นอยู่กับเครือข่ายก่อนหน้านี้ซึ่งจะสร้างข้อมูลรถไฟเพื่อป้อนเครือข่ายรถไฟปัจจุบันและขับเคลื่อนการสูญเสียขั้นต่ำระหว่างสองเครือข่าย โปรดดาวน์โหลด ชุดข้อมูล Train Face ก่อนการฝึกอบรมของคุณ เราใช้ ใบหน้าที่กว้างขึ้น และ celeba . wider ใบหน้าใช้สำหรับการฝึกอบรมการจำแนกใบหน้าและกล่องขอบใบหน้าและ celeba ใช้สำหรับสถานที่สำคัญ ไฟล์คำอธิบายประกอบใบหน้าที่กว้างขึ้นเดิมคือรูปแบบ MATLAB คุณต้องแปลงเป็นข้อความ ฉันได้ใส่ไฟล์ข้อความคำอธิบายประกอบที่แปลงลงใน anno_store/wider_origin_anno.txt ไฟล์นี้เกี่ยวข้องกับพารามิเตอร์ต่อไปนี้ที่เรียกว่า -Anno_file
mkdir {your dface traindata folder}python dface/prepare_data/gen_Pnet_train_data.py --prefix_path {annotation file image prefix path, just your local wider face images folder} --dface_traindata_store {dface train data temporary folder you made before } --anno_file {wider face original combined annotation file, default anno_store/wider_origin_anno.txt}python dface/prepare_data/assemble_pnet_imglist.pypython dface/train_net/train_p_net.pypython dface/prepare_data/gen_Rnet_train_data.py --prefix_path {annotation file image prefix path, just your local wider face images folder} --dface_traindata_store {dface train data temporary folder you made before } --anno_file {wider face original combined annotation file, default anno_store/wider_origin_anno.txt} --pmodel_file {your PNet model file trained before}python dface/prepare_data/assemble_rnet_imglist.pypython dface/train_net/train_r_net.pypython dface/prepare_data/gen_Onet_train_data.py --prefix_path {annotation file image prefix path, just your local wider face images folder} --dface_traindata_store {dface train data temporary folder you made before } --anno_file {wider face original combined annotation file, default anno_store/wider_origin_anno.txt} --pmodel_file {your PNet model file trained before} --rmodel_file {your RNet model file trained before}python dface/prepare_data/gen_landmark_48.pypython dface/prepare_data/assemble_onet_imglist.pypython dface/train_net/train_o_net.pyหากคุณไม่ต้องการฝึกอบรมฉันได้ใส่ onet_epoch.pt, pnet_epoch.pt, rnet_epoch.pt ในโฟลเดอร์ model_store คุณเพียงแค่ลอง test_image.py
python test_image.pyใบอนุญาต Apache 2.0