言有三

毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人

作者 | 言有三(微信号Longlongtogo)

编辑 | 言有三

感谢北航的云飞扬,武汉理工大学的贾承丰的辅助

今天带来基于深度学习的图像构图的研究报告,主要涉及了基于CNN的图像剪裁方法的研究现状、数据集的发展、以及现有应用。

00

什么是自动切图

我们在拍摄照片后,第一步要做的就是图像裁剪,也称为后期构图。构图,用于合理安排画面中的元素分布,提升照片的美感。

构图的自动化【1】既可以用于拍摄之前的构图推荐,也可以用于拍摄之后的自动调整,在许多的缩略图自动裁剪中也有用处,甚至用于自动拍照。

我在公众号和知乎的专栏中已经多次讲过计算机美学了,也介绍过现有的产品,所以这里不再过多赘述。下面我们说说计算机构图的原理。

01

计算机构图的研究方法

接下来我们从这2个方面来讲讲计算机构图算法的原理。

1.1 显著目标方法

【2-3】也称之为Attention-Based的方法,它基于一个假设,图像中最显著的区域即照片中最相关的部分,因此我们应该保留最相关的部分,而裁剪其他部分。

如上面左图1,2是显著目标概率图,裁剪的时候就在保留显著目标的同时,裁剪掉了其他部分。

这类方法的目标就是研究如何用最小的剪裁窗口使得注意力(图像显著特性)总和最大化,它缺少对图像构图准则以及美学质量的考量,可能会导致剪裁出来的图像不美观。因为已经不是主流研究方法,就不细细说明了。

1.2 美学方法

基于显著目标的方法不是现在的主流,而基于美学的方法更加符合摄影师构图的原理,它要求裁剪出美学质量分数更高的区域。

上图文【4】是比较早的研究思路,它通过滑动窗口的方法获取一系列的候选裁剪框,然后从中选择美学分数最高的。这一类方法的问题就是效率太低,计算量太高,根本无法实用。

文【5】提供了不同的思路,如上图。它训练了一个显著目标检测网络,可以得到显著目标区域的初始化框,在它的附近,就可以采用不同的大小和比例,获取一系列候选的裁剪框,网络如下。

训练了另一个美学评估网络,用于选取美学分数更高的裁剪框。由于这个方法,只需要1次特征提取,且两个网络共享了若干神经网络卷积层,大大提高了剪裁窗口获取的效率,网络如下。

文【6】使用增强学习来更高效地搜索裁剪框,网络结构如下。

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

最新的研究来自于adode 2018年[7]的文章。该文章包含了两个网络,一个是view proposal network,用于提取候选框。另一个是view evaluation net,用于从候选框中选择美学价值最高的,网络如下。

该文另一个贡献是整理了一个大型高质量的数据集,因为现有的数据集太小是限制研究的最主要原因。

02

数据集

下面介绍两个主要的数据集。

1.1 FCDB

FCDB【1】数据集是一个专门为图像剪裁而设计构建的数据集。这个数据集一共包含1743张经过人工标记剪裁窗口的图片与34130张与原始图像相匹配的剪裁图像对。数据集里的每张照片都从专业摄影照片分享社区Flickr上下载后经人工筛选得到,具有较高的美学特征与较好的构图。

1.2 CPC[7]

这是adobe整理的,包含10800张图,超过1 million的图像对,每一个图像对就是原图和它的裁剪图,他们会有相对美学的标注。为了保证分布的广泛性,不仅选择了专业的图片,也选择了日常生活中的图片。

另外还有一些小的数据集,不一一列举。

03

优化目标

怎么评估一个自动裁剪算法的好坏呢?下面介绍两个。

3.1 IoU

平均交叉区域average intersection-over-union,这也是目标检测中使用的优化目标。上式中N为输入图片的总数,wig为第i幅输入图像ground truth的窗口,wic为不同方法剪裁出的第i幅输入图像的最优窗口,IoU的值越大说明剪裁的最优窗口与ground truth的窗口越接近,即剪裁的效果越好。

3.2 平均边界位移

平均边界位移average boundary displacement。上式中N为输入图片的总数,

big(l,r,u,d)为第i幅输入图像ground truth的窗口4条边与原图像对应边的距离,bic(l,r,u,d)为不同方法剪裁出的第i幅输入图像的最优窗口4条边与原图像对应边的距离,Disp的值越小说明剪裁的最优窗口与ground truth的窗口越接近,即剪裁的效果越好。

04

总结

随着研究人员的活跃和数据集的增长,自动构图算法一定会在这几年得到快速的发展。

