ब्लॉग / इंजीनियरिंग

AI से रिस्टोर किए चेहरे वीडियो गेम के किरदारों जैसे क्यों लगते हैं

· 24 अगस्त को मात्रात्मक एब्लेशन के साथ अपडेट · कॉर्पस: Library of Congress के 11 स्कैन, 35 चेहरे (विज़ुअल बेंच) + 4 पब्लिक-डोमेन पोर्ट्रेट, 120 मापे गए रन (मेट्रिक बेंच)

फेस-रिस्टोरेशन मॉडल किसी खराब फोटो के चेहरे को पुराने वीडियो गेम के रेंडर जैसा बना सकते हैं: प्लास्टिक जैसी त्वचा, पेंट की हुई आँखें, ऐसा चेहरा जो शार्प तो है पर पूरी तरह वही व्यक्ति नहीं। हमने कारण अलग-अलग करने के लिए 11 पब्लिक-डोमेन तस्वीरों पर आठ रेंडरिंग वेरिएंट बेंचमार्क किए: कारण तीन हैं, वे अलग किए जा सकते हैं, और उनमें से कोई भी “बेहतर मॉडल” से ठीक नहीं होता। यह संशोधन वह जोड़ता है जो मूल बेंच में नहीं था: आँकड़े। चुने गए रेंडरिंग को फेस-रिकग्निशन एम्बेडिंग[4] से दोबारा मापने पर आँखों से किया चयन मात्रात्मक रूप से सही साबित होता है (“नैचुरल” रेंडरिंग का हर डायल मापने लायक आइडेंटिटी खरीदता है, और रिस्टोरेशन के आइडेंटिटी टैक्स को आधा कर देता है), और फ़िडेलिटी नॉब का पूरा स्वीप दिखाता है कि यह 0.7 पर क्यों शिप होता है, जबकि हर कर्व 1.0 की ओर एकरस बढ़ता है।

3प्लास्टिक लुक के अलग-अलग कारणपूरा रिप्लेसमेंट, रंग का बहाव, छोटे चेहरे
0.950खराब किए गए इनपुट की आइडेंटिटीवह पैमाना जिस पर हर रिस्टोरेशन को परखा जाना चाहिए
0.868 → 0.909आइडेंटिटी, क्लासिक → नैचुरल रेंडरएब्लेशन, w = 0.7 पर मापा गया
−0.041शिप हुए रेंडर का आइडेंटिटी टैक्सक्लासिक रेंडरर के −0.082 का आधा

इस नोट का हर आँकड़ा प्रोडक्शन पाइपलाइन के कोड पर मापा गया: वही मॉडल, वही गणित। प्रति इमेज कच्चे रिकॉर्ड: e2v2_face.json · e2_face.json.

एक तंबू के पास खड़े तीन आदमियों का सॉफ्ट, ग्रेन वाला 1862 का ब्लैक एंड व्हाइट स्कैनपहलेवही स्कैन रिस्टोर होने के बाद: शार्प चेहरे और वापस आई डिटेल, प्राकृतिक रंग के साथबाद में
चित्र 1. कॉर्पस की एक तस्वीर (Antietam में Lincoln, Library of Congress का 1862 का स्कैन) पर इस साइट के टूल का रिस्टोरेशन: चेहरे फिर से बने और पूरी इमेज एन्हांस हुई, तस्वीर का अपना ग्रेन और रंग-चरित्र बरकरार। अगस्त 2026।

1 · तीन कारण

1. पूरा रिप्लेसमेंट। स्टैंडर्ड पाइपलाइन मॉडल के आउटपुट को असली चेहरे के ऊपर 100% ओपैसिटी पर चिपका देती है, इसलिए हर रिस्टोर किया चेहरा पूरी तरह मॉडल का बनाया होता है। तस्वीर का ग्रेन, कागज़ की बनावट और लेंस का चरित्र हर चेहरे के चारों ओर एक अदृश्य अंडाकार सीमा पर खत्म हो जाते हैं।

2. रंग का बहाव। फेस मॉडल अपना रंग निकालता है, फोटो का नहीं। हमारे बेंच पर मापने पर उसने 1850 के दशक के एक ऐम्ब्रोटाइप में नीली आँखें गढ़ दीं और 19वीं सदी के एक स्टूडियो पोर्ट्रेट में एक अश्वेत व्यक्ति की त्वचा का रंग हल्का कर दिया, जो आधुनिक, ज़्यादातर हल्की त्वचा वाले फोटो कॉर्पस पर ट्रेन हुए फेस मॉडलों की एक जानी-पहचानी नाकामी है[2]। जो भी पाइपलाइन मॉडल का क्रोमा रखती है, उसे उसके पूर्वाग्रह विरासत में मिलते हैं।

3. छोटे चेहरे कल्पना हैं। लगभग 100 px से कम जगह घेरने वाला चेहरा 512 px के फेस मॉडल तक 5–13× बाइलीनियर एनलार्जमेंट, यानी एक धब्बे के रूप में पहुँचता है। मॉडल फिर असली चेहरा वापस लाने के बजाय एक विश्वसनीय चेहरा गढ़ लेता है। यह भौतिकी की सीमा है, मॉडल की नहीं: 40 px के चेहरे को सॉफ्ट-मगर-इंसानी बनाया जा सकता है, शार्प-और-वफ़ादार कभी नहीं।

2 · एक चेहरे की मरम्मत की शारीरिक रचना

डायल कहाँ हैं यह देखने के लिए एक चेहरे को पाइपलाइन में पूरा फॉलो करें। डिटेक्शन (SCRFD, प्लॉज़िबिलिटी गेट के साथ) पाँच लैंडमार्क देता है। अलाइनमेंट वह लीस्ट-स्क्वेयर्स सिमिलैरिटी ट्रांसफॉर्म (स्केल s, रोटेशन θ, ट्रांसलेशन t) हल करता है जो पहचाने गए आँख और मुँह के बिंदुओं pi को तय FFHQ टेम्पलेट[5] qi पर मैप करता है:

argmins,θ,t Σi ‖ sR(θ)pi + t − qi ‖²(1)

ताकि हर चेहरा नेटवर्क में 512×512 पर, आँखें और मुँह तय जगह पर रखकर दाखिल हो। मॉडल, डिफ़ॉल्ट रूप से CodeFormer[1], जो पिक्सेल रिग्रेस करने के बजाय सीखी हुई कोडबुक में चेहरे ढूँढकर रिस्टोर करता है और एक फ़िडेलिटी वेट w ∈ [0, 1] देता है जो उसके प्रायर (0) और आपके इनपुट (1) के बीच स्टीयर करता है, एक रिस्टोर किया क्रॉप बनाता है। फिर आता है वह हिस्सा जिसके बारे में यह नोट है: पेस्ट-बैक। क्लासिक नुस्खा उस क्रॉप को मॉडल के अपने रंगों में पूरी ओपैसिटी पर कम्पोज़िट करता है। हमारा उसे रेडियल फेदर m के नीचे वापस उसकी जगह वार्प करता है और हर पिक्सेल को इस तरह कम्पोज़िट करता है

out = blend · m · faceL⊕photoab + (1 − blend · m) · photo(2)

जहाँ blend = 0.75 है, और faceL⊕photoab का मतलब है कि मॉडल सिर्फ ल्यूमिनेंस (Lab का L) देता है जबकि तस्वीर अपना क्रोमा खुद रखती है, जो हमारे कलराइज़र का ठीक उल्टा है, जो सिर्फ क्रोमा देता है और फोटो का ल्यूमिनेंस रखता है। छोटे चेहरों को रिस्टोरेशन से पहले उनके सोर्स फुटप्रिंट पर एक अलग ×4 सुपर-रिज़ॉल्यूशन पास मिलता है, ताकि मॉडल को बाइलीनियर धब्बे के बजाय वापस पाई गई डिटेल दिखे।

3 · वह विज़ुअल बेंच जिसने वेरिएंट H चुना

आठ वेरिएंट, हर एक कॉर्पस पर पूरी पाइपलाइन का रन, जिनमें फ़िडेलिटी वेट, पेस्ट-बैक ओपैसिटी, रंग का स्रोत और छोटे चेहरों का SR बदला गया। आउटपुट की तुलना मूल के साथ अगल-बगल 100% ज़ूम पर की गई:

वेरिएंटवेटपेस्ट-बैकरंग का स्रोतछोटे चेहरों का SR
A (तब का मौजूदा)0.70100%मॉडल
B0.90100%मॉडल
C0.7070%मॉडल
D0.70100%तस्वीर
E0.7075%तस्वीर
F0.8575%तस्वीर
G0.7050%तस्वीर
H (चुना गया)0.7075%तस्वीरहाँ

