|
Download entrenamiento/README.md from EagleDev-Innovation/Modelos-EagleDev-Innovation: direct link, hf CLI and curl.
- Browser
- Download file 3.93 kB
-
https://huggingface.co/EagleDev-Innovation/Modelos-EagleDev-Innovation/resolve/main/entrenamiento/README.md
- Command line
-
hf download hf://EagleDev-Innovation/Modelos-EagleDev-Innovation/entrenamiento/README.md
-
curl -L -o README.md https://huggingface.co/EagleDev-Innovation/Modelos-EagleDev-Innovation/resolve/main/entrenamiento/README.md
3.93 kB
| # Entrenamiento | |
| Crea `modelos_entrenados/material_estado/` (material + estado) y calibra el conteo de SAM 3. | |
| ## Credenciales (una vez) | |
| | Para | Qué hacer | | |
| |---|---| | |
| | Backbone DINOv3 y SAM 3 | Aceptar la licencia en [dinov3-convnext-tiny](https://huggingface.co/facebook/dinov3-convnext-tiny-pretrain-lvd1689m) y [sam3](https://huggingface.co/facebook/sam3); después `uv run hf auth login` | | |
| | Datasets de Kaggle | Kaggle → Settings → API → *Create New Token*; guardar `kaggle.json` en `C:\Users\<usuario>\.kaggle\` | | |
| | Datasets de Roboflow | Roboflow → Settings → API Keys; `setx ROBOFLOW_API_KEY "clave"` y abrir una terminal nueva | | |
| Sin Kaggle o Roboflow el pipeline funciona igual con menos datos: esas fuentes se omiten | |
| con aviso. Sin Roboflow no hay madera ni defectos, así que la nota de estado no se valida. | |
| ## Pasos | |
| ```bash | |
| uv run python -m entrenamiento.descargar # 1. datasets → datos/crudos/ (minutos) | |
| uv run python -m entrenamiento.preparar # 2. une, limpia y reparte (minutos) | |
| uv run python -m entrenamiento.caracteristicas # 3. pasa cada foto por DINOv3 (horas en CPU, reanudable) | |
| uv run python -m entrenamiento.entrenar # 4. entrena las 2 cabezas y exporta (minutos) | |
| uv run python -m entrenamiento.evaluar_conteo # 5. mide y calibra el conteo de SAM 3 (~1 h) | |
| ``` | |
| El paso 4 escribe `modelos_entrenados/material_estado/informe.md` con las métricas sobre el | |
| conjunto de prueba (fotos que el modelo nunca vio). El paso 5 escribe | |
| `modelos_entrenados/conteo/informe.md` y el umbral elegido. | |
| ### Mejor precisión: ajuste fino completo en Colab (GPU gratis) | |
| Los pasos 3-4 dejan el backbone congelado para que se pueda entrenar sin GPU. Ajustar | |
| también el backbone suele mejorar varios puntos, sobre todo en defectos finos: | |
| ```bash | |
| uv run python -m entrenamiento.empaquetar_colab # → datos/revalora_colab.zip | |
| ``` | |
| Abre [colab_entrenamiento.ipynb](colab_entrenamiento.ipynb) en Google Colab, sube el zip y | |
| ejecuta las celdas. Descarga `material_estado.zip` y sustituye `modelos_entrenados/material_estado/`. | |
| ## Datos | |
| Las fuentes están en [fuentes.py](fuentes.py). **Solo se usan datasets con licencia que permite | |
| uso comercial** (MIT, CC0, CC BY 4.0, ODbL); la licencia se comprueba al descargar y las fuentes | |
| no comerciales se descartan. El resultado de cada fuente queda en `datos/procesados/fuentes.json` | |
| y en la tabla final del informe. | |
| | Tipo | Ejemplos | Qué enseña | | |
| |---|---|---| | |
| | Material | TrashNet, RealWaste, Garbage Classification | qué material es | | |
| | Defectos | Roboflow: madera (Kodytek), óxido, telas, cajas dañadas, vidrio roto, abolladuras | qué defectos tiene | | |
| Las etiquetas de cada dataset se traducen a nuestros defectos en [mapeo.py](mapeo.py) | |
| ("Dead_Knot" → nudo, "rust" → óxido, "non-damaged" → sin defectos...). Cada imagen solo enseña | |
| los defectos que su dataset etiqueta; el resto no cuenta. | |
| Para **añadir fotos propias** (lo que más mejora el modelo con fotos reales de la plataforma): | |
| crea una carpeta por material con las fotos dentro, añádela a `fuentes.py` como fuente de | |
| material con `origen="url"` o cópiala a `datos/crudos/<nombre>/` con un archivo `.completo`, y | |
| repite los pasos 2-4. | |
| ## Decisiones | |
| - **ConvNeXt-Tiny DINOv3** (Meta, 2025): misma red y velocidad que el ConvNeXt-Tiny original, | |
| con mejores pesos de partida. Licencia DINOv3 (uso comercial permitido, sin usos militares). | |
| - **384 px**: deja ver defectos pequeños; ~0.4 s por imagen en CPU. | |
| - **Características globales + máximo local**: el máximo conserva un defecto pequeño que el | |
| promedio diluiría. | |
| - **Reparto por grupo**: las variantes aumentadas de una misma foto (Roboflow) nunca quedan a la | |
| vez en entrenamiento y en prueba. | |
| - **Defectos sin datos suficientes** (< 30 ejemplos con y sin él) no se usan en la nota. | |