我想使用AI技术提升图像分辨率,但Python支持的四种超分辨率模型的效果远不如在线网站。例如,这是原始图像:
使用以下代码的表现最佳的模型(EDSR)得到的结果如下:
sr = dnn_superres.DnnSuperResImpl_create()image = cv2.imread('Images/exported_image_76322.png')path = "EDSR_x3.pb"sr.readModel(path)sr.setModel("edsr", 3)result = sr.upsample(image)cv2.imwrite('ai_upscale.png', result)display_image_in_actual_size('ai_upscale.png')
像zyro.com这样的网站产生的效果要好得多:
我怎样才能提高我的结果,使其达到AI图像放大网站的质量水平?我希望自动化处理数百张图像的放大,因此仅仅使用网站是不现实的。
回答:
不同的选项:
-
如果你有原始高分辨率图像,你可以使用在线模型并在你的高分辨率图像上进行微调(即继续训练)。这是最佳解决方案,因为你的模型将在正确的数据分布上进行训练。
-
如果你无法访问原始高分辨率图像,但你认为zyro的质量足以满足你的需求,你可以使用zyro创建一个数据集,并在该数据集上对现有的超分辨率模型进行微调。
-
如果你有不属于你数据集的高分辨率图像,你可以降低它们的分辨率,并训练你的模型来恢复高分辨率,然后看看它是否能很好地泛化到你的数据集上。