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

Uploaded Python 3

File details

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

File metadata

  • Download URL: lego_bricks_ml_vision-0.1.31.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.31.tar.gz
Algorithm Hash digest
SHA256 841d11022339422aac86d7464fca61907d39f7daedc8f8b03dd7afd042620cb3
MD5 7ccec91eea03fba36eee59f3632e0b41
BLAKE2b-256 eb4e454c4e8f49586b51f80524382f2dddf8d430f1af9c2c8bd7ede3cf3f5bbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lego_bricks_ml_vision-0.1.31-py3-none-any.whl
Algorithm Hash digest
SHA256 bf28002f0f31cf9e8188e2f627b3268d0157416d8e6ac2d17bbab3ddf7fa609c
MD5 f52e7659edccf2abd67f44f3bf671432
BLAKE2b-256 7a9de769120c7f90552a70afe09a36de05ba2c5ad5e4f71fce1dee7afa2a6f04

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