DOCUMENTAÇÃO ELABORADA PARA DEMONSTRAÇÃO DO USO DO SISTEMA DE CATALOGAÇÃO DE ROCHAS ORNAMENTAIS
Escrito por Caio Schmidt França Fonseca
Este projeto possui o sistema do u2net para treinamento de modelo, teste, geração de imagens de chapas de mármore e granito sem o fundo, e também um REST API para comunicação com algum frontend
Nosso projeto de frontend está localizado em https://github.com/GALI3600/tic_rochas
- Baixar Python 3.11
- Criar e ativar um virtual environment usando o Python 3.11
- Dentro de
/backend
, executar:pip install -r requirements.txt
- Dentro de
/u2net
, executar:pip install -r requirements.txt
O projeto contém algumas imagens para o treinamento, elas estão localizadas em u2net/train_data/im_aug
, e suas respectivas labels em /u2net/train_data/gt_aug
O projeto contém, também, algumas imagens para o teste dos modelos gerados, e elas estão localizadas em u2net/test_data/test_images
O projeto NÃO contém um arquivo de modelo pré-treinado, mas é possível obter um por aqui: download
As imagens precisam estar em formato JPG.
- Em
/u2net
, executar:python u2net_train.py
- O log dos treinamentos realizados está localizado em
/u2net/app.log
- Ao iniciar o treinamento, no terminal, aparecerá algo como:
Isto indica que o treinamento está ocorrendo, e ele continuará até que
2024-05-27 14:30:11,418 - root - INFO - [epoch: 1/500, batch: 4/ 176, ite: 1] train loss: 4.525530, tar: 0.604871 2024-05-27 14:30:14,113 - root - INFO - l0: 0.504742, l1: 0.743461, l2: 0.773620, l3: 1.110518, l4: 1.212246, l5: 0.605723, l6: 0.773419
epoch
chege ao seu valor máximo definido emu2net_train.py
, que neste caso é 500 - No fim do treinamento, os modelos gerados estarão localizados em
/u2net/saved_models/u2net
- O sistema de testes de modelos está localizado em
u2net/u2net_teste.py
- Dentro deste arquivo, em ambas as linhas 57 e 81, alterar as strings para o nome do arquivo do modelo que se deseja testar, gerado em
/u2net/saved_models/u2net/
, sem considerar a extensão do arquivo. Exemplo:u2net_bce_itr_22000_train_0.107478_tar_0.005487
- No arquivo
u2net_teste.py
eu2net_teste_uvicorn.py
, altere, na linha 125, o valor da variáveltesteCaminho
para o caminho absoluto para a pasta de saved_models em seu sistema - O teste utilizará as imagens salvas em
u2net/test_data/test_images
para realizar o teste - Para iniciar o teste, executar:
python u2net_test.py
- Ao fim da execução, será gerado um arquivo com as máscaras geradas das imagens de teste em
/u2net/test_data
, com o nome similar ao nome do arquivo do modelo que está sendo testado, adicionando o sufixo_results
ao nome do arquivo. Exemplo:u2net_bce_itr_22000_train_0.107478_tar_0.005487_results
- Este projeto utiliza os serviços de banco de dados e armazenamento de imagens do Supabase, e é necessário que se crie um projeto no Supabase e que se obtenha duas chaves para que o frontend do projeto funcione.
- Crie uma tabela SQL de nome
CHAPAS
com as seguintes colunas:
- Crie um bucket no serviço de Storage com o nome
Imagens
- Em Project Settings -> API, copie a chave privada da API e o Project URL
- Crie um arquivo de nome
secret_settings.py
em/backend
- Cole o URL e a chave neste formato no arquivo:
SUPABASE_URL = "PROJECT URL AQUI" SUPABASE_KEY = "CHAVE PRIVADA AQUI"
- Crie um arquivo de nome
- O sistema do servidor está localizado em
/backend
- No arquivo
main.py
, altere, na linha 27 (sys.path.append("E:\\Repositorios\\U-2-Net")
), o sys path para o caminho para o projeto em seu sistema - Para executar o servidor, faça
uvicorn main:app --reload --host 0.0.0.0 --port 8000
. É possível alterar o IP e a porta.