Pynovisao - Atualizando README com Caffe

parent 5743c24c
......@@ -177,3 +177,20 @@ $ sudo apt-get install tk tk-dev
- http://pythonhosted.org/python-weka-wrapper/install.html
- http://pythonhosted.org/python-weka-wrapper/troubleshooting.html
## Como instalar o caffe ( Opcional )
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.
FolhasLargas
Solo
Soja
Gramineas
\ No newline at end of file
......@@ -35,12 +35,14 @@ class CNNCaffe(Classifier):
CREATE_LMDB = False
def __init__(self):
self.model_def = Config("ModelDef", '../examples/deploy.prototxt', str)
self.model_weights = Config("ModelWeights", '../examples/caffenet_train_iter_7500.caffemodel', str)
self.mean_image = Config("MeanImage", '../examples/imagenet_mean.binaryproto', str)
self.labels_file = Config("LabelsFile", '../examples/labels.txt', str)
self._create_net()
def _create_net(self):
self.model_def = Config("ModelDef", '../examples/deploy.prototxt', str)
self.model_weights = Config("ModelWeights", '../examples/caffenet_train_iter_3000.caffemodel', str)
def _create_net(self):
self.net = caffe.Net(self.model_def.value, # defines the structure of the model
self.model_weights.value, # contains the trained weights
caffe.TEST) # use test mode (e.g., don't perform dropout)
......@@ -51,10 +53,6 @@ class CNNCaffe(Classifier):
self.transformer.set_transpose('data', (2,0,1)) # move image channels to outermost dimension
self.transformer.set_raw_scale('data', 255) # rescale from [0, 1] to [0, 255]
self.transformer.set_channel_swap('data', (2,1,0)) # swap channels from RGB to BGR
self.mean_image = Config("MeanImage", '../examples/imagenet_mean.binaryproto', str)
self.labels_file = Config("LabelsFile", '../examples/labels.txt', str)
def get_config(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment