README.md 7.22 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# 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
  ```
  
  ```
18
  $ python main.py
19 20
  ```

21
- Uma imagem como a mostrada abaixo deve ser apresentada:
22

23 24 25 26 27 28 29
    ![pynovisao](data/pynovisao.png)
    
## Outras Opções

- Mostra todas as opções disponíveis

  ```
30
  $ python main.py --help
31 32 33 34
  ```
- Executa o programa inicializando o banco de imagens em *../data/soja*

  ```
35
  $ python main.py --dataset ../data/soja
36 37 38 39
  ```
- Executa o programa definindo as classes e suas respectivas cores (X11 color names)

  ```
40
  $ python main.py --classes "Solo Soja Gramineas FolhasLargas" --colors "Orange SpringGreen RebeccaPurple Snow"
41 42
  ```

43 44 45 46 47 48 49 50

## Dependências - Aplicação base - Python

### Linux
- kubuntu trusty 14.04.2 TLS
- Python 2.7.6 
- scikit-image
- Opencv 2.7
51
- tk/tk-dev
52
- python-weka-wrapper ( Classification )
53 54 55 56

### Windows

- Instale o [Anaconda](http://continuum.io/downloads) que contém todas dependências, inclusive o Python. Basta fazer o download do arquivo .exe e executá-lo.
57 58
- Opencv 2.7
- python-weka-wrapper ( Classification )
59 60 61 62

## Como instalar o OpenCV 

### Linux
63 64 65 66
Seguir as instruções disponíveis em [OpenCV-Linux](http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation). Lí em algum lugar que dá para instalar com o comando abaixo, não testei mas pode funcionar:
```
$ sudo apt-get install python-opencv
```
67

68
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).
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

### Windows
 - [OpenCV-Python](https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows).
	1. Baixe o [Opencv](https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows)
	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
  ```

97
## Como instalar o tk/tk-dev
98 99 100

### Ubuntu 

101 102 103
```
$ sudo apt-get install tk tk-dev
```
104
    
105
Na ocorrência do erro 'cannot import name _tkagg', tentar os seguintes comandos:
106
    
107 108 109 110 111
```
$ sudo apt-get install tk tk-dev
$ sudo pip uninstall matplotlib
$ sudo pip install matplotlib
```
112

113 114
Se der erro na reinstalação do matplotlib (depois que desinstalar), tente desinstalar também pelo apt-get:
$ sudo apt-get remove python-matplotlib
115 116


117 118 119
## Mais informações
    
- http://www.tkdocs.com/tutorial/install.html
120 121 122 123 124 125


## Como instalar o python-weka-wrapper ( Opcional )

### Ubuntu 

126 127 128 129
Primeiro você precisa compilar os código C/C+ e os módulos Python:
```
$ sudo apt-get install build-essential python-dev
```
130

131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
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](http://askubuntu.com/questions/521145/how-to-install-oracle-java-on-ubuntu-14-04)

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
```
153 154 155
    
### Windows

156
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 ).
157

158
Realize os seguintes passos:
159

160 161 162 163 164
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:
    * baixe daqui https://bootstrap.pypa.io/get-pip.py
    * instale usando python get-pip.py
165

166 167 168
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
169

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

172
Instale Windows SDK 7.1
173

174 175 176 177 178 179 180 181 182 183 184
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
185 186 187 188 189
    
## Mais informações

- http://pythonhosted.org/python-weka-wrapper/install.html
- http://pythonhosted.org/python-weka-wrapper/troubleshooting.html
190 191 192 193


## Como instalar o caffe ( Opcional )

194 195 196 197 198 199 200 201 202 203 204 205 206
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:
-  http://caffe.berkeleyvision.org/installation.html

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:
- http://caffe.berkeleyvision.org/gathered/examples/imagenet.html

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.