Ang mga modelo ng image classification na ating tinalakay hanggang ngayon ay tumatanggap ng isang imahe at nagbibigay ng resulta na kategorya, tulad ng klase na 'numero' sa problema ng MNIST. Gayunpaman, sa maraming pagkakataon, hindi lang natin nais malaman na ang isang larawan ay nagpapakita ng mga bagay - nais din nating matukoy ang eksaktong lokasyon ng mga ito. Ito ang layunin ng pag-detect ng objekto.
Larawan mula sa YOLO v2 web site
Kung nais nating hanapin ang isang pusa sa isang larawan, ang isang napakasimpleng paraan ng pag-detect ng objekto ay ang sumusunod:
- Hatiin ang larawan sa maraming tile.
- Patakbuhin ang image classification sa bawat tile.
- Ang mga tile na may sapat na mataas na activation ay maaaring ituring na naglalaman ng hinahanap na objekto.
Larawan mula sa Exercise Notebook
Gayunpaman, ang paraang ito ay malayo sa perpekto, dahil hindi nito lubos na natutukoy ang bounding box ng objekto. Para sa mas eksaktong lokasyon, kailangan nating gumamit ng regression upang mahulaan ang mga coordinate ng bounding boxes - at para dito, kailangan natin ng mga partikular na dataset.
Ang blog post na ito ay nagbibigay ng magandang pagpapakilala sa pag-detect ng mga hugis.
Maaaring makatagpo ka ng mga sumusunod na dataset para sa gawaing ito:
- PASCAL VOC - 20 klase
- COCO - Common Objects in Context. 80 klase, bounding boxes, at segmentation masks
Habang madali ang pagsukat ng performance ng algorithm sa image classification, sa pag-detect ng objekto kailangan nating sukatin ang tamang klase pati na rin ang eksaktong lokasyon ng inferred bounding box. Para sa huli, ginagamit natin ang tinatawag na Intersection over Union (IoU), na sumusukat kung gaano kahusay ang overlap ng dalawang kahon (o dalawang arbitrary na lugar).
Figure 2 mula sa napakagandang blog post na ito tungkol sa IoU
Ang ideya ay simple - hinahati natin ang lugar ng intersection ng dalawang pigura sa lugar ng kanilang union. Para sa dalawang magkaparehong lugar, ang IoU ay magiging 1, habang para sa ganap na magkahiwalay na lugar ito ay magiging 0. Kung hindi, ito ay mag-iiba mula 0 hanggang 1. Karaniwan, isinasaalang-alang lamang natin ang mga bounding box na may IoU na higit sa isang tiyak na halaga.
Halimbawa, nais nating sukatin kung gaano kahusay ang pagkilala sa isang klase ng objekto
- Isaalang-alang ang Precision-Recall curve na nagpapakita ng accuracy depende sa detection threshold value (mula 0 hanggang 1).
- Depende sa threshold, makakakita tayo ng mas marami o mas kaunting mga objekto sa larawan, at magkakaibang halaga ng precision at recall.
- Ang curve ay magmumukhang ganito:
Larawan mula sa NeuroWorkshop
Ang Average Precision para sa isang klase
Isasaalang-alang lamang natin ang mga detection na may IoU na higit sa isang tiyak na halaga. Halimbawa, sa PASCAL VOC dataset karaniwang
Larawan mula sa NeuroWorkshop
Ang pangunahing sukatan para sa pag-detect ng objekto ay tinatawag na Mean Average Precision, o mAP. Ito ay ang halaga ng Average Precision, na ina-average sa lahat ng klase ng objekto, at kung minsan ay sa
May dalawang malawak na klase ng mga algorithm sa pag-detect ng objekto:
- Region Proposal Networks (R-CNN, Fast R-CNN, Faster R-CNN). Ang pangunahing ideya ay ang pagbuo ng Regions of Interests (ROI) at pagpapatakbo ng CNN sa mga ito, naghahanap ng maximum activation. Medyo katulad ito sa simpleng paraan, maliban na ang mga ROI ay nabubuo sa mas matalinong paraan. Isa sa mga pangunahing kahinaan ng mga ganitong pamamaraan ay mabagal ang mga ito, dahil kailangan ng maraming pass ng CNN classifier sa larawan.
- One-pass (YOLO, SSD, RetinaNet) methods. Sa mga arkitektura na ito, idinisenyo ang network upang mahulaan ang parehong klase at ROI sa isang pass.
Ang R-CNN ay gumagamit ng Selective Search upang makabuo ng hierarchical structure ng mga ROI region, na pagkatapos ay ipinapasa sa CNN feature extractors at SVM-classifiers upang matukoy ang klase ng objekto, at linear regression upang matukoy ang mga coordinate ng bounding box. Opisyal na Papel
Larawan mula kay van de Sande et al. ICCV’11
*Mga larawan mula sa blog na ito
Ang pamamaraang ito ay katulad ng R-CNN, ngunit ang mga region ay tinutukoy pagkatapos ma-apply ang convolution layers.
Larawan mula sa Opisyal na Papel, arXiv, 2015
Ang pangunahing ideya ng pamamaraang ito ay ang paggamit ng neural network upang mahulaan ang mga ROI - tinatawag na Region Proposal Network. Papel, 2016
Larawan mula sa opisyal na papel
Ang algorithm na ito ay mas mabilis pa kaysa sa Faster R-CNN. Ang pangunahing ideya ay ang sumusunod:
- Kinukuha ang mga feature gamit ang ResNet-101.
- Ang mga feature ay pinoproseso ng Position-Sensitive Score Map. Ang bawat objekto mula sa
$C$ klase ay hinahati sa$k\times k$ na mga region, at sinasanay upang mahulaan ang mga bahagi ng mga objekto. - Para sa bawat bahagi mula sa
$k\times k$ na mga region, lahat ng network ay bumoboto para sa klase ng objekto, at ang klase ng objekto na may pinakamataas na boto ang pinipili.
Larawan mula sa opisyal na papel
Ang YOLO ay isang realtime one-pass algorithm. Ang pangunahing ideya ay ang sumusunod:
- Ang larawan ay hinahati sa
$S\times S$ na mga region. - Para sa bawat region, CNN ay hinuhulaan ang
$n$ posibleng mga objekto, bounding box coordinates, at confidence=probability * IoU.
Larawan mula sa opisyal na papel
- RetinaNet: opisyal na papel
- SSD (Single Shot Detector): opisyal na papel
Ipagpatuloy ang iyong pag-aaral sa sumusunod na notebook:
Sa araling ito, nagkaroon ka ng mabilisang pagtingin sa iba't ibang paraan ng pag-detect ng objekto!
Basahin ang mga artikulo at notebook tungkol sa YOLO at subukan ito sa iyong sarili:
- Magandang blog post na naglalarawan ng YOLO
- Opisyal na site
- Yolo: Keras implementation, step-by-step notebook
- Yolo v2: Keras implementation, step-by-step notebook
- Pag-detect ng Objekto ni Nikhil Sardana
- Isang magandang paghahambing ng mga algorithm sa pag-detect ng objekto
- Review ng Deep Learning Algorithms para sa Pag-detect ng Objekto
- Isang Step-by-Step na Pagpapakilala sa Mga Pangunahing Algorithm sa Pag-detect ng Objekto
- Pagpapatupad ng Faster R-CNN sa Python para sa Pag-detect ng Objekto











