Datasets

UAV Payload Detection DataSet

A synthetic dataset created using AirSim simulation to detect whether drones carry payloads. Domain adaptation using CycleGAN enables real-to-synthetic transformation, improving classifier performance.


Overview

Dataset Name: UAV Payload Detection Dataset

Abstract: A synthetic dataset created using AirSim simulation to detect whether drones carry payloads. Domain adaptation using CycleGAN enables real-to-synthetic transformation, improving classifier performance.

Stats: 4538 total images, 2269 per class (Loaded/Unloaded), 4 drone models, 30 FPS simulated capture

Sensors: AirSim-generated EO camera, simulated physics engine

Date Created: 2023

DOI: (To be added)

Dataset Specifications

# Dataset configuration
dataset_config = {
    "total_images": 4538,
    "loaded_class": 2269,
    "unloaded_class": 2269,
    "drone_models": 4,
    "fps": 30,
    "format": "JPEG",
    "resolution": "1080p",
    "sampling_rate": "1 image every 2 seconds"
}

Sample & Results Showcase

Downstream tasks include binary classification (Loaded vs Unloaded UAV). Using ResNet34 + CycleGAN yielded 82% accuracy, EfficientNet-B2 achieved 80% on adapted real-world images.

Performance Metrics

  • ResNet34 + CycleGAN: 82% accuracy
  • EfficientNet-B2: 80% accuracy on adapted real-world images
  • Domain Adaptation: Significant improvement in real-world performance
# Model performance comparison
performance_metrics = {
    "resnet34_cyclegan": {
        "accuracy": 0.82,
        "precision": 0.84,
        "recall": 0.81,
        "f1_score": 0.82
    },
    "efficientnet_b2": {
        "accuracy": 0.80,
        "precision": 0.79,
        "recall": 0.82,
        "f1_score": 0.80
    }
}

Experiment Description

Simulation Setup

Simulation Tool: Microsoft AirSim

Drone Models: DJI Mavic, FPV, Inspire, and generic quadrotor

Scenario: Synthetic UAVs captured under varying lighting/backgrounds

Real-world Test: UAV filmed from observer drone (1080p, 30FPS) with orange box payload

Format: JPEG images

Sampling Rate: 1 image every 2 seconds in simulation

Data Collection Process

# AirSim data collection script
import airsim
import cv2
import numpy as np

def collect_uav_data(client, num_images=4538):
    """Collect UAV payload detection data using AirSim"""
    images = []
    labels = []

    for i in range(num_images):
        # Randomize drone configuration
        drone_model = random.choice(['mavic', 'fpv', 'inspire', 'quadrotor'])
        payload_status = random.choice([True, False])  # Loaded/Unloaded

        # Set up drone with/without payload
        setup_drone(client, drone_model, payload_status)

        # Capture image
        response = client.simGetImage("0", airsim.ImageType.Scene)
        img = cv2.imdecode(np.frombuffer(response, np.uint8), cv2.IMREAD_COLOR)

        images.append(img)
        labels.append(1 if payload_status else 0)

    return images, labels

Code Example

Basic Usage

# Load an image using OpenCV
import cv2
img = cv2.imread('path/to/image.jpg')
cv2.imshow("UAV", img)
cv2.waitKey(0)

# Inference using trained model
def predict(model, img):
    transformed = transform_image(img)
    with torch.no_grad():
        output = model(transformed)
    return output.argmax().item()

Domain Adaptation with CycleGAN

# CycleGAN domain adaptation
import torch
from cyclegan import CycleGAN

def adapt_real_to_synthetic(real_image, cyclegan_model):
    """Convert real-world image to synthetic style"""
    with torch.no_grad():
        synthetic_style = cyclegan_model.G_A2B(real_image)
    return synthetic_style

# Training pipeline
def train_with_domain_adaptation(real_data, synthetic_data, model):
    """Train classifier with domain adaptation"""
    # Convert real data to synthetic style
    adapted_real = [adapt_real_to_synthetic(img, cyclegan) for img in real_data]

    # Combine adapted real data with synthetic data
    combined_data = adapted_real + synthetic_data

    # Train classifier
    model.fit(combined_data)
    return model

Version History

DateVersionNotes
2023-10-31v1.0Initial synthetic dataset release

Future Releases

  • v1.1 (Planned): Additional drone models and environmental conditions
  • v2.0 (Planned): Multi-class payload classification (different payload types)

Contact & Support

Maintainer: UAV4Everyone Research Team

Email: support@uav4everyone.org

Typical Response Time: 48 hours

Getting Help

For questions about dataset usage, model training, or domain adaptation techniques, please reach out to our research team. We're committed to supporting researchers and developers working on UAV payload detection applications.

Dataset Access

This dataset is available for research and educational purposes. Please contact our team to request access and receive download instructions.

Previous
About Us