整理训练数据中的图片以训练cnn(alexnet)

时间:2017-10-27 14:02:58

标签: python conv-neural-network training-data cv2

我正在使用模拟nes游戏(f1赛车手)的镜头训练亚历山大,以进一步让它自己玩游戏。

现在,虽然我正在捕捉训练数据,但在灰色像素值(如同相同区域的浅黄色到黑色)时,游戏的背景正在发生重大变化。是否有一个函数(可能是cv2?)或算法让我比较像素值(如果可能的话,在特定区域)?

也许我完全错了,这确实有助于网络减少一些,有些提示会很好,因为我甚至不确定这是不是真正的噪音 - 我必须要测试。到目前为止,我只将它们转换为灰色,将它们调整为160 * 120并平衡所需输出的帧数(大部分是向前)。

董事会告诉我,经过220/1700次训练后,网络停止获得准确率(~75%),并且损失也停止下降。

图片示例:

#0

#1

1 个答案:

答案 0 :(得分:0)

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

    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))

这给了我一个相当不错的结果。

原始图片(来自流):

original picture (from stream)

旧图像处理(仅限rgb2gray):

old image processing (only rgb2gray and resize)

处理后的新图像:

new picture after processing

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

accuracy