引言
在我们的一生中,我们都拍摄过很多照片,但有一个问题是我最不喜欢面对的,我相信你们都一定经历过的,那就是在低光下拍摄照片。如果你没有夜视镜或者非常高端的相机,图像可能会非常模糊或者光线非常暗,这使得图像中的内容几乎看不见。
现在,如果你没有夜视相机,并且你喜欢拍照,那么这篇文章就是为你准备的,因为在这篇文章中,我将向你展示如何增强你的弱光图像,使它们清晰可见。那么让我们开始吧。
在本文中,我们将使用 MIRNet 模型进行图像增强。它用于增强弱光图像,是一个预先训练好的模型,可以直接从 Github 下载。
从Github下载模型
我们可以使用以下命令从Github克隆所需的库:
git clone https://github.com/soumik12345/MIRNet
安装 Wandb
Wandb 是用来组织和分析机器学习实验的。它与框架无关,而且比 TensorBoard 更轻量级。每次当我们使用 wandb 运行脚本时,超参数和输出指标都会被保存,并且可以进一步可视化。我们将通过运行下面给出的命令来安装它。
pip install -q wandb
导入所需的库
下一个重要步骤是导入该项目所需的所有库。
from glob import glob #
from PIL import Image #For image operations
from matplotlib import pyplot as plt #for visualization
# Importing required dependencies from MIRNet
from mirnet.inference import Inferer
from mirnet.utils import download_dataset, plot_result
import tensorflow as tf # For modelling
import numpy as np # For mathematical computation
下载数据集和预训练权重
在此步骤中,我们将下载模型的数据和预定义的权重。这将创建与我们的项目所需的预先训练的权重是一个图像增强模型。通过运行下面给出的命令,我们将完成这个步骤。
inferer = Inferer()
inferer.download_weights('1sUlRD5MTRKKGxtqyYDpTv7T3jOW6aVAL')
inferer.build_model(num_rrg=3, num_mrb=2, channels=64, weights_path='low_light_weights_best.h5')
inferer.model.summary()
接下来,我们将加载权重到模型中并保存模型。
inferer.model.save('mirnet')
现在我们需要将一个图片加载到程序中,这样我们就可以使用它来增强。
IMAGE_LOC = '/content/123.JPG' # change the name of image to you desired image
最后一步
这是最后一步,我们将把输入图像传递给模型,模型将生成增强的输出图像。下面给出的代码可以解决这个问题。
original_image, output_image = inferer.infer(IMAGE_LOC)
plot_result(original_image, output_image)
现在,你可以清楚地看到我们的模型是如何将一个低光的图像增强为一个清晰可见的图像。
· END ·
HAPPY LIFE