GithubHelp home page GithubHelp logo

turing-usp / qeep Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 15.14 MB

Projeto da área Visão Computacional com o foco de fazer uma rede classificadora de objetos e a utilizar para criar um localizador de objetos.

Python 1.96% Jupyter Notebook 97.99% Shell 0.04%
computer-vision visao-computacional deep-learning

qeep's Introduction

Grupo Turing

Visão Computacional: Localização de Objetos

Projeto da área Visão Computacional com o foco de fazer uma rede classificadora de objetos e a utilizar para criar um localizador de objetos.

Qual a diferença ?

  • Um classificador de objetos recebe uma imagem e tem como output qual classe aquela imagem pertence.
  • Um localizador de objetos retorna onde em uma imagem contém uma determinada classe.

Treinando o modelo

Para realizar o transfer learning foi utilizado o modelo da YOLOv3 da ultralytics. Para isso, o dataset deve seguir a estrutura descrita a seguir. A estrutura dos arquivo deve ser a seguinte:

Pasta do modelo
--- data (pasta)
    --- nome do dataset (pasta)
        --- imagens (pasta)
            --- img1.jpg
            --- img2.jpg
            ..........
        --- rotulos (pasta)
            --- img1.txt
            --- img2.txt
            ..........
        --- treino.txt
        --- validacao.txt

Os arquivos img*.txt são arquivos que seguem a seguinte estrutura:

0 x_center y_center img_width img_height
0 0.500968 0.550968 0.1203843 0.4503683
0 0.500968 0.550968 0.1203843 0.4503683
0 0.500968 0.550968 0.1203843 0.4503683
...

Nesses arquivos, o primeiro parâmetro representa a classe do objeto que será classificado seguido da posição do centro dele (x_center, y_center). Em seguida, temos a largura e altura da caixa que envolve o objeto a ser classificado. Vale ressaltar que todas as medidas são relativas ao tamanho da imagem a ser classificada. Cada linha do arquivo contém um dos objetos a ser classificado na imagem.
Os arquivos treino.txt e validacao.txt contém o caminho relativo (considerando a raiz do projeto) para as imagens. Veja:

../data/dataset/imagens/img1.jpg
../data/dataset/imagens/img2.jpg
...

qeep's People

Contributors

anor4k avatar dueiras avatar guissalustiano avatar luisa-gaivota avatar luisaheise avatar luizsantos-1 avatar materloki avatar rafael-acoelho avatar rodrigofill avatar teste-guissalustiano avatar wesalmeida avatar wespereira avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

qeep's Issues

README

Acho que com o repo público poderíamos especificar um pouco melhor o README

Melhorias na Lambda

Deletar a imagens dps ler
Deletar a imagem dps ler
Verificar se a img n é muito grande pra processar

Abrangência do Augmentation

Atualmente funciona com uma imagem de pokemon e de paisagem apenas, falta automatizar para um dataset inteiro

Imagens transparentes não são processadas corretamente

Pillow, por algum motivo, tem problemas pra ler algumas imagens png no formato certo. Por exemplo, a imagem do Bulbasaur de teste sendo usada é lida no modo 'P' (mais sobre aqui), ao invés de RGBA. isso traz alguns problemas de consistência na hora de fazer as transformações.

Algumas opções:

  • transformar todas as operações de Pillow pra openCV. trabalhoso mas ideal
  • criar um wrapper que lê as imagens com openCV e converte pra pillow adequadamente (ou seja, mantendo o formato e canais da original). deve funcionar, mas acho que faria mais sentido usar opencv pra tudo
  • descobrir como fazer pillow ler um png corretamente. não sei se é possível

Para ler a imagem corretamente em opencv, é necessário usar algo como cv.imread("Imagens/Objetos/Bulbasaur.png", cv.IMREAD_UNCHANGED) e depois contar os canais para inferir se é RGB ou RGBA.

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.