课程简介

摄影,随着大众消费电子产品的水平越来越高,手机传感器的能力越来越强,已经不再是摄影师的专属,普通人越来越多地利用手里的设备记录自己的生活。

图像技术,随着传统算法的越来越成熟以及深度学习的发展,已经催生出越来越多的后期软件,降低了大众修图的门槛。

本课程是一门图像处理算法和摄影基础的交叉课程,共12篇,主要从3大方向来与大家交流。

  • 普及图像处理技术在摄影各方面的应用现状,如图像增强、构图、滤镜类。
  • 介绍摄影基础知识以及辅助提高摄影技术的一些工具。
  • 浅析摄影后期各项应用背后的图像原理,如美白滤镜、抠图、前背景融合的图像技术原理。

作为一门基础课,最重要的是让大家知道当前的现状,对基本技术有个概念,为高阶教程铺垫基础。

作者介绍

龙鹏,5年计算机视觉从业经验,华中科技大学本科,中国科学院硕士,原 360 图像搜索,人工智能研究院算法工程师,今陌陌信息技术创新组深度学习算法工程师,摄影业余爱好者,500px 粉丝 1800+,摄影旅游自媒体,拥有公众号《言有三工作室》。曾参与或主持基础图像增强与降噪,自动驾驶中的分割检测,视频图像内容分析等项目,熟悉传统图像处理算法基础知识,拥有丰富的基于机器学习的计算机视觉项目经验。

课程内容

导读:来一场摄影与算法的相遇

Photoshop 想必大家都很熟悉,Adobe 靠着 Photoshop 称霸图像处理领域几十年,就是因为其中每一个功能,背后都是扎实的算法的支持。

假如 Photoshop 不熟悉,美图秀秀总熟悉吧,仅仅只是靠着美颜算法,就把公司推上了市。

摄影,在胶片时代,纯靠摄影师的美学造诣和熟练技巧,一旦成片,基本上也就成片了。但是现在圈子里流行着一句话,7分靠前期,3分靠后期。

现在,那些好看的图,或者说没有经过精确地布景拍出来的好图,很少没有后期的。如下图,是从一个在线图片网站上截取下来的封面,都是好图对吧,那你能猜到都有些什么后期吗?

不管是精修的风光大片,还是被称为糖水片的人像摄影,后期工具的使用已经无处不在。

这背后的功劳,其实都是算法工程师一行一行的代码的调试。

摄影与计算机算法的相遇,不止十年了,那么他们相遇都碰撞出了什么火花呢?作为一个在图像算法里面摸爬滚打了几年,又玩了一段时间摄影的 IT 人,我打算开两个系列来与大家分享,图像算法与其支撑的摄影的发展故事、技术细节、发展前景。

现在这个是基础课,基础课会注重于在基础的摄影技术及其背后基本的图像算法原理,各大发展方向的介绍,那么就开始吧。

相遇结出了什么果子

摄影本身是一门大的应用科学,我们在这里先强调:本文只关注摄影中涉及图像处理的部分,其他的一概不论。

图像处理是一门学科,归为 image processing 也好、computer vision 也好,都是属于自然学科的一个小类,两者的结合,在应用上就是产生了一大批摄影前期后期工具,PhotoShop、美图秀秀就是典型代表。在学术上,那就产生了很多的课题,图像增强、图像降噪、滤镜等等。

不过,我们在这里说另一个大家不一定熟悉,也是专门针对摄影,而不是通用的图像处理技术的子课题,那就是:计算机美学、Computer Aesthetics 或者 image Aesthetics。

这个学科的终极目标是研究让计算机掌握专业摄影师那样的审美能力,从前期到后期,都有所涉及。

专业摄影师需要什么能力?包括但不限于:

  • 高超的构图技巧(知道怎样去寻找好的拍摄角度、怎么去通过画面来表达自己的核心思想、怎样让自己的作品更有创意)。
  • 敏感的色彩感知能力(知道什么时候该浓墨重彩、什么时候该淡化颜色)。
  • 精湛的细节处理能力(有时候就是细节决定档次)。
  • 捕捉精彩瞬间(摄影有时候就是一场偶遇,有很多好的作品,初看普普通通,但细细推敲却是让人拍案叫绝,不过这类作品暂时不在咱们的考虑范围内)。

