صورة توضيحية وصورة Docker على Replicate
مزيل الكائنات الآلي 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
أو قم بتنزيل ملف مضغوط بالتناوب.
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 (أشخاص) من الصور. تحقق من sectionation-classes.txt لمعرفة جميع خيارات الإزالة بالإضافة إلى رقمه.
ستكون جميع الصور الناتجة 256 × 256. يستغرق الأمر حوالي 10 دقائق للحصول على 1000 صورة على NVIDIA GeForce GTX 1650
للحصول على جودة أفضل ولكن وقت تشغيل أبطأ، يمكنك استخدام هذا الأمر
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}
}