YOLO, one look at a grid


Grid
Keep scores above
NMS: suppress if IoU >
1. Look once
2. Clean up (NMS)
Show
Click any cell to see the numbers it predicts. A dot marks each animal’s center; the cell it falls in is shaded. Dashed boxes, once NMS is done, mark where the real animals are.

What one cell predicts

 

মূল ধারণা।
object detection পাতা ছবির ওপর একটি window সরায় আর একে একে হাজারো অবস্থান দেখে। YOLO — You Only Look Once — কিছুই সরায় না। এটি ছবির ওপর একটি grid বসায়, আর CNN-এর একবার চলায় প্রতিটি cell-এর উত্তর একসঙ্গে আসে। প্রতিটি cell সংখ্যার একই ছোট তালিকা দেয়: box কোথায় (x, y, w, h), box-এ কোনো জিনিস আছে বলে এটি কতটা নিশ্চিত (confidence), আর এটি কোন class (প্রতিটি class-এর জন্য একটি সম্ভাবনা)। পুরো উত্তরটি সংখ্যার একটি ব্লক, grid × grid × প্রতি cell-এর সংখ্যা, তাই নেটওয়ার্কটি live video-র জন্য যথেষ্ট দ্রুত। grid ছবিটিকে ছোট ছোট ছবিতে কাটে না: CNN পুরো ছবিটি একবার দেখে, আর প্রতিটি cell তার উত্তরের শুধু একটি ঘর। এ কারণেই একটি cell নিজের চেয়ে অনেক বড় box আঁকতে পারে।

কোন cell উত্তর দেয়?
যে cell-এ প্রাণীটির কেন্দ্র থাকে, সেটিই তার দায়িত্বে। যে প্রতিবেশী cell প্রাণীটির শুধু একটি অংশ ছোঁয়, সেগুলোও একটি box অনুমান করে, কিন্তু প্রতিটি cell-এর box-এর কেন্দ্র সেই cell-এর ভেতরেই থাকতে হয়, তাই তাদের অনুমান একপাশে সরে থাকে আর কম score পায়। একটি box-এর score হলো তার confidence গুণ class-এর সম্ভাবনা। তারপরও প্রতিটি প্রাণীর চারপাশে কয়েকটি ডুপ্লিকেট থাকে, তাই YOLO অন্য পাতাগুলোর মতোই দুটি পরিষ্কারের ধাপ দিয়ে শেষ করে: কম score বাদ, তারপর NMS।

এখানে কী simulate করা হয়েছে।
আসল YOLO হাজারো label দেওয়া ছবি থেকে তার সংখ্যা শেখে। এই পাতায় কোনো trained নেটওয়ার্ক নেই, তাই প্রতিটি cell-এর সংখ্যা এমনভাবে বানানো যেমন একটি trained নেটওয়ার্ক আচরণ করে: box হলো আসল box আর একটি ছোট, স্থির ভুল, দরকার হলে cell-এর ভেতরে সরানো; confidence হলো প্রাণীটি cell-এর যতটা ঢাকে (দায়িত্বে থাকা cell-এর জন্য 1) গুণ cell-এর box আর আসলটির IoU; আর class-এর সম্ভাবনা হলো cell-এর কতটা বিড়াল আর কতটা কুকুর ঢাকে। এই পাতায় প্রতিটি cell একটি box দেয়; প্রথম YOLO প্রতি cell-এ দুটি দিত, নতুনগুলো আরও বেশি দেয়।

যা করে দেখার মতো:
1. Predict every cell at once চাপুন। 7 × 7 grid-এ (প্রথম YOLO যে মাপ ব্যবহার করত) 49টি cell-এর 35টি কোনো প্রাণীর সঙ্গে মেলে, আর 8টি box 0.30 বা বেশি score পায়। তারপর Run NMS to the end: 8টি box 5টি হয়, আর 5টি প্রাণীই পাওয়া যায়।

2. 3 × 3 বা 5 × 5-এ যান। ছোট দুটি বিড়ালের কেন্দ্র এখন একই cell-এ পড়ে, আর একটি cell মাত্র একটি box দেয়, তাই একটি বিড়াল কখনোই পাওয়া যায় না: 5-এর মধ্যে 4। এটি প্রথম YOLO-র পরিচিত দুর্বলতা — কাছাকাছি থাকা ছোট জিনিস। নতুন সংস্করণগুলো আরও সূক্ষ্ম grid আর প্রতি cell-এ কয়েকটি box ব্যবহার করে।

3. 7 × 7-এ score cut-off 0.05-এ নামান। এখন যে cell-গুলো কোনো প্রাণীকে প্রায় ছোঁয়ই না, সেগুলোও box পায়: 22টি box, আর NMS রাখে 13টি — 5টি প্রাণী আর 8টি ভুল সংকেত। 0.20-এ ভুল সংকেতগুলো চলে যায়।

4. 9 × 9 চেষ্টা করুন। বড় কুকুরটি এখন অনেক cell জুড়ে থাকে, আর তার দুটি প্রতিবেশী এমন box অনুমান করে যা কুকুরের সেরা box-এর সঙ্গে 0.45 আর 0.48 মেলে — NMS সীমা 0.50-এর ঠিক নিচে, তাই দুটোই ভুল সংকেত হিসেবে টিকে থাকে। NMS সীমা 0.40-এ সরান, সেগুলো মুছে যায়: 5টি box, 5টি প্রাণী।