π Comprehensive GitHub README about the evolution of the R-CNN family.
- Introduction
- Object Detection Pipeline
- Sliding Window
- Selective Search
- R-CNN
- Fast R-CNN
- Faster R-CNN
- Region Proposal Network (RPN)
- Comparison Tables
- Advantages & Disadvantages
- References
Object detection aims to classify and localize objects simultaneously.
| Task | Output |
|---|---|
| Classification | Class |
| Localization | Class + Bounding Box |
| Detection | Multiple Classes + Multiple Bounding Boxes |
Traditional methods evaluate thousands of windows across an image, making them computationally expensive.
Selective Search groups similar regions using hierarchical segmentation to generate approximately 2,000 candidate object regions.
- No training required
- High recall
- Slow
- Hand-crafted algorithm
- Not end-to-end
Pipeline:
- Selective Search
- Warp each proposal
- CNN feature extraction
- SVM classification
- Bounding-box regression
- Huge accuracy improvement over traditional methods.
- Very slow
- Multi-stage training
- Large disk storage for extracted features
Improvements:
- CNN runs once on the whole image.
- ROI Pooling extracts proposal features.
- Joint classification and box regression.
Converts proposals with different sizes into fixed-size feature maps.
Selective Search is still required.
Major innovation: Selective Search is replaced by a Region Proposal Network (RPN).
The RPN slides a small network over the feature map and predicts:
- Objectness score
- Bounding box offsets
Multiple anchors with different scales and aspect ratios are evaluated at each location.
The backbone CNN is shared between proposal generation and detection.
graph LR
A[Sliding Window]
-->B[Selective Search]
-->C[R-CNN]
-->D[Fast R-CNN]
-->E[Faster R-CNN]