点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

1 自动构图基础

1.1 什么是构图

自动裁剪用摄影的话语来说,就是自动构图。构图来源于绘画,最初指绘画时根据题材和主题思想的要求,把要表现的形象适当地组织起来,构成一个协调的完整的画面。因此一种构图方法一定要能够表达作品的核心思想内容并有一定的艺术感染力。

我们在文章《【计算摄影】图像美学专栏上线,先从学点摄影知识开始》中已经介绍过各种各样的构图,所以这里就不再介绍构图,但是我们可以看看后期构图对提升作品美学价值的作用。

上图是一个框架式构图案例,左图是原图,右图是构图调整后的图。

图中包含了两个方面的修改,其一是图像的裁剪,其二是色调的调整。原图的大小是 6000×4000,高宽比为 2/3,调整后图的大小是 3407×3824,高宽比为1.12,接近于 1:1,也就是正方形构图。

在拍摄原图的时候,笔者的重点是捕捉到舵手的神态与动作,同时在右侧给出一定的留白显示运动的方向,而在后期调整的时候笔者更想突出舵手的神态。因此将右侧比较杂乱的背景剔除,利用船舱的边缘从左上角至右下角进行了调整,利用船舱形成的框架来完成一个斜对角的框架式构图的裁剪。同时,这是一幅纪实类的作品,因此笔者将其色调调整为黑白。

经过构图调整后,作品更加干净,主体更加得到了突出。

上图是一个对比构图案例,左图是原图,有图是构图调整后的图。该图包含了两个方面的修改,其一是图像的裁剪,其二是色调的调整。

原图的大小是 6000×4000,高宽比为 2/3,调整后图的大小是 4276×2455,高宽比为0.57,接近于 9:16,也就是电影宽屏的长宽比。

首先看裁剪,原图的下半部基本被裁剪,右侧也裁剪掉四分之一左右。经过裁剪后,图像中的人物更大,而一些杂物已经被剔除。

再看色调调整,将原图转换为了黑白图,此时整个图像的对比度大大提升,艺术感和视觉冲击力也增加。

经过构图调整后,新的作品我将其命名为《独行》,表现出了背着小包的人物行走在大背景下的渺小。

这里的两个案例都是任意的长宽比,而实际上很多时候我们需要固定长宽比,常见的包括4:3,16:9,1:1等,如下图展示了不同比例,大小,裁剪方式:

1.2 构图的应用

自动构图有许多的现实需求,如构图推荐,图像重匹配,缩略图生成。

(1) 构图推荐

学习基本的构图原则虽然是很简单的,但是也需要大量时间锻炼,对于学习能力较差或者对新事物接受能力较慢的人来说,依然是一个难题。目前在索尼相机和一些摄影类软件产品中会出现一个九宫格来辅助拍摄者进行构图,如果有一款产品能够在拍摄时指导拍摄者进行前后左右移动,相信会非常实用和受欢迎的。

(2) 图像重匹配

很多的时候,我们需要将一个图像,放到一个尺寸与其不匹配的地方,比如相机拍摄的照片,放置到各种移动设备,这需要改变分辨率、长宽比等,这个问题叫做图像重匹配(Image Retargeting)。

在图像重匹配的时候,我们会考虑两个重要因素:

(1)原始图像的重要信息必须要保留,重要主体不能被裁剪掉;

(2)要保存原始图像的结构信息,如构图风格,并且尽量保证目标比例。

(3) 缩略图生成

所谓缩略图即缩小尺寸的图片或视频,生成缩略图通常是用于帮助识别和组织它们,在互联网网页中为图像提供与普通文本索引相同的角色。缩略图的生成可以看作是图像重匹配问题的一种,如今在摄影App和视频类App中都广泛用于产生封面缩略图。

下一节开始讲述如何研究自动构图这个问题,主要可以从两个研究角度来看。一个是如何保留最重要的信息,所对应的问题就是显著目标检测。另一个是保留图像的美学,所对应的问题就是基于美学的构图。

2 基于显著图的自动构图

首先我们来看基于显著图的自动构图,包括数据集的特点以及研究方法。

