كشف الكائن الاعتراف والحكم. الجزء الأول



تسمح تقنية رؤية الكمبيوتر في حقائق اليوم بجعل الحياة والأعمال أسهل وأرخص وأكثر أمانًا. وفقا ل مختلف الخبراء، فإن هذه السوق تتحرك في السنوات المقبلة إلا في اتجاه النمو، مما يسمح للتطوير التكنولوجيات الملائمة في اتجاه الإنتاجية والجودة. يعد اكتشاف الكائن (اكتشاف الكائن) أحد أكثر الأقسام شيوعًا - تعريف كائن في الصورة أو في دفق الفيديو.

لقد مرت بالفعل الأوقات التي تم فيها حل الكشف عن الأشياء حصريًا من خلال التعلم الآلي الكلاسيكي (الشلالات ، SVM ...) - أصبحت المناهج الآن قائمة على عهد التعلم العميق في هذا المجال. في عام 2014 ، تم اقتراح نهج أثر بشكل كبير على البحث والتطوير اللاحقين في هذا المجال - نموذج R-CNN. جعلتها التحسينات اللاحقة (في شكل Fast R-CNN و Faster R-CNN) واحدة من أكثر التحسينات دقة ، والتي أصبحت سبب استخدامها حتى يومنا هذا.

بالإضافة إلى R-CNN ، هناك العديد من المناهج التي تبحث عن الكائنات: عائلة Yolo ، SSD ، RetinaNet ، CenterNet ... يقدم بعضها نهجًا بديلاً ، بينما يقوم البعض الآخر بتطوير النهج الحالي في اتجاه زيادة مؤشر الأداء. يمكن وضع مناقشة لكل منهم تقريبًا في مقالة منفصلة ، بسبب وفرة الرقائق والحيل :)

للدراسة ، أقترح مجموعة من المقالات مع تحليل نماذج الكشف عن الكائنات على مرحلتين. توفر القدرة على فهم أجهزتهم فهمًا للأفكار الأساسية المستخدمة في تطبيقات أخرى. في هذا المنشور ، سننظر في أبسطها ، وبالتالي ، أولها - R-CNN.

المصطلح


المربع المحيط - الإحداثيات التي تربط منطقة معينة من الصورة - غالبًا على شكل مستطيل. يمكن تمثيلها بـ 4 إحداثيات بتنسيقين: مركزي (cx,cy,w,h) وعادية (xmin,ymin,xmax,ymax)

الفرضية (الاقتراح) ، P - منطقة معينة من الصورة (محددة باستخدام المربع المحيط) الذي يفترض أن يكون الكائن موجودًا فيه.

التدريب الشامل - التدريب الذي تصل فيه الصور الخام إلى مدخلات الشبكة ، وتظهر الإجابات الجاهزة.

IoU (تقاطع عبر الاتحاد) - مقياس درجة التقاطع بين صندوقين محيطيين.

R-CNN


إحدى الطرق الأولى المطبقة لتحديد موقع كائن في الصورة هي R-CNN (الشبكة العصبية لتحول المنطقة). تتكون هندستها من عدة خطوات متتالية وموضح في الشكل 1:

  1. تحديد مجموعة من الفرضيات.
  2. استخراج الميزات من المناطق المرتقبة باستخدام شبكة عصبية تلافيفية وترميزها في ناقل.
  3. تصنيف كائن ضمن فرضية بناءً على المتجه من الخطوة 2.
  4. تحسين (تعديل) إحداثيات الفرضية.
  5. يتكرر كل شيء من الخطوة 2 حتى تتم معالجة جميع الفرضيات من الخطوة 1.

فكر في كل خطوة بمزيد من التفاصيل.



بحث الفرضيات


وجود صورة محددة عند الإدخال ، أول شيء ينقسم إلى فرضيات صغيرة بأحجام مختلفة. واضعو هذه المادة استخدام الانتقائية البحث - المستوى الأعلى، لأنها تتيح لك لتجميع مجموعة من الفرضيات (فئة الكائن لا يهم بعد)، على أساس تقسيم لتحديد حدود الكائنات كثافة بكسل، فرق اللون والتباين والملمس. في الوقت نفسه ، لاحظ المؤلفون أنه يمكن استخدام أي خوارزمية مماثلة. وهكذا ، تبرز حوالي 2000 منطقة مختلفة ، والتي تتداخل جزئيًا مع بعضها البعض. للمعالجة اللاحقة الأكثر دقة ، يتم توسيع كل فرضية أكثر بمقدار 16 بكسل في جميع الاتجاهات الأربعة - كما لو كانت إضافة سياق .

مجموع:

  • الإدخال: الصورة الأصلية.
  • الإخراج: مجموعة من الفرضيات ذات الأحجام المختلفة ونسب العرض إلى الارتفاع.

ترميز الصورة


كل فرضية من الخطوة السابقة بشكل مستقل ومنفصل عن بعضها البعض تدخل مدخل الشبكة العصبية التلافيفية. لأنه يستخدم بنية AlexNet بدون طبقة softmax الأخيرة. تتمثل المهمة الرئيسية للشبكة في ترميز الصورة الواردة إلى تمثيل متجه يتم استخراجه من آخر طبقة FC7 متصلة بالكامل . لذا فإن الناتج هو تمثيل متجهي 4096 الأبعاد.

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

مجموع:

  • المدخلات: كل فرضية مقترحة في الخطوة السابقة.
  • الإخراج: تمثيل متجه لكل فرضية.

تصنيف


بعد الحصول على المتجه الذي يميز الفرضية ، تصبح معالجته الإضافية ممكنة. لتحديد أي كائن موجود في المنطقة المقصودة ، يستخدم المؤلفون طريقة تصنيف مستوى الفصل الكلاسيكية القائمة على SVM (يمكن دعم آلة المتجه - وهي آلة متجه الدعم ، باستخدام فقدان المفصلة ). وينبغي أن يكونNc+1 فرد (هنا ، Ncيشير إلى عدد فئات الكائنات المحددة ، وتضاف وحدة لتحديد الخلفية بشكل منفصل) للنماذج التي تم تدريبها وفقًا لمبدأ OvR (واحد مقابل الراحة - واحد مقابل الكل ، إحدى طرق تصنيف متعدد الفئات). في الواقع ، يتم حل مشكلة التصنيف الثنائي - هل هناك فئة محددة من كائن داخل المنطقة المقترحة أم لا. لذا المخرجNc+1- متجه الأبعاد يمثل الثقة في فئة معينة من الكائن الموجود في الفرضية (الخلفية تدل تاريخيا من قبل فئة الصفر ،Ci=0)

مجموع:

  • الإدخال: متجه كل من الفرضيات المقترحة من الطبقة قبل الأخيرة من الشبكة (في حالة AlexNet ، هذا هو FC7).
  • الإخراج: بعد إطلاق كل فرضية بالتسلسل نحصل على مصفوفة الأبعاد 2000×Ncتمثل فئة الكائن لكل فرضية.

تحديد إحداثيات الفرضيات


لا تحتوي الفرضيات التي تم الحصول عليها في الخطوة 1 دائمًا على الإحداثيات الصحيحة (على سبيل المثال ، قد يتم "قص" كائن ما دون جدوى) ، وبالتالي ، فمن المنطقي تصحيحها بشكل إضافي. وفقًا للمؤلفين ، يؤدي هذا إلى 3-4 ٪ إضافية للمقاييس. لذلك ، تتم معالجة الفرضيات التي تحتوي على كائن (يتم تحديد وجود كائن في خطوة التصنيف) بالإضافة إلى ذلك عن طريق الانحدار الخطي. أي أن الفرضيات مع فئة "الخلفية" لا تحتاج إلى معالجة إضافية للمناطق ، لأنه في الواقع لا يوجد كائن هناك ...

كل كائن ، خاص بفئته ، له أحجام ونسب عرضية معينة ، وبالتالي ، فمن المنطقي ، فمن المستحسن استخدام أداة الارتداد الخاصة بنا لكل فئة .

