我建立一個模型來檢測的身體部位的關鍵點。爲此,我使用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))