ReSwapper มุ่งหวังที่จะทำซ้ำการใช้งาน inswapper พื้นที่เก็บข้อมูลนี้มีโค้ดสำหรับการฝึก การอนุมาน และรวมถึงตุ้มน้ำหนักที่ฝึกไว้ล่วงหน้า
นี่คือการเปรียบเทียบผลลัพธ์ของ Inswapper และ ReSwapper
โคลนคอมไพล์ https://github.com/somanchiu/ReSwapper.gitcd ReSwapper หลาม -m venv venv venvscriptsactivate pip ติดตั้ง -r ข้อกำหนด.txt pip ติดตั้งไฟฉาย torchvision --force --index-url https://download.pytorch.org/whl/cu121 pip ติดตั้ง onnxruntime-gpu --force --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/
สถาปัตยกรรมโมเดล inswapper สามารถมองเห็นได้ใน Netron คุณสามารถเปรียบเทียบกับการใช้งาน ReSwapp เพื่อดูความคล้ายคลึงทางสถาปัตยกรรม
นอกจากนี้เรายังสามารถใช้โค้ด Python ต่อไปนี้เพื่อดูรายละเอียดเพิ่มเติม:
model = onnx.load('test.onnx')printable_graph=onnx.helper.printable_graph(model.graph)
เป้าหมาย: รูปร่าง [1, 3, 128, 128] ปรับให้เป็นมาตรฐานในช่วง [-1, 1]
แหล่งที่มา (แฝง): รูปร่าง [1, 512] คุณสมบัติของใบหน้าแหล่งที่มา
การคำนวณค่าแฝง "emap" สามารถแยกได้จากโมเดล inswapper ดั้งเดิม
แฝง = source_face.normed_embedding.reshape ((1,-1)) แฝง = np.dot (แฝง, emap) แฝง /= np.linalg.norm (แฝง)
ไม่มีการเปิดเผยข้อมูลจาก Insightface เป็นส่วนสำคัญของการฝึกอบรม อย่างไรก็ตาม มีบทความและเอกสารจำนวนมากที่สามารถอ้างอิงได้ เมื่ออ่านบทความและบทความเกี่ยวกับการสลับใบหน้า ความเที่ยงตรงของ ID และการโอนสไตล์ คุณมักจะพบคำสำคัญต่อไปนี้:
การสูญเสียเนื้อหา
การสูญเสียรูปแบบ / การสูญเสียรหัส
การสูญเสียการรับรู้
หากคุณไม่ต้องการฝึกโมเดลตั้งแต่เริ่มต้น คุณสามารถดาวน์โหลดตุ้มน้ำหนักที่ฝึกไว้แล้วและส่ง model_path ไปยังฟังก์ชัน train ใน train.py
ดาวน์โหลด FFHQ เพื่อใช้เป็นรูปภาพเป้าหมายและต้นฉบับ สำหรับรูปภาพใบหน้าที่ถูกสลับ เราสามารถใช้เอาต์พุตของตัวสลับได้
เครื่องมือเพิ่มประสิทธิภาพ: อดัม
อัตราการเรียนรู้: 0.0001
แก้ไขโค้ดใน train.py หากจำเป็น จากนั้นดำเนินการ:
หลาม train.py
โมเดลจะถูกบันทึกเป็น "reswapper-
อย่าหยุดการฝึกเร็วเกินไป
ฉันใช้ RTX3060 12GB ในการฝึก 50,000 ก้าวใช้เวลาประมาณ 12 ชั่วโมง
อาจจำเป็นต้องเปลี่ยนเครื่องมือเพิ่มประสิทธิภาพเป็น SGD สำหรับการฝึกอบรมขั้นสุดท้าย เนื่องจากบทความจำนวนมากแสดงให้เห็นว่า SGD อาจส่งผลให้สูญเสียน้อยลง
หลาม swap.py
rewapper-429500.pth
สร้างแบบจำลองความละเอียด 512
ใช้ฟังก์ชันการวางกลับใบหน้า
เพิ่ม Emap ลงในไฟล์ onnx