Mengapa wajah hasil restorasi AI mirip karakter video game
Model restorasi wajah bisa membuat wajah dari foto yang rusak tampak seperti render dari video game lawas: kulit plastik, mata seperti dilukis, wajah yang tajam tetapi bukan benar-benar orangnya. Kami mem-benchmark delapan varian rendering pada 11 foto domain publik untuk mengisolasi penyebabnya: ada tiga, ketiganya bisa dipisahkan, dan tak satu pun diperbaiki oleh “model yang lebih baik”. Revisi ini menambahkan apa yang tidak dimiliki bench aslinya: angka. Mengukur ulang rendering yang dipilih dengan embedding pengenalan wajah[4] mengonfirmasi pemilihan dengan mata itu secara kuantitatif (setiap dial pada rendering “natural” membeli identitas yang terukur, memangkas pajak identitas restorasi hingga separuhnya), dan sapuan penuh pada kenop fidelitas menunjukkan mengapa ia dirilis pada 0,7 meski setiap kurva monoton menuju 1,0.
Setiap angka dalam catatan ini diukur pada kode pipeline produksi: model yang sama, matematika yang sama. Rekaman mentah per gambar: e2v2_face.json · e2_face.json.
Sebelum
Sesudah1 · Tiga penyebabnya
1. Penggantian total. Pipeline standar menempelkan output model di atas wajah asli pada opasitas 100%, sehingga setiap wajah hasil restorasi seluruhnya digambar model. Butiran foto, tekstur kertas, dan karakter lensa berakhir di batas oval tak kasatmata di sekeliling setiap wajah.
2. Pergeseran warna. Model wajah mengeluarkan warnanya sendiri, bukan warna fotonya. Diukur pada bench kami, ia mengarang mata biru pada sebuah ambrotype tahun 1850-an dan mencerahkan warna kulit pada potret studio abad ke-19 seorang subjek kulit hitam, mode kegagalan yang dikenal pada model wajah yang dilatih dengan korpus foto modern yang didominasi kulit terang[2]. Pipeline mana pun yang mempertahankan kroma model mewarisi biasnya.
3. Wajah kecil adalah halusinasi. Wajah yang menempati kurang dari kira-kira 100 px mencapai model wajah 512 px sebagai perbesaran bilinear 5–13×, sebuah olesan. Model lalu mengarang wajah yang masuk akal alih-alih memulihkan wajah yang sebenarnya. Ini batas fisika, bukan batas model: wajah 40 px bisa dibuat lembut-tapi-manusiawi, tidak pernah tajam-dan-setia.
2 · Anatomi sebuah perbaikan wajah
Untuk melihat di mana dial-dialnya berada, ikuti satu wajah melewati pipeline. Deteksi (SCRFD, dengan gerbang plausibilitas) menghasilkan lima landmark. Penyejajaran menyelesaikan transformasi kesebangunan kuadrat terkecil (skala s, rotasi θ, translasi t) yang memetakan titik mata dan mulut yang terdeteksi pi ke templat FFHQ yang tetap[5] qi:
sehingga setiap wajah memasuki jaringan pada 512×512 dengan mata dan mulut di posisi kanonik. Model, CodeFormer secara default[1], yang merestorasi dengan mencari wajah di sebuah codebook yang dipelajari alih-alih meregresi piksel, dan mengekspos bobot fidelitas w ∈ [0, 1] yang mengemudikan antara prior-nya (0) dan inputmu (1), menghasilkan potongan yang direstorasi. Lalu tibalah bagian yang menjadi pokok catatan ini: penempelan kembali. Resep klasik mengomposit potongan itu pada opasitas penuh dalam warna model itu sendiri. Resep kami mengembalikannya dengan warp di bawah feather radial m dan mengomposit setiap piksel sebagai
dengan blend = 0,75, dan faceL⊕photoab berarti model hanya menyumbang luminans (L pada Lab) sementara foto mempertahankan kromanya sendiri, cermin persis dari pewarna kami, yang hanya menyumbang kroma dan mempertahankan luminans foto. Wajah kecil mendapat tahap super-resolusi ×4 khusus pada jejak sumbernya sebelum restorasi, sehingga model melihat detail yang dipulihkan alih-alih olesan bilinear.
3 · Bench visual yang memilih varian H
Delapan varian, masing-masing run pipeline penuh atas korpus, memvariasikan bobot fidelitas, opasitas penempelan kembali, sumber warna, dan SR wajah kecil. Output dibandingkan berdampingan dengan aslinya pada zoom 100%:
| Varian | Bobot | Penempelan kembali | Sumber warna | SR wajah kecil |
|---|---|---|---|---|
| A (saat itu berlaku) | 0,70 | 100% | model | – |
| B | 0,90 | 100% | model | – |
| C | 0,70 | 70% | model | – |
| D | 0,70 | 100% | foto | – |
| E | 0,70 | 75% | foto | – |
| F | 0,85 | 75% | foto | – |
| G | 0,70 | 50% | foto | – |
| H (terpilih) | 0,70 | 75% | foto | ya |
H dirilis sebagai rendering default. Penempelan kembali hanya-luminans menambah kurang dari setengah detik per foto; tahap wajah kecil menambah satu sampai dua detik hanya per wajah yang memenuhi syarat. Bagian keterbatasan yang asli mengakui kelemahan yang jelas: pemilihan dilakukan lewat penilaian manusia secara berdampingan pada 35 wajah, bukan lewat metrik. Maka kami membangun bench metriknya.
4 · Baru: ablasinya, dikuantifikasi
Satu angka membingkai semuanya: input yang terdegradasi sendiri mencetak identitas 0,950 terhadap aslinya. ArcFace dilatih dengan augmentasi berat, sehingga ia menembus blur dan derau; restorasi karena itu tidak mendapat kredit karena tajam; ia hanya didebit ketika mengubah siapa yang ada di foto. Setiap renderer membayar sebagian dari pajak identitas itu. Pertanyaannya, seberapa besar:
| Rendering (semua pada w = 0,7) | PSNR (dB) | id ArcFace | pajak identitas | rasio Tenengrad |
|---|---|---|---|---|
| Input terdegradasi (baseline) | 27.32 | 0.950 | – | 0.217 |
| Classic v2 (100% paste, model colour) | 26.68 | 0.868 | −0.082 | 0.373 |
| + luma-only (photo keeps its chroma) | 26.72 | 0.882 | −0.068 | 0.376 |
| + 75% blend (grain shows through) | 27.06 | 0.901 | −0.049 | 0.304 |
| Natural (shipped: both + small-face SR) | 27.09 | 0.909 | −0.041 | 0.307 |
Bench metrik sependapat dengan mata, dial demi dial. Mempertahankan kroma foto membeli +0,014 identitas (pergeseran warna itu nyata, dan terukur). Pembauran 75% membeli +0,019 lagi dan sebagian besar PSNR: membiarkan seperempat wajah asli tembus bernilai hampir sebesar seluruh pengaturan fidelitas model wajah. Bersama-sama keduanya memangkas pajak identitas hingga separuh, dari −0,082 ke −0,041, sambil tetap sekitar 1,4× ketajaman input. Satu-satunya biaya yang jujur: render klasik “lebih tajam” menurut Tenengrad (0,373 vs 0,307), ketajaman yang sebagian dibelanjakannya pada tekstur yang bukan milik foto. Itulah tarik-ulur persepsi–distorsi[6] yang dipindahkan ke dalam rendering, dan kami membelanjakannya pada identitas.