总之,当计算机和摄影相遇,就会不断赤膊上阵 Photoshop 这样的工具,供大家设计自己的灵感,去后期提升拍摄的作品。而要做出这样的工具,就必须依靠算法工程师从底层到高层,依次探究图像中的奥秘,底层如边缘的检测,高层到图像风格的分析。如下图,是一个基于 Laplacian 变换的边沿检测。

现有的图像技术,在摄影中都有哪些应用

下面我们分析下图像技术在当下摄影中的若干应用,底层的图像算法对我们不可见,但是它们所支持的各种玩法,大家都很熟悉了。

打分

可以对普通的照片打分,如下图,星越多则说明所拍摄的图像质量越高,从第1列到第3列,照片质量越来越低,这可以帮助我们培养基本的美感,也可以用于很多图像推荐的应用。

还可以对颜值打分,当做一款娱乐的工具,其实很受大家欢迎,毕竟大众的审美还是趋同的,所以颜值打分、魅力值打分,其实挺靠谱的。

通过打分,我们可以去了解自己的摄影作品哪些地方有提升空间,这可以作为一个学习小助手。当然,由于摄影作品本身涉及太广了,不同的摄影风格又有不同的审美标准,所以目前这个领域上能用的工具几乎没有,研究也还属于需要突破的阶段。

也并非完全没有相关工具,现在有一个产品——泼辣相册就推出了相关功能,从细节、光效、颜色、构图、表情5个方面来评分,只是目前还不太靠谱,如笔者下图作品,从摄影师的角度来看,光效是很好的、背景很纯净,但是软件给力很低的分数。至于更多,大家尽管去尝试。

检索

基于摄影美学的高质量图与相似图的检索,下面是我基于关键词使用百度和 bing,搜出来的图(在家里用不了 Google)。

作为一个玩摄影的人来说,虽然没有拍过多少学校里的美女,但是我可以肯定学校相关的美照排名前 100 的绝对会比当前搜索出来的图好看很多,不信大家可以去摄影社区中看看。现在的搜索引擎仍然是基于关键词和 Tag 检索的,而不是理解了我要的“美照”这个词的意思,然后去搜索内容符合要求的词,但这是我们的需求,所以检索有很大的改进空间。

上图是 500 px,推荐出的相似图,第一张图是我的图,由于是专门的摄影平台,收录的图质量就比较高了,后面这些图除了都有个女生外,构图、色调其实并不一致,所以应该不是仅仅基于图像底层特征(颜色、纹理)等的检索,猜测有一定的美学质量在里面。

总之,没有人会排斥当你搜索图片时,给你返回美学质量更高的图吧,这仍然是一个需要填补的应用领域。

构图推荐

下面分别是一张原图,以及利用 iPhone 的照片管理软件自动裁剪出来的图。

构图在前期和后期都是摄影师开始工作的第一步,而且是必做的一步。如果让计算机学会了理解摄影师的意图,找到了最佳的构图,那能提升很多图像工作者的效率,包括前面说的泼辣相册的美学打分,也会专门有构图的打分。500 px 的人工评分中,目前也有这一项,以后一定会发展成人工智能评分,笔者这张图有人在构图上加了分,目前使用这个功能的人还很少。

磨皮、美白

磨皮美白,这就不用提了吧,现在是满屏的高颜值,要是没有扎实的图像处理技术,哪里有这么多美女主播,毕竟大部分人是普通长相。

就连 Google 旗下,简洁专业著称的 Snapseed 也在最近更新了美颜功能,更别说美图秀秀,天天 P 图中的瘦脸、大长腿、大眼等等功能了,这也符合当下国民的审美。

风格化滤镜

有的时候,我们不满足于仅仅做些简单的美白磨皮,而是要出一些更有逼格的滤镜,为了不侵犯别人的版权又能放出比较清晰的图,这里就上了一张自己的图。

这是用了当时大火的 Prisma 算法的结果,不过是代码跑出来的,是不是带着点大叔的沧桑感,比美个白有意思吧,用 iPhone 的可以去试试。

自动增强

原片尤其是手机拍出来的,很多都需要做图像增强、调节对比度、亮度等,如下图是我拍的照片,画面偏暗。

下面是 iPhone 照片自动调整的结果:

当然结果还不是令人满意,这种基本的图像增强操作,比较底层,不涉及过多的智能化操作,所以有很多相关的研究在研究智能的对摄影作品进行后期增强。

很多的 App 也在陆续加入这个功能,如 Google 的 Snapseed、泼辣修图等。

自然背景下的抠图,换背景

