Demo- und Docker-Image auf Replicate
Der automatische Objektentferner Inpainter ist ein Projekt, das semantische Segmentierung und EdgeConnect-Architekturen mit geringfügigen Änderungen kombiniert, um bestimmte Objekte aus Fotos zu entfernen. Für die semantische Segmentierung wurde der Code von Pytorch angepasst, während für EdgeConnect der Code von https://github.com/knazeri/edge-connect angepasst wurde.
Dieses Projekt ist in der Lage, Objekte aus einer Liste mit 20 verschiedenen Objekten zu entfernen. Es kann sowohl als Fotobearbeitungstool als auch zur Datenerweiterung verwendet werden.
In diesem Projekt wurden Python 3.8.5 und Pytorch 1.5.1 verwendet.
Das semantische Segmenatormodell von deeplabv3/fcn resnet 101 wurde mit EdgeConnect kombiniert. Für die Objektsegmentierung wurde ein vorab trainiertes Segmentierungsnetzwerk verwendet (Erzeugung einer Maske um das erkannte Objekt), und seine Ausgabe wird zusammen mit dem Eingabebild, bei dem ein Teil der Maske entfernt wurde, einem EdgeConnect-Netzwerk zugeführt. EdgeConnect verwendet eine zweistufige gegnerische Architektur, bei der die erste Stufe ein Kantengenerator ist, gefolgt von einem Bildvervollständigungsnetzwerk. EdgeConnect-Papier finden Sie hier und Code in diesem Repo
git clone https://github.com/sujaykhandekar/Automated-objects-removal-inpainter.git
cd Automated-objects-removal-inpainter
Alternativ können Sie auch die ZIP-Datei herunterladen.
conda install pytorch==1.5.1 torchvision==0.6.1 -c pytorch
pip install -r requirements.txt
Alternativ können Sie auch diesen Befehl verwenden:
bash ./scripts/download_model.sh
Für eine schnelle Vorhersage können Sie diesen Befehl ausführen. Wenn Sie nicht über cuda/gpu verfügen, führen Sie bitte den zweiten Befehl aus.
python test.py --input ./examples/my_small_data --output ./checkpoints/resultsfinal --remove 3 15
Es nimmt Beispielbilder im Verzeichnis ./examples/my_small_data auf und erstellt und erzeugt Ergebnisse im Verzeichnis ./checkpoints/resultsfinal. Sie können diese Eingabe-/Ausgabeverzeichnisse durch die gewünschten ersetzen. Zahlen nach --remove geben Objekte an, die in den Bildern entfernt werden sollen. Der obige Befehl entfernt 3 (Vogel) und 15 (Personen) aus den Bildern. Überprüfen Sie segmentation-classes.txt auf alle Entfernungsoptionen und deren Nummer.
Die ausgegebenen Bilder haben alle eine Größe von 256 x 256. Für 1000 Bilder dauert es auf der NVIDIA GeForce GTX 1650 etwa 10 Minuten
Für eine bessere Qualität, aber eine langsamere Laufzeit können Sie diesen Befehl verwenden
python test.py --input ./examples/my_small_data --output ./checkpoints/resultsfinal --remove 3 15 --cpu yes
Das Segmentierungsmodell wird auf der CPU ausgeführt. Es ist fünfmal langsamer als auf der GPU (Standard). Wenn Sie andere Optionen, einschließlich anderer Segmentierungsmodelle und EdgeConnect-Parameter, ändern möchten, nehmen Sie bitte entsprechende Änderungen in der Datei .checkpoints/config.yml vor
Zum Trainieren Ihres eigenen Segmentierungsmodells können Sie auf dieses Repo verweisen und .src/segmentor_fcn.py durch Ihr Modell ersetzen.
Informationen zum Training des EdgeConnect-Modells finden Sie im ursprünglichen EdgeConnect-Repo. Nach dem Training können Sie Ihre Modellgewichte in .checkpoints/ kopieren.
Lizenziert unter Creative Commons Namensnennung – nicht kommerziell 4.0 International.
Sofern nicht anders angegeben, werden diese Inhalte unter einer CC BY-NC-Lizenz veröffentlicht, was bedeutet, dass Sie die Inhalte kopieren, neu mischen, umwandeln und darauf aufbauen dürfen, solange Sie das Material nicht für kommerzielle Zwecke verwenden und eine entsprechende Quellenangabe und Bereitstellung machen einen Link zur Lizenz.
@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}
}