Giter Site home page Giter Site logo

viralatacaramelo's Introduction

Distinção de vira-latas caramelos

1. O que é o projeto?

Os vira-latas caramelos são cachorros sem raça definida e que possuem a cor caramelo em sua pelugem. Apesar de serem animais sem raça definida, possuem um padrão em suas caraterísticas físicas que podem ser encontradas: pêlos na cor caramelo, focinho comprido e em alguns casos mesclagem com a cor preta na pelugem.

Em contrapartida, existem os animais com raças definidas, como os poodles, labradores, pastores alemães, etc. De acordo com a raça, é possível observar que existe também dentro de cada uma delas um padrão para os animais.

A intenção deste projeto é distinguir os vira-latas caramelos dos demais cachorros de raça.

2. O dataset

Um grande conjunto de dados pode ser considerado um dataset. O dataset deste projeto conta com imagens de animais de raça, contidos na pasta de treino e posteriormente na pasta chamada normais, e as imagens de vira-latas caramelos podem ser encontradas na pasta de treino e posteriormente na pasta caramelos.

Apesar de que os vira-latas caramelos possuem um padrão entre si conforme mencionado anteriormente, para facilitar o objetivo de encontrar e distinguir os cães do dataset, há uma grande quantidade de fotos do mesmo vira-lata caramelo, nomeado como Zeca. Desse modo, as fotos com o Zeca tendem a possuir maior facilidade de serem distinguidas caso os demais vira-latas caramelos não possuam um padrão tão definido em seus traços.

3. O uso de deep learning no projeto

Deep Learning é conhecido como uma área dentro do aprendizado de máquina (também conhecido como machine learning) que faz o uso de algoritmos de redes neurais para encontrar padrões, previsões e identificação de imagens.

A rede neural é uma sequência de camadas e podemos usar o modelo sequencial oferecido pelo Keras, que possui as funções necessárias para construir cada camada de uma rede neural convolucional.

3.1 Construção da rede neural

A primeira camada de Convolução utiliza 32 features para o array 2D e o array no formato 3x3, As imagens de 64x64px serão armazenadas em um array de 3 dimenções devido ao modo de cor das imagens (R, G e B).

Após a aplicação da primeira camada de Convolução é realizado um agrupamento para reduzir o mapa de features decorrente da primeira camada, reduzindo o tamanho dele.

Logo após o primeiro pooling, é adicionado outra camada de Convolução para tornar a rede mais profunda, após isso é realizado o segundo Pooling (Agrupamento).

Depois da segunda camada de convolução estar preparada é realizado o achatamento (Flatten), que converte a estrutura de dados 2D resultantes da segunda camada em 1D, ou seja, um vetor.

No próximo passo todas as camadas são conectadas utilizando uma função de ativação retificadora (relu). Também é utilizado então uma função de ativação sigmóide para obter as probabilidades de cada imagem conter um cachorro normal ou um vira-lata caramelo. O modelo raramente terá 100% de certeza e o que ele gera como um resultado é uma probabilidade.

Para compilar a rede, é utilizado o otimizador "Adam" e uma função log loss com "entropia binária cruzada". A métrica utilizada será a acurácia, pois essa é a maior preocupação no treinamento deste tipo de modelo.

5.0 Como rodar o projeto

Para rodar o projeto basta execultar o jupyter notebook no diretorio do projeto e executar as etapas do arquivo (ViraLataCarameloNotebook)[ViraLataCarameloNotebook.ipynb].

5.0 Resultados

Como resultado do treino e da predição temos que o treino realizou todas as etapas do fit_generator com uma acuracia acima de 80%, porém a predição falhou na imagem escolhida, indicando que a foto de um cachorro normal era um vira-lata caramelo. O notebook da execução pode ser encontrado aqui.

Desenvolvedores do projeto

É importante destacar para fins de correção que o numero de alterações no código ou de commits não reflete o esforço realizado por cada membro da equipe, visto que o projeto foi realizado de forma presencial e em grupo, tendo participação dos 3 membros listados abaixo, porém por desatenção dos membros os commits foram realizados sem o co-authored.

  • Gabriel Batista Albino Silva - 16/0028361

  • Gabriela Barrozo Guedes, 16/0121612

  • Helena Bretas Goulart, 16/0124034

Referências

[1]deep learning - o que é e qual é a sua importância?

[2]afinal, o que é deep learning?

[3]redes neurais - o que são e qual é a sua importância?

[4] VARGAS, Ana Caroline Gomes; PAES, Aline; VASCONCELOS, Cristina Nader. Um estudo sobre redes neurais convolucionais e sua aplicação em detecção de pedestres. In: Proceedings of the XXIX Conference on Graphics, Patterns and Images. 2016. p. 1-4.

[5] KOVÁCS, Zsolt László. Redes neurais artificiais. Editora Livraria da Fisica, 2002.

[6]capítulo 47 – reconhecimento de imagens com redes neurais convolucionais em python – parte 4

viralatacaramelo's People

Contributors

gabrielalbino avatar helenagoulart avatar gabibguedes avatar

Watchers

James Cloos avatar

Forkers

gabrielalbino

viralatacaramelo's Issues

Criar Readme

Tarefas:

  • Descrever o projeto
  • Explicar o algoritmo
  • Explicar como rodar o projeto
  • Descrever as tecnologias
  • Listar os desenvolvedores do projeto

Mapear o dataset utilizando SOM

De acordo com o exercício 7 (Slide 53 da aula 8) deve utilizado o SOM para mapear o dataset do projeto.

Tarefas

  • Estudar o SOM
  • Aplicar SOM no projeto

Avaliação

A avaliação é baseada nos 5 seguintes critérios objetivos booleanos:

  1. Proposta
    A proposta do projeto é relevante para uma comunidade, em sentido que, a aplicação dessas tecnologias podem trazer algum diferencial positivo para a comunidade que serve.

  2. Apresentação
    Julga o preparo do arquivo README.md para apresentar o problema, o raciocínio e a solução apresentada pelo projeto, assim como possíveis comparações com outras soluções.

  3. Organização
    Criação das issues para demonstrar as tarefas, bugs e novas features do projeto, de forma a deixar aberto e claro para a comunidade quais são os desafios do projeto e como ela pode contribuir.

  4. Roadmap
    Demonstrar por meio de milestones de versões do projeto, como está programada a evolução da solução.

  5. Tecnica
    Aplicação objetiva dos conhecimentos adquiridos em sala de aula.

Proposta Apresentação Organização Roadmap Técnica
1 1 1 0 1
ok ok ok Faltaram os Milestones e o Roadmap.md ok

Criativa a proposta, para dizer o mínimo :)

Elaborar a solução para o projeto

Tarefas

  • Pesquisar algoritmos de identificação de cães e gatos e outros CNNs
  • Elaborar a arquitetura da rede neural (quantas camadas serão utilizadas)
  • Escolher as funções de ativação

Fazer o dataset do projeto

Tarefas:

  • Encontrar fotos de cachorros com vira-latas caramelos
  • Salvar fotos numa pasta do repositório
  • Arrumar o dataset para treinar o projeto

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.