H डिफ़ॉल्ट रेंडरिंग के रूप में शिप हुआ। सिर्फ-ल्यूमिनेंस वाला पेस्ट-बैक प्रति फोटो आधे सेकंड से कम जोड़ता है; छोटे चेहरों का पास सिर्फ हर योग्य चेहरे पर एक से दो सेकंड जोड़ता है। मूल सीमाओं वाले हिस्से ने ज़ाहिर कमज़ोरी मानी थी: चयन 35 चेहरों पर अगल-बगल इंसानी परख से हुआ था, किसी मेट्रिक से नहीं। इसलिए हमने मेट्रिक बेंच बनाया।

4 · नया: एब्लेशन, आँकड़ों में

एक आँकड़ा सब कुछ तय करता है: खराब किया गया इनपुट खुद मूल के मुकाबले 0.950 आइडेंटिटी स्कोर करता है। ArcFace भारी ऑगमेंटेशन के साथ ट्रेन हुआ है, इसलिए वह ब्लर और नॉइज़ के आर-पार देख लेता है; इसलिए रिस्टोरेशन को शार्प होने का कोई श्रेय नहीं मिलता; उससे सिर्फ तब कटौती होती है जब वह बदल दे कि फोटो में कौन है। हर रेंडरर उस आइडेंटिटी टैक्स का कुछ हिस्सा चुकाता है। सवाल है कितना:

रेंडरिंग (सभी w = 0.7 पर)PSNR (dB)ArcFace idआइडेंटिटी टैक्सTenengrad अनुपात
खराब किया गया इनपुट (बेसलाइन)27.320.9500.217
Classic v2 (100% paste, model colour)26.680.8680.0820.373
+ luma-only (photo keeps its chroma)26.720.8820.0680.376
+ 75% blend (grain shows through)27.060.9010.0490.304
Natural (shipped: both + small-face SR)27.090.9090.0410.307

मेट्रिक बेंच आँखों से सहमत है, डायल-दर-डायल। तस्वीर का क्रोमा रखना +0.014 आइडेंटिटी खरीदता है (रंग का बहाव असली था, और मापने लायक)। 75% ब्लेंड और +0.019 खरीदता है और PSNR का ज़्यादातर हिस्सा: असली चेहरे के एक चौथाई को झलकने देना लगभग उतना ही कीमती है जितनी पूरे फेस मॉडल की फ़िडेलिटी सेटिंग। मिलकर वे आइडेंटिटी टैक्स को आधा कर देते हैं, −0.082 से −0.041, और फिर भी शार्पनेस इनपुट की लगभग 1.4× रहती है। एक ईमानदार कीमत: क्लासिक रेंडर Tenengrad के हिसाब से “ज़्यादा शार्प” है (0.373 बनाम 0.307), और उस शार्पनेस का कुछ हिस्सा वह ऐसी बनावट पर खर्च करता है जो तस्वीर की नहीं है। यही परसेप्शन-डिस्टॉर्शन ट्रेडऑफ[6] है, रेंडरिंग में आ बैठा, और हम उसे आइडेंटिटी पर खर्च करते हैं।

Florence Owens Thompson के चेहरे के चार पैनल: शार्प मूल, खराब की गई कॉपी, प्लास्टिक त्वचा और बदले रंग वाला क्लासिक रेंडर, और ग्रेन व टोन बचाए रखने वाला नैचुरल रेंडर
चित्र 2. एब्लेशन खुद देखिए: Migrant Mother (Lange 1936)। क्लासिक v2 (तीसरा): प्लास्टिक जैसी त्वचा और ऐसी रंगत जो तस्वीर में कभी थी ही नहीं। नैचुरल (चौथा): मॉडल की डिटेल, तस्वीर के अपने ग्रेन और टोन के नीचे। आइडेंटिटी: मूल के मुकाबले 0.868 बनाम 0.909।
Lincoln के पोर्ट्रेट के चार पैनल: मूल, खराब किया हुआ, ठंडे रंग-बदलाव वाला क्लासिक रेंडर, और प्लेट की गर्म टोन रखने वाला नैचुरल रेंडर
चित्र 3. वही एब्लेशन, Lincoln O-77 (1863)। क्लासिक रेंडर (तीसरा) प्लेट की गर्म टोन सोख लेता है और पूरे चेहरे को ठंडा कर देता है: कारण 2, रंग का बहाव, एक नज़र में। नैचुरल रेंडर तस्वीर का रंग बनावट से ही रखता है: मॉडल को सिर्फ ल्यूमिनेंस देने की इजाज़त है।

