Неправильно предсказанный размер изображения из Предиката_Генератора для нескольких меток Unet - PullRequest
0 голосов
/ 26 марта 2020

Я использую аэрофотоснимки для сегментирования дороги и центральной линии, используя мульти-метку u- net, мой тестовый генератор выглядит следующим образом

def testGenerator(test_path= "data\\membrane\\test\\image",num_image = 1584,target_size = (224,224),flag_multi_class = False,as_gray = False):
for i in range(num_image):
    img = io.imread(os.path.join(test_path,"%d.jpg"%i),as_gray = as_gray)
    img = img / 255.
    img = trans.resize(img,target_size)
    img = np.reshape(img,img.shape) if (not flag_multi_class) else img
    img = np.reshape(img,(1,)+img.shape)
    yield img

на основе Unet

когда я пытаюсь получить предсказание от Предиката_генератора, как показано в коде ниже

 testGene = testGenerator("data\\membrane\\test\\image")results =model.predict_generator(testGene,1584,verbose=1)saveResult("data\\membrane\\tes\\results",results)`

Я использовал для визуализации эту часть кода:

def labelVisualize(num_class,color_dict,img):
    img = img[:,:,0] if len(img.shape) == 3 else img
    img_out = np.zeros(img.shape + (3,))
    for i in range(num_class):
        img_out[img == i,:] = color_dict[i]
    return img_out / 255

def saveResult(save_path,npyfile,flag_multi_class = False,num_class = 2):
    for i,item in enumerate(npyfile):
        img = labelVisualize(num_class,COLOR_DICT,item) if flag_multi_class else item[:,:,0]
        io.imsave(os.path.join(save_path,"%d_predict.tif"%(i)),skimage.img_as_ubyte(img))

Я столкнулся три проблемы:

1 - несмотря на то, что у меня есть 1584 изображения в качестве моего тестового образца, где batch_size = 1 Я получил только 2 прогнозируемых изображения по одному для каждого класса (дорога и осевая линия) процессgnastt_generator

2- мой целевой размер (224,224), но для прогноза у меня есть размер изображения (224,1584).

3 - прогноз неясен для обоих классов, как показано на изображениях первое изображение в тестовом наборе , предсказано_1 , предсказано_2

у всех есть идеи, где моя ошибка, пожалуйста, любая помощь будет оценена, спасибо в авансовый.

...