El objetivo del trabajo práctico es usar git
y docker
correctamente mientras
se completa un programa para descargar y etiquetar un lote de imágenes.
Este programa consta de cuatro partes principales:
- Obtención de imágenes.
- Generación de etiquetas.
- Mostrar imágenes de determinada etiqueta.
- Generación de un archivo comprimido con las imágenes y etiquetas.
Deberán modificar un contenedor que al ejecutarse presenta un menú de opciones.
Para ello será necesario editar el Dockerfile
y construir la imagen.
Las imágenes a analizar deben ser descargadas desde internet y deben almacenarse dentro del contenedor para su posterior análisis. Luego del análisis, deberá generarse un archivo disponible fuera del contenedor.
Tanto los scripts, como el Dockerfile
, deben estar en el repositorio gitlab
que creen para realizar el desarrollo en equipo.
Deberán trabajar en el repositorio manteniendo la prolijidad y las buenas
prácticas de git
: por cada script se deberá crear una rama para luego ir
integrando a la rama principal a medida que los scripts estén listos. Todos los
integrantes deben realizar commits en el repositorio.
En ese mismo repositorio debe estar la documentación suficiente para comprender
cómo desplegar el contenedor y ejecutar la aplicación. Esta documentación debe
estar en un archivo README.md
el cual estará presente cuando se accede al
repositorio en gitlab.
Se deberán programar los siguientes scripts:
-
internet.sh
: Chequea que haya conexión a internet. -
descargar.sh
: Descarga una imagen de internet y la nombra convenientemente. -
etiquetar.sh
: Genera un archivo con las etiquetas de una imagen. -
mostrar.sh
: Muestra las imágenes que contienen objetos de una etiqueta dada. -
comprimir.sh
: Comprime todas las imágenes. -
extra.sh
: Funcionalidad adicional a elección de cada grupo.
El programa está estructurado en varias carpetas para que sea mas sencillo trabajar. Dentro de cada una de ellas se encuentra la documentación específica de dicha carpeta.
Los únicos archivos que debe modificar el estudiante son el archivo
Dockerfile
, el archivo README.md
y los scripts de la carpeta src/scripts
.
No deben modificar los scripts de src/menu
pero es necesario que los lean y
los puedan explicar.
La carpeta ./imagenes
debe poder accederse dentro del contenedor en la ruta
/imagenes
.
Para descargar imágenes al azar, pueden utilizarse estos enlaces:
- https://source.unsplash.com/random/
- https://picsum.photos/512
- https://loremflickr.com/512/512/
- https://random-image-pepebigotes.vercel.app/api/random-image
- https://image.pollinations.ai/prompt/a%20photo%20of%20a%20person?seed=1
Yolo es un modelo de I.A. que puede utilizarse para clasificar imágenes. Dentro del contenedor puede utilizarse con el siguiente comando:
yolo predict source=/ruta/archivo.jpg
jp2a
Es una herramienta para convertir imágenes en caracteres ASCII. Deberá
investigar la instalación y uso de la herramienta.
Para mas información puede referirse al archivo de aclaraciones