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

Uploaded Python 3

File details

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

File metadata

  • Download URL: lego_bricks_ml_vision-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 49ee9912860aa82ab794aa79f0e292a5423806425a1a5a23ca7350e5bb78f15d
MD5 4aac4ba37091eaf51c3d38875ee91648
BLAKE2b-256 53ffe7039c178522d51e9e1f63c7e00089ab1400cc392f79062cd8e4b33a7876

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lego_bricks_ml_vision-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6e801862c58e3a9acd05fdd41b552131de53635db1e8d7b55cf2f2334b41e9c4
MD5 e0b708a236be43ecae85bb6392b44d3e
BLAKE2b-256 95d3bf190033197a5cdc426f3e39a99e6ac525223f3f5e093c7e4a69f1657af8

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