Case study: synthetic EO/IR training data lifts vehicle detection by +5.4 AP
AI Verse generated 30,000 images of synthetic EO/IR training data for a leading German drone manufacturer. Added to the customer’s own training data, they lifted vehicle-detection AP by 5.4 points on EO and 2.94 points on IR. The EO gain beat the +3 mAP benchmark set by an earlier AI Verse project.
The challenge: EO and thermal vehicle detection on a new camera
The customer builds drones that carry both a daylight (EO) camera and a thermal (LWIR) camera. Its models must find tanks, rocket launchers and radar systems from the air, and must not confuse them with a farmer’s truck.
AI Verse had worked with this team before. An earlier EO dataset added +3 mAP to their detector. This time the brief was harder:
- A new EO camera. Match or beat the +3 mAP gain on a sensor setup we had not built for.
- Thermal. Bring the same gain to LWIR, where vehicles show up as heat, not colour.
- The hard cases. Small targets far from the drone, and false alarms on civilian vehicles.
- No disruption. The synthetic data had to drop into the customer’s existing training split, next to their own imagery.
Real data cannot cover this well. Capturing military vehicles at every range, in forest and on dirt roads, with two cameras firing at the same moment, takes months, and someone still has to label every frame.
The synthetic EO/IR dataset: sensors, targets and terrain
AI Verse matched each dataset to the customer’s real sensor geometry and to the places their systems fly.
| Scope | What AI Verse delivered |
| Modalities | EO / RGB, LWIR / IR, and synchronised EO + IR pairs |
| Annotations | 2D boxes, instance masks, scene metadata, 3D boxes where useful |
| Targets | Tanks, armoured vehicles, radar systems, rocket launchers, artillery, SAM systems, towing vehicles |
| Non-targets | Cars, trucks and vans: about 20% of the data, to cut false positives |
| Environments | Forest, semi-urban, dirt roads, open fields, clutter and vegetation |
How we built it: five deliveries, each shaped by the last
We did not hand over one big dataset and walk away. Each batch answered what the customer’s models had shown in the last one.
- Initial sample. 100 EO and 120 LWIR images to check visual style, vehicle assets, sensor settings and annotation formats (COCO, masks, box overlays).
- Synchronised EO + IR sample. Ten scene folders set the multi-sensor rule: same frame index, same rig position, same timestamp, shared scene-level labels.
- First IR and synced batches. Under time pressure, we shipped about 5K LWIR images first so IR training could start, then 5K EO + 5K IR in sync. Early models under-detected cars and trucks and struggled with tanks very close or very far, so we added class variety, new camera angles, and rocks, potholes and mud.
- Better thermal. Heat now spreads across the vehicle body, not only tyres, tracks and engines. We also added civilian models, military assets, and a mix of parked and moving vehicles.
- Final delivery. 15K EO + 15K IR synchronised frames. To add the smaller, farther targets the customer asked for, we pushed the maximum range from 200 m to 300 m.
EO object detection results: +5.4 AP
The customer trained one model on its internal data alone, and one on internal data plus AI Verse data. The second model won on every metric.
| Metric (EO) | Trained on customer data | Trained on customer data + AI Verse’s images | Gain with AI Verse |
| AP | 30.42 | 35.82 | +5.4 |
| AP50 | 53.97 | 58.46 | +4.5 |
| AP75 | 30.75 | 37.83 | +7.08 |
| AP Small | 28.37 | 36.34 | +7.97 |
| AR Small | 33.26 | 44.53 | +11.27 |
The largest gains landed where detection is hardest: small, distant targets (+7.97 AP, +11.27 recall) and tight boxes (+7.08 AP75). The customer also saw fewer false positives, the result of the civilian vehicles in the data.
Infrared (LWIR) results: synthetic thermal data works too
The same recipe carried over to LWIR. Class accuracy rose from 85.6% to 91.2%, so the model now names the right vehicle far more often.
| Metric (IR) | Trained on customer data only | Trained on customer data only + AI Verse’s images | Gain with AI Verse |
| Class accuracy | 85.62 | 91.17 | +5.55 |
| AP | 41.46 | 44.4 | +2.94 |
| AP50 | 60.51 | 63.64 | +3.14 |
| AP Medium | 66.29 | 71.23 | +4.94 |
| AR Medium | 70.61 | 78.94 | +8.33 |
Results summary: what synthetic data changed
- A beaten benchmark on a new camera: +5.4 AP on EO against a +3 mAP target.
- One pipeline for two sensors: EO and IR improved from the same synthetic method.
- Gains on the failure modes that matter: small targets, recall and false positives.
- A loop that compounds: each delivery fixed what the last model got wrong.
One synthetic generation process. Two sensors. +5.4 AP on EO and +2.94 AP on IR, on top of the customer’s own data.
Why synthetic data works for defence computer vision
Military vehicles do not pose for cameras, and thermal data at 300 m in mud and forest is rare. AI Verse’s procedural engine builds these scenes to order: the customer’s sensors, its ranges, its terrain. When a model shows a gap, we change the spec and regenerate. No new field campaign. Every image arrives labelled to the pixel, in both EO and IR, so label quality holds as volume grows.
FAQ: synthetic EO/IR training data
Can synthetic data improve thermal (infrared) object detection?
Yes. In this project, adding AI Verse synthetic LWIR images to the customer’s own data raised AP by 2.94 points and class accuracy from 85.6% to 91.2%.
Do you need real data as well as synthetic data?
Not always, but it often helps. Here the customer combined both and compared against its real data alone. In an earlier counter-drone project, a customer trained on synthetic images only.
What is a synchronised EO/IR dataset?
Each EO frame has a matching IR frame from the same rig position and timestamp, with shared labels. Teams can train and compare both sensors, or fuse them, on the same scenes.
How long does it take to get a custom synthetic dataset?
A first sample comes before full scale, so you can check style and labels early. AI Verse generates a fully labelled image in about 20 seconds on one GPU, so most of the time goes into matching your sensors, not producing images.


