我有一些非常低质量的图像,这些图像需要用于人脸识别,但由于质量太低,很难进行检测。我想使用深度学习/机器学习技术来提升图像的质量。我研究过SRCNN、感知损失、SRResNet和SRGAN,但大多数超分辨率技术都需要原始图像来提升图像质量。所以我的问题是,有没有不需要使用原始图像就能提升图像质量的深度学习技术?
回答:
你不需要重新训练像SRGAN这样的深度学习模型来提升图像质量,你可以使用预训练的模型。
以下是在你的图像上运行模型得到的结果,请注意这些是通用模型,结果会根据所处理的图像有所不同
这里是另一个不同低分辨率图像的例子,在这个例子中可以明显看出差异
如果你正在寻找使用OpenCV预训练模型进行超分辨率的实际实现,请查看下面的笔记本和描述细节的视频。
https://www.youtube.com/watch?v=JrWIYWO4bac&list=UUplf_LWNn0a9ubnKCZ-95YQ&index=4
以下是描述OpenCV库细节的示例代码
model_pretrained = cv2.dnn_superres.DnnSuperResImpl_create()# 设置模型初始化model_pretrained.readModel(filemodel_filepath)model_pretrained.setModel(modelname, scale)# 预测或放大img_upscaled = model_pretrained.upsample(img_small)