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

AI अपस्केलिंग बनाम बाइक्यूबिक: 28 इमेज का बेंचमार्क

· प्रयोग का लेख · कॉर्पस: Kodak-24 + 4 ऐतिहासिक स्कैन · 5 रीकंस्ट्रक्शन तरीके · 140 रन

हर फोटो टूल अब “एन्हांस” करने का वादा करता है। हमारा Real-ESRGAN[1] चलाता है, इसलिए हम पर एक असुविधाजनक सवाल का जवाब बकाया था: जब आप उस तरह मापें जैसे इमेज-प्रोसेसिंग साहित्य मापता है, तो क्या AI सच में सादे बाइक्यूबिक इंटरपोलेशन को हराता है? नतीजा सबसे दिलचस्प किस्म का जवाब है (नहीं, और साथ ही ज़ोरदार हाँ), और इन दो जवाबों के बीच की दरार का साहित्य में एक नाम है: परसेप्शन-डिस्टॉर्शन ट्रेडऑफ[3]। यह नोट पूरा बेंचमार्क दिखाता है, उस मामले समेत जहाँ AI बुरी तरह हारता है (फिल्म ग्रेन), और यह कि हम क्लासिकल बेंचमार्क हारने वाला मॉडल फिर भी क्यों शिप करते हैं।

28टेस्ट इमेजKodak सूट + 4 ऐतिहासिक स्कैन
−1.07 dBReal-ESRGAN PSNR बनाम Lanczos-3AI फ़िडेलिटी मेट्रिक हारता है…
3.1×ज़्यादा एज एनर्जी वापस…और शार्पनेस वाला जीतता है
0.711मैदान का सबसे अच्छा औसत SSIMसंरचना मॉडल के पक्ष में

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

1 · तरीका

कॉर्पस 24 इमेज वाला Kodak Lossless True Color Suite[4] है (768×512 का वह रेफरेंस सेट जिस पर कम्प्रेशन और सुपर-रिज़ॉल्यूशन साहित्य तीन दशकों से टिका है), और ऐतिहासिक तस्वीरों के हाई-रिज़ॉल्यूशन स्कैन से 768×512 के चार क्रॉप, जिनमें Dorothea Lange की 1936 की Migrant Mother[5] शामिल है, क्योंकि यह साइट पुरानी फोटो के लिए है और पुरानी फोटो में फिल्म ग्रेन होता है। यही फर्क खंड 3 तय करता है।

हम तीन चीज़ें स्कोर करते हैं। फ़िडेलिटी, RGB पर पीक सिग्नल-टू-नॉइज़ अनुपात के रूप में:

PSNR = 10 · log10( 255² / MSE )  dB(1)

स्ट्रक्चरल सिमिलैरिटी (SSIM[2], ल्यूमा, स्टैंडर्ड 11×11 गॉसियन विंडो, σ = 1.5, K₁ = 0.01, K₂ = 0.03):

SSIM = (2μxμy + C₁)(2σxy + C₂) / (μx² + μy² + C₁)(σx² + σy² + C₂)(2)

और शार्पनेस Tenengrad माप के रूप में (औसत वर्ग Sobel ग्रेडिएंट परिमाण), रिस्टोरेशन अनुपात के रूप में दर्ज, Tenengrad(आउटपुट) ÷ Tenengrad(ग्राउंड ट्रुथ)। 1.0 के अनुपात का मतलब होगा कि रीकंस्ट्रक्शन में मूल तस्वीर जितनी एज एनर्जी है।

2 · नतीजे: ट्रेडऑफ, लाइव

जिस मेट्रिक की सब रिपोर्ट करते हैं, उस पर क्लासिकल सीढ़ी ठीक वैसे चलती है जैसे सैंपलिंग सिद्धांत बताता है (हर बेहतर कर्नेल डेसिबल का एक अंश खरीदता है), और Real-ESRGAN आखिरी से एक पहले आता है:

तरीकाPSNR (dB)σSSIMTenengrad अनुपातms / इमेज*
नियरेस्ट नेबर25.42±3.420.6730.3828
बाइलीनियर25.88±3.620.6870.152236
बाइक्यूबिक (Catmull-Rom)26.29±3.680.7050.196343
Lanczos-326.45±3.710.7110.216876
Real-ESRGAN ×4 (हमारा)25.38±3.160.7110.676462

