Вывод изображения с помощью модели CycleGan из репозитория с открытым исходным кодом CycleGAN-and-pix2pixPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Вывод изображения с помощью модели CycleGan из репозитория с открытым исходным кодом CycleGAN-and-pix2pix

Сообщение Anonymous »

Я обучил модель CycleGan в Google Colab в соответствии с API с открытым исходным кодом CycleGAN-and-pix2pix.
Для процесса обучения я использовал !python train.py --dataroot /content/drive/MyDrive/project/ dataset --name F2F --model Cycle_gan --display_id -1
Чтобы вывести набор изображений из папки, которую я использовал

Код: Выделить всё

opt = TestOptions()
#defined options occurs here
dataset = create_dataset(opt)
Initialize the model
model = create_model(opt)
model.setup(opt)
model.eval()
data_iter = iter(dataset.dataloader)
data_dict = next(data_iter)
input_image_tensor = data_dict['A']
data = {'A': input_image_tensor,'A_paths': ''}
model.set_input(data)
model.test()
visuals = model.get_current_visuals()
output_image = visuals['fake']
output_image_np = output_image.squeeze().cpu().numpy().transpose(1, 2, 0)
output_image_np = ((output_image_np - output_image_np.min()) / (output_image_np.max() - output_image_np.min()) * 255).astype(np.uint8)
output_image_np = cv2.cvtColor(output_image_np, cv2.COLOR_BGR2RGB)
cv2_imshow(output_image_np)

Приведенный выше фрагмент работал должным образом и дал хорошие результаты.
Теперь я хотел бы вывести одно изображение, не проходя через загрузчик.< /p>
Я попытался имитировать предварительную обработку изображения внутри create_dataset(opt), которая является функцией API, используя этот код:

Код: Выделить всё

def preprocess(image):
if image.ndim == 2 or image.shape[2] == 1:
image = cv2.cvtColor(image, cv2.COLOR_GRAY2RGB)
elif image.shape[2] == 4:
image = cv2.cvtColor(image, cv2.COLOR_BGRA2BGR)
elif image.shape[2] == 3:
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
pil_image = transforms.ToPILImage()(image)
transform_pipeline = transforms.Compose([
transforms.Resize(286),
transforms.CenterCrop(256),
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])
image_tensor = transform_pipeline(pil_image)
image_tensor = image_tensor.unsqueeze(0)

return image_tensor

Код: Выделить всё

input_image = cv2.imread('/content/drive/MyDrive/dataset/testA/image_1.jpg')
input_image_tensor = preprocess(input_image)
data = {'A': input_image_tensor,'A_paths': ''}
model.set_input(data)
model.test()
visuals = model.get_current_visuals()
output_image = visuals['fake']
output_image_np = output_image.squeeze().cpu().numpy().transpose(1, 2, 0)
output_image_np = ((output_image_np - output_image_np.min()) / (output_image_np.max() - output_image_np.min()) * 255).astype(np.uint8)
output_image_np = cv2.cvtColor(output_image_np, cv2.COLOR_BGR2RGB)
cv2_imshow(output_image_np)
Но сгенерированные изображения очень размыты и не дают точно настроенных результатов, как это было при использовании загрузчика из функции create_dataset(opt).
Любая помощь буду очень признателен за то, как я могу этого добиться!

Подробнее здесь: https://stackoverflow.com/questions/786 ... ource-repo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»