Skip to content

luccacb16/ugm-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo UGM - API para Detecção de Incêndios/Fumaça

Exemplo

Este repositorio contém o código fonte da API desenvolvida para o projeto de detecção de incêndios/fumaça.

Nesse README estarão as instruções de como treinar o modelo e de como executar a API. Para mais informações sobre o dataset e os detalhes da implementação acesse o relatório


Instruções para treinar o modelo

Primeiramente, clone o repositório e entre na pasta do projeto

git clone https://github.com/luccacb16/ugm.git
cd ugm

e em seguida, instale as dependências necessárias:

pip install -r requirements.txt

Será necessário obter uma API key do Roboflow para o download automático do dataset. Basta criar uma conta no site Roboflow e copiar a chave de acesso. Em seguida, crie um arquivo .env na raiz do projeto e adicione a chave de acesso (assim como mostra o .env.example):

ROBOFLOW_API_KEY=<sua_chave_de_acesso>

Com as dependências instaladas e a chave de acesso configurada, é necessário escolher qual modelo será treiando. O repositório possui 2 opções de modelos para serem treinados: Faster R-CNN YOLOv8.

Faster R-CNN

Acesse o diretório do modelo Faster R-CNN

cd faster_rcnn

e execute o script de treinamento:

python3 train.py

O script irá baixar o dataset na pasta especificada no arquivo config.py, treinar o modelo e salvar os checkpoints na pasta especificada no mesmo arquivo. A cada epoch será exibida uma barra de progresso e as métricas de treinamento e validação.

Para alterar os parâmetros de configuração e os hiperparâmetros do modelo, basta editar o arquivo config.py. Esse arquivo permite a configuração de:

  • DATA_DIR: Diretório onde o dataset será baixado;
  • CHECKPOINT_DIR: Diretório onde os checkpoints do modelo serão salvos;
  • PRETRAINED: Se o modelo será treinado do zero ou se será utilizado um modelo pré-treinado (pesos da ImageNet);
  • EPOCHS: Número de épocas de treinamento;
  • BATCH_SIZE: Tamanho do batch real de treinamento;
  • ACCUM_BATCHSIZE: Tamanho do batch simulado pela acumulação de gradientes;
  • WEIGHT_DECAY: Peso da regularização L2 do AdamW;
  • MIN_LR: Taxa de aprendizado mínima do scheduler;
  • MAX_LR: Taxa de aprendizado máxima do scheduler;
  • WARMUP_EPOCHS: Número de épocas de warmup do scheduler;
  • DEVICE: Dispositivo de treinamento (CPU ou GPU);
  • DTYPE: Tipo de dado do modelo (float16 ou bfloat16, por exemplo);

YOLOv8

Acesse o diretório do modelo YOLOv8

cd yolo

e execute o script de treinamento:

python3 yolo.py

Para editar configurações e hiperparâmetros, acesse diretamente o arquivo yolo.py. As configurações disponíveis são as mesmas do arquivo config.py do Faster R-CNN.


Instruções para executar a API

A API está dockerizada então para executá-la basta acessar o diretório api/ugm_api, construir a imagem Docker e depois rodá-la:

cd api/ugm_api
docker build -t ugm_api .
docker run -d -p 8000:8000 ugm_api

A API estará disponível em http://localhost:8000.

About

API para detecção de fumaça/incêndio

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published