5 · Kenop fidelitas, disapu dari ujung ke ujung
Bobot w pada CodeFormer mengemudikan antara prior codebook (0) dan kepatuhan pada inputmu (1)[1]. Kami menyapunya dalam sebelas langkah di bawah renderer natural:
Kami masuk dengan harapan menemukan kurva tarik-ulur dengan optimum di bagian dalam yang akan membenarkan 0,7 sebagai “lututnya”. Datanya menolak: berdasarkan angka, w = 1,0 mendominasi, pada setiap tingkat keparahan:
Lalu mengapa merilis 0,7 alih-alih 1,0? Karena metrik itu perlu, tetapi tidak cukup. ArcFace mengukur siapa; ia nyaris buta terhadap usia dan tekstur; pelatihan yang membuatnya tangguh terhadap blur juga membuatnya memaafkan penghalusan. Pengamatan asli bench berdiri di atas buktinya sendiri: pada 0,5 yang lazim untuk model ini, kerutan di sudut mata tampak melunak pada Migrant Mother: Florence Owens Thompson berusia 32 dan memikul Depresi Besar di wajahnya, dan prior lebih suka kalau tidak begitu. Pada w = 1,0 codebook begitu tunduk pada input yang rusak sehingga sampah kompresi mulai ikut bertahan. 0,7 mempertahankan hampir seluruh nilai metriknya (0,909 vs 0,932) sementara gambarnya mempertahankan usianya. Dan panel s8 di bawah adalah argumen untuk tidak pernah membiarkan w mendekati 0 pada foto warisan yang rusak:

