A two-stage detector that scores well on a benchmark can still stall an inspection line at throughput. The reason is architectural: the R-CNN family splits detection into a region-proposal stage and a per-region classification stage, and both cost compute the industrial computer has to pay for every part that passes the camera. If you pick the detector on accuracy alone and assume the edge box will keep up, you find out during the pilot — after the enclosure, the GPU, and the frame-rate ceiling are already fixed. That is the mistake we want to head off here. R-CNN object detection is worth understanding not as an abstract architecture but as a compute-budget decision. The question on an inspection line is never “is this detector accurate?” in isolation. It is “does this detector’s staged inference fit the per-part latency budget on the hardware we can physically install line-side, at the rate the line runs?” Those are different questions, and the second one is the one that ships. What’s worth understanding about R-CNN object detection first? R-CNN — Region-based Convolutional Neural Network — was the family that reframed object detection as a two-step problem instead of one. Rather than predicting boxes and classes in a single pass over the image, it first proposes regions that might contain an object, then classifies each proposed region separately. That split is the whole story of its cost profile. The original R-CNN generated region proposals with a classical algorithm (selective search), then ran a convolutional network on each cropped region independently. Running the full network once per region is enormously wasteful when a defect image can produce hundreds or thousands of candidate regions. Fast R-CNN fixed the largest part of that: it runs the convolutional backbone once over the whole image, then pools features for each proposed region from the shared feature map. Faster R-CNN went further and replaced the external proposal algorithm with a learned Region Proposal Network (RPN) that shares the backbone’s features, so proposals and classification draw from one forward pass. The practical meaning on an inspection line: a two-stage detector spends compute in two places you can measure separately — generating proposals, and classifying each proposed region. On a part with many candidate regions (busy textures, print, cluttered assemblies), the per-region work scales with how many proposals survive to the classification head. That is why two identical models can have very different latency on two different products. If you want the foundational walk-through of how a detection model reasons about pixels before the staged cost enters the picture, our explainer on how an image detection model works in industrial inspection covers the backbone-and-head structure this article builds on. How do R-CNN, Fast R-CNN, and Faster R-CNN differ? The three generations differ almost entirely in where region proposals come from and how many times the backbone runs. That difference is not academic history — it is the difference between a detector that fits a line-speed latency budget and one that never could. Variant Proposal source Backbone passes Practical cost signature R-CNN Selective search (external, CPU) One per region (thousands) Unusable at line speed; kept only for reference Fast R-CNN Selective search (external, CPU) One shared pass, RoI pooling Backbone cost bounded; proposal stage still a CPU bottleneck Faster R-CNN Learned RPN (on GPU, shared features) One shared pass Proposal + classify both on GPU; the deployable member of the family Faster R-CNN is what people usually mean when they say “R-CNN” in a production context, because it is the only variant whose proposal stage runs on the same accelerator as everything else. Even so, its two-stage structure remains fundamentally heavier than a single-stage detector, and that heaviness lands squarely on the per-part latency budget. Why does the region-proposal stage dominate per-part latency? Here is the part teams underestimate. In a single-stage detector like YOLO, the network emits box and class predictions in one forward pass with a fixed compute cost regardless of image content. In a two-stage detector, the second stage — per-region classification — does work proportional to the number of surviving proposals. Complex parts generate more proposals. More proposals mean more RoI-aligned feature extraction and more classification-head passes. The latency is content-dependent, and the worst case is what your line-speed budget has to survive. This matters because inspection lines run at a fixed cadence. If parts arrive every, say, 120 milliseconds and the detector’s 95th-percentile latency on a busy part exceeds that window, the line either drops frames or backs up. A model that averages comfortably under budget but spikes on the hardest parts is a model that fails intermittently — which is worse than one that fails predictably, because it passes the pilot and breaks in production. The cost also interacts with the accelerator’s memory and scheduling. RoI operations and the classification head introduce dynamic shapes and per-region loops that are harder for graph compilers like TensorRT or torch.compile to fuse and optimize than the static, dense computation of a single-stage head. In configurations we’ve tested, the region-dependent portion of a Faster R-CNN forward pass is the least predictable line item under a runtime like TensorRT precisely because its work varies with input content — an observed pattern across the CV inspection engagements we scope, not a published benchmark. That unpredictability is the enemy of a fixed-cadence line. When is a two-stage R-CNN detector worth its compute cost? Not never — the two-stage structure buys something real. Separating proposal from classification tends to help on small objects, on cluttered scenes with many overlapping instances, and on tasks where localization precision matters more than raw frame rate. If the defect you care about is a hairline crack occupying a few dozen pixels in a high-resolution frame, a two-stage detector’s dedicated proposal-then-refine path can outperform a single-stage detector that has to commit to boxes in one shot. The decision rubric we apply when scoping a first inspection line: Choose two-stage (Faster R-CNN family) when defect localization is the hard part, objects are small relative to the frame, the line cadence is slow enough to absorb content-dependent latency spikes, and the edge GPU has headroom for the classification stage’s worst case. Choose single-stage (YOLO family) when frame rate is the binding constraint, per-part latency must be deterministic, and the defects are large enough that a one-pass detector localizes them reliably. Our note on fine-tuning YOLO for manufacturing-line defect detection covers what that path fixes and where it still needs help. Prototype both when the accuracy-versus-latency trade-off is genuinely unclear — the only reliable way to resolve it is to profile both against the actual hardware, not to trust benchmark leaderboards captured on datacenter cards. A benchmark accuracy number captured on an A100 tells you almost nothing about behaviour on a Jetson-class or embedded RTX edge module with a fraction of the memory bandwidth and a thermal cap. This is the same reasoning we apply to reading detection metrics honestly: what mAP@50 means for defect detection is a companion piece on why a headline accuracy figure needs context before it means anything on a line. How does the staged cost map onto the edge GPU, frame rate, and thermal envelope? This is where architecture meets the physical box. An inspection line’s industrial computer has three hard ceilings: the GPU’s compute and memory (fixed once you buy the module), the frame rate the camera and line cadence impose (fixed by the process), and the thermal envelope the enclosure allows (fixed by the installation). A detector has to fit inside all three simultaneously, at the worst-case part, sustained across a shift — not for a single warm inference in a lab. The mapping we walk through when auditing feasibility: Backbone cost is roughly fixed per frame and easy to budget — it is the same dense computation whether the part is simple or complex. Proposal-stage cost on Faster R-CNN’s RPN is bounded but adds a second head to schedule on the same GPU. Per-region classification cost is the variable that blows budgets. Its worst case, not its average, is what the line-speed window must accommodate. Thermal sustain matters because an edge module that hits its clocks for a burst may throttle after minutes of continuous inference. A latency that passes a two-minute demo can degrade once the enclosure heat-soaks — a sustained-load effect, not a peak-throughput one. You cannot read these four numbers off a spec sheet. You measure them on the target hardware with representative parts. That measurement is exactly what a GPU performance audit produces before a pilot commits budget — profiling the detector’s staged inference against the edge GPU to establish whether the industrial computer can sustain the defect-class workload at line speed. The porting and performance-assessment methodology behind that audit determines whether a chosen detector’s staged inference actually holds up on the target box, which is why detector architecture and our approach to computer vision engineering are the same conversation, not two. How does detector choice affect the false-positive rate at throughput? There is a subtle coupling here that teams miss. When a detector runs near its latency ceiling, the temptation is to cut corners — lower input resolution, fewer proposals, a smaller backbone — to claw back headroom. Every one of those cuts changes the false-positive and false-negative balance. A line that tolerates a certain false-positive rate at a comfortable frame rate may see that rate climb once the model is squeezed to fit the cadence. The accuracy you benchmarked and the accuracy you ship at throughput are not the same number if the detector was chosen without the compute budget in view. This is the core reframe: detector architecture, edge hardware, line cadence, and tolerated error rate form one coupled system. Optimising accuracy in isolation and hoping the hardware keeps up is how deployments stall — the fix is almost always a re-spec cycle that costs weeks, or GPU capacity a lighter detector never needed. The achievable-accuracy bands a feasibility audit produces already account for the latency envelope; that is what makes them trustworthy. FAQ How does rcnn object detection work in practice? R-CNN object detection splits detection into two stages: propose regions that might contain an object, then classify each proposed region. In practice this means compute is spent in two measurable places — proposal generation and per-region classification — and the second scales with how many proposals a part produces, making latency content-dependent on an inspection line. How do R-CNN, Fast R-CNN, and Faster R-CNN differ in the way they generate and classify region proposals? Original R-CNN used an external CPU algorithm (selective search) and ran the backbone once per region — thousands of times per image. Fast R-CNN runs the backbone once and pools features per region. Faster R-CNN replaces the external proposal step with a learned Region Proposal Network sharing the backbone’s features, so proposals and classification both run on the GPU in one forward pass — the only deployable member of the family. Why does the region-proposal stage dominate the per-part inference latency budget on an inspection line’s industrial computer? Because per-region classification does work proportional to the number of surviving proposals, and complex parts generate more proposals. That makes latency content-dependent, and the worst-case part — not the average — has to fit inside the line’s fixed cadence. Dynamic per-region shapes are also harder for compilers like TensorRT to optimize than a single-stage detector’s static head. When is a two-stage R-CNN detector worth its compute cost versus a single-stage detector for defect inspection? Two-stage detectors help when defects are small relative to the frame, scenes are cluttered, localization precision is the hard part, and the line cadence is slow enough to absorb content-dependent latency spikes with GPU headroom to spare. When frame rate is the binding constraint and latency must be deterministic, a single-stage detector like YOLO is usually the better fit. How does the R-CNN family’s staged cost profile map onto the edge GPU, frame rate, and thermal envelope the line actually has? Backbone cost is roughly fixed per frame; proposal cost is bounded but adds a head to schedule; per-region classification is the variable that blows budgets at its worst case. Thermal sustain matters because an edge module that passes a short demo can throttle under continuous inference. All four must be measured on the target hardware with representative parts, not read from a datacenter benchmark. How does detector choice affect the false-positive rate the line can tolerate at throughput? When a detector runs near its latency ceiling, teams cut resolution, proposals, or backbone size to fit the cadence — and each cut shifts the false-positive and false-negative balance. The accuracy benchmarked in isolation is not the accuracy shipped at throughput unless the detector was chosen with the compute budget in view. What does profiling an R-CNN detector during a feasibility audit measure and deliver before a pilot fires? It measures the staged inference — backbone, proposal, and per-region classification cost — against the actual edge GPU with representative parts, capturing worst-case and sustained latency under thermal load. It delivers the achievable-accuracy bands and the sustained-frame-rate ceiling the line can hold, so the detector-versus-hardware decision is made before budget is committed rather than during a stalled pilot. Detector architecture is not a leaderboard question. On an inspection line it is a question about whether the region-proposal and per-region stages fit the compute, cadence, and thermal envelope of the box you can actually bolt line-side — and the honest answer comes from profiling the staged cost on the target hardware, which is what the GPU performance audit exists to deliver before a pilot fires.