على عكس الخطوة السابقة ، يستخدم المؤلفون غير متجه من طبقة FC7 للإدخال للعمل بشكل أفضل، وخرائط المعالم المستخرجة من طبقة MaxPooling الأخيرة (في AlexNet ، MaxPool5، البعد 256 × 6 × 6). الشرح هو التالي - يقوم المتجه بتخزين معلومات حول وجود كائن مع بعض التفاصيل المميزة ، وخريطة المعالم تخزن أفضل المعلومات حول موقع الكائنات.

مجموع:

  • الإدخال: خريطة السمات من طبقة MaxPooling الأخيرة لكل فرضية تحتوي على أي كائن ما عدا الخلفية.
  • الإخراج: تصحيحات لإحداثيات المربع المحيط بالفرضية.

الحيل المساعدة


قبل الانتقال إلى تفاصيل التدريب النموذجي ، سننظر في حيلتين ضروريتين سنحتاجهما لاحقًا.

تحديد الفرضيات الإيجابية والسلبية


عند التدريس مع مدرس ، من الضروري دائمًا تحقيق توازن معين بين الفصول الدراسية. يمكن أن يؤدي العكس إلى ضعف دقة التصنيف. على سبيل المثال ، إذا حدث الأول في عينة من فئتين ، فإن الأول يحدث فقط في نسبة قليلة من الحالات ، فمن الصعب على الشبكة أن تتعلم كيفية تحديده ، لأنه يمكن تفسيره على أنه بعيد. في حالة مهام الكشف عن الكائنات ، هناك مثل هذه المشكلة - في الصورة مع كائن واحد ، تحتوي بعض الفرضيات فقط (من ~ 2000) على هذا الكائن (Ci>0) ، والجميع هم الخلفية (Ci=0)

نأخذ التدوين اللازم: تسمى الفرضيات التي تحتوي على أشياء إيجابية (إيجابية) ، وبدون أشياء (تحتوي فقط على الخلفية ، أو جزء غير ذي أهمية من الكائن) - سلبية (سلبية).

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



مع الفرضيات الإيجابية ، كل شيء واضح - إذا تم تعريف الفصل بشكل غير صحيح ، يجب أن يتم تغريمك. ولكن ماذا عن السلبية؟ هناك الكثير من الأشياء الإيجابية ... بادئ ذي بدء ، نلاحظ أنه ليس من الصعب التعرف على جميع الفرضيات السلبية. على سبيل المثال ، الحالات التي تحتوي على الخلفية فقط ( سلبي سهل ) أسهل بكثير في التصنيف من احتواء كائن آخر أو جزء صغير من المطلوب ( سلبي صعب ).

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

نهج التعدين السلبي الصعب استخدام السلبية السلبية فقط للتدريب ، حيث من خلال تعلم التعرف عليهم ، نحقق تلقائيًا أفضل عمل مع فرضيات سلبية سهلة. لكن مثل هذه الأيديولوجية ستطبق فقط في عمليات التنفيذ اللاحقة (بدءًا من Fast R-CNN).

قمع غير أقصى


في كثير من الأحيان ، اتضح أن النموذج يحدد العديد من الفرضيات بثقة كبيرة تشير إلى نفس الكائن. باستخدام قمع غير الحد الأقصى (NMS) ، يمكنك التعامل مع مثل هذه الحالات وترك مربع محيط واحد فقط ، أفضل. ولكن في الوقت نفسه ، لا تنس الحالة عندما يمكن أن تحتوي الصورة على شيئين مختلفين من نفس الفئة. يوضح الشكل 3 تأثير العملية قبل (يسار) وبعد (يمين) تشغيل الخوارزمية.



ضع في اعتبارك الخوارزمية للعمل على فئة واحدة (في الواقع ، يتم تطبيقها على كل فئة على حدة):

  1. عند الإدخال ، تأخذ الوظيفة مجموعة من الفرضيات لفئة واحدة وعتبة تحدد الحد الأقصى للتقاطع بين الفرضيات.
  2. يتم فرز الفرضيات حسب "ثقتهم".
  3. في الدورة ، يتم تحديد الفرضية الأولى (لها أعلى قيمة ثقة) وتتم إضافتها إلى مجموعة النتائج.
  4. في الدورة ، يتم اختيار الفرضية الثانية التالية (من بين تلك المتبقية بعد الخطوة 3).
  5. إذا كان التقاطع بين الفرضيات المحددة أكبر من العتبة المحددة (يتم احتساب التقاطع على أساس تقاطع الاتحاد) ، فسيتم تجاهل الفرضية الثانية ولن تكون موجودة في مجموعة النتائج.
  6. يتكرر كل شيء من الخطوة 3 حتى يتم تعداد الفرضيات بالكامل.

يشبه الرمز الزائف هذا:

function nms(hypotheses, threshold):
    sorted = sort(hypotheses.values, key=hypotheses.scores)
    result = []
    for first in sorted:
        result.join(first)
        without_first = sorted / first
        for second in without_first:
            if IoU(first, second) > threshold:
                 sorted.remove(second)
    return result


تدريب


كتلة عزل الفرضية غير قابلة للتعلم.

نظرًا لأن الشبكة مقسمة إلى عدة كتل منفصلة عن بعضها البعض ، فلا يمكن تدريبها على أساس شامل. إذن ، التعلم عملية متسلسلة.

تدريب عرض المتجهات


يتم اعتبار الشبكة التي تم تدريبها مسبقًا على ImageNet كأساس - مثل هذه الشبكات يمكنها بالفعل استخراج ميزات مهمة من الصور الواردة - يبقى تدريبهم على العمل مع الفئات اللازمة. للقيام بذلك ، قم بتغيير بُعد طبقة الإخراج إلىNcوتدريب نسخة معدلة بالفعل. يمكن حظر الطبقات الأولى ، لأنها تستخرج الميزات الأساسية (المتطابقة تقريبًا لجميع الصور) ، والطبقات اللاحقة أثناء التدريب تتكيف مع ميزات الفئات المطلوبة. لذا سيتم تحقيق التقارب بشكل أسرع. ولكن إذا كان التدريب لا يزال يسير بشكل سيئ ، فيمكنك فتح الطبقات الأساسية. نظرًا لأنه من الضروري ضبط الأوزان الحالية بدقة. لا يوصى باستخدام معدل تعلم مرتفع (معدل تعلم) - يمكنك مسح الأوزان الحالية بسرعة كبيرة.

عندما تتعلم الشبكة كيفية تصنيف الكائنات جيدًا ، يتم تجاهل الطبقة الأخيرة مع تنشيط SoftMax وتصبح طبقة FC7 هي المخرجات ، والتي بدورها يمكن تفسير ناتجها على أنه تمثيل متجه للفرضية.

الإيجابية في هذه الخطوة هي الفرضيات التي تتقاطع مع الموضع الصحيح للكائن (IoU) بأكثر من 0.5. جميع الآخرين يعتبرون سلبيين. لتحديث المقاييس ، يتم استخدام 128 دفعة صغيرة ، تتكون من 32 فرضية إيجابية و 96 فرضية سلبية.

تدريب المصنف


اسمحوا لي أن أذكركم ، يتم استخدام تصنيف كل فرضية Nc+1تحدد نماذج SVM التي تتلقى مدخلات التمثيل المتجه للفرضية ، وتستند إلى مبدأ واحد مقابل الآخر (One-vs-Rest) فئة الكائن. يتم تدريبهم كنماذج SVM عادية باستثناء واحد - في هذه الخطوة يختلف تعريف الإيجابيات والسلبيات قليلاً. هنا تؤخذ الفرضيات على أنها سلبية ، تقاطعها مع الموضع الصحيح أقل من 0.3.

تدريب الانحدار


دل:

  • G=(gx,gy,gw,gh)- الإحداثيات الصحيحة للكائن ؛
  • G^=(gx^,gy^,gw^,gh^)- تصحيح موقع إحداثيات الفرضيات (يجب أن يتزامن مع G) ؛
  • T=(tx,ty,tw,ty)- تصحيح التصحيحات على الإحداثيات ؛
  • P=(px,py,pw,ph)- إحداثيات الفرضية ؛

