Table of Contents

Class CascadeRCNN<T>

Namespace
AiDotNet.ComputerVision.Detection.ObjectDetection.RCNN
Assembly
AiDotNet.dll

Cascade R-CNN - Multi-stage object detection with progressive refinement.

public class CascadeRCNN<T> : ObjectDetectorBase<T>

Type Parameters

T

The numeric type used for calculations.

Inheritance
CascadeRCNN<T>
Inherited Members

Remarks

For Beginners: Cascade R-CNN improves upon Faster R-CNN by using multiple detection stages, each trained with progressively higher IoU thresholds. This allows the model to produce higher quality detections through progressive refinement.

Key features: - Multiple cascade stages (typically 3) for progressive refinement - Each stage uses higher IoU threshold for training - Bounding boxes are refined at each stage - Achieves higher accuracy than Faster R-CNN at slight speed cost

Reference: Cai and Vasconcelos, "Cascade R-CNN: Delving into High Quality Object Detection", CVPR 2018

Constructors

CascadeRCNN(ObjectDetectionOptions<T>, int)

Creates a new Cascade R-CNN detector.

public CascadeRCNN(ObjectDetectionOptions<T> options, int numStages = 3)

Parameters

options ObjectDetectionOptions<T>

Detection options.

numStages int

Number of cascade stages (default 3).

Properties

Name

Name of this detector architecture.

public override string Name { get; }

Property Value

string

Methods

Detect(Tensor<T>, double, double)

Detects objects in an image with custom thresholds.

public override DetectionResult<T> Detect(Tensor<T> image, double confidenceThreshold, double nmsThreshold)

Parameters

image Tensor<T>

Input image tensor.

confidenceThreshold double

Minimum confidence to keep a detection.

nmsThreshold double

IoU threshold for NMS.

Returns

DetectionResult<T>

Detection results.

Forward(Tensor<T>)

Performs forward pass through the network.

protected override List<Tensor<T>> Forward(Tensor<T> input)

Parameters

input Tensor<T>

Input image tensor.

Returns

List<Tensor<T>>

Raw network outputs before post-processing.

GetHeadParameterCount()

Gets the number of parameters in the detection head.

protected override long GetHeadParameterCount()

Returns

long

Number of parameters.

LoadWeightsAsync(string, CancellationToken)

Loads pre-trained weights from a file or URL.

public override Task LoadWeightsAsync(string pathOrUrl, CancellationToken cancellationToken = default)

Parameters

pathOrUrl string

Local file path or URL to weights.

cancellationToken CancellationToken

Cancellation token.

Returns

Task

PostProcess(List<Tensor<T>>, int, int, double, double)

Post-processes raw network outputs into detections.

protected override List<Detection<T>> PostProcess(List<Tensor<T>> outputs, int imageWidth, int imageHeight, double confidenceThreshold, double nmsThreshold)

Parameters

outputs List<Tensor<T>>

Raw network outputs.

imageWidth int

Original image width.

imageHeight int

Original image height.

confidenceThreshold double

Minimum confidence threshold.

nmsThreshold double

NMS IoU threshold.

Returns

List<Detection<T>>

List of detections after NMS.

SaveWeights(string)

Saves model weights to a file.

public override void SaveWeights(string path)

Parameters

path string

File path to save weights.