Python 改进神经网络识别手语
我有一个1680个手语示例图像的数据集。 数据集分为7个用户,每个用户执行24个英文字母中的每一个10次(不含J和Z)。 我的目标是确定提交的是哪封信 我选择了6个用户进行培训,一个用户进行测试 我的神经网络如下所示:Python 改进神经网络识别手语,python,keras,neural-network,Python,Keras,Neural Network,我有一个1680个手语示例图像的数据集。 数据集分为7个用户,每个用户执行24个英文字母中的每一个10次(不含J和Z)。 我的目标是确定提交的是哪封信 我选择了6个用户进行培训,一个用户进行测试 我的神经网络如下所示: model = keras.models.Sequential() model.add(keras.layers.Conv2D(32, (5, 5), input_shape=(128, 128, 3))) model.add(BatchNormalization()) mod
model = keras.models.Sequential()
model.add(keras.layers.Conv2D(32, (5, 5), input_shape=(128, 128, 3)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(keras.layers.Conv2D(64, (5, 5)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(keras.layers.Conv2D(128, (5, 5)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(BatchNormalization())
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(512))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.Dense(24))
model.add(keras.layers.Activation('softmax'))
x_train, x_test, y_train, y_test = split_train_test(images, users)
opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)
model.compile(loss='categorical_crossentropy',
optimizer=opt,
metrics=['accuracy'])
history = model.fit(x_train, y_train, batch_size=30, epochs=10,
validation_data=(x_test, y_test)
).history
但我得到的最佳准确率是80%。
有什么改进的办法吗
model = keras.models.Sequential()
model.add(keras.layers.Conv2D(32, (5, 5), input_shape=(128, 128, 3)))
model.add(keras.layers.Conv2D(32, (5, 5)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(keras.layers.Conv2D(64, (5, 5)))
model.add(keras.layers.Conv2D(64, (5, 5)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(keras.layers.Conv2D(128, (3, 3)))
model.add(keras.layers.Conv2D(128, (3, 3)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(BatchNormalization())
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(512))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.Dense(24))
model.add(keras.layers.Activation('softmax'))
ImageDataGenerator
从您已有的图像创建新图像。这样,您的模型将拥有更多的数据,并可能获得更高的准确性
下面是这个keras类的链接:这是一个非常有趣的问题。我不确定你是否会在StackOverflow上找到人回答你——也许在你工作的时候去拜访一下。祝你好运@尤西比乌斯:这不是对你问题的直接回答,但值得注意的是,你在这里所说的识别是指法拼写(对拼写出来的单词进行手动编码),而不是手语(包括更多)。此外,手语流利的用户不太可能在示例图像集中以接近清晰度的方式拼写每个字母;在一个单词中,从一个字母“滑动”到下一个字母是很常见的,但没有明显的字母分隔,这与即使字母的中心部分模糊,您也可以通过其形状来识别整个书面单词的方式相似。