5 · फ़िडेलिटी नॉब, शुरू से आखिर तक स्वीप किया हुआ

CodeFormer का वेट w कोडबुक के प्रायर (0) और आपके इनपुट के प्रति झुकाव (1) के बीच स्टीयर करता है[1]। हमने इसे नैचुरल रेंडरर के तहत ग्यारह कदमों में स्वीप किया:

0.60.70.80.9100.250.50.71CodeFormer फ़िडेलिटी वेट wमूल के मुकाबले ArcFace कोसाइनखराब किया गया इनपुटप्रोडक्शन
चित्र 4. शिप हुए रेंडरर के तहत ArcFace आइडेंटिटी बनाम फ़िडेलिटी वेट, चार पोर्ट्रेट का औसत, ×4 डिग्रेडेशन। 0.710 (एक विश्वसनीय अजनबी) से 0.932 तक एकरस, और 0.950 की डैश वाली इनपुट बेसलाइन तक कभी नहीं पहुँचता: नॉब आइडेंटिटी टैक्स की दर तय करता है, वह टैक्स को नकारात्मक नहीं बना सकता। PSNR (25.5 → 27.3 dB) और SSIM उसी तरह एकरस हैं।

हम एक ऐसा ट्रेडऑफ कर्व उम्मीद कर रहे थे जिसमें बीच में कोई ऑप्टिमम हो जो 0.7 को “घुटना” साबित कर दे। डेटा ने मना कर दिया: आँकड़ों में w = 1.0 हावी है, हर गंभीरता पर:

×2 (mild)×4 (standard)×8 (severe)
0.50.60.70.80.9100.30.50.71CodeFormer फ़िडेलिटी वेट wमूल के मुकाबले ArcFace कोसाइनप्रोडक्शन
चित्र 5. गंभीरता का असर: ×2 / ×4 / ×8 डिग्रेडेशन पर आइडेंटिटी बनाम वेट, नैचुरल रेंडरर। ऊँचा w हर जगह जीतता है, ×8 पर भी जहाँ इनपुट बेसलाइन खुद 0.826 तक गिर चुकी है। प्रोडक्शन सेटिंग पर आइडेंटिटी टैक्स −0.042 (हल्का), −0.041 (सामान्य), −0.068 (गंभीर) रहता है; w = 0 पर यह −0.27 तक पहुँचता है: जब थोड़ी ही जानकारी बचती है, प्रायर खालीपन को अपनी राय से भर देता है।

तो 1.0 के बजाय 0.7 क्यों शिप करें? क्योंकि मेट्रिक ज़रूरी हैं, पर्याप्त नहीं। ArcFace कौन मापता है; उम्र और बनावट के प्रति वह लगभग अंधा है; जो ट्रेनिंग उसे ब्लर के प्रति मज़बूत बनाती है, वही उसे स्मूदिंग के प्रति उदार बनाती है। बेंच का मूल अवलोकन अपने सबूत पर खुद खड़ा है: मॉडल के आम 0.5 पर Migrant Mother में आँखों की झुर्रियाँ साफ़ नरम पड़ जाती हैं: Florence Owens Thompson 32 साल की थीं और महामंदी को अपने चेहरे पर ढो रही थीं, और प्रायर को यह मंज़ूर नहीं। w = 1.0 पर कोडबुक बर्बाद इनपुट की ओर इतना झुक जाती है कि कम्प्रेशन का कचरा बचने लगता है। 0.7 मेट्रिक की लगभग पूरी कीमत रखता है (0.909 बनाम 0.932) जबकि तस्वीरें अपनी उम्र रखती हैं। और नीचे का s8 पैनल इस बात की दलील है कि खराब विरासती फोटो पर w को कभी 0 के पास न जाने दें:

तीन पैनल: बुरी तरह खराब Lincoln, वेट शून्य पर लगभग न पहचाना जा सकने वाला चिकना जवान चेहरा, और वेट एक पर ज़्यादा करीब की शक्ल
चित्र 6. ×8 डिग्रेडेशन, Lincoln। इस इनपुट (बाएँ) से w = 0 (बीच) पूरे भरोसे के साथ एक ज़्यादा चिकना, ज़्यादा जवान, अलग आदमी गढ़ देता है: आइडेंटिटी 0.585, सिक्का उछालने के करीब। w = 1 (दाएँ) 0.788 पर पहचानने लायक Lincoln बना रहता है। जब सबूत कम हों, प्रायर की राय हावी होती है, ठीक तब जब आप नॉब ऊँचा चाहते हैं।

