mathDR / reading-text-in-the-wild

A Keras/Theano implementation of "Reading Text in the Wild with Convolutional Neural Networks" by M Jaderberg et.al.
GNU General Public License v3.0
116 stars 30 forks source link

Multiple images for testing #18

Open gaurav16gupta opened 7 years ago

gaurav16gupta commented 7 years ago

Hi, How can I pass multiple images as batch while testing? I made these changes in _usedictnet.py line 44, just to check if I can provide multiple images.

def classify_image(self,img):
img = self._preprocess(img) xtest = zeros((1,2,32,100)) xtest[0,0,:,:] = img xtest[0,1,:,:] = img z = self.model.predict_classes(xtest,verbose=0)[0] return self.output_word[z][0]

I get the following error:

Traceback (most recent call last): File "use_dictnet.py", line 62, in print (cnn_model.classify_image(img)) File "use_dictnet.py", line 49, in classify_image z = self.model.predict_classes(xtest,verbose=0)[0] File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/models.py", line 747, in predict_classes proba = self.predict(X, batch_size=batch_size, verbose=verbose) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/models.py", line 716, in predict return self._predict_loop(self._predict, X, batch_size, verbose)[0] File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/models.py", line 359, in _predict_loop batch_outs = f(ins_batch) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/backend/theano_backend.py", line 473, in call return self.function(*inputs) File "/usr/local/lib/python2.7/dist-packages/theano/compile/function_module.py", line 898, in call storage_map=getattr(self.fn, 'storage_map', None)) File "/usr/local/lib/python2.7/dist-packages/theano/gof/link.py", line 325, in raise_with_op reraise(exc_type, exc_value, exc_trace) File "/usr/local/lib/python2.7/dist-packages/theano/compile/function_module.py", line 884, in call self.fn() if output_subset is None else\ ValueError: CorrMM images and kernel must have the same stack size

Apply node that caused the error: CorrMM{half, (1, 1), (1, 1)}(<TensorType(float32, 4D)>, Subtensor{::, ::, ::int64, ::int64}.0) Toposort index: 15 Inputs types: [TensorType(float32, 4D), TensorType(float32, 4D)] Inputs shapes: [(1, 2, 32, 100), (64, 1, 5, 5)] Inputs strides: [(25600, 12800, 400, 4), (100, 100, -20, -4)] Inputs values: ['not shown', 'not shown'] Outputs clients: [[Elemwise{Composite{(i0 * ((i1 + i2) + Abs((i1 + i2))))}}[(0, 1)](TensorConstant{(1, 1, 1, 1) of 0.5}, CorrMM{half, (1, 1), (1, 1)}.0, InplaceDimShuffle{x,0,x,x}.0)]]

Backtrace when the node is created(use Theano flag traceback.limit=N to make it longer): File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/layers/convolutional.py", line 683, in get_output X = self.get_input(train) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/layers/core.py", line 241, in get_input previous_output = self.previous.get_output(train=train) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/layers/convolutional.py", line 310, in get_output X = self.get_input(train) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/layers/core.py", line 241, in get_input previous_output = self.previous.get_output(train=train) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/layers/convolutional.py", line 683, in get_output X = self.get_input(train) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/layers/core.py", line 241, in get_input previous_output = self.previous.get_output(train=train) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/layers/convolutional.py", line 315, in get_output filter_shape=self.W_shape) File "/home/gaurav/deeplearning/TEXT/reading-text-in-the-wild/DICT2/keras/backend/theano_backend.py", line 719, in conv2d filter_shape=filter_shape)