Skip to main content

A package for LEGO brick detection and visualization using YOLO.

Project description

LEGO Bricks ML Vision

LEGO Bricks ML Vision es un paquete de Python diseñado para detectar y visualizar piezas de LEGO en imágenes usando YOLOv8 y pipelines personalizados. Este proyecto aborda el problema de identificar piezas individuales en entornos desordenados y proporciona herramientas de visualización para análisis y presentaciones profesionales.


Características Principales

  • Detección de Objetos: Identificación de piezas de LEGO utilizando YOLOv8.
  • Preprocesamiento de Datos: Herramientas para redimensionar imágenes y asegurar consistencia en los nombres de archivos.
  • Conversión de Anotaciones: Transformación de formatos de LabelMe a YOLO.
  • Visualización: Generación de grids anotados, comparaciones y organización de carpetas para presentaciones.
  • Pipeline Modular: Diseño adaptable para escalabilidad y personalización.

Requisitos del Sistema

  • Versión de Python: >= 3.8
  • Sistemas Operativos Compatibles: Windows, macOS, Linux
  • Hardware Recomendado:
    • CPU (mínimo)
    • GPU (opcional, recomendado para entrenamiento)

Instalación

  1. Instala el paquete directamente desde PyPI:

    pip install lego-bricks-ml-vision
    
  2. Alternativamente, clona el repositorio:

    git clone https://github.com/MiguelDiLalla/LEGO_Bricks_ML_Vision.git
    cd LEGO_Bricks_ML_Vision
    pip install -e .
    

Uso

Configuración del Entorno

Ejecuta el siguiente script para preparar el entorno:

from scripts.pipeline import setup_environment
setup_environment()

Ejecución del Pipeline Principal

El pipeline principal realiza detección, preprocesamiento, entrenamiento y pruebas:

run-pipeline

Generación de Visualizaciones

Crea visualizaciones profesionales para análisis:

run-visualize

Detalles de Scripts y Funciones

Pipeline Principal (pipeline.py)

  • setup_environment(): Configura el entorno necesario.
  • download_dataset_from_kaggle(): Descarga y extrae datasets desde Kaggle.
  • preprocess_images(): Redimensiona imágenes.
  • labelme_to_yolo(): Convierte anotaciones LabelMe a formato YOLO.
  • train_yolo_pipeline(): Entrena un modelo YOLO con datos procesados.
  • test_model_on_real_images(): Evalúa el modelo entrenado en imágenes reales.
  • visualize_results(): Genera un grid de imágenes anotadas.

Visualización y Presentaciones (visualize_presentation.py)

  • create_dataset_grid(): Genera grids de imágenes del dataset.
  • annotate_model_results(): Anota imágenes con resultados del modelo.
  • generate_comparison_grid(): Crea comparaciones antes/después de la detección.
  • organize_presentation_folders(): Organiza subcarpetas para presentaciones.

Ejemplos Prácticos

Preprocesamiento de Imágenes

from scripts.pipeline import preprocess_images
preprocess_images("datasets/raw", "datasets/processed")

Entrenamiento de Modelo YOLO

from scripts.pipeline import train_yolo_pipeline
train_yolo_pipeline("datasets", annotations_format="YOLO", epochs=50, img_size=256)

Generación de Grids

from scripts.visualize_presentation import create_dataset_grid
create_dataset_grid("datasets/processed_images", "presentation/dataset_samples")

Estructura del Proyecto

LEGO_Bricks_ML_Vision/
├── data/              # Datos crudos y procesados
├── scripts/           # Scripts principales
│   ├── pipeline.py    # Pipeline de entrenamiento
│   ├── visualize_presentation.py  # Visualización y presentación
├── presentation/      # Visualizaciones generadas
├── requirements.txt   # Dependencias del proyecto
├── setup.py           # Configuración del paquete
├── README.md          # Documentación del proyecto

Contribuciones

Las contribuciones son bienvenidas. Sigue estos pasos:

  1. Haz un fork del repositorio.

  2. Crea una rama para tu contribución:

    git checkout -b feature/nueva-funcionalidad
    
  3. Envía un pull request explicando tus cambios.


Licencia

Este proyecto está bajo la Licencia Apache 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lego_bricks_ml_vision-0.1.32.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lego_bricks_ml_vision-0.1.32-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file lego_bricks_ml_vision-0.1.32.tar.gz.

File metadata

  • Download URL: lego_bricks_ml_vision-0.1.32.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for lego_bricks_ml_vision-0.1.32.tar.gz
Algorithm Hash digest
SHA256 1df36c7ce79939e911935b8082a2be18311b6373bbe91356a33741207c44d325
MD5 5ff4ce605f64bd57bcb3cc664e13ea94
BLAKE2b-256 c8da3735f5d001c6371d9f05bb2a6ceddcfee73433811f6c43f0d6a2395a80ba

See more details on using hashes here.

File details

Details for the file lego_bricks_ml_vision-0.1.32-py3-none-any.whl.

File metadata

File hashes

Hashes for lego_bricks_ml_vision-0.1.32-py3-none-any.whl
Algorithm Hash digest
SHA256 88574fb30e2043343b85afb70bf27505ad1aa67fdd2e29a1624c3537abbdfc07
MD5 ffde1f147371cb90a0451b0a799f8609
BLAKE2b-256 0f78caff047a9a11fb3a4e95c14bf714f8d1f5e449be5d2c0b3f9c9257e3a047

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page