【人工智能】深度学习自动构图研究报告相关推荐

  1. 《预训练周刊》第15期:Bengio, Lecun, Hinton | 人工智能深度学习、用于图像分类的全局过滤网络...

    No.15 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第15期&l ...

  2. 机器码农:深度学习自动编程

    /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ 张俊林 (本文2016年发表于<程序员>杂志) (想更系统地学习深度学习知识?请参考:深度学习枕边书) 随着深度学 ...

  3. 人工智能深度学习找线缆盘圆心---项目展示

    背景知识 在工业堆场的仓库里面堆放着大量的形状不规则的线缆盘,如图所示: 通常情况下,对于人工搬运的仓储物流环境下,基本是人工开动叉车,人工找到线缆盘圆心的位置,再用叉车的前叉插入线缆盘,这种情况下基 ...

  4. 硬件平台上深度学习自动内核优化

    硬件平台上深度学习自动内核优化 对于AI开发人员来说,在各种硬件平台上优化深度神经网络的性能仍然是一个难题.在系统支持方面,在这里面临着许多问题:将训练有素的模型从多个前端(例如Tensorflow, ...

  5. 8月6日云栖精选夜读 | 阿里云CPFS在人工智能/深度学习领域的实践

    2019独角兽企业重金招聘Python工程师标准>>> AI/DL在迅速发展 随着数据量的爆发式增长和计算能力的不断提升,以及在算法上的不断突破,人工智能(AI,Artificial ...

  6. 机器学习中的数学 人工智能深度学习技术丛书

    作者:孙博 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2019-11-01 机器学习中的数学 人工智能深度学习技术丛书 ISBN:9787517077190

  7. 2019年上半年收集到的人工智能深度学习方向干货文章

    2019年上半年收集到的人工智能深度学习方向干货文章 随机森林VS神经网络:哪个更好? 深度学习--感知机讲解 深度学习NN.CNN.RNN.和DNN你了解吗? 手工计算深度学习模型中的参数数量 使用 ...

  8. 人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练

    人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练 MXNet 是一个轻量级.可移植.灵活的分布式深度学习框架,2017 年 1 月 23 日,该项目进入 Apache 基金会,成为 ...

  9. 【总结】只需5步,给所有想入行人工智能/深度学习的新手们准备的资料

    对于新人来说,如何选择一条正确的道路比努力更加重要,这是有三AI给所有想要入行人工智能/深度学习领域的朋友准备的资料汇总,也是我建议一个初学者必须走完的5个步骤. 第一步:先知道AI能做什么 在学习人 ...

最新文章

  1. python语言包含的错误,Python语言程序中包含的错误,一般分为三种,以下____________不是其中的一种...
  2. 基于 REST 的 Web 服务:基础
  3. python框架django面试问别人什么问你_django面试会问什么
  4. LeetCode 96不同的二叉搜索树95不同的二叉搜索树Ⅱ
  5. string转object对象_025:听闻你精通面向对象,来解决一下
  6. 什么是protobuf
  7. vue2 父子组件传参 回调函数使用
  8. flume通过tcp/udp采集数据并存到kafka配置及操作方式
  9. gitlab 删除历史修改记录_Excel表格使用记录单功能快速录入、修改、删除、查询数据...
  10. openresty之http
  11. 离散数学及其应用第六版中文电子书和答案
  12. 信号与系统实验感想 matlab,信号与系统实验(信号与系统matlab实验报告)
  13. 石子合并,四边形不等式优化(Buy Candy,玲珑杯 Round#6 A lonlife 1066)
  14. 前端背景图放置_css如何设置背景图片?background属性添加背景图片
  15. 双系统重启进入GRUB解决方案
  16. php 事件,php的事件处理机制(回调函数)
  17. 反光衣穿戴识别检测系统 OpenCV
  18. Aseprite入门教程
  19. 品优购电商系统开发 第19章 秒杀解决方案
  20. 第一章——操作系统概论

热门文章

  1. Java面试之谈谈对CAS的理解
  2. ros 安装c++编译的可执行文件
  3. 举报入口_违法和不良信息举报中心
  4. Myeclipse中点(.)不出来方法或者属性?
  5. 实现二叉排序树的各种算法
  6. linux+PATH
  7. Array 的方法们 和 object 那些让人纠结的问题 ......
  8. Java集合框架之四大接口、常用实现类,java基础面试笔试题
  9. python面试题之下面这些是什么意思:@classmethod, @staticmethod, @property?
  10. 传智Python视频_基础班+就业班