Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Classificação de Imagens Usando Modelos de Redes Neurais Convolucionais com PyTorch

Este projeto tem como objetivo explorar três abordagens de classificação de imagens usando CNNs com PyTorch:

  • Treinamento de uma rede do zero.
  • Uso de uma rede pré-treinada sem ajustes.
  • Fine-tuning de uma rede pré-treinada.

O dataset utilizado será o CIFAR-10, e as redes serão avaliadas com métricas como accuracy, precision, recall e F1-score.

Índice

Modelos e Dataset

Dataset (CIFAR-10)

O CIFAR-10 (Canadian Institute For Advanced Research) é um conjunto de dados utilizado em tarefas de classificação de imagens e treinamento de modelos de aprendizado de máquina. Ele consiste em:

  • 10 classes: avião, automóvel, pássaro, gato, cervo, cachorro, sapo, cavalo, navio e caminhão.
  • 60.000 imagens coloridas, de 32x32 pixels.
    • 50.000 imagens no conjunto de treinamento.
    • 10.000 imagens no conjunto de teste.
  • As imagens estão em formato RGB, e cada uma é associada a um rótulo de classe correspondente.
  • As classes são mutuamente exclusivas e não possuem sobreposição entre as categorias.

Amostra de imgens CIFAR-10:

classes

MODELOS USADOS

Membro Modelo Link colab Arquivo local
André Burger ResNet Resnet Colab Resnet Notebook
Lucas Soares Inception v3 Inception Colab -
Pedro Flores MaxVit MaxVit Colab -
Gabriel Lima - Colab Gabriel -

Estrutura do Projeto

Cada modelo foi treinado e inferido em uma estrutura padronizada, esse processo foi repetido para as três versões do mesmo modelo:

  • Treinamento de uma rede do zero.
  • Uso de uma rede pré-treinada sem ajustes.
  • Fine-tuning de uma rede pré-treinada.

Estrutura

  1. Download do dataset
  2. Plotagem de imagens do dataset
  3. Modelos, critérios e otimizadores das redes
  4. Treino das redes
  5. Plotagem das métricas de avaliação das redes

Comparação dos modelos

Algumas plotagens e inferências visando comparar a eficiência dos modelos escolhidos.

Matriz de confusão:

A matriz de confusão mostra o número de classificações corretas e incorretas em cada classe. Comparando as matrizes de confusão dos modelos, é possível identificar quais classes foram mais facilmente reconhecidas e onde os erros de classificação foram mais frequentes.

matrizes

Métricas de avaliação

As métricas de avaliação incluem a acurácia, precisão, recall e F1-score, que fornecem uma visão quantitativa do desempenho dos modelos. A acurácia mede a proporção de previsões corretas, enquanto a precisão indica a porcentagem de classificações corretas para uma determinada classe. O recall mede a capacidade do modelo de identificar todas as instâncias de uma classe, e o F1-score oferece um balanço entre precisão e recall. Essas métricas são fundamentais para a comparação objetiva dos modelos em relação à sua capacidade de generalização.

metricas

Execução dos Notebooks

Os modelos usados nesse projeto foram treinados e executados em ambiente Jupyter. Os Notebooks com os códigos se disponibilizam em dois ambientes:

  • Google Colab
  • Ambiente local

Google colab

O Google Colab é uma plataforma gratuita baseada na nuvem que permite criar e executar notebooks Jupyter diretamente no navegador. O Colab fornece acesso a GPUs e TPUs gratuitamente. A execução do código em ambiente colab é simples, basta conectar o Notebook ao servidor do Google e executar as células.

Ambiente Local

Os arquivos com extensão .ipynb que estão localizados na pasta /notebooks podem ser executados localmente instalando as bibliotecas e dependências necessárias. Os pesos gerados pelos modelos já treinados também podem ser instalados através da pasta /models_weights.

Dependências e Pacotes necessários

Caso necessário a utilização de uma máquina local, as bibliotecas usadas no projeto podem ser encontradas no arquivo requirements.txt. A criação de um ambiente virtual ajuda com o controle de pacotes. A instalação das bibliotecas pode ser executada da seguinte maneira no terminal:

  pip install -r requirements.txt

About

Este projeto tem como objetivo explorar três abordagens de classificação de imagens usando CNNs com PyTorch: treinamento de uma rede do zero, uso de uma rede pré-treinada sem ajustes, e fine-tuning de uma rede pré-treinada. O dataset utilizado será o CIFAR-10, e as redes serão avaliadas com métricas como accuracy, precision, recall e F1-score.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages