Orbit is a web-based system designed to digitize and streamline routine thermal inspections of distribution transformers. This project lays the foundation for an end-to-end inspection workflow where it integrates a detection pipeline with an interactive annotation and feedback loop, allowing users to adjust detections directly through the interface. Corrected annotations are logged and later used to fine-tune the model automatically, enabling continuous performance improvement and adaptability to real-world data.
Phase 1 laid the foundation for managing transformers and baseline images.
- Add new transformer records
- View and edit existing transformer records
- Delete transformer records if required
-
Upload thermal images linked to specific transformers
-
Support for two image types:
- Baseline: Reference images for comparisons
- Maintenance: Images from periodic inspections
-
Each image is stored with metadata:
- Upload date/time
- Image type (Baseline / Maintenance)
- Uploader (admin ID or name)
-
While uploading baseline images, users must select environmental conditions:
- Sunny
- Cloudy
- Rainy
-
Images are stored and searchable by these conditions.
In phase 2 we introduced AI-powered analysis and feedback management, enhancing the systemβs intelligence and usability.
Integrated Roboflow model trained on transformer thermal imagery.
On uploading a maintenance image, the backend automatically:
- Sends the image to the Roboflow API for inference
- Receives detected fault bounding boxes, labels, and confidence scores
- Stores the prediction JSON in the database
- Annotated images are displayed in the inspection page
Detected anomalies (e.g., hotspots, loose connections) are classified as:
- Normal
- Potential Fault
- Fault
The results are visually rendered on the uploaded image with color-coded bounding boxes.
Inspectors can add comments and observations on each inspection. Each comment includes:
- Author name
- Comment text
- Timestamp
Comments are stored in a dedicated table linked to the inspection. Admins can view and manage all past discussions on a transformerβs inspection history.
We have completed phase 3 focusing on enhancing user control, data accuracy, and model improvement.
On the anomaly detection view, inspectors can now directly interact with the AI-detected anomalies by:
- Adjusting existing anomaly markers (resize, reposition)
- Deleting incorrect detections
- Adding new anomaly markers by drawing bounding boxes
Each annotation captures:
- Annotation type (added / edited / deleted)
- Optional comments or notes
- Timestamp and user ID
This feature empowers users to refine detections and ensure high-quality inspection records.
All annotation changes are automatically captured and saved in the backend.
Each record includes:
- Annotation ID
- Detection ID
- Inspection number
- Annotations type
- User
- Comment
- Timestamp
When the same image is revisited, existing annotations are automatically reloaded, maintaining a consistent inspection history.
The system now facilitates the automatic collection of high-quality training data, enabling continuous model retraining (Finetuning).
-
Feedback Log Generation: A service endpoint allows for the export of a structured JSON log containing:
- The Final Human-Validated Annotations
- Annotator metadata
-
Automated Retraining Readiness: This exportable log can be formatted for direct ingestion to Roboflow, setting up the automated finetuning of the model when enough new, corrected data is accumulated.
We have completed Phase 4, focusing on the digitization of the final output: replacing handwritten logbooks with automated, traceable reports.
The system now automatically generates professional maintenance records based on the inspection data.
- Auto-Population: Instantly pulls Transformer Metadata (ID, Location, Capacity), Inspection Timestamp, and the Annotated Thermal Image from previous phases.
- Visual Evidence: Embeds the processed thermal image with verified anomaly markers directly into the report.
- History Integration: Automatically lists "Related Inspections" on the report, providing immediate context on the transformer's health history.
While AI provides the data, the site engineer provides the judgment. The report interface includes editable fields for:
- Inspector Details: Name and signature placeholders.
- Electrical Readings: Input fields for Voltage (V) and Current (A).
- Status Classification: Dropdown selection (OK / Needs Maintenance / Urgent Attention).
- Actionable Outcomes: Fields for "Recommended Action" and "Additional Remarks."
- Digital Archiving: Completed reports are saved to the database, creating a permanent audit trail.
- History Viewer: Users can view a timeline of all past maintenance records for any specific transformer.
- PDF Export: The final output is formatted for clean printing or PDF export for official filing.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/transformers | Get all transformers |
| GET | /api/v1/transformers/{transformerNumber} | Get a transformer by transformer number |
| GET | /api/v1/transformers/{transformerNumber}/image | Get the baseline image of a transformer |
| POST | /api/v1/transformers | Create a new transformer |
| POST | /api/v1/transformers/{transformerNumber}/image | Upload baseline image for transformer |
| DELETE | /api/v1/transformers/{transformerNumber} | Delete a transformer by transformer number |
| GET | /api/v1/inspections | Get all inspections |
| GET | /api/v1/inspections/{inspectionNumber} | Get an inspection by inspection number |
| GET | /api/v1/transformers/{transformerNumber}/inspections | Get all inspections of a specific transformer |
| GET | /api/v1/inspections/{inspectionNumber}/image | Get inspection image |
| POST | /api/v1/inspections | Create a new inspection |
| POST | /api/v1/inspections/{inspectionNumber}/image | Upload inspection image |
| DELETE | /api/v1/inspections/{inspectionNumber} | Delete an inspection |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/inspections/{inspectionNumber}/comment | Retrieve all comments for a specific inspection |
| POST | /api/v1/inspections/{inspectionNumber}/comment | Add a new comment to a specific inspection |
| GET | /api/v1/inspections/{inspectionNumber}/analyze | Retrieve AI model predictions for an inspection |
| PUT | /api/v1/inspections/{inspectionNumber}/analyze | Update AI model predictions for an inspection |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/inspections/{inspectionNumber}/analyze/timeline | Retrieve timeline of all annotation edits for a given inspection |
| GET | /api/v1/inspections/analyze/timeline/all | Retrieve timeline of all annotation edits across inspections |
| GET | /api/v1/inspections/analyze/all | Retrieve all detections across inspections |
| POST | /api/v1/inspections/{inspectionNumber}/analyze | Add a new anomaly annotation |
| PUT | /api/v1/inspections/analyze/{detectId} | Update or modify existing anomaly annotation |
| DELETE | /api/v1/inspections/analyze/{detectId} | Delete a detection or annotation |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/transformers/{transformerNumber}/maintenance-report | Get all maintenance records for a specific transformer |
| POST | /api/v1/transformers/{transformerNumber}/maintenance-report | Create/Save a new maintenance record (with engineer inputs) |
| GET | /api/v1/transformers/{transformerNumber}/maintenance-report/{maintenanceId} | Retrieve a specific maintenance record by its ID |
- Frontend: React (Vite + TypeScript + Tailwind CSS)
- Backend: Java with Spring Boot (RESTful API)
- Database: Relational DB (PostgreSQL)
Make sure the following are installed:
- Java 21 (for Spring Boot backend) - Java Downloads
- Maven 3.9+ (build tool, usually bundled with IntelliJ / Spring Boot) - Download
- Node.js (v18.x or higher is recommended) - nodejs.org
- npm (Node Package Manager, comes with Node.js)
- PostgreSQL 17 (database, use pgAdmin for management) - PostgreSQL Downloads
- Go to frontend folder:
git clone https://github.com/Orbit-Transformer-Management/Transformer-Management
cd frontend- Install dependencies:
npm install- Run development server:
npm run dev- Open the app in browser: http://localhost:5173
- Create PostgreSQL database:
CREATE DATABASE transformer_db;- Spring Boot will auto-generate tables (using JPA).
- If needed, you can insert sample data manually via pgAdmin or SQL scripts.
- User authentication/authorization not yet implemented (anyone can access endpoints).
- No user profile or role management is available.
- The Roboflow AI model cannot be retrained dynamically using user inputs or feedback.
- Fault detection results rely solely on the pre-trained model without continuous learning capability.
- Team Orbit