{
 "id": "epr6t3az44",
 "slug": "region-proposal-network",
 "title": "Region proposal network",
 "updated": "2026-10-15",
 "topic_path": [
  {
   "id": "technology",
   "label": "Technology and the built world",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology"
  },
  {
   "id": "technology.computing",
   "label": "Computing and digital systems",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing"
  },
  {
   "id": "technology.computing.ai",
   "label": "Artificial intelligence and data",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai"
  },
  {
   "id": "technology.computing.ai.perception_language",
   "label": "Language and vision AI",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.perception_language"
  },
  {
   "id": "technology.computing.ai.computer_vision",
   "label": "Computer vision",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.computer_vision"
  }
 ],
 "geo": [
  {
   "id": "geo.nongeo.t2001.technology.computing.ai.perception_language",
   "label": "Non-geographic · 2001 to 2020: Language and vision AI",
   "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai.perception_language",
   "path": [
    {
     "id": "geo.nongeo",
     "label": "Non-geographic",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo"
    },
    {
     "id": "geo.nongeo.t2001",
     "label": "Non-geographic · 2001 to 2020",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001"
    },
    {
     "id": "geo.nongeo.t2001.technology",
     "label": "Technology and the built world",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing",
     "label": "Computing and digital systems",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing.ai",
     "label": "Artificial intelligence and data",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai"
    },
    {
     "id": "geo.nongeo.t2001.technology.computing.ai.perception_language",
     "label": "Language and vision AI",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t2001.technology.computing.ai.perception_language"
    }
   ]
  }
 ],
 "excerpt": "A region proposal network (RPN) is a fully convolutional module that scans a shared image feature map and predicts candidate object regions, introduced in Faster R-CNN in 2015.",
 "snippet": "A region proposal network (RPN) is a fully convolutional module that scans a shared image feature map and predicts candidate object regions, introduced in Faster R-CNN in 2015.",
 "node": "technology.computing.ai.computer_vision",
 "markdown": "# Region proposal network\n\nA region proposal network (RPN) is a fully convolutional module that scans a shared image feature map and, at each position, predicts objectness scores and bounding-box coordinates, producing candidate regions for a second-stage detector. Because it reuses the convolutional features the detector already computes, proposals come at nearly no extra cost, and the whole detector trains end to end.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup>\n\n| Key fact | Value |\n|---|---|\n| Anchors per feature-map position | 9 (3 scales × 3 aspect ratios)<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> |\n| Anchors on a 1000 × 600 image | roughly 20,000 (≈ 60 × 40 × 9); about 6,000 kept for training<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> |\n| Proposal filtering | NMS at IoU 0.7, leaving about 2,000 proposals per image<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> |\n| Proposal cost | about 10 ms per image when conv features are shared, versus about 1.51 s for Selective Search<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> |\n| Full Faster R-CNN speed (VGG-16) | 5 fps on a GPU, 198 ms for proposal plus detection<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> |\n| Accuracy (VGG-16, 300 proposals) | 73.2% mAP on PASCAL VOC 2007, 70.4% on 2012<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> |\n| Loss | log-loss classification plus smooth L1 regression, weighted with \\( \\lambda = 10 \\)<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> |\n\n## How it works\n\nThe RPN slides a 3 × 3 window over the last shared convolutional feature map. Each position maps to a lower-dimensional vector, 256-d with ZF or 512-d with VGG, fed to two sibling 1 × 1 convolution layers: a box-regression layer with 4k outputs and a classification layer with 2k objectness scores, where k is the number of anchors per position.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> Detectron2's StandardRPNHead implements exactly this design, with the 3 × 3 conv producing a shared hidden state from which one 1 × 1 conv predicts objectness logits and another predicts box deltas.<sup>[2](https://github.com/facebookresearch/detectron2/blob/v0.6/detectron2/modeling/proposal_generator/rpn.py)</sup>\n\nAnchors are reference boxes tiled at every position. The original design uses 3 scales with box areas \\( 128^{2} \\), \\( 256^{2} \\), and \\( 512^{2} \\) pixels and 3 aspect ratios (1:1, 1:2, 2:1), giving k = 9 anchors per position and \\( W \\cdot H \\cdot k \\) anchors on a \\( W \\times H \\) map of typically about 2,400 positions.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> Because the same heads apply at every location, the network is translation invariant; the proposal layers need a (4 + 2) × 9-dimensional output, about 2.4 million parameters with VGG-16, an order of magnitude fewer than the 27 million of the MultiBox-style alternative it replaced.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup>\n\nDuring training, an anchor is positive if it has the highest IoU with a ground-truth box or IoU above 0.7 with any ground-truth box, and negative if its IoU is below 0.3 with all ground-truth boxes; anchors in between contribute nothing to the loss.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> The multi-task loss is\n\n\\[ L(\\{p_i\\}, \\{t_i\\}) = \\frac{1}{N_{\\mathrm{cls}}} \\sum_i L_{\\mathrm{cls}}(p_i, p_i^{*}) + \\lambda \\frac{1}{N_{\\mathrm{reg}}} \\sum_i p_i^{*} L_{\\mathrm{reg}}(t_i, t_i^{*}) \\]\n\nwith log-loss classification, smooth L1 regression active only for positive anchors, \\( N_{\\mathrm{cls}} = 256 \\), \\( N_{\\mathrm{reg}} \\approx 2400 \\), and \\( \\lambda = 10 \\).<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> The smooth L1 function is \\( 0.5x^{2} \\) for \\( |x| < 1 \\) and \\( |x| - 0.5 \\) otherwise.<sup>[3](https://arxiv.org/pdf/1504.08083)</sup> [Detectron2](https://www.edgepedia.org/detectron2) computes the objectness term as binary cross-entropy with logits and supports smooth L1 or GIoU for box regression.<sup>[2](https://github.com/facebookresearch/detectron2/blob/v0.6/detectron2/modeling/proposal_generator/rpn.py)</sup>\n\n## How it is done\n\nA practitioner pipeline runs as follows. First, anchor boxes are tiled over the feature map(s); a modern FPN-based implementation uses anchor sizes (32, 64, 128, 256, 512), aspect ratios (0.5, 1.0, 2.0), and strides (4, 8, 16, 32, 64) across pyramid levels.<sup>[4](https://aegean.ai/aiml-common/lectures/scene-understanding/object-detection/faster-rcnn/pytorch/03_rpn/03_rpn)</sup> The 3 × 3 and 1 × 1 heads then produce objectness scores and four deltas per anchor, center shifts \\( (d_{x}, d_{y}) \\) and log-scale factors \\( (d_{w}, d_{h}) \\), which are decoded onto the anchors with clamping for numerical stability.<sup>[4](https://aegean.ai/aiml-common/lectures/scene-understanding/object-detection/faster-rcnn/pytorch/03_rpn/03_rpn)</sup> Decoded boxes are clipped to the image, filtered by a minimum size, and reduced by non-maximum suppression (NMS); cross-boundary anchors are ignored during training and cropped during testing.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup><sup> • </sup><sup>[4](https://aegean.ai/aiml-common/lectures/scene-understanding/object-detection/faster-rcnn/pytorch/03_rpn/03_rpn)</sup> NMS at IoU 0.7 leaves about 2,000 proposals, from which the top-k are passed to the detector; a typical FPN implementation keeps 1,000 per image.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup><sup> • </sup><sup>[4](https://aegean.ai/aiml-common/lectures/scene-understanding/object-detection/faster-rcnn/pytorch/03_rpn/03_rpn)</sup>\n\nTraining samples 256 anchors per image mini-batch with a positive-to-negative ratio of up to 1:1, so negatives do not dominate.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> The original recipe uses a 4-step alternating optimization: train the RPN, train Fast R-CNN on RPN proposals, re-initialize the RPN from the detector with shared conv layers fixed, then fine-tune the detector's fully connected layers.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> In modern joint training, proposals are treated as fixed (detached) for the RoI heads, ignoring the derivative with respect to proposal coordinates.<sup>[2](https://github.com/facebookresearch/detectron2/blob/v0.6/detectron2/modeling/proposal_generator/rpn.py)</sup>\n\n## Origin\n\nThe RPN was reported in \"Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks\" by Shaoqing Ren and colleagues (2015), published on arXiv.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> It closed a bottleneck in the R-CNN lineage. R-CNN applied a ConvNet to about 2,000 Selective Search region proposals per image, costing 47 s per image with VGG-16 because each proposal required its own forward pass. Fast R-CNN sped training 9 × and test-time inference 213 ×, but still consumed externally computed proposals, typically about 2,000 Selective Search boxes at 1 to 2 seconds per image.<sup>[3](https://arxiv.org/pdf/1504.08083)</sup> The RPN computes proposals inside the network in about 10 ms once conv features are shared.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> [Kaiming He](https://www.edgepedia.org/kaiming-he)'s 2025 NeurIPS Test of Time retrospective traces the anchor idea to earlier work, MultiBox and the Space Displacement Net, and describes Faster R-CNN as among the first real usages of differentiable programming, a shift from designing architectures to designing programs.<sup>[5](https://people.csail.mit.edu/kaiming/neurips2025talk/neurips2025_fasterrcnn_kaiming.pdf)</sup>\n\n## Variants\n\n**Feature Pyramid Network (FPN).** Tsung-Yi Lin and colleagues (2016) adapted the RPN by replacing the single-scale feature map with a pyramid, attaching a head of the same design (3 × 3 conv plus two sibling 1 × 1 convs) to each level, with single-scale anchors of areas \\( 32^{2} \\) to \\( 512^{2} \\) on levels P2 to P6 and aspect ratios 1:2, 1:1, 2:1, 15 anchors in total.<sup>[6](https://doi.org/10.48550/arxiv.1612.03144)</sup> Label assignment is unchanged (positive at IoU over 0.7, negative below 0.3).<sup>[6](https://doi.org/10.48550/arxiv.1612.03144)</sup> Under controlled settings FPN beats a strong single-scale baseline by 2.3 points AP and 3.8 points AP@0.5 on COCO.<sup>[6](https://doi.org/10.48550/arxiv.1612.03144)</sup>\n\n**Guided Anchoring (GA-RPN).** Jiaqi Wang and colleagues (2019) jointly predict object-center locations and location-dependent anchor shapes, discarding uniform sliding-window anchors; a 1 × 1 conv plus sigmoid produces a probability map, and locations above a threshold filter out 90% of regions while maintaining recall.<sup>[7](https://doi.org/10.48550/arxiv.1901.03278)</sup> GA-RPN reaches 9.1% higher recall on MS COCO with 90% fewer anchors, and improves Fast R-CNN, Faster R-CNN, and [RetinaNet](https://www.edgepedia.org/retinanet) mAP by 2.2%, 2.7%, and 1.2% respectively.<sup>[7](https://doi.org/10.48550/arxiv.1901.03278)</sup>\n\n**Cascade RPN.** Thang Vu and colleagues (2019) address the conventional RPN's heuristic anchor definition and feature-to-anchor misalignment with one anchor per location and multi-stage refinement: the first stage labels positives by center location (anchor center inside the object's center region, \\( \\sigma_{\\mathrm{ctr}} = 0.2 \\), \\( \\sigma_{\\mathrm{ignore}} = 0.5 \\)), later stages by IoU above 0.7, and adaptive convolution takes anchors as extra input to align features.<sup>[8](https://doi.org/10.48550/arxiv.1909.06720)</sup> A two-stage Cascade RPN improves AR by 13.4 points over conventional RPN and adds 3.1 and 3.5 points of mAP to Fast R-CNN and Faster R-CNN; in ablations, going from 3 anchors to 1 per location drops AR1000 from 58.3 to 55.8, while adaptive convolution raises it to 67.8.<sup>[8](https://doi.org/10.48550/arxiv.1909.06720)</sup> It trains with binary cross-entropy classification and IoU regression losses.<sup>[8](https://doi.org/10.48550/arxiv.1909.06720)</sup>\n\n**ERPN.** An enhanced RPN for PLOS ONE reports four weaknesses of the original: poor top-level feature quality hurting small-object detection, redundant adjacent same-scale anchors, suboptimal softmax binary classification, and an unbalanced multi-task loss; it uses 4 interspersed anchors per position, NMS at IoU 0.75, and reaches 78.6% mAP on VOC 2007 at 5.8 fps with 200 proposals.<sup>[9](https://journals.plos.org/plosone/article/file?id=10.1371%2Fjournal.pone.0203897&type=printable)</sup>\n\n## Applications\n\nBeyond the original Faster R-CNN, the RPN head carries over essentially unchanged to FPN-based detectors, and He's retrospective lists [Mask R-CNN](https://www.edgepedia.org/mask-r-cnn) among the follow-on systems built on this lineage.<sup>[5](https://people.csail.mit.edu/kaiming/neurips2025talk/neurips2025_fasterrcnn_kaiming.pdf)</sup> Useful operating numbers: with VGG-16 the full system runs at 5 fps (17 fps with ZF), and RPN recall degrades gracefully as proposals drop from 2,000 to 300, whereas Selective Search and EdgeBoxes recall falls more quickly.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> On VOC 2007 with ZF, RPN plus Fast R-CNN reaches 59.9% mAP using up to 300 proposals, versus 58.7% for Selective Search and 58.6% for EdgeBoxes in the same framework.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> One caveat from the Fast R-CNN work: Average Recall does not correlate well with mAP as proposal counts vary; training and testing on 45,000 dense boxes per image yields only 52.9% mAP, so more or higher-AR proposals do not automatically raise detection accuracy.<sup>[3](https://arxiv.org/pdf/1504.08083)</sup>\n\nProposal generation has also moved toward open-vocabulary and prompt-free designs. TA-RPN (BMVC 2024) targets the base-class bias that arises because the RPN trains only on base-class image features but must propose for novel classes at test time, fusing CLIP text-encoder features with visual features through Pixel-Wise Textual Attention and Adaptive Feature Refinement modules, with adaptive prompt learning instead of static prompts.<sup>[10](https://bmva-archive.org.uk/bmvc/2024/papers/Paper_85/paper.pdf)</sup> PF-RPN, by Qihong Tang and colleagues (CVPR 2026), generates proposals without text, exemplar, or category prompts using a Sparse Image-Aware Adapter, a Cascade Self-Prompt module, and Centerness-Guided Query Selection; it trains on 5% of MS COCO and transfers without fine-tuning across 19 datasets including underwater, industrial defect, and remote-sensing domains.<sup>[11](https://openaccess.thecvf.com/content/CVPR2026/html/Tang_Prompt-Free_Universal_Region_Proposal_Network_CVPR_2026_paper.html)</sup>\n\n## Limitations and alternatives\n\nThe classic RPN's main limitations are its heuristically defined anchors, which require tuning of scales and aspect ratios, and heuristic alignment of features to anchors.<sup>[8](https://doi.org/10.48550/arxiv.1909.06720)</sup> ERPN adds that top-level features lack context, making small objects hard to detect, and that adjacent same-scale anchors are largely redundant.<sup>[9](https://journals.plos.org/plosone/article/file?id=10.1371%2Fjournal.pone.0203897&type=printable)</sup> In open-vocabulary settings the RPN's base-class training bias can make proposal generation a bottleneck for overall detection.<sup>[10](https://bmva-archive.org.uk/bmvc/2024/papers/Paper_85/paper.pdf)</sup> Against alternatives, the RPN matched or beat Selective Search and EdgeBoxes accuracy at a small fraction of the cost, and a one-stage OverFeat-style system with ZF scored 53.9% mAP versus 58.7% for the two-stage RPN plus Fast R-CNN cascade, a 4.8-point gap.<sup>[1](https://doi.org/10.48550/arxiv.1506.01497)</sup> Transformer-based detectors replace the RPN with learned query selection; PF-RPN, for example, substitutes its Centerness-Guided Query Selection for the language-guided query selection in [Grounding DINO](https://www.edgepedia.org/grounding-dino).<sup>[11](https://openaccess.thecvf.com/content/CVPR2026/html/Tang_Prompt-Free_Universal_Region_Proposal_Network_CVPR_2026_paper.html)</sup>\n\n## References\n\n1. [Ren, Shaoqing and colleagues (2015). Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1506.01497)\n2. [detectron2 RPN implementation](https://github.com/facebookresearch/detectron2/blob/v0.6/detectron2/modeling/proposal_generator/rpn.py)\n3. [Fast R-CNN](https://arxiv.org/pdf/1504.08083)\n4. [Region Proposal Network (RPN), from-scratch implementation notes](https://aegean.ai/aiml-common/lectures/scene-understanding/object-detection/faster-rcnn/pytorch/03_rpn/03_rpn)\n5. [A Brief History of Visual Object Detection (Kaiming He, NeurIPS 2025 Test of Time Award talk)](https://people.csail.mit.edu/kaiming/neurips2025talk/neurips2025_fasterrcnn_kaiming.pdf)\n6. [Lin, Tsung-Yi and colleagues (2016). Feature Pyramid Networks for Object Detection. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1612.03144)\n7. [Wang, Jiaqi and colleagues (2019). Region Proposal by Guided Anchoring. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1901.03278)\n8. [Vu, Thang and colleagues (2019). Cascade RPN: Delving into High-Quality Region Proposal Network with Adaptive Convolution. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.1909.06720)\n9. [An Enhanced Region Proposal Network for object detection using deep learning method (ERPN)](https://journals.plos.org/plosone/article/file?id=10.1371%2Fjournal.pone.0203897&type=printable)\n10. [TA-RPN for Open-Vocabulary Object Detection](https://bmva-archive.org.uk/bmvc/2024/papers/Paper_85/paper.pdf)\n11. [Prompt-Free Universal Region Proposal Network (PF-RPN)](https://openaccess.thecvf.com/content/CVPR2026/html/Tang_Prompt-Free_Universal_Region_Proposal_Network_CVPR_2026_paper.html)\n\n---\n*Topic: Encyclopedia › Technology and the built world › Computing and digital systems › Artificial intelligence and data › Language and vision AI › Computer vision*\n\n*Initially written Sep 29, 2026 · Edited: Oct 15, 2026*\n\n*Copyright 2026 EdgeChat AI, a subsidiary of Biostate AI.*\n\nLicense: Edgepedia Community License 1.0, https://www.edgepedia.org/edgepedia/license\n",
 "same_as": [],
 "url": "https://www.edgepedia.org/region-proposal-network",
 "markdown_url": "https://www.edgepedia.org/region-proposal-network.md",
 "license": {
  "name": "Edgepedia Community License 1.0",
  "url": "https://www.edgepedia.org/edgepedia/license",
  "summary": "Free with credit, commercial use included. AI training is open to everyone. For other uses, organizations over USD 100M in revenue or 100M monthly users license separately.",
  "spdx": "LicenseRef-Edgepedia-Community-1.0"
 },
 "credit": "\"Region proposal network\", Edgepedia (EdgeChat), https://www.edgepedia.org/region-proposal-network. Edgepedia Community License 1.0.",
 "credit_md": "\"[Region proposal network](https://www.edgepedia.org/region-proposal-network)\", Edgepedia (EdgeChat), [https://www.edgepedia.org/region-proposal-network](https://www.edgepedia.org/region-proposal-network). [Edgepedia Community License 1.0](https://www.edgepedia.org/edgepedia/license).",
 "credit_html": "\"<a href=\"https://www.edgepedia.org/region-proposal-network\">Region proposal network</a>\", Edgepedia (EdgeChat), <a href=\"https://www.edgepedia.org/region-proposal-network\">https://www.edgepedia.org/region-proposal-network</a>. <a href=\"https://www.edgepedia.org/edgepedia/license\">Edgepedia Community License 1.0</a>.",
 "speakable": "A region proposal network is a fully convolutional module that scans a shared image feature map and predicts candidate object regions, introduced in Faster R-CNN in 2015."
}
