How mdzaheerjk/object-detection-with-fasterrcnn-using-dvc-pipelines-dvc-data-versioning-tensorboard-fastapi works
This repository is a gun-detection application: its documented workflow covers dataset ingestion and versioned training, then serves Faster R-CNN inference through a browser UI and JSON/image API. The graph includes the sampled ingestion, preprocessing, training, and inference code; DVC pipeline wiring and some documented capabilities are represented only where supported by the README and tree. TensorBoard logging is visible in the training source; its UI is an external integration.
Main entry points: model_training.py Training loop · data_ingestion.py Dataset ingestion · main.py Detection and rendering · dvc.yaml DVC pipeline
Components 16
Dataset preparation
- Dataset ingestion
src/data_ingestion.py - Dataset source
config/data_ingestion_config.py - Raw images and labels
artifacts/raw - Paired dataset loader
src/data_processing.py
Model training
- DVC pipeline
dvc.yaml - Training loop
src/model_training.py - Model architecture
src/model_architecture.py - TensorBoard
Inference service
- FastAPI routes
main.py - Detection and rendering
main.py - Faster R-CNN
main.py - Model weights
artifacts/models
Browser experience
- Browser UI
templates/index.html - Upload and results
static/js/script.js
Other components
- User
- Kaggle dataset
Connections 17
- User → Browser UI: uses
- Browser UI → Upload and results: loads
- Upload and results → FastAPI routes: uploads image
- FastAPI routes → Detection and rendering: invokes
- Detection and rendering → Faster R-CNN: runs inference
- Faster R-CNN → Model weights: loads weights
- Detection and rendering → FastAPI routes: returns detections
- DVC pipeline → Dataset ingestion: orchestrates
- DVC pipeline → Training loop: orchestrates
- Dataset ingestion → Dataset source: reads config
- Dataset ingestion → Kaggle dataset: downloads if needed
- Dataset ingestion → Raw images and labels: writes dataset
- Training loop → Paired dataset loader: loads samples
- Paired dataset loader → Raw images and labels: reads images and labels
- Training loop → Model architecture: initializes model
- Training loop → Model weights: saves weights
- Training loop → TensorBoard: writes metrics