换背景是个永恒的需求,我就遇到过几次要自己换证件照背景的情况。而实际上换背景抠图,还可以调整景深浅,让手机小光圈拍的照片,也可以出现大光圈的效果,如上图(a)与(d)的对比。在直播中,现在也有很多的应用,给人换上梦幻背景,女生应该玩的比较多,主流的直播平台都有这样的功能。

就冲模拟大光圈这项功能,就值得关注。

图像融合、创作

可能对于大多数人来说,PS 最牛逼之处就在于无中生有,以假乱真了。

下面说的这个其实也是很常见的,笔者也偶尔使用一下多重曝光,其中就会用到图像融合。怎么更自然的融合,里面涉及到很多的技术细节、图像匹配、平滑等。

总结

图像处理技术的发展会催生出很多应用,比如视频编辑、实时抠图;反过来,人们的需求也会催促图像处理技术的发展,比如美白磨皮。

下一课,就让我们开始这场摄影与图像技术的相遇之旅吧。未来,摄影拍照应该成为人的基本技能,为了对象、为了家人,也要好好学习啊,何不马上开始?

第01课:解码图像的几个维度

上一节课我已经就图像技术在摄影中的各项应用做了全面介绍,那么从这一节课开始,我们就要一边学习图像知识,一边开始学习摄影了。

怎么开始呢?

小孩子学习先从模仿开始,我们学的正好就是摄影,那么就从看图开始。

如何用科学的方法来认识一张图像?在算法工程师的眼中,看图的方式比普通大众更深,更多了几个维度;那么,都包含什么呢?这就是本课要介绍的内容。

去哪里寻找好的作品欣赏

在这里给大家介绍两个去处,国内用户都可以访问,不用想着心思去翻墙什么的,安卓和 iOS 都可以下载,分别是 500px 中国版与图虫。500px 上面最大的特色是风光作品非常多,质量高;图中上面最大的特色是迎合了国民小女生对日系作品的强烈审美倾向,美女众多。为了偷懒,我就截自己的屏幕了,如下。

当然了,肯定还有很多人玩 POCO、LOFTER、豆瓣、微博等,但以上两家绝对是最大的。没事多去上面逛逛,欣赏欣赏好的作品,和别人多多交流(忍不住推一下自己的账号,以后来多多关注、交流吧)。

学会跟图像工程师一样去看图

上面推荐了社区让大家去交流学习,平时非摄影爱好者,大家看图也就是直观感觉一看一评论,但是咱们这里是 GitChat 平台,来这里的多少都有点技术基础,大家应该对自己有更高的要求。所以,接下来要从几个维度来剖析图片,这也会成为以后看图的技术基础。

建立亮度语感

任何正常的照片,必然会有明暗对比、色彩对比,我们平常看的照片,大部分都是8位的深度,什么意思呢?就是,图片的亮度从黑到白,是 0~28 的范围。

下面我们把 28 也就是 256 均分为 16 份,大家感受一下各个亮度。没事多看看这张图,争取以后看到一个像素点,基本上能断定亮度值是多少,这就是语感。

建立一张照片的色彩分布和亮度分布语感——亮度分布和颜色分布直方图

上面让大家看了亮度图,下面来看下亮度分布图。熟悉单反和后期工具的诸位,一定不会对此感到陌生,下面就放了一张彩色图和黑白图各自的直方图。

从黑白图中我们更好理解,横轴为 X,纵轴为 Y,图像出现的两个峰值,一个 X 比较小,一个 X 值比较大。

其实这两个尖峰,各自是有一个范围的,包含的面积如上。两个的面积基本相等,由此可以推测,图像上高亮度的像素和低亮度的像素,基本上数量差不多。再回到图像看,的确,前景是对应高亮度的部分,背景是对应低亮度的部分,它们的面积基本相等。

当我们去调整时,它的直方图就会发生变化。下面是利用泼辣修图来进行的展示,它们会把直方图显示在图像的上方,很方便查看;当我们把背景调亮,左侧的黄色间距线变长,整个直方图相对于原始的右移。

前景调暗,右侧的黄色间距线变长,整个直方图相对于原始的左移动。

所以我们要学会从直方图中推测原图的亮度分布。当然,上面还只是灰度图,如果是彩色图更加复杂。

定位图像的主体

一个好的作品,主体是非常鲜明、突出的,不然我们人眼不知道从何看起,说起来容易,做起来难。很多人拍的作品,主体不突出、位置乱放,以后我们会专门说说怎么突出主体、怎么调整构图。在图像处理上,图像主体的定位,是目标检测和图像分类问题,如下面的猫脸检测和人脸检测。

