π¨βπ This project was carried out during my master's degree in computer vision at URJC - Madrid
This repository contains the practice for the subject Industrial Applications in Machine Vision belonging to the Master's Degree in Machine Vision taught at the Universidad Rey Juan Carlos.
The aim of this work is the classification and detection of defects on metal surfaces in a production line. To do so, we will make an implementation in Python with an object detector (YOLOv5) and we will connect it via C to the application that is already running in the factory.
The dataset provided by the company is composed of 200x200 grayscale images. For each category we have been provided with 300 images with their labels. The categories to be classified are the following:
- Inclusions
- Patches
- Scratches
The list of official project documentation delivered to the client is attached: (The documents are in spanish)
- ERS : -> EspecificaciΓ³n de Requisitos Software (ERS)
- Design : -> Documento de diseΓ±o
- Functional System : -> Documento del Sistema funcional
- Docker
- Postman (http requests)
Using our docker image, we can install our entire repository and the dependencies we will need.
$ docker pull luisrosario04/aiva_2022_metal
Once the image is downloaded, we are going to launch the container (docker) with the following command:
$ docker run -p 8000:5000 luisrosario04/aiva_2022_metal
The server listens in localhost:8000
Documentation of http requests -> POSTMAN
When a push or pull is performed automatically:
- When tests are launched the results can be found in the github actions.
- The quality of the code is tested with flake8 and mypy.
There are 20 tests with a total, for a coverage of 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