我正在开发一种CNN模型,以识别24种美国手语手势。我有2500张图片/手势。数据拆分为:
训练= 1250张图像/手势
验证= 625张图像/手势
测试= 625张图像/手势
我应该如何进行模型训练?:
1.我应该从较少的手势(例如5)开始开发模型,然后逐渐增加手势吗?
2.我应该从头开始建立模型还是使用迁移学习(VGG16或其他)
应用数据扩充,我对VGG16进行了一些测试,并在最后添加了一个密集分类器,并获得了以下准确性:
火车:0.87610877
验证:0.8867307
测试:0.96533334
测试参数:
NUM_CLASSES = 5
EPOCHS = 50
STEPS_PER_EPOCH = 125
VALIDATION_STEPS = 75
TEST_STEPS = 75
框架= Keras,Tensorflow
OPTIMIZER =亚当
型号:
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(IMG_HEIGHT, IMG_WIDTH ,3)),
MaxPooling2D(pool_size=(2,2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2,2)),
Conv2D(128, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2,2)),
Conv2D(256, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2,2)),
Conv2D(512, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2,2)),
Flatten(),
Dense(512, activation='relu'),
Dense(NUM_CLASSES, activation='softmax')
])
如果我尝试使用背景稍有不同的图像并预测类别(predict_classes()),则不会获得准确的结果。有关如何使模型更健壮的任何建议?