6 · बाकी मॉडल, वही रेंडरर

फेस मॉडलPSNR (dB)ArcFace idTenengrad अनुपातms / चेहरा*
CodeFormer (w = 0.7, default)27.090.9090.3077200
GFPGAN 1.427.130.9100.3286046
GPEN-BFR-25626.680.9270.3222633

*2-vCPU बेंच बॉक्स पर फुल-पास वॉल-क्लॉक का मीडियन (डिटेक्शन समेत)। नैचुरल रेंडरर के तहत तीनों मॉडल[1][2][3] एक-दूसरे से 0.02 आइडेंटिटी के भीतर आ जाते हैं: अब मॉडल नहीं, रेंडरर हावी पद है, जो अपने आप में एक निष्कर्ष है: “वीडियो गेम” लुक कभी असल में इस बारे में था ही नहीं कि आप कौन सा नेटवर्क चलाते हैं। CodeFormer गंभीर नुकसान पर अपनी मज़बूती और उस नॉब के लिए डिफ़ॉल्ट बना रहता है जिस पर इस नोट ने अभी दो हिस्से खर्च किए; GPEN 2.6 s प्रति चेहरे पर रफ्तार का विकल्प बना रहता है।

7 · सीमाएँ

  • विज़ुअल बेंच 35 चेहरे है; मेट्रिक बेंच 4 पोर्ट्रेट × 120 रन। एकरस आकार हर पोर्ट्रेट पर अलग-अलग भी कायम रहे; यही वह दावा है जिस पर हम टिके हैं; निरपेक्ष मान विषय और स्कैन के साथ बदलेंगे।
  • ArcFace एक ही रेफरी है, स्टैंडर्ड वाला, ब्लर-सहिष्णुता की उस चेतावनी के साथ जिसे हम बेसलाइन के रूप में इस्तेमाल करते हैं। हज़ारों चेहरों पर इंसानी परसेप्चुअल अध्ययन वह उपकरण है जो अभी नहीं है, और उम्र की लकीरों वाला अवलोकन आँखों पर टिका है, एम्बेडिंग पर नहीं।
  • सिंथेटिक डिग्रेडेशन। असली डिब्बे वाला नुकसान खरोंचें और सिल्वरिंग जोड़ता है जिन्हें करप्शन स्टैक मॉडल नहीं करता; डैमेज स्टेज उन्हें अलग से संभालता है।
  • छोटे चेहरों की सीमा कायम है: लगभग 40 px से छोटे चेहरे पर कोई भी सेटिंग वफ़ादार शार्प चेहरा नहीं देती, और ईमानदार आउटपुट सॉफ्ट चेहरा है।

संदर्भ

  1. Zhou, S., Chan, K. C. K., Li, C., & Loy, C. C. (2022). Towards Robust Blind Face Restoration with Codebook Lookup Transformer. NeurIPS 35. arXiv:2206.11253. arxiv.org
  2. Wang, X., Li, Y., Zhang, H., & Shan, Y. (2021). Towards Real-World Blind Face Restoration with Generative Facial Prior. CVPR. arXiv:2101.04061. arxiv.org
  3. Yang, T., Ren, P., Xie, X., & Zhang, L. (2021). GAN Prior Embedded Network for Blind Face Restoration in the Wild. CVPR. arXiv:2105.06070. arxiv.org
  4. Deng, J., Guo, J., Xue, N., & Zafeiriou, S. (2019). ArcFace: Additive Angular Margin Loss for Deep Face Recognition. CVPR. arXiv:1801.07698. arxiv.org
  5. Karras, T., Laine, S., & Aila, T. (2019). A Style-Based Generator Architecture for Generative Adversarial Networks (the FFHQ alignment template). CVPR. arXiv:1812.04948. arxiv.org
  6. Blau, Y., & Michaeli, T. (2018). The Perception-Distortion Tradeoff. CVPR. arXiv:1711.06077. arxiv.org
  7. FaceFusion (open-source face processing platform): the reference implementation our SCRFD decode and model preprocessing are ported from, 1:1. github.com
  8. Lange, D. (1936). “Migrant Mother” (Destitute pea pickers in California), Farm Security Administration. Public domain, via Wikimedia Commons. commons.wikimedia.org
  9. Gardner, A. (1863). Abraham Lincoln, portrait O-77. Public domain, via Wikimedia Commons. commons.wikimedia.org
  10. ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai