الفكرة كلّها.
تمرّر صفحة الـ object detection نافذة فوق الصورة وتفحص آلاف المواضع واحدًا واحدًا. أمّا YOLO —
You Only Look Once — فلا يمرّر شيئًا. يضع grid فوق الصورة، وتمريرة واحدة من الـ CNN تعطي
جوابًا لـ كلّ cell في الوقت نفسه. وتجيب كلّ cell القائمة القصيرة نفسها من الأرقام: أين الـ box
(x، y، w، h)، وما مدى يقينها بأنّ الـ box يحوي شيئًا
(الـ confidence)، وما فئته (احتمال واحد لكلّ فئة). والجواب كلّه كتلة واحدة من الأرقام،
grid × grid × أرقام الـ cell، فالشبكة سريعة بما يكفي للفيديو الحيّ. والـ grid
لا يقطّع الصورة إلى صور صغيرة: الـ CNN ينظر إلى الصورة كلّها مرّة واحدة، وكلّ cell مجرّد خانة واحدة في جوابه.
ولهذا تستطيع الـ cell أن ترسم box أكبر منها بكثير.
أيّ cell تجيب؟
الـ cell التي تحوي مركز الحيوان هي المسؤولة عنه. والـ cells المجاورة التي تتداخل مع جزء من الحيوان
فقط تخمّن box أيضًا، لكنّ box كلّ cell يجب أن يكون مركزه داخلها، فتقع تخميناتها إلى جانب وتحصل على score
أقلّ. والـ score للـ box هو الـ confidence مضروبًا في احتمال الفئة. ويبقى بعد ذلك بعض المكرّرات حول كلّ
حيوان، لذا ينتهي YOLO بخطوتي التنظيف نفسيهما كما في الصفحات الأخرى: حذف الـ scores المنخفضة، ثمّ الـ NMS.
ما المُحاكى هنا.
يتعلّم YOLO الحقيقي أرقامه من آلاف الصور المُعلَّمة. ولا توجد شبكة مدرَّبة في هذه الصفحة، فتُصنَع أرقام كلّ
cell بالطريقة التي تتصرّف بها شبكة مدرَّبة: الـ box هو الـ box الحقيقي مع خطأ صغير ثابت، يُنقَل إلى داخل
الـ cell عند الحاجة؛ والـ confidence هو نسبة الـ cell التي يغطّيها الحيوان (1 للـ cell المسؤولة) مضروبة في
الـ IoU بين box الـ cell والحقيقي؛ واحتمالات الفئات هي نسبة الـ cell التي تغطّيها القطط والكلاب. في هذه
الصفحة تعطي كلّ cell box واحدًا؛ وأعطى YOLO الأوّل اثنين لكلّ cell، والإصدارات الأحدث تعطي أكثر.