2.1 显著目标检测数据集

所谓的显著图,就是一个 0~1的概率图,其中亮度越大,代表该处的信息越重要,通常就是目标所在的位置。

有了显著图后,就可以基于显著图进行裁剪。如果将显著图的所有像素值的和当作能量,那设定一个阈值就可以裁剪出包含一定能量的最小外接矩形图。

当前有许多的显著目标数据集,其中 MIT300 数据集,Cat2000 数据集,SALICON 数据集比较经典,因为本质上差别不大,我们只介绍 MIT300 数据集。

MIT300 数据集是显著目标检测领域里非常通用的基准数据集,包括 300 张室内和室外场景图,图像最大尺寸是 1024px,最小尺寸是 457px,被采集者包括 39 个观众,年龄在 18-50 之间。采集时包括任意的视角,使用 ETL 400 ISCAN 以 240HZ 的频率进行被采集者眼球的跟踪,采集时间持续 3 秒。这个数据集只用于测试,因为没有公开训练标注文件。

上图就是它的数据集示意图,第一行是图像,第二行是人眼注意力的地方,第三行就是转换后的显著图标注。

2.2 显著图检测方法

检测显著性区域的方法就被称为视觉显著性检测(Visual Saliency Detection),这也算是一个比较成熟的领域了,早期的方法基于底层图像特征,如Itti and Koch model。

现在则完全可以使用CNN模型来完成该任务,总体模型架构和图像分割等任务相同,其中多尺度图像和特征技术常被使用。

2.3 自动构图方法

基于显著图的自动构图方法是最早期用于自动构图的方法,被称为 Attention-Based的方法。它基于一个假设,图像中最显著的区域是照片中最重要的部分,我们应该保留这个最重要的部分而裁剪其他部分。

这类方法的目标就是研究如何用最小的剪裁窗口使得注意力(图像显著特性)总和最大化[1],注意力总和可以简单定义为图像所有像素值的和,它就是图中的有效信息。

上图展示了基于显著图的自动构图标准流程,各类相关方法的差异主要在于如何获得最小外接矩形,典型的见文[2],具体的方法本文不再赘述。

3 基于美学的自动构图

接下来我们再看基于美学的自动构图,包括数据集特点以及核心方法。

3.1 数据集

(1) CUHK Cropping数据集

这个数据集由香港中文大学汤晓鸥实验室发布,由经验丰富的摄影师手动裁剪,共950张图像。这 950 张图像共包括 7 类图像,其中animal(动物) 134 张,architecture(建筑) 136 张,human(人) 133 张,landscape(风景) 140 张,night(夜景) 136 张,plant(植物) 138 张,static(静物) 133 张。

裁剪参数包括裁剪框的左上角和右下角的坐标,每一张图有3个摄影师进行标注,一个标注案例如下。

animal\1116.jpg    #文件名字

309 832 339 783  #第一个摄影师的裁剪,依次分别是左上角的x,y坐标,右下角的x,y坐标

1 1199 2 900    #第二个摄影师的裁剪,依次分别是左上角的x,y坐标,右下角的x,y坐标

157 1005 1 900  #第三个摄影师的裁剪,依次分别是左上角的x,y坐标,右下角的x,y坐标

下图是一个原图和裁剪案例。

(2) Flickr cropping数据集

研究人员首先从Flickr收集了31888张图像,然后在亚马逊标注平台AMT上雇佣了工人来过滤掉不适当的图像。剩下的图像由一组摄影爱好者来进行裁剪,每一个图像产生10个裁剪版本,然后送至AMT平台供标注人员选择好坏。

绝对的标注结果如下:

[

{

"url":"https://farm5.staticflickr.com/4096/4910188666_04cf9f487d_b.jpg",

"flickr_photo_id":4910188666,

"crop":[

266,

6,

757,

399

]

},

]

除此之外,还包含了相对的标注结果,也就是一张图进行两个裁剪标注,让被试者选择更喜欢哪一个,因此包括两个标注crop0,crop1,vote_for_0和vote_for_1分别是被试者投票给第0个裁剪框和第1个裁剪框的结果,1表示有一个投票。

[

{

"url":"https://farm3.staticflickr.com/2946/15251367120_9bdca6b5c3_c.jpg",

"crops":[

{

"vote_for_1":1,

"vote_for_0":4,

"crop_1":[

171,

281,

300,

400

],

"crop_0":[

139,

234,

300,

400

]

},

],

"flickr_photo_id":15251367120

},

]

另外还有如CPCD数据集,感兴趣读者可以自行了解。

3.2 自动构图方法

基于美学的构图方法更加符合摄影师构图的原理,它要求裁剪出美学质量分数更高的区域,因此关键就在于搜索区域的选择,有几个思路。

(1) 暴力搜索

暴力搜索法[3]是比较早的研究思路,它通过滑动窗口的方式获取一系列的候选裁剪框,然后从中选择美学分数最高的。这一类方法的问题就是效率太低,计算量太高,根本无法实际应用。

(2) 基于显著图预处理

暴力搜索的方法巨大的计算量来自于巨大的搜索空间以及后续带来的美学评估的计算量,如果能够减小搜索空间,减少不必要的美学评估的计算量,就可以大大提升效率。研究者提出与显著图检测方法[4]进行融合就可以实现该目标,下图是算法的基本流程。

首先训练了一个显著目标检测网络,使用它可以得到显著目标区域的初始化框,在它的附近,就可以根据不同大小和比例得到一系列候选的裁剪框,然后用美学评分模块进行评分。

(3) 基于强化学习的搜索法

候选框的选择本质上是一个搜索问题,除了减小搜索空间,另一方面也可以使用更加高效的搜索方法,比如A2RL框架[5],使用增强学习更高效地搜索裁剪框。

相比上面的两种方法,它需要更少的候选窗口与更少的运行时间,可以获得任意尺度、位置、更精确的剪裁窗口。

[1] Ardizzone E, Bruno A, Mazzola G, et al. Saliency Based Image Cropping[C]. international conference on image analysis and processing, 2013: 773-782.

[2] Chen J, Bai G, Liang S, et al. Automatic Image Cropping: A Computational Complexity Study[C]// Computer Vision and Pattern Recognition. IEEE, 2016:507-515.

[3] Chen, Yi-Ling, Klopp, Jan, Sun, Min, et al. Learning to Compose with Professional Photographs on the Web[J].2017:37-45.

[4] Wang W, Shen J. Deep Cropping via Attention Box Prediction and Aesthetics Assessment[J]. 2017.

[5] Kaiqi Huang D L H W J Z. A2-RL: Aesthetics Aware Reinforcement Learning for Automatic Image Cropping[J].

总结

构图问题与美学问题一样,虽然有一定的评判标准,但仍然是一个比较主观的问题,不同的应用场景,不同的图像类型,都有不同的研究维度,感兴趣的读者可以深入实践。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