لذا فإن الانحدارات (واحدة لكل فئة) تمثل أربع وظائف:

  • dx(P)، dy(P)- تحديد تصحيحات إحداثيات المركز (x,y) لتحقيق تأثير الاستقلال عن الحجم الأصلي ، يجب تطبيع التصحيح.
  • dw(P)و dh(P)- تحديد تصحيحات العرض والارتفاع في الفضاء اللوغاريتمي (يتم استخدام الفضاء اللوغاريتمي للاستقرار العددي ، والقسمة - لتحديد اتجاه التصحيح).

للدلالة به φ5(P)خريطة المعالم التي تم الحصول عليها من MaxPool5طبقة الشبكة (تذكر ، لها أبعاد 256 × 6 × 6 ، ثم يتم تمديدها ببساطة) ، عندما تقتصر الفرضية على الإحداثيات بالتطبيق على الشبكة P. سنبحث عن تحولP في Gمثل:

\ {align} علاوة على ذلك
gx^=pwdx(P)+pxgy^=phdy(P)+pygw^=pwedw(P)gh^=phedh(P)

d(P)=wTφ5(P)(هنا (x,y,w,h)) هي دالة خطية ، والمتجه wيتم البحث باستخدام مشكلة التحسين (انحدار التلال):

w=argmaxw^iN(Tid(P))2+λwx^2


لتحديد التصحيحات للإحداثيات ، نجمع الأزواج بين الموضع الصحيح للفرضيات Gوحالتهم الحالية P، وحدد القيم Tمثل:

\ {align} قد تختلف الرموز في الصيغ داخل هذه المقالة عن تدوين المقالة الأصلية للحصول على أفضل فهم. نظرًا لوجود حوالي 2000 فرضية على ناتج الشبكة ، يتم دمجها باستخدام كبت غير أقصى. يشير مؤلفو المقالة أيضًا إلى أنه إذا استخدمت طبقة SoftMax بدلاً من SVM (التي تم طيها في الخطوة الثانية) ، فإن الدقة تنخفض بنسبة ~ 4-4.5٪ (مجموعة بيانات VOC 2007) ، لكنهم يلاحظون أن أفضل "ملاءمة" للمقاييس ستساعد على الأرجح في التخلص من مثل هذه المشكلة.
Tx=gxpxpwTy=gypyphTw=loggwpwTh=logghph





في الختام ، نسلط الضوء على العيوب الرئيسية لهذا النهج:


  1. يمكن للفرضيات المقترحة في الخطوة 1 تكرار بعضها البعض جزئيًا - يمكن أن تتكون الفرضيات المختلفة من أجزاء متطابقة ، وقد تمت معالجة كل هذه الفرضية بشكل منفصل بواسطة شبكة عصبية. اتضح أن معظم الشبكات تطلق بعضها البعض بشكل أو بآخر غير ضروري.
  2. لا يمكن استخدامه للتشغيل في الوقت الفعلي ، حيث يتم إنفاق 53 ثانية تقريبًا على تمرير صورة واحدة (إطار) (NVIDIA Titan Black GPU).
  3. لا يتم تدريس خوارزمية استخلاص الفرضية بأي شكل من الأشكال ، وبالتالي يكاد يكون من المستحيل إجراء تحسين إضافي في الجودة (لم يقم أحد بإلغاء الفرضيات السيئة).

هذا يوزع أول نموذج R-CNN. تتم مناقشة عمليات التنفيذ الأكثر تقدمًا (في شكل Fast R-CNN و Faster R-CNN) في مقالة منفصلة .

قائمة المراجع


1. R. Girshick و J. Donahue و T. Darrell و J. Malik. "التسلسلات الهرمية للميزات الغنية للكشف الدقيق عن الكائنات والتجزئة الدلالية." في CVPR ، 2014. arXiv: 1311.2524

2. R.Girshick، J. Donahue، T. Darrell، J. Malik. "الشبكات التلافيفية القائمة على المنطقة للكشف الدقيق عن الأشياء وتقسيمها." TPAMI ، 2015 نشرها

: سيرجي ميخايلين ، أخصائي التعلم الآلي ، أنظمة الأنظمة الحيوية النفاثة

All Articles