开源 | 用深度学习让你的照片变得美丽
共 2222字,需浏览 5分钟
·
2022-11-24 21:10
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
在挑选手机时,手机摄像头往往是我们考虑的重要因素之一,但目前很多手机拍出来的照片效果不尽如人意。如何用深度学习的方法美化照片?George Seif 发表了一篇文章,是关于如何自动增强低质量相机拍摄的照片,大家快来实战吧~
照相是一项很棒的技术。它让我们能够保存自己的记忆,当看到照片中的景色时,我们可以重新体验它们。
这项技术在过去的几年里取得了长足的进步。随着 4K、HDR 和彩色增强等各种新功能的出现,您可以拍摄出令人惊叹的照片。
但它确实是有代价的。不是每个人都买得起最好的相机。DSLR 相机的价格从几百美元到几千美元不等。不仅如此,也不是每个人都能用这些相机拍出好的照片,毕竟我们并不都是专业摄影师!
我们大多数人拍照用的是智能手机,但与高端 DSLR 相比,智能手机拍摄的照片通常非常平淡。
深度学习改变了这一切。
美化你的照片
来自苏黎世 ETH 计算机视觉实验室的研究展示了如何自动增强低质量相机拍摄的照片,使它们看起来像是由专业摄影师用 DSLR 拍摄的。他们是这样做的:
该团队首先收集了一组低质量(来自手机)和高质量(来自 DSLR)照片作为数据集,您可以从项目页面下载这些照片。这正是我们需要的用于这种增强任务的数据:输入低质量的图像(来自手机)并让深度网络尝试预测高质量版本(来自 DSLR)的样子。
一个图像有几个我们可能想要增强的属性:灯光、颜色、纹理、对比度和清晰度。深度网络经过训练,可以利用四种不同的损失函数来描述所有这些属性:
颜色损失:预测图像和目标图像模糊版本之间的欧几里得距离。
纹理损失:基于生成对抗网络(GAN)的分类损失。GAN 被训练来预测灰度照片质量的高低。由于使用了灰度图,网络将很好地聚焦于图像的纹理,而不是颜色。
内容损失:预测图像的 VGG 特征与地面真像之间的差异。这一损失确保了图像中的对象(即图像语义)和整体结构保持不变。
总变化损失:图像中的垂直和水平总梯度。这将增强图像的平滑度,这样最终得到的图像就不会太粗糙或有噪音。
最后将这些损失加起来,生成一个端到端的网络,通过训练网络来做预测!
代码
感谢 AI 社区中开放源码,我们在这里找到了一个公开的照片增强器项目!以下是您使用它的方法。
Git 源码地址:https://github.com/aiff22/DPED
安装需要的库文件:
pip install tensorflow-gpu
pip install numpy
pip install scipy
所有经过预先训练的模型都已经在 models_orig 文件夹中都有对应的库,因此无需下载它们!
将要增强的照片放在以下目录中:
dped/iphone/test_data/full_size_test_images/
这是「iphone」的系统默认目录,但是如果您想更改代码,可以更改 test_model.py 脚本中的代码。之所以说「iphone」,是因为作者使用 3 款智能手机(iphone、sony 和 blackberry)拍摄的照片训练了 3 种不同的模型,因此你有三个选择。但是这个模型在大多数这三种手机拍摄的照片上都能很好地工作,所以我们选择其中一个就好。
最后,为了增强照片效果,我们运行一个简单的脚本:
python test_model.py model=iphone_orig \
test_subset=full \
哇!您的增强型和专业型照片将保存在「视觉效果」文件夹中!
你自己试试代码,很有趣!看看你的照片如何处理增强。请在下面发布链接,与社区共享您的照片。同时,这里是我自己测试的一些结果。雷锋网
来源:https://towardsdatascience.com/make-your-pictures-beautiful-with-a-touch-of-machine-learning-magic-31672daa3032
好消息!
小白学视觉知识星球
开始面向外开放啦👇👇👇
下载1:OpenCV-Contrib扩展模块中文版教程 在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。 下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。 下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。 交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~