imagededup عبارة عن حزمة بيثون تعمل على تبسيط مهمة العثور على التكرارات الدقيقة والقريبة في مجموعة الصور.
توفر هذه الحزمة وظائف للاستفادة من خوارزميات التجزئة التي تعتبر جيدة بشكل خاص في العثور على التكرارات الدقيقة بالإضافة إلى الشبكات العصبية التلافيفية التي تتميز أيضًا بالمهارة في العثور على التكرارات القريبة. يتم أيضًا توفير إطار تقييم للحكم على جودة إلغاء البيانات المكررة لمجموعة بيانات معينة.
فيما يلي تفاصيل الوظائف التي توفرها الحزمة:
البحث عن التكرارات في الدليل باستخدام إحدى الخوارزميات التالية:
الشبكة العصبية التلافيفية (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:
استنساخ بوابة https://github.com/idealo/imagededup.gitcd imagededup تثبيت النقطة "cython>=0.29"تثبيت python setup.py
من أجل العثور على التكرارات في دليل الصورة باستخدام التجزئة الإدراكية، يمكن استخدام سير العمل التالي:
استيراد طريقة التجزئة الإدراكية
من imagededup.methods قم باستيراد PHashphasher = PHash()
إنشاء ترميزات لجميع الصور في دليل الصور
الترميزات = phasher.encode_images(image_dir='path/to/image/directory')
ابحث عن التكرارات باستخدام الترميزات التي تم إنشاؤها
التكرارات = phasher.find_duplicates(encoding_map=encodings)
ارسم التكرارات التي تم الحصول عليها لملف معين (على سبيل المثال: 'ukbench00120.jpg') باستخدام قاموس التكرارات
من imagededup.utils importplot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')
يبدو الإخراج كما يلي:
الكود الكامل لسير العمل هو:
from imagededup.methods import PHashphasher = PHash()# إنشاء ترميزات لجميع الصور في دليل الصورencodings = phasher.encode_images(image_dir='path/to/image/directory')# ابحث عن التكرارات باستخدام الترميزات التي تم إنشاؤها = phasher.find_duplicates(encoding_map) =encodings)# تم الحصول على نسخ مكررة لملف معين باستخدام القاموس المكرر من imagededup.utils importplot_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 and Christopher Lennan and Zubin John and Dat Tran}, year={2019}, howpublished={url{https://github.com/idealo/imagededup} }, }
تانوج جاين، جيثب: تانوججين
كريستوفر لينان، جيثب: كلينان
دات تران، جيثب: داتتران
راجع الترخيص للحصول على التفاصيل.