How tangqh03/pf-rpn works
PF-RPN is an MMDetection-based, prompt-free open-set region proposal system: it treats categories as one object class and targets CD-FSOD and ODinW13 evaluation. The principal workflow prepares one-class data, loads and transforms images, runs PF-RPN proposal generation, then evaluates proposal recall. The README also documents source-domain training and the adapter, self-prompt, and query-selection designs. Dataset, API, head, and visualization excerpts provide partial implementation evidence; links among the model’s documented internal stages reflect the README, not inspected detector internals.
Main entry points: base_det_dataset.py Detection datasets · inference.py Inference API · pf_rpn.py PF-RPN detector · train.py Training entry
Components 18
Data preparation
- One-class sampling
tools/merge_classes_and_sample_subset.py - Detection datasets
mmdet/datasets/base_det_dataset.py - Image transforms
mmdet/datasets/transforms/transforms.py
Detection runtime
- PF-RPN detector
mmdet/models/detectors/pf_rpn.py - Image-aware adapter
mmdet/models/detectors/pf_rpn.py - Cascade self-prompt
mmdet/models/detectors/pf_rpn.py - Centerness query selection
mmdet/models/dense_heads/grounding_dino_head.py - Object proposals
mmdet/structures/det_data_sample.py
Training and evaluation
- PF-RPN config
configs/pf-rpn/pf-rpn_coco-imagenet.py - Training entry
tools/train.py - Training loops
mmdet/engine/runner/loops.py - Proposal evaluation
mmdet/evaluation/metrics/coco_metric.py
Inference output
- Inference API
mmdet/apis/inference.py - TorchServe handler
tools/deployment/mmdet_handler.py - Prediction visualization
mmdet/visualization/local_visualizer.py - Proposal results
Other components
- Engineer
- COCO + FSOD
Connections 22
- COCO + FSOD → One-class sampling: samples and merges
- Engineer → One-class sampling: runs preprocessing
- One-class sampling → Detection datasets: writes annotations
- COCO + FSOD → Detection datasets: provides images
- PF-RPN config → Training entry: configures training
- Training entry → Detection datasets: builds data
- Detection datasets → Image transforms: applies pipeline
- Training entry → Training loops: starts training
- Training loops → PF-RPN detector: trains model
- Detection datasets → PF-RPN detector: supplies batches
- PF-RPN detector → Image-aware adapter: extracts visual features
- Image-aware adapter → Cascade self-prompt: constructs pseudo text
- Cascade self-prompt → Centerness query selection: enhances visual-text features
- Centerness query selection → Object proposals: selects proposals
- Object proposals → Proposal evaluation: evaluates recall
- Engineer → Inference API: requests inference
- Inference API → PF-RPN detector: runs detector
- Inference API → Prediction visualization: renders predictions
- Prediction visualization → Proposal results: produces visualization
- Engineer → TorchServe handler: submits image
- TorchServe handler → Inference API: calls inference
- TorchServe handler → Proposal results: formats detections