*192×128 इनपुट, 2-vCPU कंटेनर-क्लास हार्डवेयर; अनुपात दूसरी जगह लागू होते हैं, मिलीसेकंड नहीं। अगर PSNR ही पूरी कहानी होती तो हम Lanczos-3 शिप करते और 4.9 MB का न्यूरल नेटवर्क डिलीट कर देते। लेकिन हर तरीके को फ़िडेलिटी अक्ष पर शार्पनेस अक्ष के मुकाबले प्लॉट करें और मैदान दो प्रजातियों में बँट जाता है:

क्लासिकल इंटरपोलेशनReal-ESRGAN (प्रोडक्शन)
00.20.40.60.825.425.826.226.6PSNR (dB): ऊँचा यानी ज़्यादा वफ़ादारTenengrad अनुपात
चित्र 1. परसेप्शन-डिस्टॉर्शन तल, प्रति तरीका एक बिंदु। क्लासिकल इंटरपोलेटर नीचे-दाएँ गुच्छा बनाते हैं: ऊँची फ़िडेलिटी, लगभग कोई वापस लाई गई एज एनर्जी नहीं (मूल की 0.15–0.22)। Real-ESRGAN 0.68 पर अकेला बैठा है, उसके लिए ~1 dB मापा गया डिस्टॉर्शन चुकाते हुए: ठीक वही ट्रेडऑफ जिससे Blau और Michaeli ने साबित किया कि कोई एल्गोरिदम बच नहीं सकता।

SSIM (जो कच्ची त्रुटि के बजाय महसूस की गई संरचना को ट्रैक करने के लिए बना है[2]) बीच का रास्ता लेता है और मामूली अंतर से मॉडल का पक्ष लेता है: पूरे मैदान का सबसे अच्छा औसत, और Kodak उपसमूह पर, जहाँ बारीक बनावट हावी है, साफ 0.704 बनाम 0.694। इंटरपोलेशन शार्पनेस पर मुकाबला क्यों नहीं कर सकता? क्योंकि हर क्लासिकल कर्नेल एक लीनियर, शिफ्ट-इनवेरिएंट ऑपरेटर है: वह सिर्फ उन फ्रीक्वेंसियों को फिर से बाँट सकता है जो डाउनसैंपलिंग से बच गईं, कभी उन्हें नहीं बना सकता जो नहीं बचीं। Nyquist सीमा कोई सुझाव नहीं है। एक GAN प्रायर सवाल बदलकर सीमा को दरकिनार कर देता है: “किस सिग्नल ने ये सैंपल बनाए?” (जिसका जवाब नहीं) से “जितनी प्राकृतिक इमेज इस पर डाउनसैंपल होंगी, उनमें सबसे विश्वसनीय कौन सी है?”[1] तक। और ठीक वहीं उसका जोखिम भी रहता है: विश्वसनीय, सच नहीं है।

उसी मोटरसाइकिल डिटेल के चार पैनल: पिक्सेलेटेड डाउनसैंपल इनपुट, धुंधला बाइक्यूबिक अपस्केल, शार्प Real-ESRGAN रीकंस्ट्रक्शन, और ग्राउंड ट्रुथ
चित्र 2. आँकड़े कैसे दिखते हैं। Kodak kodim05, 240 px डिटेल, बाएँ से दाएँ: ×4 डाउनसैंपल किया इनपुट (नियरेस्ट-नेबर से दिखाया), बाइक्यूबिक रीकंस्ट्रक्शन, हमारे प्रोडक्शन टाइल पाथ से Real-ESRGAN, ग्राउंड ट्रुथ। जिन तीलियों और केबलों का बाइक्यूबिक पैनल बस इशारा करता है, मॉडल उन्हें फिर से खींच देता है।

3 · फिल्म ग्रेन की समस्या, आँकड़ों में

औसत सबसे काम की खोज छिपा लेते हैं। कॉर्पस बाँटें और प्रति इमेज PSNR डेल्टा (Real-ESRGAN − Lanczos-3) साफ तौर पर द्विमोडी हैं: साफ आधुनिक फ्रेम पर मॉडल एक डेसिबल के भीतर है (एक पर वह Lanczos को सीधे हराता है, +0.15 dB); चार ऐतिहासिक फिल्म स्कैन पर वह बुरी तरह हारता है: उपसमूह के औसत 28.75 बनाम 32.12 dB हैं:

