我建立一个模型来检测的身体部位的关键点。为此,我使用COCO数据集(http://cocodataset.org/#download)。我试图理解为什么我会遇到过度劳累的问题(训练损失趋于一致,但为了测试损失,我真的达到了上限)。在模型中,我已经尝试添加差(逐渐更高的概率增加更多层的多层,但我很快得到一个点时,训练停止损失减少是一样糟糕。我的理论是,该模型我用ISN” T个复不够好,但我想知道这是可能的原因,或者它可能是别的东西。我在网上找到的所有型号都非常深(30+层)。关键点模型过拟合问题(检测腕,肘,肩等)
数据
我使用万个RGB图像各自有一个人在里面。他们每个人都有不同的大小,但640的长度和宽度的最大值。作为预处理步骤,我尽一切图像大小640x640填充任何额外的面积(底部和(0,0,0)或黑色。
目标
完整的数据集有许多关键点,但我只是在右肩,右肘,右手腕有兴趣。每个身体部位有2个关键点(X坐标和Y坐标),所以我的目标是长度为6
型号
activation_function = 'relu'
batch_size = 16 # ##
epoch_count = 40 # ##
loss_function = 'mean_squared_error'
opt = 'adam'
model = Sequential()
model.add(Conv2D(filters=16, kernel_size=(3, 3), input_shape=inp_shape))
# model.add(Conv2D(filters=16, kernel_size=(3, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(filters=32, kernel_size=(3, 3)))
# model.add(Conv2D(filters=32, kernel_size=(3, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(300, activation=activation_function))
model.add(Dropout(rate=0.1))
model.add(Dense(300, activation=activation_function))
model.add(Dense(num_targets))
model.summary()
model.compile(loss=loss_function, optimizer=opt)
hist = model.fit(x_train, y_train, batch_size=batch_size, epochs=epoch_count,
verbose=verbose_level,
validation_data=(x_valid, y_valid))