论文学习-《Learning to Compose with Professional Photographs on the Web》

参考博客:

让计算机审美,这可能吗?

“Learning to Compose with Professional Photographs on the Web" 论文解读(一)(附代码与详细注释)

“Learning to Compose with Professional Photographs on the Web”论文解读(二)(附代码与详细注释)

总结

1.这篇论文的思路基于一个简单的假设:专业摄影师拍出来的图片一般具备比较好的构图,而如果从他们的图片中随机抠出一块,那抠出的图片大概率就毁了。也就是说,原图在构图方面的分数应该高于抠出来的图片。而这种比较的方式,可以很方便地用 Siamese Network 和 hinge loss 实现,如下图所示。

2.另外,这篇论文另一个讨人喜欢的地方在于,它几乎不需要标注数据,只需要在网上爬取很多专业图片,再随机抠图就可以快速构造大量训练样本,因此成本近乎为零,即使精度不高也可以接受,其中作者将数据保存在了dataset.pkl里。

这篇论文的训练方式只能让网络知道哪种图片的构图好,而无法自动从原图中抠出构图好的图块,因此,在抠图方面,采用的是sliding window search strategy滑动窗口策略,并根据网络输出的分数决定哪个窗口最好。

细节 

1.dataset.pkl是数据集信息,来自Flickr website,它是一个长度为294644的列表,包含了21046张原图的14个裁剪图,其中scale为0.5、0.6的border crops各4个,scale为0.7、0.8的square crops各3个,作者公开的代码里,目的就是从这14个裁剪图中,选出裁剪效果最好的一个,dataset.pkl数据结构如下图所示;

2.VFN(View Finding Network)结构

VFN的网络结构如下图所示,VFN的卷积层采用了AlexNet,然后,将卷积层的输出送入两个全连接层,然后是一个排列层(ranking layer)。该排列层是无参数的,且仅用于评估图像对的hinge loss。在训练过程中,模型更新其参数,使得Φ(·)最小化式(2)中的总排名损失。一旦网络被训练,我们抛弃了排名层,简单地使用Φ(·)将给定的图像I映射到一个美学评分,这个评分将I与其他视觉上相似的视图区分开来。在最后一个卷积层的顶部,附加了一个空间金字塔池(SPP)层。并且该文在VFN中使用固定大小的输入图像(例如,输入图像/patch首先被调整为227)。简单地应用SPP技术来实现对卷积激活特性的数据聚合。

该文选择了3*3、5*5、7*7的池化尺寸池,且步幅stride要小于池化层尺寸。多分辨率池过滤器以不同的尺度保留组合信息。另外,该文通过实证发现,如果没有SPP,模型的特征空间越大,越容易出现过拟合。该文在实验中同时使用了最大池和平均池。

池化层特征是12,544维,然后送入第一个全连接层;fc1后面是ReLU,其输出维度为1,000。由于排序问题不像物体分类那么复杂,所以我们选择相对较小的特征维数;此外,卷积激活特征可以在压缩时不造成较大的信息丢失,而宽的全连接层往往会出现过拟合。fc2只有一个神经元,只输出最终的排名分数。

为了训练网络,使用了带动量momentum的随机梯度下降算法。从在ImageNet ILSVRC2012数据集上预先训练的AlexNet开始,随机初始化全连接层。动量设置为0.9,学习速率从0.01开始,经过10,000次迭代后降低到0.002,每个小批量包含100个图像对。总共运行15,000次迭代用于训练,每1,000次迭代评估验证集。选择验证误差最小的模型进行测试。为了对抗过拟合,训练数据通过随机水平翻转以及亮度和对比度的轻微随机扰动来增强。使用TensorFlow框架来实现和训练我们的模型。

3.评价标准

(1)average intersection-over-union (IoU)

def overlap_ratio(x1, y1, w1, h1, x2, y2, w2, h2):
    intersection = max(0, min(x1 + w1, x2 + w2) - max(x1, x2)) * max(0, min(y1 + h1, y2 + h2) - max(y1, y2))
    union = (w1 * h1) + (w2 * h2) - intersection
    return float(intersection) / float(union)

(2)average boundary displacement

boundary_displacement = (abs(best_x - x) + abs(best_x + best_w - x - w))/float(width) + (abs(best_y - y) + abs(best_y + best_h - y - h))/float(height)

原文地址:https://www.cnblogs.com/yuehouse/p/12070029.html

时间: 2024-11-13 04:27:03

论文学习-《Learning to Compose with Professional Photographs on the Web》的相关文章

论文学习 - 《面向海量存储系统的分层存储技术研究》

摘要 随着现代社会信息量的迅速增大,一方面需要有超大容量的海量存储系统来存储这些数据,另一方面在该海量存储系统中,被经常访问到的只有其中一小部分.这样的事实驱动我们对海量数据采取分层存储管理的方式. 分层存储的主要思想是将活跃数据文件存放在高性能存储设备上,而将不活跃数据文件存放到速度慢但廉价且容量大的存储设备中. 目前的分层存储技术存在着以下的问题: 1. 典型的文件价值判定方法仅仅考虑数据本身的固有属性和历史访问频率,没有考虑文件的访问模式,也没有分析将文件存放在存储系统的哪个层次来加快存储

存储技术研究与学习资料思维导图

