
Repositori ini berisi kode untuk membuat instantiate dan menggunakan penambah resolusi gambar. Model ini mampu meningkatkan gambar pixelated dengan faktor 4, sambil menghasilkan detail foto-realistis.
GAN didasarkan pada repositori GitHub ini dan pada artikel penelitian ini.
Model ini dilatih pada 600.000 gambar dari dataset OpenImages V4, dan file model di -host pada penyimpanan objek cloud IBM. Kode dalam repositori ini menyebarkan model sebagai layanan web dalam wadah Docker. Repositori ini dikembangkan sebagai bagian dari pertukaran asset Model Pengembang IBM dan API publik ditenagai oleh IBM Cloud.
| Domain | Aplikasi | Industri | Kerangka | Data pelatihan | Input Format Data |
|---|---|---|---|---|---|
| Penglihatan | Super-resolusi | Umum | Tensorflow | OpenImages v4 | Gambar (RGB/HWC) |
| Set5 | SRGAN Penulis | Ini srgan |
|---|---|---|
| Psnr | 29.40 | 29.56 |
| SSIM | 0.85 | 0.85 |
| Set14 | SRGAN Penulis | Ini srgan |
|---|---|---|
| Psnr | 26.02 | 26.25 |
| SSIM | 0.74 | 0.72 |
| BSD100 | SRGAN Penulis | Ini srgan |
|---|---|---|
| Psnr | 25.16 | 24.4 |
| SSIM | 0.67 | 0.67 |
Kinerja implementasi ini dievaluasi pada tiga dataset: SET5, SET14, dan BSD100. Metrik PSNR (Rasio Puncak ke Noise) dan SSIM (Indeks Kesamaan Struktural) dievaluasi, meskipun makalah ini membahas MOS (skor opini rata -rata) sebagai metrik yang paling menguntungkan. Intinya, implementasi SRGAN memperdagangkan skor PSNR atau SSIM yang lebih baik untuk hasil yang lebih menarik bagi mata manusia. Ini mengarah ke kumpulan gambar output dengan detail yang lebih renyah dan realistis.
CATATAN: SRGAN di koran dilatih pada sampel Imagenet 350K, sedangkan SRGAN ini dilatih pada 600K OpenImages V4 Pictures.
| Komponen | Lisensi | Link |
|---|---|---|
| Repositori ini | Apache 2.0 | LISENSI |
| Bobot model | Apache 2.0 | LISENSI |
| Kode model (pihak ke -3) | Mit | LISENSI |
| Sampel uji | CC oleh 2.0 | Aset readme |
| CC0 | Aset readme |
docker : Antarmuka baris perintah Docker. Ikuti instruksi instalasi untuk sistem Anda.Untuk menjalankan gambar Docker, yang secara otomatis memulai model yang melayani API, jalankan:
$ docker run -it -p 5000:5000 quay.io/codait/max-image-resolution-enhancer
Ini akan menarik gambar yang sudah dibangun dari registri wadah Quay.io (atau menggunakan gambar yang ada jika sudah di-cache secara lokal) dan jalankan. Jika Anda lebih suka checkout dan membangun model secara lokal, Anda dapat mengikuti langkah run secara lokal di bawah ini.
Anda dapat menggunakan microservice microservice yang melayani model pada Red Hat OpenShift dengan mengikuti instruksi untuk OpenShift Web Console atau OpenShift Container Platform CLI dalam tutorial ini, menentukan quay.io/codait/max-image-resolution-enhancer sebagai nama gambar.
Anda juga dapat menggunakan model pada Kubernetes menggunakan gambar Docker terbaru di Quay.
Di kluster Kubernetes Anda, jalankan perintah berikut:
$ kubectl apply -f https://github.com/IBM/max-image-resolution-enhancer/raw/master/max-image-resolution-enhancer.yaml
Model ini akan tersedia secara internal di port 5000 , tetapi juga dapat diakses secara eksternal melalui NodePort .
Tutorial yang lebih rumit tentang cara menggunakan model maksimal ini ke produksi di IBM Cloud dapat ditemukan di sini.
Kloning repositori ini secara lokal. Di terminal, jalankan perintah berikut:
$ git clone https://github.com/IBM/max-image-resolution-enhancer.git
Ubah direktori ke dalam folder dasar repositori:
$ cd max-image-resolution-enhancer
Untuk membangun gambar Docker secara lokal, jalankan:
$ docker build -t max-image-resolution-enhancer .
Semua aset model yang diperlukan akan diunduh selama proses pembangunan. Perhatikan bahwa saat ini gambar Docker ini hanya CPU (kami akan menambahkan dukungan untuk gambar GPU nanti).
Untuk menjalankan gambar Docker, yang secara otomatis memulai model yang melayani API, jalankan:
$ docker run -it -p 5000:5000 max-image-resolution-enhancer
Server API secara otomatis menghasilkan halaman dokumentasi kesombongan interaktif. Pergi ke http://localhost:5000 untuk memuatnya. Dari sana Anda dapat menjelajahi API dan juga membuat permintaan tes.
Gunakan titik akhir model/predict untuk memuat gambar uji (Anda dapat menggunakan salah satu gambar uji dari samples/test_examples/low_resolution folder) untuk mendapatkan gambar output resolusi tinggi dikembalikan.
Gambar input yang ideal adalah file PNG dengan resolusi antara 100x100 dan 500x500, lebih disukai tanpa pemrosesan post-capture dan warna mencolok. Model ini dapat menghasilkan detail dari gambar pixelated (DPI rendah), tetapi tidak dapat memperbaiki gambar 'kabur'.
Kiri: Gambar input (128 × 80). Kanan: Gambar Output (512 × 320)

Anda juga dapat mengujinya pada baris perintah, misalnya:
$ curl -F "image=@samples/test_examples/low_resolution/food.png" -XPOST http://localhost:5000/model/predict > food_high_res.png
Perintah di atas akan mengirim file food.png resolusi rendah ke model, dan menyimpan gambar output resolusi tinggi ke file food_high_res.png di direktori root.
Untuk menjalankan aplikasi Flask API dalam mode debug, edit config.py untuk mengatur DEBUG = True di bawah pengaturan aplikasi. Anda kemudian perlu membangun kembali gambar Docker (lihat Langkah 1).
Harap ingat untuk mengatur DEBUG = False saat menjalankan model dalam produksi.
Untuk menghentikan wadah Docker, ketik CTRL + C di terminal Anda.
model/predict titik akhir membunuh wadah Docker dengan pesan KilledIni kemungkinan disebabkan karena batasan default alokasi memori Docker hingga 2 GB. Arahkan ke menu
Preferencesdi bawah aplikasi Docker Desktop. Gunakan slider untuk meningkatkan memori yang tersedia menjadi 8 GB dan restart desktop Docker.
Model ini pada dasarnya menghasilkan detail 'dari udara tipis'. Membuat sesuatu dari tidak ada yang tidak mungkin terjadi tanpa membuat asumsi. Jaringan berusaha untuk mengenali elemen-elemen dalam gambar resolusi rendah dari mana ia dapat menyimpulkan seperti apa realitas (mata manusia | Super-Resolution). Jika sekelompok piksel sangat menyerupai pengamatan yang tidak terkait dengan konten gambar, itu mungkin mengarah pada mengamati hasil yang tidak 'secara fisik mungkin'.
Sebagai contoh: piksel putih dalam gambar resolusi rendah mungkin telah dikonversi menjadi kepingan salju, meskipun gambar aslinya mungkin telah diambil di padang pasir. Contoh ini adalah imajiner dan belum benar -benar diamati.
Mengamati artefak dalam beberapa gambar sayangnya tidak dapat dihindari karena jaringan saraf mana pun tunduk pada keterbatasan teknis dan karakteristik data pelatihan.
Perlu diingat bahwa hasil terbaik dicapai dengan yang berikut:
- Gambar png
- Gambar yang cukup diperbesar. Selama proses, jaringan mengelompokkan blok piksel bersama -sama. Jika blok berisi lebih banyak detail daripada yang dihasilkan jaringan, hasilnya akan palsu.
- Gambar yang diambil di bawah cahaya alami, tanpa filter, dan dengan sedikit warna yang cerah atau mencolok. Jaringan saraf tidak dilatih pada gambar yang sangat diedit.
- Gambar yang memiliki resolusi yang cukup tinggi untuk tidak membingungkan jaringan dengan beberapa kemungkinan (misalnya piksel tunggal dalam gambar resolusi yang sangat rendah dapat mewakili seluruh mobil, orang, sandwich, ..)
- Model ini dapat menghasilkan detail dari gambar pixelated (DPI rendah), tetapi tidak dapat memperbaiki gambar 'kabur'.
Jika Anda tertarik untuk berkontribusi pada proyek Model Asset Exchange atau memiliki pertanyaan, silakan ikuti instruksi di sini.