Este repositorio contiene la práctica para la asignatura Aplicaciones Industriales en la Visión Artificial perteneciente al Máster Universitario en Visión Artificial impartido en la Universidad Rey Juan Carlos.
El objetivo de este trabajo es la clasificación y detección de defectos en superficies metálicas en una línea de producción. Para ello realizaremos una implementación en Python con un detector de objetos (YOLOv5) y lo conectaremos mediante C a la aplicación que ya está funcionando en la fábrica.
El dataset proporcionado por la empresa está compuesto por imágenes de 200x200 en escala de grises. Por cada categoría nos han proporcionado 300 imágenes con sus etiquetas. Las categorías a clasificar son las siguientes:
- Inclusions
- Patches
- Scratches
Se adjunta la lista de la documentación oficial del proyecto entregada al cliente:
- ERS : -> Especificación de Requisitos Software (ERS)
- Diseño : -> Documento de diseño
- Sistema Funcional: -> Documento del Sistema funcional
- Docker
- Postman (http requests)
Utilizando nuestra imagen de docker, podemos instalar todo nuestro repositirio y las dependencias que necesitaremos.
$ docker pull luisrosario04/aiva_2022_metal
Una vez descargada la imagen, vamos a lanzar el contenedor (docker) con el siguiente comando:
$ docker run -p 8000:5000 luisrosario04/aiva_2022_metal
El servidor escucha en localhost:8000
Documentación de las requests http -> POSTMAN
Cuado un push o pull se effectua automaticamente :
- Los tests se lazan, resultados en github actions
- La calidad del codigo esta probado con flake8 y mypy
Hay 20 tests con un coverage total de 96%
.
├── dataset
│ ├── ANNOTATIONS
│ └── IMAGES
├── docs
│ ├── Diseño_grupoC.pdf
│ └── ERS_grupoC.pdf
├── docker
│ └── Dockerfile
├── exemples
│ ├── esquema.jpeg
│ ├── resultado.jpeg
│ ├── Screen1.png
│ └── tipos_defectos.png
├── pyproject.toml
├── README.md
├── requirements_dev.txt
├── requirements.txt
├── setup.cfg
├── setup.py
├── src
│ └── algorithm
│ └── main_algorithm.py
│ └── fast_rcnn
│ └── main_fast_rcnn.py
│ └── imperfection
│ └── main_imperfection.py
│ └── server
│ └── main_server.py
│ └── system_recognition
│ └── main_system_recognition.py
│ └── yolo_v5
│ └── main_yolo_v5.py
├── tests
│ └── test_algorithm.py
├── yolo_v5
│ ├── models
│ ├── utils
│ ├── weights
│ ├── detect.py
│ └── export.py
└── tox.ini