README.md 7.94 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
# 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:

13 14 15 16 17 18 19
```
 $ cd src
```

```
 $ python main.py
```
20

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

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

- Mostra todas as opções disponíveis

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

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

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

Gabriel Kirsten's avatar
Gabriel Kirsten committed
43 44 45 46 47 48 49 50 51 52 53 54 55
## Como instalar (opção 1, somente linux)
### Linux
Você pode instalar utilizando o script de instalação realizando os seguintes passos:

- Na pasta raiz do projeto, execute o comando abaixo para ceder a permissão de execução no script de instalação.
```
$ sudo chmod a+x INSTALL.sh
``` 
 
- Execute o script de instalação.
```
$ sudo ./INSTALL.sh
```
56

Gabriel Kirsten's avatar
Gabriel Kirsten committed
57
O script de instalação foi testado na versão 16.04 do Ubuntu.
58

Gabriel Kirsten's avatar
Gabriel Kirsten committed
59 60 61 62 63 64 65 66

## Como instalar (opção 2, sem o script)

### Dependências
#### Linux

Será necessário instalar:
- Python 2.7.6
67
- Opencv 2.7
68
- tk/tk-dev
Gabriel Kirsten's avatar
Gabriel Kirsten committed
69 70 71 72 73 74 75 76 77 78

As bibliotecas necessárias podem ser encontradas no arquivo __requeriments.txt__ na raiz do projeto, utilize o comando __pip__ para instalar.
- Instalação do pip:
```
$ sudo apt-get install python-pip
```
- Instação das bibliotecas:
```
pip install -r requeriments.txt
```
79 80 81 82

### 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.
83 84
- Opencv 2.7
- python-weka-wrapper ( Classification )
85

Gabriel Kirsten's avatar
Gabriel Kirsten committed
86 87 88
### Como instalar o OpenCV 

#### Linux (caso pip não funcione)
89

90 91
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:
```
92
 $ sudo apt-get install python-opencv
93
```
94

95
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).
96

Gabriel Kirsten's avatar
Gabriel Kirsten committed
97 98
#### Windows

99 100 101 102 103 104 105 106 107 108 109 110 111
 - [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__
      ```

Gabriel Kirsten's avatar
Gabriel Kirsten committed
112
### Como instalar scikit-image e arff (caso pip não funcione)
113
```
114 115 116
 $ 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
117 118
```

119 120 121 122 123
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
```
124

Gabriel Kirsten's avatar
Gabriel Kirsten committed
125
### Como instalar o tk/tk-dev
126

Gabriel Kirsten's avatar
Gabriel Kirsten committed
127
#### Ubuntu 
128

129
```
130
 $ sudo apt-get install tk tk-dev
131
```
132
    
133
Na ocorrência do erro 'cannot import name _tkagg', tentar os seguintes comandos:
134
    
135
```
136 137 138
 $ sudo apt-get install tk tk-dev
 $ sudo pip uninstall matplotlib
 $ sudo pip install matplotlib
139
```
140

141
Se der erro na reinstalação do matplotlib (depois que desinstalar), tente desinstalar também pelo apt-get:
142 143 144
```
 $ sudo apt-get remove python-matplotlib
```
145

Gabriel Kirsten's avatar
Gabriel Kirsten committed
146
### Mais informações
147 148
    
- http://www.tkdocs.com/tutorial/install.html
149 150


Gabriel Kirsten's avatar
Gabriel Kirsten committed
151
### Como instalar o python-weka-wrapper ( Opcional )
152

Gabriel Kirsten's avatar
Gabriel Kirsten committed
153
#### Ubuntu (caso pip não funcione) 
154

155 156 157 158
Primeiro você precisa compilar os código C/C+ e os módulos Python:
```
$ sudo apt-get install build-essential python-dev
```
159

160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
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
```
182
    
Gabriel Kirsten's avatar
Gabriel Kirsten committed
183
#### Windows
184

185
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 ).
186

187
Realize os seguintes passos:
188

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

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

193
Instale pip com os seguintes passos:
194 195
- baixe daqui https://bootstrap.pypa.io/get-pip.py
- instale usando python get-pip.py
196

197
Instale numpy
198 199
- 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
200

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

203
Instale Windows SDK 7.1
204

205
Abra o prompt de comando do Windows SDK (não o prompt de comando convencional!) e instale javabridge e python-weka-wrapper
206 207 208 209 210 211
```
> set MSSdk=1
> set DISTUTILS_USE_SDK=1
> pip install javabridge
> pip install python-weka-wrapper
```
212 213 214 215

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:
216 217
- 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
218
    
Gabriel Kirsten's avatar
Gabriel Kirsten committed
219
#### Mais informações
220 221 222

- http://pythonhosted.org/python-weka-wrapper/install.html
- http://pythonhosted.org/python-weka-wrapper/troubleshooting.html
223 224


Gabriel Kirsten's avatar
Gabriel Kirsten committed
225
### Como instalar o caffe ( Opcional )
226

Gabriel Kirsten's avatar
Gabriel Kirsten committed
227
#### Ubuntu / Windows
228

229 230 231 232 233 234
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.
235

236 237 238 239
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.
240 241 242
- 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.