يهدف ReSwapper إلى إعادة إنتاج تطبيق inswapper. يوفر هذا المستودع كودًا للتدريب والاستدلال ويتضمن أوزانًا مدربة مسبقًا.
فيما يلي مقارنة بين مخرجات Inswapper وReswapper.
استنساخ بوابة https://github.com/somanchiu/ReSwapper.gitcd ReSwapper بايثون -m venv venv venvscriptsactivate تثبيت النقطة -r متطلبات.txt نقطة تثبيت الشعلة torchvision --force --index-url https://download.pytorch.org/whl/cu121 تثبيت النقطة onnxruntime-gpu --force --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/
يمكن تصور بنية نموذج inswapper في Netron. يمكنك المقارنة مع تطبيق ReSwapper لرؤية أوجه التشابه المعمارية
يمكننا أيضًا استخدام كود 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))latent = np.dot(latent, emap)latent /= np.linalg.norm(latent)
لم يتم إصدار أي معلومات من Insightface. إنه جزء مهم من التدريب. ومع ذلك، هناك الكثير من المقالات والأبحاث التي يمكن الرجوع إليها. من خلال قراءة عدد كبير من المقالات والأبحاث حول تبديل الوجه، ودقة الهوية، ونقل النمط، ستواجه في كثير من الأحيان الكلمات الرئيسية التالية:
فقدان المحتوى
فقدان النمط/فقدان الهوية
فقدان الإدراك
إذا كنت لا ترغب في تدريب النموذج من البداية، فيمكنك تنزيل الأوزان المُدربة مسبقًا وتمرير model_path إلى وظيفة القطار في Train.py.
قم بتنزيل FFHQ لاستخدامه كصور مستهدفة ومصدر. بالنسبة لصور الوجه المتبادلة، يمكننا استخدام مخرجات inswapper.
محسن : آدم
معدل التعلم: 0.0001
قم بتعديل الكود في Train.py إذا لزم الأمر. ثم نفذ:
بيثون Train.py
سيتم حفظ النموذج باسم "reswapper-
لا تتوقف عن التدريب مبكرًا.
أنا أستخدم RTX3060 12 جيجابايت للتدريب. يستغرق حوالي 12 ساعة لـ 50000 خطوة.
قد يلزم تغيير المُحسِّن إلى SGD للتدريب النهائي، حيث توضح العديد من المقالات أن SGD يمكن أن يؤدي إلى خسارة أقل.
بيثون مبادلة.py
reswapper-429500.pth
إنشاء نموذج القرار 512
تنفيذ وظيفة لصق الوجه
أضف emap إلى ملف onnx