Helo, semua.
Pernahkah anda terfikir untuk menggunakan teknologi AI untuk membuang mozek?
Agak sukar untuk memikirkan masalah ini dengan teliti, kerana teknologi AI yang kami gunakan sebelum ini, sama ada pengecaman muka atau pengecaman OCR, sekurang-kurangnya boleh dikenali secara manual. Tetapi jika anda diberi gambar mozek, bolehkah anda memulihkannya?
Jelas sekali ia sukar. Jika manusia tidak boleh pulih, bagaimana kita boleh mengajar komputer untuk pulih?
Masihkah anda ingat artikel "Menggunakan AI untuk Menjana Avatar" yang saya tulis beberapa hari lepas. Dalam artikel itu, kami melatih model DCGAN yang boleh menghasilkan imej daripada nombor rawak sewenang-wenangnya.
Peta hingar dijana daripada nombor rawak sebagai piksel
Model menjana avatar biasa daripada nombor rawak
DCGAN terdiri daripada dua model: model penjana dan model diskriminator Fungsi model penjana adalah untuk menjana gambar daripada set nombor rawak Lebih dekat gambar dengan sampel latihan, lebih baik, dengan itu menipu model diskriminasi Model diskriminator perlu terus meningkatkan keupayaan diskriminasinya untuk mengelakkan gambar yang dihasilkan oleh model penjana daripada lulus.
Jika kita menukar input model penjana di atas daripada nombor rawak kepada gambar dengan mozek, output akan menjadi gambar tanpa mozek. Adakah mungkin untuk melatih model yang mengeluarkan mozek?
Seterusnya, saya akan berkongsi dengan anda cara melatih model penyingkiran mozek, dan kemudian berkongsi alat siap sedia yang boleh anda muat turun dan gunakan terus untuk mencuba kesannya.
Di sini kami tidak menggunakan DCGAN yang diperkenalkan di atas, tetapi menggunakan dua model yang lebih berkuasa, Pix2pix dan CycleGAN, untuk melatih secara berasingan.
Pix2pix ialah algoritma terjemahan imej berdasarkan GAN Daripada gambar mozek kepada gambar biasa, ia pada asasnya serupa dengan penukaran daripada satu bahasa kepada yang lain.
Terjemahan model Pix2pix
Kesan pelaksanaan CycleGAN hanyalah untuk menukar imej antara domain yang berbeza sambil mengekalkan bentuknya.
Model CycleGAN
Artikel ini memberikan kami set data dan proses latihan yang lengkap, yang boleh membantu kami melatih model pada kos yang lebih rendah.
Mula-mula, muat turun set data
set data
berjumlah 654J.
Kemudian, muat turun model pra-latihan Paddle
Model pra-latihan
Akhir sekali, latih model Pix2pix dan CycleGAN masing-masing .
Model Pix2pix
python gan<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span>infer<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.py</span> <br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--init_model output/pix2pix/checkpoints/110/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--dataset_dir /home/aistudio/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--image_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--n_samples 1 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--crop_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--model_net Pix2pix </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--net_G unet_256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--test_list /home/aistudio/test_list.txt </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--output ./infer_result/pix2pix/</span>
Model CycleGAN
python gan<span style="color: rgb(215, 58, 73); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">/</span>infer<span style="color: rgb(0, 92, 197); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">.py</span> <br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--init_model output/cyclegan/checkpoints/48/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--dataset_dir /home/aistudio/ </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--image_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--n_samples 1 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--crop_size 256 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--input_style A </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--test_list /home/aistudio/test_list.txt </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--model_net CycleGAN </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--net_G resnet_9block </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--g_base_dims 32 </span><br><span style="color: rgb(106, 115, 125); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">--output ./infer_result/cyclegan/</span>
Selepas latihan, anda boleh menjalankan gan/infer . py untuk membandingkan kesan penyingkiran mozek kedua-dua model ini.
Jika anda tidak mahu melatih model itu sendiri, berikut adalah projek siap sedia untuk dikongsi dengan anda juga berdasarkan segmentasi semantik dan terjemahan imej, dengan merujuk kepada Pix2pix dan CycleGAN.
Alamat projek: https://github.com/HypoX64/DeepMosaics/blob/master/README_CN.md
Untuk pengguna Windows, pengarang menyediakan pakej perisian tanpa pemasangan yang mengandungi GUI antara muka.
Antara Muka UI
Seperti yang kami katakan sebelum ini, teknologi ini masih agak sukar, jadi jangan terlalu tinggi harapan. Berikut ialah kesan penyingkiran sebenar.
Pengekodan
Penyahkodan
Kesannya masih OK, tetapi tidak sesempurna yang dibayangkan muat turun dan jalankan untuk mencuba.
Atas ialah kandungan terperinci Adakah AI boleh mengeluarkan mozek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!