OpenDroneKit
Offline drone inspection — mission planning, flight, geospatial reconstruction and defect intelligence
An offline-first inspection system that plans the flight, flies it, reconstructs the asset, finds the defects, and refuses to answer when it cannot answer honestly.
167
Documented capabilities
As enumerated in the repository's own documentation.
~40,000
Defect images processed
Metal, brick and mixed defect imagery through detection and segmentation.
Problem
Infrastructure inspection happens where the connectivity is not. A system that assumes a cloud backend is useless on a bridge, a tower or a remote site, which is where the inspections are.
The second problem is trust. An inspection tool that guesses produces reports nobody can act on — a fabricated defect wastes a crew's day, and a missed one is a structural risk. Deciding what the system does when it is uncertain is a design question, not an implementation detail.
What I built
An offline-first desktop system covering the whole inspection loop, from planning a flight to producing a report.
- Mission planning, including terrain-aware planning
- MAVLink flight, validated against SITL
- COLMAP reconstruction with georeferencing
- Orthomosaic, DSM, DTM and hillshade generation
- Defect analytics with georeferenced defect projection
- Coverage QA, so gaps in the survey are visible rather than assumed away
- Crack propagation estimation and asset health scoring
- Multiple export formats and operator workspaces
- PostGIS storage, distributed processing, model provenance tracking
- Report generation
Architecture
Plan, fly, reconstruct, analyse, report — with each stage producing artefacts the next can verify rather than trust. Georeferencing is applied at reconstruction so defects land in world coordinates rather than image coordinates, which is what makes coverage QA and asset health scoring meaningful across repeat surveys.
Model provenance is tracked explicitly: which model produced a given finding is recorded with the finding, so a later model change does not silently rewrite history.
Refuse rather than fabricate
The governing design rule. Where the system is not confident — insufficient coverage, a reconstruction that did not converge, a model operating outside its validated domain — it declines to produce a finding instead of producing a low-confidence one.
This costs recall and buys the only thing that matters in an inspection report, which is that a stated finding can be acted on.
Model evaluation as a first-class concern
Several model families were evaluated rather than one being adopted: crack presence classification, crack segmentation, structural damage detection, corrosion severity segmentation and semantic land cover.
Models were rejected. Known failure modes, dataset limitations, model identity checks and holdout design issues are recorded alongside the ones that were kept — a rejected model with a documented reason is more useful to the next person than a leaderboard.
An inspection, end to end
Each stage produces artefacts the next one can verify rather than trust. The branches are where the system declines to continue — which is the design, not a failure of it.
Plan the mission
Terrain-aware planning over the asset.
Fly it
MAVLink, validated against SITL before anything real.
Reconstruct
COLMAP, then georeferencing so results land in world coordinates.
Reconstruction did not converge — stop, and say soConverged — produce orthomosaic, DSM, DTM, hillshadeCoverage QA
Gaps in the survey — declared, not silently averaged overCoverage sufficient — run defect analyticsDetect and project defects
Findings projected into world coordinates, with the model that produced each one recorded alongside it.
Model outside its validated domain — refuse the findingConfident — keep it, and estimate crack propagationAsset health score and report
Models evaluated
Several families were tried and some were rejected. A rejected model with a documented reason is more useful to the next person than a leaderboard position.
| Task | Outcome |
|---|---|
| Crack presence classification | Evaluated |
| Crack segmentation | Evaluated |
| Structural damage detection | Evaluated — confusion matrix published, including the classes it misses |
| Corrosion severity segmentation | Evaluated |
| Semantic land cover | Experimental |
| Rejected models | Kept on record with their failure modes, dataset limitations and holdout design issues |
Experiments
Model selection across inspection tasks
- Question
- Which models are trustworthy enough to put behind an inspection report?
- Method
- Evaluation across crack presence classification, crack segmentation, structural damage detection, corrosion severity segmentation and semantic land cover, with model identity checks and holdout design review.
- Result
- Some models were adopted and others explicitly rejected, with failure modes and dataset limitations recorded for both.
Reconstruction and flight validation
- Question
- Does the pipeline hold up outside of curated inputs?
- Method
- Real reconstruction verification and SITL validation of the flight stack.
- Result
- Verified end to end against simulated flight and real reconstruction outputs.
Limitations and failure modes
- Holdout design issues were identified during model evaluation and constrain how far the reported model results generalise.
- Dataset limitations are documented per model; several families were rejected outright rather than shipped with caveats.
- The refuse-rather-than-fabricate rule means coverage gaps surface as declined findings, not as completed reports.
Gallery


Not yet captured
- Current operator UI
- Terrain-aware mission planning
- Reconstruction outputs — orthomosaic, DSM, hillshade
Attribution
- Built by me
- OpenDroneKit is mine — planning, flight integration, reconstruction pipeline, geospatial outputs, defect analytics and the evaluation work.
- Based on external research
- COLMAP, MAVLink, YOLO, U-Net and FEniCSx are upstream tools and models, integrated here rather than authored.
- Experiment performed by me
- The model evaluation and rejection decisions across the inspection task families.
Related
- Pushpak Viman
Search-and-rescue UAV and the drone-rover transformation system
- Recalibration-Free Stereo PTU
Calibration and state estimation for a moving stereo pair