Douglass 1879 · स्कैनLincoln 1863 · स्कैनProkudin 1911 · स्कैनkodim15 · पोर्ट्रेटMigrant Mother · स्कैन
-5-4-3-2-10PSNR डेल्टा (dB), नकारात्मक: AI हारता हैबराबरी
चित्र 3. प्रति इमेज पाँच सबसे बुरे डेल्टा। पाँच में से चार ऐतिहासिक स्कैन हैं। तंत्र: फिल्म ग्रेन हाई-फ्रीक्वेंसी है, स्थानिक रूप से असंबद्ध है, और ग्राउंड ट्रुथ का हिस्सा है; PSNR हर मिटाए गए ग्रेन कण को त्रुटि के रूप में बिल करता है, और Real-ESRGAN, जो हाई-फ्रीक्वेंसी नॉइज़ को नुकसान समझने के लिए ट्रेन हुआ है, उसे पूरा मिटा देता है।
Migrant Mother के मुँह की डिटेल के चार पैनल: डाउनसैंपल इनपुट, बाइक्यूबिक, चिकने ग्रेन वाला Real-ESRGAN, और ग्रेन भरा ग्राउंड ट्रुथ
चित्र 4. Migrant Mother (Lange 1936), स्कैन रिज़ॉल्यूशन पर मुँह और ठोड़ी की डिटेल। ग्राउंड ट्रुथ (दाएँ) ईमानदार फिल्म ग्रेन की दीवार है; Real-ESRGAN (तीसरा) चीनी मिट्टी लौटाता है। हर मिटाया गया ग्रेन कण PSNR त्रुटि के रूप में बिल होता है, और कुछ दर्शक फिर भी साफ पैनल पसंद करेंगे। मेट्रिक रुचि नहीं हैं।

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

4 · सीमाएँ

  • कोई सीखा हुआ परसेप्चुअल मेट्रिक नहीं। LPIPS या DISTS परसेप्शन अक्ष को तीखा करते; Tenengrad ईमानदार पर सरल प्रॉक्सी है। कच्चे रिकॉर्ड प्रकाशित हैं ताकि कोई भी दोबारा स्कोर कर सके।
  • एक ही डिग्रेडेशन। बाइक्यूबिक ×4 स्टैंडर्ड प्रोटोकॉल और सबसे नरम मामला है; असली स्कैन ब्लर कर्नेल, JPEG और नॉइज़ जोड़ते हैं (फेस नोट पूरा करप्शन स्टैक इस्तेमाल करता है)।
  • N = 28: इन प्रभाव आकारों के लिए काफी (क्रम लीव-वन-आउट में स्थिर है), ग्रेन वाले बँटवारे से आगे उपसमूह दावों के लिए कम।

5 · निष्कर्ष

सिग्नल रीकंस्ट्रक्शन के रूप में मापें तो AI सुपर-रिज़ॉल्यूशन Lanczos-3 से बुरा इंटरपोलेटर है: यहाँ 1.07 dB बुरा, ठीक जैसा परसेप्शन-डिस्टॉर्शन ट्रेडऑफ बताता है[3]तस्वीर के रीकंस्ट्रक्शन के रूप में मापें (संरचना, एज एनर्जी और आपकी आँखें) तो मुकाबला करीब का नहीं है, दूसरी दिशा में। आपके जूतों के डिब्बे के लिए व्यावहारिक निष्कर्ष: जिन फोटो को लोग देखेंगे, उनके लिए मॉडल सही डिफ़ॉल्ट है; उन आर्काइवल मास्टर के लिए जहाँ हर ग्रेन कण सबूत है, कच्चा स्कैन भी रखें। रिस्टोर टूल ठीक इसी बँटवारे के इर्द-गिर्द बना है।

संदर्भ

  1. Wang, X., Xie, L., Dong, C., & Shan, Y. (2021). Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data. ICCV Workshops. arXiv:2107.10833. arxiv.org
  2. Wang, Z., Bovik, A. C., Sheikh, H. R., & Simoncelli, E. P. (2004). Image Quality Assessment: From Error Visibility to Structural Similarity. IEEE Transactions on Image Processing, 13(4), 600–612. doi.org
  3. Blau, Y., & Michaeli, T. (2018). The Perception-Distortion Tradeoff. CVPR. arXiv:1711.06077. arxiv.org
  4. Kodak Lossless True Color Image Suite: 24 uncompressed 768×512 PhotoCD reference images, the classic image-quality test set. r0k.us
  5. Lange, D. (1936). “Migrant Mother” (Destitute pea pickers in California), Farm Security Administration. Public domain, via Wikimedia Commons. commons.wikimedia.org
  6. ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai