imagededup เป็นแพ็คเกจหลามที่ทำให้งานค้นหาสิ่งที่ ซ้ำกัน และ ใกล้เคียงกัน ในคอลเลกชันรูปภาพง่ายขึ้น
แพ็คเกจนี้มีฟังก์ชันการใช้งานเพื่อใช้อัลกอริธึมแฮชที่ดีเป็นพิเศษในการค้นหารายการที่ซ้ำกันทุกประการ รวมถึงโครงข่ายประสาทเทียมแบบ convolutional ซึ่งเชี่ยวชาญในการค้นหารายการที่ซ้ำกันใกล้เคียง นอกจากนี้ยังมีกรอบการประเมินเพื่อตัดสินคุณภาพของการขจัดข้อมูลซ้ำซ้อนสำหรับชุดข้อมูลที่กำหนดอีกด้วย
รายละเอียดฟังก์ชันการทำงานที่ได้รับจากแพ็คเกจต่อไปนี้:
การค้นหารายการที่ซ้ำกันในไดเร็กทอรีโดยใช้อัลกอริธึมอย่างใดอย่างหนึ่งต่อไปนี้:
Convolutional Neural Network (CNN) - เลือกจากโมเดลต่างๆ ที่บรรจุไว้ล่วงหน้าหรือจัดเตรียมโมเดลที่คุณกำหนดเอง
การแฮชการรับรู้ (PHash)
การแฮชส่วนต่าง (DHash)
การแฮชของเวฟเล็ต (WHash)
การแฮชโดยเฉลี่ย (AHash)
การสร้างการเข้ารหัสสำหรับรูปภาพโดยใช้อัลกอริธึมที่ระบุไว้ข้างต้นอย่างใดอย่างหนึ่ง
กรอบการทำงานเพื่อประเมินประสิทธิผลของการขจัดข้อมูลซ้ำซ้อนด้วยการทำแผนที่ความจริงภาคพื้นดิน
พบการลงจุดซ้ำสำหรับไฟล์ภาพที่ระบุ
สามารถดูเอกสารประกอบโดยละเอียดสำหรับแพ็คเกจได้ที่: https://idealo.github.io/imagededup/
imagededup เข้ากันได้กับ Python 3.8+ และทำงานบน Linux, MacOS X และ Windows เผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0
การติดตั้ง
เริ่มต้นอย่างรวดเร็ว
เกณฑ์มาตรฐาน
มีส่วนช่วย
การอ้างอิง
ผู้ดูแล
ใบอนุญาต
มีสองวิธีในการติดตั้ง imagededup:
ติดตั้ง imagededup จาก PyPI (แนะนำ):
pip install imagededup
ติดตั้ง imagededup จากแหล่ง GitHub:
git clone https://github.com/idealo/imagededup.gitcd imagededup pip ติดตั้ง "cython>=0.29"python setup.py ติดตั้ง
ในการค้นหารายการที่ซ้ำกันในไดเร็กทอรีรูปภาพโดยใช้การแฮชการรับรู้ คุณสามารถใช้เวิร์กโฟลว์ต่อไปนี้:
นำเข้าวิธีการแฮชการรับรู้
จาก imagededup.methods นำเข้า PHashphasher = PHash()
สร้างการเข้ารหัสสำหรับรูปภาพทั้งหมดในไดเร็กทอรีรูปภาพ
การเข้ารหัส = pasher.encode_images(image_dir='path/to/image/directory')
ค้นหารายการที่ซ้ำกันโดยใช้การเข้ารหัสที่สร้างขึ้น
รายการที่ซ้ำกัน = pasher.find_duplicates (encoding_map = การเข้ารหัส)
ลงจุดซ้ำที่ได้รับสำหรับไฟล์ที่กำหนด (เช่น: 'ukbench00120.jpg') โดยใช้พจนานุกรมที่ซ้ำกัน
จาก imagededup.utils import plot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')
ผลลัพธ์มีลักษณะดังนี้:
รหัสที่สมบูรณ์สำหรับเวิร์กโฟลว์คือ:
จาก imagededup.methods นำเข้า PHashphasher = PHash()# สร้างการเข้ารหัสสำหรับรูปภาพทั้งหมดในไดเร็กทอรีรูปภาพ encodings = pasher.encode_images(image_dir='path/to/image/directory')# ค้นหารายการที่ซ้ำกันโดยใช้การเข้ารหัสที่สร้างขึ้นduplicates = pasher.find_duplicates(encoding_map =การเข้ารหัส)# พล็อตที่ซ้ำกันที่ได้รับสำหรับไฟล์ที่กำหนดโดยใช้พจนานุกรมที่ซ้ำกันจาก imagededup.utils นำเข้า plot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')
นอกจากนี้ยังสามารถใช้โมเดลที่คุณกำหนดเองเพื่อค้นหารายการที่ซ้ำกันโดยใช้วิธี CNN ได้อีกด้วย
ตัวอย่างเช่น อ้างถึงส่วนนี้ของที่เก็บ
หากต้องการรายละเอียดเพิ่มเติมเกี่ยวกับการใช้งานฟังก์ชันแพ็คเกจ โปรดดู: https://idealo.github.io/imagededup/
อัปเดต : การวัดประสิทธิภาพที่ให้มานั้นใช้ได้เฉพาะกับ imagededup v0.2.2
เท่านั้น รุ่นถัดไปมีการเปลี่ยนแปลงที่สำคัญกับวิธีการทั้งหมด ดังนั้นการวัดประสิทธิภาพในปัจจุบันอาจไม่คงอยู่
การวัดประสิทธิภาพโดยละเอียดเกี่ยวกับความเร็วและการจำแนกประเภทสำหรับวิธีการต่างๆ มีระบุไว้ในเอกสารประกอบ โดยทั่วไปสามารถสรุปได้ดังต่อไปนี้:
CNN ทำงานได้ดีที่สุดสำหรับสำเนาที่ใกล้เคียงและชุดข้อมูลที่มีการเปลี่ยนแปลง
วิธีการขจัดความซ้ำซ้อนทั้งหมดทำงานได้ดีกับชุดข้อมูลที่มีการทำซ้ำทุกประการ แต่การแฮชความแตกต่างนั้นเร็วที่สุด
เรายินดีรับการสนับสนุนทุกประเภท ดูคู่มือการบริจาคสำหรับรายละเอียดเพิ่มเติม
โปรดอ้างอิง Imagededup ในสิ่งพิมพ์ของคุณหากสิ่งนี้มีประโยชน์สำหรับการวิจัยของคุณ นี่คือตัวอย่างรายการ BibTeX:
@misc{idealods2019imagededup, title={Imagededup}, author={Tanuj Jain และ Christopher Lennan และ Zubin John และ Dat Tran}, year={2019}, Howpublished={url{https://github.com/idealo/imagededup} }, -
ทานุจ เจน, github: Tanujjain
คริสโตเฟอร์ เลนแนน, github: clennan
ดัททราน, github: datitran
ดูใบอนุญาตสำหรับรายละเอียด