最近迪迪老师给推荐了一个不错的思维导图工具--Mind42,对于梳理知识很有帮助,于是索性将存储技术研究与学习的一些资料进行了整理,导出图如下所示,更具体的内容可以通过猛击"点我"访问. 存储技术研究与学习资料思维导图,布布扣,bubuko.com

Redis学习之海量小数据的存储详解

最近有个需求,需要存储海量小数据,大概几十亿的规模,每个数据是6位的数字加一个32位的md5(16进制显示).因为数据很小,数据总量并不算大,我们计划根据md5做分片,存储到多个redis中,每个redis大概存储1亿的数据,纯数据大概 (6+32)*10^9 = 3.8G ,这是redis数据库很擅长存的量. 1 快速加载数据到redis redis已经非常快了,高达 10w/s ,但面对亿级别的数据,也需要将近20分钟.如果使用pipeline的话,redis还可以更快,达到 40w/s ,

论文学习 - 《Hadoop平台下的海量数据存储技术研究》

摘要 研究背景: 1. 互联网的图片数据急剧膨胀 2. Hadoop平台下的Hdfs分布式文件系统能够很好的处理海量数据 研究内容: 1. Hadoop平台工作原理 2. Hadoop平台下图片存储系统的设计与实现 3. Hadoop平台与Web的整合 创新点: 1. 通过Web方式来访问Hdfs 2. 存储性能测试自动化 第一章 绪论 Pass 第二章 Hadoop工作原理 本章可以参考对照Hadoop相关手册,不在此纠结. 第三章 Hadoop图片存储系统设计 模块划分: 1. 普通用户模块

WPF学习笔记 - .Net Framework的分离存储技术

写入: protected override void OnClosed(EventArgs e) { base.OnClosed(e); IsolatedStorageFile f = IsolatedStorageFile.GetUserStoreForAssembly(); using(IsolatedStorageFileStream stream = new IsolatedStorageFileStream("myFile", FileMode.Create, f)) us

3分钟了解时下热门存储技术

1 对象存储 对象存储拥有丰富的元数据功能,并且随着越来越多的应用往云上迁移,因此对象存储将会成为主流的存储系统. 对象存储优势 对象存储的本质是无状态(stateless)的,因此是移动和云访问的理想选择.对象存储也使得数据湖上的应用和分析可以在一个一致的数据源上工作,而不是在数据不一致的孤岛上. 2 持久性内存 传统意义上,内存技术(如RAM)和存储技术是两回事,但近年来,两者的界限越来越模糊.巨量数据库和数据集现在可以存放在内存中,这有助于更快速地访问.而在存储方面,由于SSD的发展提高了

大数据重点研究:海量存储技术,企业如何选择海量存储系统?

海量数据时代,云计算.大数据.人工智能等技术的广泛应用,使得数据呈指数级增长.随着存储空间不断增大,然而存储容量同存储性能成反比,传统数据库在处理海量数据时,暴露了并发性低.扩展性差.效率低下等问题.因此,海量存储技术成为了重点研究对象. 大数据时代,如何准确.高效地从丰富而膨胀的数据中筛选出对经营决策有用的信息已经成为企业和机构迫切需要解决的问题,因而海量存储技术应运而生,并显示出强大的解决能力.企业上云时代,企业如何选择海量存储系统? 1.极强的扩展能力 因为数据规模是动态增长的,存储系统不

面向海量服务的设计原则和策略总结

原文:http://ayufox.iteye.com/blog/676416 互联网服务的特点就是面向海量级的用户,面向海量级的用户如何提供稳定的服务呢?这里,对这几年的一些经验积累和平时接触的一些理念做一个总结.       一.原则       1.Web服务的CAP原理       CAP指的是三个要素:一致性(Consistency).可用性(Availability).分区容忍性(Partition tolerance).CAP原理指的是这三个要素最多只能同时实现两点,不可能三者兼顾,

[转帖]分层存储超详细解读,为什么大数据时代它已不可或缺

分层存储超详细解读,为什么大数据时代它已不可或缺 http://www.itpub.net/2019/10/16/3467/ 如今,分层存储已成为了一种常见的存储方法,它将数据存储在具有不同特性(如性能.成本和容量)的不同存储介质上.不同的存储媒介被分配到不同的层次结构中,其中最高性能的存储媒介被认为是第0层或第1层,然后是第2层.第3层等等. 0层或1层通常是由闪存或基于3D Xpoint技术的固态硬盘(SSD)组成,以此往下的存储层可能涉及高性能光纤通道或SAS驱动器(或RAID阵列),较低

手势跟踪论文学习:Realtime and Robust Hand Tracking from Depth

本文介绍的方法主要是用到了深度信息.提出了一种新的手指检测以及手型初始化的方法.具有很好的鲁棒性.在不使用GPU的情况下,速度就可以达到25FPS.准确率还相当的高.可以说是现在手势识别中最好的方法了. 当前的很多方法要不就是很慢,要不就是使用了GPU,再或者就是需要非常复杂的初始化.而本文提出的方法重新定义了手势的模型,结合了现在通用的两种方法的优势,并且加上一个约束方程,得到了很好的效果. 1.模型的重新定义 每一只手,定义了一个自由度(DOF)为26 的手的模型,其中的6个自由度代表全局的