Я использую автоэнкодер для шумоподавления полутоновых изображений высокого разрешения. Каждое изображение делится на субпакеты определенного размера, например 52 x 52
, и модель работает с каждым из этих пакетов, в результате чего результатом является конкатенация пакетов с шумоподавлением в каждом изображении обратно к исходному. Ниже приведен пример изображения после результата:
Пакеты деноминированные
Вы можете увидеть меньшие пакеты изображений после объединения. Как преодолеть такое поведение?
Я думал о дальнейшей обработке, например о добавлении размытия к краям, чтобы смешать их вместе, но я думаю, что это не оптимальное решение.
код конкатенации:
num_hor_patch = 19
num_ver_patch = 26
print("Building the Images Batches")
for i in range(num_image):
reconstruct = []
for j in range(num_hor_patch):
from_vertical_patches = predictions[start_pos:(start_pos+num_ver_patch)]
horizontal_patch = np.concatenate(from_vertical_patches, axis=1)
start_pos += num_ver_patch
reconstruct.append(horizontal_patch)
restored_image = np.concatenate(np.array(reconstruct), axis=0)
output.append(restored_image)
start_pos = 0
test_data = np.array([np.reshape(test_data[i], (52, 52)) for i in range(test_data.shape[0])])
for i in range(num_image):
reconstruct = []
for j in range(num_hor_patch):
from_vertical_patches = test_data[start_pos:(start_pos+num_ver_patch)]
horizontal_patch = np.concatenate(from_vertical_patches, axis=1)
start_pos += num_ver_patch
reconstruct.append(horizontal_patch)
restored_image = np.concatenate(np.array(reconstruct), axis=0)
input.append(restored_image)
start_pos = 0
test_noisy_data = np.array([np.reshape(test_noisy_data[i], (52, 52)) for i in range(test_noisy_data.shape[0])])
for i in range(num_image):
reconstruct = []
for j in range(num_hor_patch):
from_vertical_patches = test_noisy_data[start_pos:(start_pos+num_ver_patch)]
horizontal_patch = np.concatenate(from_vertical_patches, axis=1)
start_pos += num_ver_patch
reconstruct.append(horizontal_patch)
restored_image = np.concatenate(np.array(reconstruct), axis=0)
noisy.append(restored_image)
print("Exporting the Model")
output_model['output'] = output
output_model['original'] = input
output_model['noisy'] = noisy