预测图像分类中单个图像的类标签



我正在使用深度学习神经网络设计静态手势识别。 我从 kaggle - https://www.kaggle.com/ranjeetjain3/deep-learning-using-sign-langugage/notebook#Sign-Language 上的这个实现开始。 这看起来很高的准确性,但是当我尝试预测自定义图像时,我得到的结果是错误的。作为一个新手,我怀疑我的解释,需要帮助。

以下是我的预测代码:

import matplotlib.image as mpimg 
import matplotlib.pyplot as plt 
# Read Images 
infer_image = mpimg.imread('D:\Mayuresh\DL using SL MNIST\input\infer\7.png') 
plt.imshow(infer_image) 
# Resizing before the prediction
infer_image = np.resize(infer_image, (28,28,1))
infer_image_arr = np.array(infer_image)
infer_image_arr = infer_image_arr.reshape(1,28,28,1)
# Prediction
y_pred = model.predict_classes(infer_image_arr)
print(y_pred)
# Dictionary for translation
my_dict2 = {
0: 'a',
1: 'b',
2: 'c',
3: 'd',
4: 'e',
5: 'f',
6: 'g',
7: 'h',
8: 'i',
9: 'k',
10: 'l',
11: 'm',
12: 'n',
13: 'o',
14: 'p',
15: 'q',
16: 'r',
17: 's',
18: 't',
19: 'u',
20: 'v',
21: 'w',
22: 'x',
23: 'y'
}
my_dict2[int(y_pred)]

有人可以建议所需的更改或片段来预测一张图像的手势吗?

我假设你没有为你的项目训练任何东西,而是使用Kaggle站点中给出的神经网络权重。

这看起来很高的准确性,但是当我尝试预测自定义图像时,我得到的结果是错误的。

似乎您使用的网络过度拟合到MNIST数据集。所以当你给出不同的图像时,它会给出不好的结果。

您应该做的是创建一个手势数据集,其中包含许多情况,尤其是您要检测的情况。然后,您应该使用此新创建的数据集使用当前权重作为训练的初始权重来训练网络。您的网络应该学习不同的手势情况。提高项目准确性的关键点是使用类似于推理输入的不同手势图像训练网络。

我相信你需要一个代码库,你可以在你生成的数据集上训练你的模型。基于您的背景、灯光设置等。这比使用预先训练的模型要好,该模型根据来自不同分布的数据进行训练

我建议使用它,您可以在其中启动视频源,并且将自动为手势拍摄训练图像。您还可以选择所需的类数。这可以提高您的表现。或者,您可以使用原始代码Emojinator,它可以检测13个手势

最新更新