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.3.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.3-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lego_bricks_ml_vision-0.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 8e0658c08f8ac241e9f33e41b6209f47d655342f6bfd7930b51072d8b163e8a5
MD5 23eedbf4c5a8e36582ab978bf3bc34c7
BLAKE2b-256 239344ce021baed949e479857296f350318fd1c9cb5fcb1eaf8019ba09df6d42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lego_bricks_ml_vision-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ca7145336a35100f89094078bba88599ce352b7eba81bd7150875e4049b06733
MD5 cf96cf7d9de902846b04318c6e140bee
BLAKE2b-256 5b0022bd128cd7dd842f06d998259b81a1607f8c32a5c72d39315bcb71ab8f4b

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