6 · Model lainnya, renderer yang sama
| Model wajah | PSNR (dB) | id ArcFace | rasio Tenengrad | ms / wajah* |
|---|---|---|---|---|
| CodeFormer (w = 0.7, default) | 27.09 | 0.909 | 0.307 | 7200 |
| GFPGAN 1.4 | 27.13 | 0.910 | 0.328 | 6046 |
| GPEN-BFR-256 | 26.68 | 0.927 | 0.322 | 2633 |
*Median wall-clock satu tahap penuh (termasuk deteksi) pada mesin bench 2-vCPU. Di bawah renderer natural, ketiga model[1][2][3] konvergen dalam rentang 0,02 identitas satu sama lain: renderer, bukan model, kini menjadi suku yang dominan, yang dengan sendirinya merupakan sebuah temuan: tampilan “video game” tidak pernah benar-benar soal jaringan mana yang kamu jalankan. CodeFormer tetap menjadi default karena ketangguhannya pada kerusakan parah dan karena kenop yang baru saja dibahas dua bagian dalam catatan ini; GPEN tetap pilihan tercepat pada 2,6 s per wajah.
7 · Keterbatasan
- Bench visualnya 35 wajah; bench metriknya 4 potret × 120 run. Bentuk monoton bertahan pada setiap potret secara individual; itulah klaim yang kami andalkan; nilai absolutnya akan bergeser menurut subjek dan pindaian.
- ArcFace adalah satu wasit, wasit standar, dengan peringatan toleransi-blur yang kami manfaatkan sebagai baseline. Studi perseptual manusia atas ribuan wajah adalah instrumen yang masih hilang, dan pengamatan soal garis usia bertumpu pada mata, bukan embedding.
- Degradasi sintetis. Kerusakan kotak sepatu sungguhan menambahkan goresan dan pemerakan yang tidak dimodelkan tumpukan korupsi; tahap kerusakan menanganinya secara terpisah.
- Batas wajah kecil tetap berlaku: di bawah kira-kira 40 px wajah, tidak ada pengaturan yang menghasilkan wajah tajam yang setia, dan output yang jujur adalah yang lembut.
Referensi
- 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
- 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
- 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
- Deng, J., Guo, J., Xue, N., & Zafeiriou, S. (2019). ArcFace: Additive Angular Margin Loss for Deep Face Recognition. CVPR. arXiv:1801.07698. arxiv.org
- 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
- Blau, Y., & Michaeli, T. (2018). The Perception-Distortion Tradeoff. CVPR. arXiv:1711.06077. arxiv.org
- FaceFusion (open-source face processing platform): the reference implementation our SCRFD decode and model preprocessing are ported from, 1:1. github.com
- Lange, D. (1936). “Migrant Mother” (Destitute pea pickers in California), Farm Security Administration. Public domain, via Wikimedia Commons. commons.wikimedia.org
- Gardner, A. (1863). Abraham Lincoln, portrait O-77. Public domain, via Wikimedia Commons. commons.wikimedia.org
- ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai