LeonardoSteinke / CNN-Image-Recognition

0 stars 0 forks source link

Logo da UDESC Alto Vale


Algoritmo de Rede Neural Convolucional para o reconhecimento e classificação de imagens

Algoritmo desenvolvido no âmbito acadêmico para a disciplina de Inteligência Artificial do Centro de Educação Superior do Alto Vale do Itajaí (CEAVI/UDESC).

Autor

Sumário

Problema

O Problema a ser desenvolvido é uma Rede Neural Convolucional para o de reconhecimento e classificação binária de imagens.

Dataset

O Dataset utilizado será uma versão adaptada do Kaggle da competição Dogs vs. Cats contendo 7000 imagens de Cachorros e 7000 imagens de Gatos.

Técnica

Utilização da Rede Neural CNN para reconhecer e classificar de forma binária imagens de Gatos e Cachorros

Bibliotecas utilizadas

Entradas e Saídas

Critério de Parada

Resultados Obtidos

Para medir os resultados foram realizados os seguintes testes

A rede foi executada por um total de 50 épocas, o que durou um período de aproximadamente 133 minutos, sendo em média 160,52 segundos cada época do treinamento como mostra a figura abaixoTreinamento 50 Epocas

Validações foram feitas retirando imagens do proprio Dataset, imagens retiradas da Internet e Imagens Próprias

Perda de treino e validação 10 epocas

Grafico de Perda de treino e Validação para 10 épocas

Perda de treino e validação 25 epocas

Grafico de Perda de treino e Validação para 25 épocas

Perda de treino e validação 50 epocas

Grafico de Perda de treino e Validação para 50 épocas

É possivel verificar que quanto maior o número de épocas treinadas, maior é a acurácia da Rede Neural

Instruções para Uso do Software

O software pode ser executado abrindo os arquivos .py na sua IDE de preferência, (foram testadas nas IDEs pyCharm e Spyder) o usuário além de ter em mãos os códigos fonte, deve criar uma pasta chamada "treino" (para colocar o dataset de treino), e uma pasta "teste" (com todas as imagens que o usuário quer classificar, ambas as pastas no mesmo diretório.

Para definir a quantidade de Épocas a serem treinadas deve-se alterar o valor da variável "Epocas" e criar um arquivo com o formato padrão "modelo+NUMERO DE ÉPOCAS+epocas.h5", caso ele ainda não exista, onde Número de épocas é o mesmo definido dentro do codigo fonte

Para a classificação das imagens deve-se colocar todas as imagens que se que classificar dentro da pasta "teste" e no codigo fonte do arquivo "Teste.py" alterar as variaveis "ImagensParaAvaliar" para a quantidade de imagens a serem avaliadas e a variável "Epocas" para o valor do modelo de épocas que você quer utilizar

Vídeo

Trabalho Implementação 75INC - Rede Neural Convolucional para classificação binária de imagens