计算摄影 | 计算机如何学会自动裁剪图片(自动构图)?相关推荐

  1. 计算摄影 | 计算机如何学会欣赏照片的美感?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1 图像美学基础 1.1 美学的定义 牛津高阶英语词典将美学定义为 ...

  2. 【计算摄影】计算机如何学会自动裁剪图片(自动构图)?

    大家好,这是专栏<计算摄影>的第三篇文章,这一个专栏来自于计算机科学与摄影艺术的交叉学科.今天我们讨论的问题是图像的自动裁剪/自动构图问题. 作者&编辑 | 言有三 1 自动构图基 ...

  3. html自动裁剪图片宽度,html中如何让图片按比例响应式缩放、并自动裁剪的css技巧...

    响应式网站.移动端页面在DIV CSS布局中对于图片列表或图片排版时,如果想要图片按比例缩放,最简单的就是把img宽度设为100%,不设置高度,高度就会自动跟着高度缩放. 但是如果要达到的效果是,要让 ...

  4. android 图片自动裁剪图片,Android实现拍照、选择相册图片并裁剪功能

    通过拍照或相册中获取图片,并进行裁剪操作,然后把图片显示到ImageView上. 当然也可以上传到服务器(项目中绝大部分情况是上传到服务器),参考网上资料及结合项目实际情况, 测试了多款手机暂时没有发 ...

  5. android 图片自动裁剪图片,Android图片选择到裁剪之步步深坑 – 简书

    我的问题已经解决,查阅了几十篇相关文章,换了数种解决方案,最终解决,虽然不是按照本文来的,但关闭窗口的时候发现本文算是系统,特此转载. 最近在自己的项目里实现了一个头像选择的功能,就是先从相册里选取一 ...

  6. python自动裁剪图片_自动裁剪与Python / PIL的图像(Automatically cropping an ima

    谁能帮我弄清楚发生了什么事在我的图像自动裁剪脚本? 我有一个大的透明区域/空间PNG图像. 我想能够自动裁剪那个空间出来,剩下的要领. 原始图像具有正方形画布,最好这将是长方形的,只是封装分子. 这里 ...

  7. android 图片自动裁剪图片大小,android调用原生图片裁剪后图片尺寸缩放的解决方法...

    在安卓开发中,如果对拍照后的图片进行图片裁剪,如果是调用系统的裁剪,如下: /* * 裁剪图片 */ private void cropPhoto() { Intent intent = new In ...

  8. html自动裁剪图片宽度,html - CSS显示调整大小和裁剪的图像

    html - CSS显示调整大小和裁剪的图像 我想显示具有一定宽度和高度的URL中的图像,即使它具有不同的大小比例.所以我想调整大小(保持比例),然后将图像剪切到我想要的大小. 我可以用html ba ...

  9. php图片自动裁剪图片,php裁剪图片(支持定点裁剪)

    /** * 图片裁剪函数,支持指定定点裁剪和方位裁剪两种裁剪模式 * @param $src_file 原图片路径 * @param $new_width 裁剪后图片宽度(当宽度超过原图片宽度时,去原 ...

最新文章

  1. SpringMVC实现文件的上传与下载
  2. LeetCode之Merge Sorted Array
  3. 十六、MySQL流程控制结构(顺序、分支、循环)详解 强化练习
  4. 大学英语期末考计算机上答卷,英语期末考试总结范文(精选5篇)
  5. python绘制turtle心电图代码_python的生态系统是由标准库和第三方库组成的,turtle库是其标准库,所以不需要安装。_学小易找答案...
  6. 学计算机要6选3选什么学科,新高考选科6选3的学科及专业对应表查询系统
  7. MAC OS 修改环境变量
  8. Nacos整合SpringCloud的自动注册原理
  9. 关于 Nginx 0day 漏洞,需要采取哪些措施?
  10. 如何设计SEO关键字分析统计表
  11. Windows10超级好用的虚拟机
  12. hpe 服务器 稳定性6,将NAA ID与运行ESXi 6.7的HPE服务器上的物理驱动器托架位置相关联...
  13. 凭据管理器解决Incorrect username or password ( access token )
  14. CAD全版本软件安装包(含最新2023)
  15. 超实数与布尔巴基学派
  16. 深圳荣耀Java后端一面
  17. java:1:错误:写入Hello时出错:Hello.class(拒绝访问)
  18. php手册下载打开没有内容,php pdf文件下载:无法加载PDF文档
  19. MySQL5.7免安装版安装教程(完全卸载MySQL后)
  20. 给客户占便宜的感觉 (销售中的心理学)

热门文章

  1. 告别排队!用Python定时自动挂号和快捷查询化验报告
  2. 警告!别再使用 TIMESTAMP 作为日期字段~
  3. 我们已经不用AOP做操作日志了!
  4. 数据分析利器Jupyter Notebook!
  5. CVPR 2021论文分享会日程公布!
  6. 9个让PyTorch模型训练提速的技巧!
  7. 11/1787, 哈工大小学妹的比赛上分经验,附战友招募
  8. 优秀的数据分析师应该具备哪些技能和特质?
  9. 这只「蚂蚁」能拍照!普林斯顿造出微米级相机,个头缩小到50万分之一
  10. 博士因论文致谢走红后,回到母校演讲再刷屏!网友:是对寒门学子最好的激励...