相机的自动对焦功能就会用到主体检测,越高端的相机,对焦速度越快,有的相机还会针对人脸做优化。而美图秀秀等工具之所以美颜效果好,其中也是加入了人脸检测算法,连 Snapseed 最近都加入了人脸智能美颜,突出主体,我们时刻要牢记。

学会掌握作品的色彩——色调风格

风格,是我们很喜欢谈论的东西,不同的照片会给人完全不同的感觉,最简单的分类,有的是暖色,有的是冷色。一般,色调的分布会满足统一色调原理,或者补色原理、或者90度色原理,以后我们也会单独开篇来说。

怎么量化这个呢?我们可以看看图像的色调分布,下面是一个360度的色相环,以颜色直方图的形式来展现。

单一色调:

补色原理:

90度色调原理:

杂乱色调:

上面是通过程序来得到这样的图,而现有的工具,则会更多的是以直方图的形式来展示。我们可以使用很多后期 App 的色调,色温工具,来看看它们的调整对图像的影响。

精细分析图像的细节——清晰度与对比度,简洁性

好的照片,一般细节非常的清晰,边缘也比较锐化,前背景对比明显,简洁。

(a)简洁性:好的照片会比较简洁、前景突出、背景简单、没有杂物;

这一点,我们可以从前景背景的边缘分布,以及对比度来看。

不好的例子,这张图背景比较复杂,前景和背景黏在一起,所以边缘也比较乱。

好的例子,这张图利用了大光圈,虚化了背景,对比很明显。看起来明显就比上图舒服很多。

(b)清晰度,对比度

清晰度对比度,这个在图像领域里面设计图像增强、降噪等问题,一般有几个指标来评判,PSNR、SSMI、CPBD 等,其中 PSNR 是峰值信噪比,这是信号处理领域用的很多的了,值越大越好。CPBD 则是一个图像锐化因子,值越大越好。由于 PSNR 必须有原图和退化后的图才能计算,CPBD 可以单独对每一张图进行计算,所以给大家用 CPBD 举一个例子。

下图,CPBD=0.558

下图是弄了个高斯模糊处理了一下上图,CPBD=0.0180

值的变化非常大对吧,很有参考意义!

具体的公式就不上了,CPBD 指标的计算流程如下:

  • 选择一个边缘检测方法,如 canny 来检测边缘。
  • 把图像分为很多大小相同的小块,判断每一个小块是否为边缘块。
  • 对于边缘块,计算其边缘的宽度和对比度,根据对比度,计算一个参考的边缘宽度。
  • 依据参考的边缘宽度和实际宽度,采用负指数函数来获取 blur 的概率,即模糊的概率,累积得到锐化指标。

本课结束,主要是说了几个图像底层的维度,大家以后看到一张图时,可以先从这几个方面去想想!

第02课:初探摄影技巧与计算机图片分类
第03课:构图基础及自动构图工具与原理
第04课:摄影中的基本色调学原理
第05课:增强图片细节及原理解析
第06课:常用黑白后期及图像原理
第07课:抠图算法原理与算法实现
第08课:艺术类滤镜原理介绍和使用
第09课:常用美颜算法及其背后的基本原理
第10课:多重曝光中的图像融合介绍
第11课:美学评分,从传统方法到深度学习的初探

阅读全文: http://gitbook.cn/gitchat/column/5a6011fbbd5ff2623773394c

AI 程序员码说摄影图像基础相关推荐

  1. AI程序员,所有码农的梦想

    https://www.toutiao.com/a6641804001950040590/ 2019-01-02 15:51:40 目前为止,人工智能还不算成熟,还没有特别优秀的人工智能产品进入百姓生 ...

  2. 2019报告:AI程序员人才需求暴涨35倍!每10个公司就有6个人才缺口

    就在最近,斯坦福大学AI研究所发布了< 2019 年 AI 指数报告>,其中一条数字让笔者震惊: 58% 的受访大公司表示,2019 年至少在一个业务部门采用了 AI 那就是说,近半数以上 ...

  3. 好程序员分享24个canvas基础知识小结

    好程序员分享24个canvas基础知识小结,非常全面详尽,推荐给大家. 现把canvas的知识点总结如下,以便随时查阅. 1.填充矩形 fillRect(x,y,width,height); 2.绘制 ...

  4. 82年 AI程序员征婚启示火了!年薪百万,女生神回复

    最近在某社区,一则程序员征婚启示火了! 很多女生在评论区表示"全中",想交流看看.然后评论区就炸了,有人恶意说yp,有人说看中了楼主的钱. 笔者一翻,发现楼主果然无意中透露了百万年 ...

  5. AI程序员的远方是诗和梦想的美好?还是骨感无望的现实?

    人工智能真的玩大了吗? 人工智能行业的人才真的"爆发了?" AI程序员究竟怎么样? A与B  薪酬与前景 程序员与远方 2017年~2018年,是人工智能大火的时候.你会发现,跟朋 ...

  6. 泪目!连拿3份 offer,AI 程序员求职经历火爆 IT圈!

    @程序员,如果有一天,你突然"被裁员"会怎么样?最近在知乎上浏览,看到这样一则内容:2019年,被裁员怎么挺过来? 来源:知乎:https://www.zhihu.com/ques ...

  7. 反转!2019程序员吸金榜来了,AI程序员刷爆了..

    前两天在网上发现一个热门话题:"做开发一年,在北京月薪不到1万,有点迷茫." 其中,这个回答我永远忘不了: 在这短短的一条信息里,小编佩服不仅仅是毕业一年的AI程序员拿到年薪60万 ...

  8. 好程序员分享24个canvas基础知识小结 1

    好程序员分享24个canvas基础知识小结,非常全面详尽,推荐给大家. 现把canvas的知识点总结如下,以便随时查阅. 1.填充矩形 fillRect(x,y,width,height); 2.绘制 ...

  9. 程序员要被革命了,微软推出自己会编程的“AI 程序员”插件

    这几天微软和 GitHub 推出了一款 AI 程序员智能插件,它自己会编程,会自动生成代码,有人说: 软件开发领域的「第三次工业革命」似乎正缓缓揭开序幕. 01 到底怎么回事? GitHub.Open ...

  10. 软考 程序员教程-第一章 计算机系统基础知识

    软考 程序员教程-第一章 计算机系统基础知识 为了督促自己学习,告别懒惰,在此先给自己定个小目标,请大家监督哟! 目标:一个月内过一遍<程序员教程>,下一个月开始上真题. 简单看了下,我在 ...

最新文章

  1. HashMap的getOrDefault()方法
  2. 传热学c语言节点编程题_哈工大苏小红C语言编程题目第二周的答案第一二题12...
  3. java callback类_利用java8新特性实现类似javascript callback特性
  4. Visual Studio Plugins
  5. maven overlay 扩展
  6. C语言经典算法五个人问岁数!——————【Badboy】
  7. 天翼云从业认证(1.3)了解数据库的概念、SQL、关系型数据库、大数据和 NoSQL 数据库
  8. HDU 3790 最短路径问题 (dijkstra)
  9. Javascript中document.execCommand()的用法
  10. 编写批处理文件编译.Net工程
  11. 在线HTML网页小窗口复制不了,教你一招:解决某些网页不能复制的文字的N种方法!...
  12. Spring Boot学习总结(5)——SpringBoot Jar应用Linux后台部署执行
  13. c++文件内容与输入内容进行比较_使用位运算对数据或文件内容进行加密
  14. 解决安装SQL Server 2000提示文件挂起的一般方法
  15. BUUCTF-Misc-sqltest(happyctf)
  16. 【编程训练-考研上机模拟】综合模拟1-2019浙大上机模拟(晴神)
  17. pyqt5使用pyinstaller打包项目为exe
  18. 模型预测控制(MPC)解析(十一):变量约束的预测控制
  19. android中转换content://media/external/images/media/539163为/storage/emulated/0/DCIM/Camera/IMG_20160807_
  20. 《知识的边界》读书笔记

热门文章

  1. 流体连续性方程【The Equation of Continuity】
  2. 6款CSS特效边框样式
  3. 金之塔用 Python 获取日内分时均价,每分钟日成交量和每时刻结算价,及交叉作用曲线延伸
  4. C++/openCV修改视频分辨率
  5. 李智慧 - 架构师训练营 第六周
  6. 【下载工具】哔哩哔哩视频下载器——(Downkyi)下载姬v1.3.3
  7. 中国成网络攻击最大受害国之一
  8. python绘制四叶草_python绘图四叶草
  9. 脑电分析系列[MNE-Python-7]| Python读取.edf文件
  10. linux工程师前景_嵌入式Linux工程师发展前景 嵌入式工程师待遇怎样?