使用CV2调整图像大小会冻结Lasagne / theano进行预测计算

时间:2016-05-01 21:22:55

标签: python opencv numpy theano lasagne

我使用自己的自定义数据集训练了CNN,其中使用PIL库完成了数据集图像的调整。现在,当我尝试预测数据集中输入图像的标签时,它可以正常工作。我在CNN课程中预测的功能如下:

def predict(self, X):

    X = np.asarray(X, dtype=np.float32)

    if self.pred is None:
        try:
            self.pred = theano.function([self.input_var], T.argmax(self.get_output(network=self.network, deterministic=True), axis=1))

        except:
            print("failed")
    else:
        pass

    dim = X.ndim
    if dim == 3:
        X = X[newaxis,:,:,:]
    elif dim == 2:
        X = X[newaxis, newaxis, :, :]
    else:
        pass

    try:
        predicted_label = self.pred(X)
        return int(predicted_label)
    except:
        print("failed")

这是从主要人员这样称呼的:

 [bilder, label, names] = read_images1(dataset_path, sz=im_size, na=False)

bilder = np.asarray(bilder, dtype=np.float32)
print("The shape of bilder is; number of images: {}, height: {}, width: {}".format(bilder.shape[0], bilder.shape[1], bilder.shape[2]))

pred = model.predict(bilder[0])
print("Predicted label for image is: {}".format(pred))
bilder1 = bilder[0]
#bilder1 = cv2.resize(bilder1, (58, 58), interpolation=cv2.INTER_CUBIC)

pred1 = model.predict(bilder[400])
print("Predicted label for image is: {}".format(pred1))

bilder几乎是一个有形状的数组(图像,高度,宽度),如果我运行代码,输出如下:

 The shape of bilder is; number of images: 442, height: 58, width: 58
 Predicted label for image is: 3
 Predicted label for image is: 39

 Process finished with exit code 0

请注意:

 #bilder1 = cv2.resize(bilder1, (58, 58), interpolation=cv2.INTER_CUBIC)

是评论而未使用。现在,如果我发表评论,我得到以下输出:

 The shape of bilder is; number of images: 442, height: 58, width: 58
 Predicted label for image is: 3

意味着在我自己停止代码之前它会卡在这一部分上:

    try:
        predicted_label = self.pred(X)
        return int(predicted_label 

我根本不明白。存储在bilder1中的图像甚至没有在预测中使用,因为它只是存储在bilder1中,然后当我继续尝试在bilder中预测图像nr 400时它会卡住..这只是一个测试,因为我试图做直播通过网络摄像头识别,在调整面部图像大小后出现同样的问题。

编辑:问题似乎与使用cv2库对图像所做的任何更改一致。这些图像是否在神经网络中使用似乎并不重要。

0 个答案:

没有答案