| **Component** | **Description** | |-------------------------------|-----------------------------------------------------------------------------------------------| | **Backbone** | ResNet-50 with FPN (Feature Pyramid Network) | | **Pretrained Weights** | Trained on ImageNet for feature extraction. | | **RPN (Region Proposal Network)** | Generates region proposals based on extracted features from the backbone. | | **ROI Align** | Aligns region proposals to a fixed size for consistent feature extraction. | | **Box Head** | Fully connected layers for refining bounding boxes and classifying objects. | | **Box Predictor** | Replaced with a custom predictor: `FastRCNNPredictor` for handling custom classes. | | **Number of Classes** | Configurable (including background). | | **Loss Function** | Combines classification and regression losses for multi-task optimization. | | **Optimizer** | Stochastic Gradient Descent (SGD) with momentum for optimization. | | **Learning Rate Scheduler** | StepLR to decay learning rate every few epochs for better convergence. | | **Batch Normalization** | Applied within the backbone for stable training. | | **Data Format** | Input: Tensor of shape `(Batch Size, Channels, Height, Width)` in PyTorch's NCHW format. | | **Output** | - Class probabilities for each region proposal. | | | - Refined bounding box coordinates for each detected object. |