মূল ধারণা।
object detection পাতা প্রতিটি অবস্থানে একটি স্থির মাপের window সরায়। R-CNN (2014) অনেক কম
জায়গা দেখে। প্রথমে এটি region প্রস্তাব করে: এমন box যেখানে কোনো জিনিস থাকতে পারে। এগুলো খুঁজে পায়
selective search দিয়ে, যা ছোট ছোট টুকরো থেকে শুরু করে সবচেয়ে বেশি মিল থাকা দুটি প্রতিবেশীকে বারবার
জোড়া দেয়; প্রতিটি জোড়া লাগানো দল একটি box দেয়। তারপর প্রতিটি region কেটে নেয়, CNN যে স্থির মাপ চায় তাতে
চেপে আনে, আর তার ওপর CNN চালিয়ে একটি class score পায়। চাপা region-এর মাপ সবসময় ঠিক থাকে, তাই বড়
বিড়াল আর ছোট বিড়াল CNN-এর কাছে একই রকম দেখায়। প্রস্তাবিত region কমই প্রাণীটির সঙ্গে ঠিকঠাক মেলে, তাই R-CNN
আরও ভালো মেলাতে box-এর প্রতিটি কিনারা একটু সরায় (box regression)। শেষে NMS ডুপ্লিকেট সরায়।
Fast R-CNN (2015) লক্ষ করল যে region-গুলো একটির ওপর আরেকটি পড়ে, তাই R-CNN একই pixel-এর
ওপর বারবার CNN চালায়। এটি পুরো ছবিতে CNN একবার চালায়, তারপর ফলাফলের feature map থেকে
প্রতিটি region কেটে একটি স্থির grid-এ pool করে (RoI pooling)। একই region, একবার CNN চালানো।
Faster R-CNN (2015) selective search-ও বদলে দিল। একটি ছোট Region Proposal Network
একই feature map দেখে, প্রতিটি অবস্থানে বিভিন্ন মাপের কয়েকটি anchor box বসায়, আর প্রতিটিকে score দেয়:
এখানে কি কোনো জিনিস আছে? শুধু সেরা কয়েক ডজন region হয়। প্রস্তাব আর যাচাই এখন একবার CNN চালানো
ভাগ করে নেয়।
এখানে কী simulate করা হয়েছে।
এই পাতায় কোনো trained নেটওয়ার্ক নেই। “CNN” হলো object detection পাতার template score: চাপা
region একটি ছোট বিড়াল বা কুকুরের সঙ্গে কতটা মেলে, −1 থেকে +1। “feature map” হলো ছবিটি 4
গুণ ছোট করা; আসলটিতে শত শত channel থাকে। আসল detector box সরানোটা শেখে আর এক ধাপে করে; এই পাতা প্রতিটি
কিনারা অল্প অল্প সরিয়ে দেখে সেরা score রেখে সেটি খুঁজে বের করে। পাতাটি যা আসলের মতোই দেখায়: region কোথা থেকে
আসে, কী কেটে নেওয়া হয়, আর CNN-কে কতবার চলতে হয়।