Bisakah AI memperbaiki sobekan dan goresan? Angka kelayakan
Bisa, dan tulisan ini mencatat pengukuran yang membawanya dari harapan di roadmap menjadi fitur yang dirilis: apa yang dulu dilakukan pipeline pada pindaian yang rusak, angka purwarupa yang membenarkan pembangunan tahap ini, dan hasil ujung ke ujung dari versi yang kini dirilis di balik kotak centang “Perbaiki goresan & sobekan”.
Apa yang dulu dilakukan pipeline pada foto yang sobek
Restorasi tidak punya tahap inpainting: tidak ada yang bisa menghapus sebuah wilayah dan menyintesis penggantinya. Diverifikasi pada potret yang retak parah: di dalam wilayah wajah, kerusakan hilang secara kebetulan (model wajah menyintesis ulang seluruh potongan) lalu muncul kembali dengan tiba-tiba di batas pembauran, retakan yang berhenti di pipi, yang bisa tampak lebih buruk daripada tanpa perbaikan. Di tempat lain, kerusakan justru ditingkatkan: tahap penajaman mempertajam tepi sobekan seolah-olah itu detail, dan pewarna mewarnai garis retak putih sebagai isi adegan.
Purwarupa
Subjek uji: potret hitam putih 510×817 dengan jaring retakan emulsi. Perangkat keras: sandbox khusus CPU yang sengaja dibuat lemah, sehingga setiap waktu adalah kasus terburuk. Dua tahap: jaringan deteksi goresan (dari proyek open-source Microsoft “Bringing Old Photos Back to Life”[2]) menghasilkan mask kerusakan; model inpainting LaMa[1] lalu mengisi hanya wilayah yang di-mask dalam ubin 512 px, keduanya pada provider CPU ONNX Runtime[3].
Mask kerusakan menutupi 18,4% piksel pada foto yang rusak parah ini. Hasil kualitasnya: jaring retakan terhapus di wajah, pakaian, dan latar belakang, tanpa positif palsu yang merusak: taplak meja renda, jebakan klasik bagi detektor goresan, selamat.
Yang dirilis, diukur ujung ke ujung
Tahap produksi berjalan pertama dalam urutan restorasi, sehingga retakan tidak pernah diwarnai atau dipertajam sebelum dihapus. Deteksi berjalan pada sisi pendek 256 dengan dilasi mask 2 px; inpainting dilakukan per patch pada resolusi asli, dibatasi 12 patch per foto dengan wilayah kerusakan terbesar yang menang. Dua invarian dipaksakan, bukan sekadar diharapkan: hanya piksel yang di-mask yang pernah ditulis (setiap piksel tak rusak pada output identik byte demi byte dengan input) dan sebuah gerbang cakupan melewati tahap ini sepenuhnya ketika area yang terdeteksi di bawah 0,5% (tidak ada yang layak diperbaiki) atau di atas 35% (lebih mungkin tekstur yang salah terdeteksi daripada kerusakan).
Revisi produksi berikutnya menambahkan diskriminator kedua yang lebih tajam ke gerbang otomatis: bentuk. Cakupan saja tidak bisa membedakan sobekan sehalus rambut dari derau detektor, tetapi geometri keduanya berbeda satu orde besaran: sobekan itu panjang dan tipis, derau itu gumpalan. Untuk setiap komponen terhubung pada mask, dengan kotak pembatas bw×bh dan luas piksel A, kami menghitung skor
Titik kalibrasi dari bench: grafik pemasaran yang bersih mencetak elongasi maksimum 2,4; pindaian berjaring retak mencetak 29,8. Ambang 6 berada jauh dari keduanya, dan setiap run produksi mencatat cakupan dan elongasinya sehingga gerbang terus disetel pada trafik nyata, bukan pada dua foto.
Dua kontrol: dengan kotak centang mati, tahap ini tidak pernah berjalan dan waktunya persis sama dengan pipeline sebelumnya. Pada foto yang nyaris bersih, detektor hanya menandai 0,81% piksel yang memang rusak (sisa retakan di sudut dan debu) dengan nol positif palsu pada wajah, renda, atau tekstur.
Mengapa opt-in, bukan default
Mode kegagalan yang dikenal dari perbaikan kerusakan otomatis adalah positif palsu: detektor yang menandai kawat pagar, helai rambut, atau renda sebagai goresan akan menghapus isi sungguhan, dan inpainter sangat mahir menghapus sesuatu. Dua foto kontrol adalah bukti, bukan benchmark. Karena itu tahap ini dirilis sebagai kotak centang eksplisit, dan setiap run mencatat angka cakupan kerusakannya supaya ambangnya bisa disetel pada trafik nyata sebelum dipromosikan menjadi default. Kami juga menolak jalan pintas mengirim foto ke API gambar generatif eksternal: alat ini memproses foto secara sementara di infrastruktur kami sendiri, dan render ulang generatif penuh menggeser identitas; tujuannya memperbaiki kerusakan, bukan melukis ulang kerabatmu.
Referensi
- Suvorov, R., Logacheva, E., Mashikhin, A., et al. (2022). Resolution-robust Large Mask Inpainting with Fourier Convolutions (LaMa). WACV. arXiv:2109.07161. arxiv.org
- Wan, Z., Zhang, B., Chen, D., et al. (2020). Bringing Old Photos Back to Life (the scratch-detection recipe). CVPR. arXiv:2004.09484. arxiv.org
- ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai