Demo dan gambar Docker di Replikasi
Penghapus objek otomatis Inpainter adalah proyek yang menggabungkan segmentasi Semantik dan arsitektur EdgeConnect dengan sedikit perubahan untuk menghapus objek tertentu dari foto. Untuk Segmentasi Semantik kode dari pytorch telah diadaptasi, sedangkan untuk EdgeConnect kodenya diadaptasi dari https://github.com/knazeri/edge-connect.
Proyek ini mampu menghapus objek dari daftar 20 objek berbeda. Proyek ini dapat digunakan sebagai alat pengeditan foto serta untuk augmentasi data.
Python 3.8.5 dan pytorch 1.5.1 telah digunakan dalam proyek ini.
Model segmentator semantik deeplabv3/fcn resnet 101 telah digabungkan dengan EdgeConnect. Jaringan segmentasi terlatih telah digunakan untuk segmentasi objek (menghasilkan topeng di sekitar objek yang terdeteksi), dan keluarannya diumpankan ke jaringan EdgeConnect bersama dengan gambar masukan dengan sebagian topeng dihapus. EdgeConnect menggunakan arsitektur adversarial dua tahap di mana tahap pertama adalah generator tepi diikuti oleh jaringan penyelesaian gambar. Kertas EdgeConnect dapat ditemukan di sini dan kode di repo ini
git clone https://github.com/sujaykhandekar/Automated-objects-removal-inpainter.git
cd Automated-objects-removal-inpainter
atau unduh file zip secara bergantian.
conda install pytorch==1.5.1 torchvision==0.6.1 -c pytorch
pip install -r requirements.txt
atau sebagai alternatif Anda dapat menggunakan perintah ini:
bash ./scripts/download_model.sh
Untuk prediksi cepat Anda dapat menjalankan perintah ini. Jika Anda tidak memiliki cuda/gpu silakan jalankan perintah kedua.
python test.py --input ./examples/my_small_data --output ./checkpoints/resultsfinal --remove 3 15
Ini akan mengambil contoh gambar di direktori ./examples/my_small_data dan akan membuat serta menghasilkan hasil di direktori ./checkpoints/resultsfinal. Anda dapat mengganti direktori input/output ini dengan yang Anda inginkan. angka setelah --remove menentukan objek yang akan dihapus dalam gambar. Perintah di atas akan menghapus 3(burung) dan 15(orang) dari gambar. Periksa segmentation-classes.txt untuk semua opsi penghapusan beserta nomornya.
Gambar keluaran semuanya akan berukuran 256x256. Dibutuhkan sekitar 10 menit untuk 1000 gambar pada NVIDIA GeForce GTX 1650
untuk kualitas yang lebih baik tetapi runtime lebih lambat Anda dapat menggunakan perintah ini
python test.py --input ./examples/my_small_data --output ./checkpoints/resultsfinal --remove 3 15 --cpu yes
Ini akan menjalankan model segmentasi pada cpu. Ini akan menjadi 5 kali lebih lambat daripada di GPU (default) Untuk opsi lain termasuk model segmentasi yang berbeda dan parameter EdgeConnect yang akan diubah, harap buat modifikasi yang sesuai di file .checkpoints/config.yml
Untuk melatih model segmentasi Anda sendiri, Anda dapat merujuk ke repo ini dan mengganti .src/segmentor_fcn.py dengan model Anda.
Untuk pelatihan model Edgeconnect, lihat repo EdgeConnect asli setelah pelatihan, Anda dapat menyalin bobot model Anda di .checkpoints/
Berlisensi di bawah Creative Commons Atribusi-NonKomersial 4.0 Internasional.
Kecuali dinyatakan lain, konten ini diterbitkan di bawah lisensi CC BY-NC, yang berarti Anda dapat menyalin, mencampur ulang, mengubah, dan membuat konten tersebut selama Anda tidak menggunakan materi tersebut untuk tujuan komersial dan memberikan kredit yang sesuai serta menyediakan tautan ke lisensi.
@inproceedings{nazeri2019edgeconnect,
title={EdgeConnect: Generative Image Inpainting with Adversarial Edge Learning},
author={Nazeri, Kamyar and Ng, Eric and Joseph, Tony and Qureshi, Faisal and Ebrahimi, Mehran},
journal={arXiv preprint},
year={2019},
}
@InProceedings{Nazeri_2019_ICCV,
title = {EdgeConnect: Structure Guided Image Inpainting using Edge Prediction},
author = {Nazeri, Kamyar and Ng, Eric and Joseph, Tony and Qureshi, Faisal and Ebrahimi, Mehran},
booktitle = {The IEEE International Conference on Computer Vision (ICCV) Workshops},
month = {Oct},
year = {2019}
}