Adicionando sobre Pynovisao
Alessandro dos Santos Ferreira authored
c38a9f21

Título: Pynovisao

Autor: Alessandro dos Santos Ferreira

Autor: Hemerson Pistori

Resumo:

Pacote de Visão Computacional do Inovisão.

Como Usar

  • A partir da pasta raiz, execute os seguintes comandos:
 $ cd src
 $ python main.py
  • Uma imagem como a mostrada abaixo deve ser apresentada:

    pynovisao

Outras Opções

  • Mostra todas as opções disponíveis
 $ python main.py --help
  • Executa o programa inicializando o banco de imagens em ../data/soja
 $ python main.py --dataset ../data/soja
  • Executa o programa definindo as classes e suas respectivas cores (X11 color names)
 $ python main.py --classes "Solo Soja Gramineas FolhasLargas" --colors "Orange SpringGreen RebeccaPurple Snow"

Dependências - Aplicação base - Python

Linux

  • kubuntu trusty 14.04.2 TLS
  • Python 2.7.6
  • scikit-image
  • Opencv 2.7
  • tk/tk-dev
  • python-weka-wrapper ( Classification )

Windows

  • Instale o Anaconda que contém todas dependências, inclusive o Python. Basta fazer o download do arquivo .exe e executá-lo.
  • Opencv 2.7
  • python-weka-wrapper ( Classification )

Como instalar o OpenCV

Linux

Seguir as instruções disponíveis em OpenCV-Linux. Lí em algum lugar que dá para instalar com o comando abaixo, não testei mas pode funcionar:

 $ sudo apt-get install python-opencv

Pode ser que seja necessário instalar também uma versão mais antiga do opencv (2.4*) caso apareça um erro com o comando import cv (que sumiu na versão 3.0.0 do opencv). Neste caso, tente seguir estes passos: [Instalando opencv 2.4] (https://sites.google.com/a/computacao.ufcg.edu.br/lvc/aprendizado/opencv).

Windows

  • OpenCV-Python.

    1. Baixe o Opencv
    2. Extraia os arquivos no local desejado.
    3. Vá para a pasta opencv/build/python/2.7.
    4. Cipie o arquivo cv2.pyd para C:/Python27/lib/site-packeges.
    5. Abra o terminal e digite python para executar o interpretador.
    6. Digite:
      >>> import cv2
      >>> print cv2.__version__

Como instalar scikit-image e arff

 $ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose python-pip python-networkx libfreetype6-dev

 $ sudo pip install -U scikit-image

Em uma das máquinas em que tentei instalar deu um erro que resolvi rodando o comando abaixo antes de executar a linha acima:

 $ sudo apt-get build-dep python-matplotlib
 $ sudo pip install cycler

Como instalar o tk/tk-dev

Ubuntu

 $ sudo apt-get install tk tk-dev

Na ocorrência do erro 'cannot import name _tkagg', tentar os seguintes comandos:

 $ sudo apt-get install tk tk-dev
 $ sudo pip uninstall matplotlib
 $ sudo pip install matplotlib

Se der erro na reinstalação do matplotlib (depois que desinstalar), tente desinstalar também pelo apt-get:

 $ sudo apt-get remove python-matplotlib

Mais informações

Como instalar o python-weka-wrapper ( Opcional )

Ubuntu

Primeiro você precisa compilar os código C/C+ e os módulos Python:

$ sudo apt-get install build-essential python-dev

Agora você pode instalar os vários pacotes que precisamos para instalar o python-weka-wrapper:

$ sudo apt-get install python-pip python-numpy

Os seguintes pacotes são opcionais mas necessários se você deseja uma representação gráfica:

$ sudo apt-get install python-imaging python-matplotlib python-pygraphviz

Instale OpenJDK para obter todos os cabeçalhos que javabridge compila:

$ sudo apt-get install default-jdk

No meu ubuntu 14.04 tive problemas com dependência, acabei instalando o java da oracle seguindo as orientações deste site: instalando java da oracle

Finalmente você pode usar pip para instalar os pacotes Python que não estão disponíveis no repositório:

$ sudo pip install javabridge
$ sudo pip install python-weka-wrapper

Windows

Por favor note: você precisa certificar-se que os bits do seu ambiente é consistente. Isto é, se você instalar uma versão de Python 32-bit você deve instalar um JDK 32-bit e numpy 32-bit ( ou então todos eles devem ser 64-bit ).

Realize os seguintes passos:

Instale Python, esteja certo que você checou Add python.exe to path durante a instalação.

Adicione os scripts Python eu sua variável de ambiente PATH, por exemplo, :\Python27\Scripts

Instale pip com os seguintes passos:

Instale numpy

  • baixe numpy 1.9.x MKL ( ou superior ) para Python 2.7 (cp27) e sua configuração de bit (32 ou 64 bit)
  • instale o arquivo .whl usando pip: pip install numpy-X.Y.Z.whl

Instale .Net 4.0 (se já não estiver instalado)

Instale Windows SDK 7.1

Abra o prompt de comando do Windows SDK (não o prompt de comando convencional!) e instale javabridge e python-weka-wrapper

> set MSSdk=1
> set DISTUTILS_USE_SDK=1
> pip install javabridge
> pip install python-weka-wrapper

Agora você pode executar python-weka-wrapper usando o prompt de comando convencional também.

Se você deseja as funcionalidades gráficas você precisa instalar matplotlib também:

  • baixe matplotlib para Python 2.7 (cp27) e sua configuração de bit (32 or 64 bit)
  • instale o arquivo .whl usando pip: pip install matplotlib-X.Y.Z.whl

Mais informações

Como instalar o caffe ( Opcional )

Ubuntu / Windows

Para poder utilizar o classificador CNNCaffe, uma ConvNet baseada na topologia AlexNet, é necessário instalar o software Caffe.

A instalação do software Caffe é mais complexa que as instalações descritas anteriormente e pode ser encontrada detalhada no link abaixo:

Após realizar a instalação do software Caffe, para realizar a classificação, você precisa realizar o treinamento da sua rede no software, pois não há interface no Pynovisao para o treinamento da ConvNet.

O tutorial para o treinamento pode ser encontrado no link abaixo:

Por fim será necessário configurar sua CNNCaffe.

  • Para os campos ModelDef, ModelWeights e MeanImage, você deverá fornecer os caminhos relativos ao seu treinamento realizado no passo anterior.
  • Para o campo LabelsFile você deve fornecer o caminho de um arquivo que descrava nominalmente as classes na ordem 0, 1, ..., n-1, onde n é o número de classes que você treinou.
  • Um arquivo de exemplo pode ser encontrado em examples/labels.txt.