سؤال

لقد طورت خوارزمية بسيطة وسريعة في PHP لمقارنة الصور للتشابه.

يمكن أن تمر بسرعة (حوالي 40 في الثانية لصور 800 × 600) إلى التجزئة وخوارزمية البحث غير المستقرة من خلال 3000 صورة في 22 دقيقة تقارن كل صورة مع الآخرين (3/ثانية).

النظرة العامة الأساسية هي أنك تحصل على صورة ، وإنقاذها إلى 8x8 ، ثم تحويل تلك البكسلات إلى HSV. ثم يتم اقتطاع اللون والتشبع والقيمة إلى 4 بت وتصبح سلسلة سداسية كبيرة واحدة.

تسير الصور بشكل أساسي على طول سلسلتين ، ثم تضيف الاختلافات التي يجدها. إذا كان العدد الإجمالي أقل من 64 ، فهذا نفس الصورة. عادة ما تكون الصور المختلفة حوالي 600 - 800. أقل من 20 ومتشابهة للغاية.

هل هناك أي تحسينات على هذا النموذج يمكنني استخدامه؟ لم أكن قد نظرت إلى مدى أهمية المكونات المختلفة (Hue ، التشبع والقيمة) بالمقارنة. ربما يكون هوى مهمًا جدًا ولكن الآخرين؟

لتسريع عمليات البحث ، ربما يمكنني تقسيم 4 بت من كل جزء إلى نصفين ، ووضع البتات الأكثر أهمية أولاً ، لذا إذا فشلوا في الشيك ، فلن يحتاج LSB إلى التحقق على الإطلاق. لا أعرف طريقة فعالة لتخزين البتات مثل تلك التي لا تزال تسمح لها بالبحث والمقارنة بسهولة.

لقد كنت أستخدم مجموعة بيانات تضم 3000 صورة (في الغالب فريدة من نوعها) ولم يكن هناك أي إيجابيات خاطئة. إنه محصن تمامًا من تغييرات ومقاومة إلى حد ما للخطوط وتغيرات التباين.

هل كانت مفيدة؟

المحلول

ما تريد استخدامه هو:

  1. ميزة استخراج
  2. التجزئة
  3. واعي محليا بلوم هزهينج.

  1. معظم الناس يستخدمون ينعش الميزات ، على الرغم من أنني واجهت تجارب أفضل مع غير المتغيرات. في الأساس ، تستخدم كاشف الحافة للعثور على نقاط مثيرة للاهتمام ثم تركز تصحيحات صورتك حول تلك النقاط. بهذه الطريقة يمكنك أيضًا اكتشاف الصور الفرعية.

  2. ما قمت بتطبيقه هو طريقة التجزئة. هناك طن لمحاولة ، ولكن يجب أن تعمل بشكل جيد :)

  3. الخطوة الحاسمة لجعلها سريعة هي تجزئة تجزئةك. يمكنك تحويل قيمك إلى تمثيل أحادي ، ثم تأخذ مجموعة فرعية عشوائية من البتات مثل التجزئة الجديدة. افعل ذلك مع 20-50 عينة عشوائية وستحصل على 20-50 طاولات التجزئة. إذا كانت أي ميزة تتطابق مع 2 أو أكثر من هذه الجداول الـ 50 ، فستكون الميزة مشابهة جدًا لتلك التي قمت بتخزينها بالفعل. هذا يتيح لك تحويل ABS (xy)

آمل أن يساعد ذلك ، إذا كنت ترغب في تجربة البحث عن تشابه الصورة المتطور ، فأسقط لي بريدًا في Hajo Spratpix

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top