The Task
The client brought us a high-stakes pilot project: transform raw aerial imagery into structured datasets to power GIS tools and urban planning systems. The scope included identifying a wide range of infrastructure elements—houses, roads, rivers, utility poles, farmlands, and more—across 11,000 high-resolution images.
From the start, the project presented several key challenges:
- No predefined guidelines — with no technical specification provided, we had to align annotation logic and edge cases directly with the end client, often in real time.
- Imbalanced class distribution — some object types were underrepresented in the dataset, making it difficult to meet uniform annotation targets across all 11 categories.
- Highly specific delivery requirements — for each object class, the client requested:
- All unrelated annotations hidden in every image
- Screenshots showing only the relevant objects
- A clean, consolidated PDF report per class, with all visuals included
The deadline was tight: everything—from image annotation and QA to report generation—had to be delivered in just 21 days, with zero margin for error across 132,000 annotations.
The Solution
-
- 01
-
Workflow Optimization & Team Structure
Some images had up to 2,000 objects, causing performance issues in the annotation tool.
We preprocessed large files to reduce lag and assigned annotators to specialize by class (e.g., only roads, only rivers) to simplify the UI and reduce clutter. -
- 02
-
Automated PDF Reporting
We built a custom Python script that automatically hid irrelevant layers and generated the class-specific screenshots. The script compiled each set into a formatted PDF report—saving dozens of hours of manual work.
-
- 03
-
Quality Monitoring & Data Adaptation
Our lead validator tracked daily progress by class to avoid under- or over-annotation.
To compensate for underrepresented classes, we:- Cropped, duplicated, or adapted images
- Sourced new content to meet class-specific targets
The Result
132,000 objects annotated across 11,000 images
11 visual reports delivered (one per object class)
Delivered on time, no revisions required
Automated reporting + role specialization accelerated project execution significantly