Демонстрационный образ и образ Docker на реплике
Автоматическое удаление объектов Inpainter — это проект, который сочетает в себе архитектуру семантической сегментации и EdgeConnect с небольшими изменениями для удаления определенных объектов с фотографий. Для семантической сегментации был адаптирован код из pytorch, а для EdgeConnect — код из https://github.com/knazeri/edge-connect.
Этот проект способен удалять объекты из списка из 20 различных. Его можно использовать как инструмент для редактирования фотографий, а также для увеличения данных.
В этом проекте использовались Python 3.8.5 и pytorch 1.5.1.
Модель семантического сегментатора deeplabv3/fcn resnet 101 была объединена с EdgeConnect. Предварительно обученная сеть сегментации использовалась для сегментации объекта (генерации маски вокруг обнаруженного объекта), и ее выходные данные передаются в сеть EdgeConnect вместе с входным изображением с удаленной частью маски. EdgeConnect использует двухэтапную состязательную архитектуру, где первым этапом является генератор границ, за которым следует сеть завершения изображения. Документ EdgeConnect можно найти здесь, а код — в этом репозитории.
git clone https://github.com/sujaykhandekar/Automated-objects-removal-inpainter.git
cd Automated-objects-removal-inpainter
или альтернативно загрузите zip-файл.
conda install pytorch==1.5.1 torchvision==0.6.1 -c pytorch
pip install -r requirements.txt
или альтернативно вы можете использовать эту команду:
bash ./scripts/download_model.sh
Для быстрого прогнозирования вы можете запустить эту команду. Если у вас нет cuda/gpu, запустите вторую команду.
python test.py --input ./examples/my_small_data --output ./checkpoints/resultsfinal --remove 3 15
Он возьмет образцы изображений в каталоге ./examples/my_small_data и создаст и выдаст результат в каталоге ./checkpoints/resultsfinal. Вы можете заменить эти каталоги ввода/вывода на нужные вам. числа после --remove указывают объекты, которые нужно удалить из изображений. Команда ABove удалит из изображений 3 (птицы) и 15 (людей). Проверьте файл сегментации-classes.txt на наличие всех вариантов удаления вместе с их номером.
Все выходные изображения будут иметь размер 256x256. Для создания 1000 изображений на NVIDIA GeForce GTX 1650 требуется около 10 минут.
для лучшего качества, но более медленного выполнения вы можете использовать эту команду
python test.py --input ./examples/my_small_data --output ./checkpoints/resultsfinal --remove 3 15 --cpu yes
Он запустит модель сегментации на процессоре. Это будет в 5 раз медленнее, чем на графическом процессоре (по умолчанию). Чтобы изменить другие параметры, включая другую модель сегментации и параметры EdgeConnect, внесите соответствующие изменения в файл .checkpoints/config.yml.
Для обучения собственной модели сегментации вы можете обратиться к этому репозиторию и заменить .src/segmentor_fcn.py своей моделью.
Для обучения модели Edgeconnect обратитесь к исходному репозиторию EdgeConnect. После обучения вы можете скопировать веса модели в .checkpoints/
Лицензия Creative Commons Attribution-NonCommercial 4.0 International.
Если не указано иное, этот контент публикуется под лицензией CC BY-NC, что означает, что вы можете копировать, изменять, преобразовывать и использовать контент при условии, что вы не используете материал в коммерческих целях, а также даете соответствующую ссылку и предоставляете ссылка на лицензию.
@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}
}