整理训练数据中的图片来训练一个cnn(alexnet)

sorting out pictures in training data to train a cnn (alexnet)

我正在用玩模拟 nes 游戏 (f1 racer) 的镜头训练 alexnet,进一步让它自己玩游戏。

现在,当我捕获训练数据时,当涉及到灰色像素值时,游戏背景发生了很大变化(例如相同区域的浅黄色到黑色)。是否有函数(也许是 cv2?)或算法可以让我比较图片的像素值(如果可能,在特定区域)?

也许我完全错了,这确实有助于网络减少过度拟合,一些提示会很好,正如我所说,我什至不确定那是否是真正的噪音 - 我将不得不测试。到目前为止,我只将它们转换为灰色,将它们的大小调整为 160*120 并平衡具有所需输出的帧数(主要是向前)。

tf board 告诉我,在 220/1700 个训练步骤之后,网络停止获得准确度(~75%),损失也停止减少。

图片示例:

我正在处理图像,如下所示:

    screen = grab_screen(region=(100, 100, 348, 324))
    processed_img = cv2.cvtColor(screen, cv2.COLOR_BGR2GRAY)
    processed_img = cv2.Canny(processed_img, threshold1=200, threshold2=300)

    kernel = np.ones((2, 2), np.uint8)
    processed_img = cv2.dilate(processed_img, kernel,iterations = 1)
    processed_img = processed_img[120:248, :]
    processed_img = cv2.resize(processed_img, (160, 60))

这已经给了我一个很好的结果。

原图(来自流):

旧图处理(仅rgb2gray):

处理后的新图片:

训练结果: 橙色线......用旧图像训练 蓝线...使用新处理的图像进行训练