проблема самообеспечения при сохранении изображений в наборе данных в python - PullRequest
1 голос
/ 24 февраля 2020

Я предоставляю набор данных для изучения CNN, используя увеличение данных, чтобы обнаружить soduko на большом изображении. мой набор данных использует функцию обнаруженного края для изучения CNN. На первом шаге я написал загрузчик данных, чтобы получить изображения и сохранить их в n-мерном массиве numpy (X).

def load_data(n):
X = np.ndarray((n, datasize, datasize,1) )
Y = []
truenumber = 1
falsenumber = 1
for i in range(n):
    if i % int((n/100)) == 0 :
        print("{} precent of data loaded".format(int(i / n * 100)))

    rnd = np.random.randint(8360)

    if rnd < 4000:
        pic = cv2.imread('F:\edu\machine vision projects\soduko with CNN\TrainSet\True\{}.png'.format(truenumber) , cv2.IMREAD_GRAYSCALE)
        pic = np.resize(pic, (datasize,datasize))
        truenumber += 1
        if truenumber > 6380: continue
        Y.append(1)
        for a in range(datasize):
            for b in range(datasize):
                X[i,a,b,0] = pic[a,b]

    else:
        pic = cv2.imread('F:\edu\machine vision projects\soduko with CNN\TrainSet\False\{}.png'.format(falsenumber) , cv2.IMREAD_GRAYSCALE)
        pic = np.resize(pic, (datasize,datasize))
        if falsenumber > 2080: continue
        falsenumber += 1
        Y.append(0)
        for a in range(datasize):
            for b in range(datasize):
                X[i, a, b, 0] = pic[a, b]

Y = np.asarray(Y)

return X , Y

, поскольку вы видите, что метод сохранения ложных и истинных данных - это все то же самое, но здесь у нас есть: два примера возвращенных изображений True и False

, поскольку вы видите это для истинных чисел, это делает своего рода порог, как это не должно быть. Кто-нибудь может знать, почему?

...