Skip to content

sudo-RZ/synthetic-ship-dataset-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

synthetic-ship-dataset-generator — Generador de imágenes satelitales sintéticas de embarcaciones

Generador de datasets sintéticos para el entrenamiento de modelos de visión artificial (detección de embarcaciones en el mar), desarrollado como parte del proyecto de CubeSat (CubeDesign 2025 — INPE). Renderiza escenas oceánicas cenitales con modelos 3D de barcos y produce anotaciones YOLO de forma automática mediante segmentación por instancias.

Cómo funciona

  1. Carga todos los .obj de assets/ (convención Y-up, cubierta hacia +Y).
  2. Normaliza escala, centra cada modelo y lo posiciona en su línea de flotación.
  3. Compone escenas aleatorias: 1–3 barcos por imagen, posición y rumbo aleatorios, cámara cenital de altura variable, más un subconjunto de imágenes de solo océano (ejemplos negativos).
  4. Renderiza a 1280×1280 px y exporta imágenes PNG + etiquetas YOLO (class x_center y_center width height, clase única 0: embarcación).

Requisitos

pip install -r requirements.txt

Uso

Coloca los modelos .obj en assets/ (no se versionan por su tamaño; los modelos de prueba están en la carpeta compartida de Drive del proyecto) y ejecuta desde la raíz del repositorio:

blenderproc run src/generate_dataset.py

La salida queda en data/dataset_train/images/ y data/dataset_train/labels/. Los parámetros (número de imágenes, resolución, barcos por escena, calado, etc.) se configuran al inicio de src/generate_dataset.py.

Estructura

assets/                     modelos 3D .obj (ignorados por git)
src/generate_dataset.py    script principal de generación
data/dataset_train/        salida: images/ + labels/ (formato YOLO)
requirements.txt            dependencias

Notas

  • Los modelos deben estar normalizados a Y-up; el script consolida la rotación del importador de Blender, por lo que el resultado no depende de la versión del importador.
  • Los modelos de prueba provienen de GrabCAD (uso educativo) y fueron convertidos a .obj con Rhinoceros 3D.
  • Estado: prueba de concepto funcional. El dataset generado aún no ha sido evaluado sobre un modelo de visión artificial.

synthetic-ship-dataset-generator — Synthetic satellite ship imagery generator (English)

Synthetic dataset generator for training computer vision models (ship detection at sea), developed as part of a CubeSat project (CubeDesign 2025 — INPE). It renders top-down ocean scenes with 3D ship models and automatically produces YOLO annotations from instance segmentation maps.

How it works

  1. Loads every .obj in assets/ (Y-up convention, deck facing +Y).
  2. Normalizes scale, centers each model and places it at its waterline.
  3. Composes random scenes: 1–3 ships per image, random position and heading, top-down camera at variable height, plus a subset of ocean-only images (negative examples).
  4. Renders at 1280×1280 px and exports PNG images + YOLO labels (class x_center y_center width height, single class 0: ship).

Requirements

pip install -r requirements.txt

Usage

Place the .obj models in assets/ (not versioned due to their size; the test models live in the project's shared Drive folder) and run from the repository root:

blenderproc run src/generate_dataset.py

Output is written to data/dataset_train/images/ and data/dataset_train/labels/. Parameters (number of images, resolution, ships per scene, draft, etc.) are configured at the top of src/generate_dataset.py.

Structure

assets/                     3D .obj models (git-ignored)
src/generate_dataset.py    main generation script
data/dataset_train/        output: images/ + labels/ (YOLO format)
requirements.txt            dependencies

Notes

  • Models must be normalized to Y-up; the script bakes the Blender importer's rotation, so results do not depend on the importer version.
  • Test models come from GrabCAD (educational use) and were converted to .obj with Rhinoceros 3D.
  • Status: working proof of concept. The generated dataset has not yet been evaluated on any computer vision model.

About

Synthetic satellite ship imagery generator with YOLO annotations — BlenderProc

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages