阅读《A2-RL: Aesthetics Aware Reinforcement Learning for Image Cropping Debang》

一: 文章的主要任务

本文介绍的是如何用强化学习的方法对图片做美学剪裁
如下图,Input是一张风景图,初始化是整张图片,然后经过多个action后,我们得到了最后的裁剪方案作为输出。

二: 相关的工作

对于图片的裁剪,主要有两个大方向:

1. 基于Attention-based: 这个的目的是在原图中寻找关键区域。比如说在图片上寻找信息量最大的区域等等
2. 基于Aethetics-based: 即基于美学,这一方面是想在原图中寻找最让人感觉舒服的区域,这也是本文的目的。
3. 其他还有基于Change-based, 即比较原图和裁剪后的图,根据比较结果决定要去除哪些无关要紧的区域,保留一些质量较高的区域

对于前人的工作,主要有如下缺点:

1. 首先,大部分弱监督的裁剪方法都是依赖于滑动窗口机制(Sliding window mechanism)
2. 滑动窗口的机制有一些缺陷:即要求我们要固定长宽比
3. 大部分滑动窗口的方法会产生上万个备选窗口,这使得程序很耗时

三: 本文的主要想法

针对上述缺点,文章提出了基于Reinforcement Learning的解决方案:

1. 首先,把我们的问题看作一个决策链问题,这个过程就需要我们定义好State space 和 action space
2. 提出本文的算法框架(A2-RL)
3. 设计出一个reward函数使之能有益于我们对图片进行美学裁剪

四: State and Action

  1. 对于当前状态,我们可以表示成:

    st={o0,o1,...,ot−1,ot}st={o0,o1,...,ot−1,ot}

    s_t = \{o_0, o_1,...,o_{t-1},o_t\}
    其中ototo_t表示agent当前所观察到环境,即当前裁剪的图片

  2. 对于{o0,o1,...,ot−1}{o0,o1,...,ot−1}\{o_0,o_1,...,o_{t-1}\} 表示过去的记忆,即前t-1次迭代过程的剪裁图片,本文用网络LSTM来处理这些记忆
    这里需要注意,虽然我们的状态是当前所观察到的环境加上过去的回忆,但是训练的时候只需要输入但前所观察到的环境就可以的,我们的LSTM会提供我们之前的记忆信息

如上图所示,我们把Agent观察到的场景,即裁剪的结果,先进行卷积操作,最后输出一个向量(即Local Feature),而Global Feature 是原图进行卷积的结果,把Local Feature 和 Global Feature 合并起来就是我们是ototo_t了

Action

Action 很简单,就只有14个动作

五: Reward Function

  1. reward的计算方法就是: 当前最新裁剪的图片的美学分数与上一次迭代结果的差值,再用信号函数把差值限制在[-1,1]内

    sign(saes(It+1)−saes(It))sign(saes(It+1)−saes(It))

    sign(s_{aes}(I_{t+1}) - s_{aes}(I_t))

  2. 此外,还要加一个附加的reward设定−0.001∗(t+1)−0.001∗(t+1)-0.001 * (t+1), 目的是想使我们的迭代步数尽可能的小
    r′t=sign(saes(It+1)−saes(It))−0.001∗(t+1)rt′=sign(saes(It+1)−saes(It))−0.001∗(t+1)

    r^\prime_t = sign(s_{aes}(I_{t+1}) - s_{aes}(I_t)) -0.001 * (t+1)

  3. 为了不让我们的Agent往极端的方向上一去不复返,我们还要设计另一个附加的reward。记ararar表示裁剪窗口的长宽比,nrnrnr表示一个惩罚,最终,reward function 可以写成:
    rt(st,at)={r′t+nr,r′t,if ar<0.2 or ar>2 othewisert(st,at)={rt′+nr,if ar<0.2or ar>2rt′,othewise

    \quad r_t(s_t,a_t)=\left\{\begin{aligned}&r^\prime_t + nr, &\text{if } ar2 \\&r^\prime_t, &\text{ othewise}\end{aligned}\right.

  4. 最后,就是saessaess_{aes}如何计算了。本文用一个预先训练好的网络VFN来获得一张图片的美学分数。这个网络的结果在这:https://arxiv.org/pdf/1702.00503.pdf

六: 算法框架

最后,总体框架如下:

如上图,我们先把剪裁的图片进行5层的卷积,然后经过一个全连接层输出一个向量作为Local Feature,并合并上对原图的卷积的结果最为RL算法的输入ototo_t。其中即时的回报通过把Local Feature 放入预先训练好的网络VFN来获得。因为本文的算法采用的是Actor-Critic框架,所以输出分为两个部分,一个是由Actor输出的action,另一个是由critic输出的对该action的评价。

七: 算法细节

本文的算法是基于asynchronous advantage actor-critic(A3C),相比于原始的算法,本文针对实际问题做了一些改善。
1. 去掉同步机制,即本文的实验并没有随机生成多个随机场景做训练。但是在训练的时候输入是用mini-batch的形式作为输入的,同样起到了同步训练的结果。
2. 使用优势函数以及加入了熵, policy gradient 公式如下

∇θlogπ(at|st;θ)(Rt−V(st;θv))+β∇θH(π(st;θ))∇θlogπ(at|st;θ)(Rt−V(st;θv))+β∇θH(π(st;θ))

\nabla_\theta log \pi(a_t|s_t; \theta)(R_t - V(s_t;\theta_v)) + \beta \nabla_\theta H(\pi(s_t; \theta))
相比于原始的policy gradient:

∇θlogπθ(s,a)(Qπθ(s,a)−Vπθ(s))∇θlogπθ(s,a)(Qπθ(s,a)−Vπθ(s))

\nabla_\theta log \pi_\theta(s,a)(Q^{\pi_\theta}(s,a) - V^{\pi_\theta}(s))
我们发现,本文对算法的变动主要是用reward来表示你的Q function,不过这是很常规的操作,其次是加入了一个熵项,从下面的算法更能直接看出差别

]( https://upload-images.jianshu.io/upload_images/13326502-05e771edd3b0efc2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

阅读《A2-RL: Aesthetics Aware Reinforcement Learning for Image Cropping Debang》相关推荐

  1. 阅读《SentiLARE: Sentiment-Aware Language Representation Learning with Linguistic Knowledge》

    SentiLARE: Sentiment-Aware Language Representation Learning with Linguistic Knowledge Abstract 现有的预训 ...

  2. Align before Fuse: Vision and Language Representation Learning with Momentum Distillation

    ALBEF:Align before Fuse: Vision and Language Representation Learning with Momentum Distillation 论文链接 ...

  3. # 互信息最大化[视角统一]:Align before Fuse: Vision Language Representation Learning with Momentum Distillation

    互信息最大化[视角统一]:Align before Fuse: Vision and Language Representation Learning with Momentum Distillati ...

  4. 【论文模型讲解】VideoBERT: A Joint Model for Video and Language Representation Learning

    文章目录 前言 0 摘要 1 Introduction 2 相关工作 3 模型 3.1 BERT 3.2 VideoBERT 4 实验与分析 4.1 数据集 4.2 视频和语言预处理 4.3 模型预训 ...

  5. [论文学习]TDN: An Integrated Representation Learning Model of Knowledge Graphs

    [论文学习以及翻译]TDN: An Integrated Representation Learning Model of Knowledge Graphs 文章主要内容 摘要 前言 相关工作 基于T ...

  6. Kaiming He论文阅读笔记三——Simple Siamese Representation Learning

    Kaiming He大神在2021年发表的Exploring Simple Siamese Representation Learning,截至目前已经有963的引用,今天我们就一起来阅读一下这篇自监 ...

  7. [论文阅读] iCaRL: Incremental Classifier and Representation Learning

    论文地址:https://openaccess.thecvf.com/content_cvpr_2017/html/Rebuffi_iCaRL_Incremental_Classifier_CVPR_ ...

  8. 自然语言处理学习——论文分享——A Mutual Information Maximization Perspective of Language Representation Learning

    资料放在前面:https://blog.csdn.net/Arnetminer/article/details/105840669 文章的贡献如下: (1)提出了一个基于最大化MI的理论框架来理解词表 ...

  9. CVPR 2020 《12-in-1: Multi-Task Vision and Language Representation Learning》论文笔记

    目录 简介 动机 贡献 方法 实验 简介 本文是在NIPS 2019 ViLBERT上的拓展. 论文链接 动机 本文修改了ViLBERT的预训练过程,有两个小修改:1. 对regions进行mask时 ...

  10. 论文阅读Unsupervised Corpus Aware Language Model Pre-training for Dense Passage Retrieval

    密集文本检索的无监督语料库感知语言模型预训练 ACL2022 论文链接 摘要 最近的研究证明了使用微调语言模型(LM)进行密集检索的有效性.然而,密集检索器很难训练,通常需要经过精心设计的微调管道才能 ...

最新文章

  1. 高中计算机个人总结怎么写,毕业生自我总结范文
  2. 超强PHP集成环境,支持800多个不同PHP版本同时运行,无限自定义添加mysql与php版本...
  3. windows 改变文件大小 函数_手写 bind call apply 方法 与 实现节流防抖函数
  4. IntelliJ IDEA普通的Java项目如何转成Maven Web项目
  5. 连接ebay服务器时系统出现问题,客户端从服务器收到SOAP Fault:验证ebay失败
  6. TED如何和压力做朋友(第三天)
  7. 网页设计(二)——HTML与BOX
  8. #FME#FME将TXT转成shape
  9. c++编译提示:系统找不到指定路径
  10. camera基础概念之等效焦距 视场角的计算
  11. C51- NRF24L01 无线串口模块
  12. unixbench测试CPU性能工具/mbw测试内存
  13. 【SequoiaDB 学习笔记】巨杉分布式数据库初接触
  14. 怎么查看本地IP地址
  15. window10使用bat脚本配置ip和dns
  16. opencv 白平衡之灰度世界算法
  17. Linux内核设计与实现 第18章 调试
  18. Scikit-plot画图
  19. python 的 轮子
  20. 广州住房公积金提取、变更的步骤

热门文章

  1. 应用性能监控管理工具
  2. Xerox Phaser 3117激光打印机在windows 7 64bit版下安装驱动的问题
  3. creator 跳跃弧线_CocosCreator零基础制作游戏《极限跳跃》一、游戏分析
  4. eclipse将web项目打包成war包
  5. android 隐藏wifi密码,手机怎么连接隐藏的wifi无线网络
  6. Cisco AP的led开关如何打开
  7. Win10系统解决图标变白
  8. UVALive 3351 Easy and Not Easy Sudoku Puzzles 位运算~判断简单数独
  9. 基于层次分析法的信息安全风险评估量化法研究报告
  10. Java B2B2C多用户商城系统源码 B2B2C系统源码 APP小程序源码 在线商城源码