开源 | 用深度学习让你的照片变得美丽
在挑选手机时,手机摄像头往往是我们考虑的重要因素之一,但目前很多手机拍出来的照片效果不尽如人意。如何用深度学习的方法美化照片?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
相关文章
- SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别
- 九章云极DataCanvas开源技术副总裁杨健:从预测到决策,YLearn全流程解决因果学习难题
- 这个深度学习库能执行10多种图像文本任务,有20多个数据集,还统一接口|已开源
- ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?
- ModelX一款开源的机器学习模型管理仓库
- 开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin
- 【SLAM】开源 | 3D LiDAR测距(几何法、深度学习法和混合法)方法的对比研究
- 如何学习开源项目,我又总结了套路
- 基于PyTorch、易上手,细粒度图像识别深度学习工具库Hawkeye开源
- 如何高效训练 Transformer?微软亚研院开源TorchScale工具包
- 这个开源的支付项目太全了,你想要的支付渠道都有
- 谷歌开源安全的机器学习操作系统 KataOS
- 阿里云开源EasyTransfer:业界首个面向NLP场景深度迁移学习框架
- 全球首个工业级联邦学习开源平台FATE:邀请社区开发者和用户参与
- Open Source Initiative 批准四个新的开源许可证
- Linux的分支:学习不同版本的开源世界(linux的分支)
- Linux学习:踏上深度开源之旅(学习用linux)
- 妈妈再也不用担心我的编程 学习游戏CodeCombat开源
- 将开源进行到底:Facebook引爆下一轮开源浪潮
- 开源媒体中心 Kodi 15.0 Isengard 正式版发布
- 微软完整开源了用于语音识别的深度学习工具包 CNTK
- 从此,我们又少了一个开源手机系统
- 比深度学习快几个数量级,详解Facebook最新开源工具——fastText
- 谷歌 TensorFlow 一岁啦,它是最受欢迎的机器学习开源项目
- 机器学习年度 20 大开源项目花落谁家?(Python 版)
- 谷歌、微软、OpenAI 等巨头的七大机器学习开源项目 看这篇就够了
- BAT 在下一盘大棋?深度盘点国内四大机器学习开源平台
- 「Linux程序开发实例」——快速学习开源系统编程技能(linux程序开发实例)
- Linux:追求自由的开源操作系统(linux目的)
- 开源、API经济,助长Fintech大爆炸