ภาพสาธิตและนักเทียบท่าบนการจำลองแบบ
เครื่องมือลบวัตถุอัตโนมัติ Inpainter เป็นโปรเจ็กต์ที่รวมการแบ่งส่วนความหมายและสถาปัตยกรรม EdgeConnect ที่มีการเปลี่ยนแปลงเล็กน้อยเพื่อลบวัตถุที่ระบุออกจากภาพถ่าย สำหรับ Semantic Segmentation โค้ดจาก pytorch ได้รับการดัดแปลง ในขณะที่ EdgeConnect โค้ดได้รับการดัดแปลงจาก https://github.com/knazeri/edge-connect
โปรเจ็กต์นี้สามารถลบวัตถุออกจากรายการที่แตกต่างกันได้ 20 รายการ สามารถใช้เป็นเครื่องมือแก้ไขรูปภาพและสำหรับการเพิ่มข้อมูลได้
มีการใช้ Python 3.8.5 และ pytorch 1.5.1 ในโปรเจ็กต์นี้
โมเดลแบ่งส่วนความหมายของ deeplabv3/fcn resnet 101 ได้ถูกรวมเข้ากับ EdgeConnect แล้ว เครือข่ายการแบ่งส่วนที่ได้รับการฝึกอบรมล่วงหน้าได้ถูกนำมาใช้สำหรับการแบ่งส่วนวัตถุ (สร้างมาสก์รอบวัตถุที่ตรวจพบ) และเอาต์พุตของเครือข่ายจะถูกป้อนไปยังเครือข่าย EdgeConnect พร้อมด้วยรูปภาพอินพุตโดยที่ส่วนของมาสก์ถูกลบออก EdgeConnect ใช้สถาปัตยกรรมฝ่ายตรงข้ามสองขั้นตอน โดยขั้นตอนแรกคือตัวสร้าง Edge ตามด้วยเครือข่ายการสร้างภาพให้สมบูรณ์ สามารถดูกระดาษ EdgeConnect ได้ที่นี่ และเขียนโค้ดใน repo นี้
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 ใช้เวลาประมาณ 10 นาทีสำหรับ 1,000 ภาพบน NVIDIA GeForce GTX 1650
เพื่อคุณภาพที่ดีขึ้นแต่รันไทม์ช้าลง คุณสามารถใช้คำสั่งนี้
python test.py --input ./examples/my_small_data --output ./checkpoints/resultsfinal --remove 3 15 --cpu yes
มันจะรันโมเดลการแบ่งส่วนบนซีพียู จะช้ากว่า GPU 5 เท่า (ค่าเริ่มต้น) สำหรับตัวเลือกอื่นๆ รวมถึงโมเดลการแบ่งส่วนที่แตกต่างกันและพารามิเตอร์ EdgeConnect ที่จะเปลี่ยนแปลง โปรดทำการแก้ไขที่เกี่ยวข้องในไฟล์ .checkpoints/config.yml
สำหรับการฝึกโมเดลการแบ่งส่วนของคุณเอง คุณสามารถอ้างถึง repo นี้และแทนที่ .src/segmentor_fcn.py ด้วยโมเดลของคุณ
สำหรับการฝึกอบรมโมเดล Edgeconnect โปรดดูที่ repo 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}
}