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
-
Instala el paquete directamente desde PyPI:
pip install lego-bricks-ml-vision
-
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:
-
Haz un fork del repositorio.
-
Crea una rama para tu contribución:
git checkout -b feature/nueva-funcionalidad
-
EnvÃa un pull request explicando tus cambios.
Licencia
Este proyecto está bajo la Licencia Apache 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49ee9912860aa82ab794aa79f0e292a5423806425a1a5a23ca7350e5bb78f15d
|
|
| MD5 |
4aac4ba37091eaf51c3d38875ee91648
|
|
| BLAKE2b-256 |
53ffe7039c178522d51e9e1f63c7e00089ab1400cc392f79062cd8e4b33a7876
|
File details
Details for the file lego_bricks_ml_vision-0.1.1-py3-none-any.whl.
File metadata
- Download URL: lego_bricks_ml_vision-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e801862c58e3a9acd05fdd41b552131de53635db1e8d7b55cf2f2334b41e9c4
|
|
| MD5 |
e0b708a236be43ecae85bb6392b44d3e
|
|
| BLAKE2b-256 |
95d3bf190033197a5cdc426f3e39a99e6ac525223f3f5e093c7e4a69f1657af8
|