好久不写论文笔记了,不是没看,而是很少看到好的或者说值得记的了,今天被xinlei这篇paper炸了出来,这篇被据老大说xinlei自称idea of the year,所以看的时候还是很认真的,然后最后确实也发现了不少干货。

一、introduction

  这篇文章主要还是解决detection中如何有效的利用context信息的问题,这里作者提出了有两种context信息:1、image-level的信息,也就是当前场景的信息,例如一张床出现在卧室里面,一个篮球出现在篮球场里面,都是极其合理的  2、obeject-object relationship,例如一个人手上拿着一个球,比一个人手上拿着一辆车还是要合理很多很多的。。

  首先传统的faster rcnn的pipeline中几乎没有利用过任何的context信息,作者提出特别实在NMS的时候,暴力去除掉那些候选框并不是一个好主意,因此提出来spatial memory network来解决这个问题。这个方法的核心就是,当你在图片中检测到车,记住它,然后在下次迭代的时候作为先验知识会帮助下一次的检测得到一些之前漏检的结果。

二、insight&&contribution

具体的内容其实还是要看paper,文章太长了然后mac截图好麻烦,记几点关键的吧。

1.首先将在图片中的检测物体的行为model成一个公式

   随后为了实现obeject-obeject的这种conditional的关系,可以将原式近似为:
  再后来引入state变量,其实就是memory,也就是把上式的O0:n-1 encode成state,并且编程了spatial memory。

  这些推导当然都是合理的,不过其实一般DL的论文,怎么解释都有道理。。

2.下图式整个算法的pipeline,灰色的是原来的faster rcnn的步骤,只不过把conv5的feature换成了m_conv5的feature,并且在每次迭代的时候,通过memory S得到更好的detection结果,然后再根据新的结果更新S,如此迭代优化。

这里为决定memory S的选择也是比较合理的,如下图所示:

细节就不说了,主要是融合了conv5_3的feature以及softmax的的score,前者具有spatial的fearure,后者更多的是semantic的信息。

3.最后一个比较合理的地方就是训练的一个关键了,很多时候你有一个很好的idea,最后的结果不好,未必是你的idea不好,而是有些地方没有处理好。

如下图所示,一开始训练的时候并不收敛,作者经过实验和推导发现了问题所在,那就是memory和detection的在bp的时候是有contract的,我们希望第一次之后的迭代是不会检测到前面的物体的,所以网络会不停的接受矛盾的signal,一个希望它尽量检测一切物体,一个希望不要检测太多,这样的矛盾是的detecor的更新是不合理的,所以最后作者发现,第一次没有memory的时候更新detector M,后面的迭代就不BP了。

三、conclusion

  让我最喜欢的是两点,一个是context信息的object-obejct的阐述,还有一个是训练的时候bp的细节,到了这个份上,这个工作到底work不work对于我来说已经不是关键了。。。。

    

论文笔记《Spatial Memory for Context Reasoning in Object Detection》的更多相关文章

  1. 《Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition》论文笔记

    论文题目:<Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition> 论文作者:Qibin ...

  2. [place recognition]NetVLAD: CNN architecture for weakly supervised place recognition 论文翻译及解析(转)

    https://blog.csdn.net/qq_32417287/article/details/80102466 abstract introduction method overview Dee ...

  3. 论文笔记系列-Auto-DeepLab:Hierarchical Neural Architecture Search for Semantic Image Segmentation

    Pytorch实现代码:https://github.com/MenghaoGuo/AutoDeeplab 创新点 cell-level and network-level search 以往的NAS ...

  4. 论文笔记——Rethinking the Inception Architecture for Computer Vision

    1. 论文思想 factorized convolutions and aggressive regularization. 本文给出了一些网络设计的技巧. 2. 结果 用5G的计算量和25M的参数. ...

  5. 论文笔记:Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells

    Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells 2019-04- ...

  6. 论文笔记:ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware

    ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware 2019-03-19 16:13:18 Pape ...

  7. 论文笔记:DARTS: Differentiable Architecture Search

    DARTS: Differentiable Architecture Search 2019-03-19 10:04:26accepted by ICLR 2019 Paper:https://arx ...

  8. 论文笔记:Progressive Neural Architecture Search

    Progressive Neural Architecture Search 2019-03-18 20:28:13 Paper:http://openaccess.thecvf.com/conten ...

  9. 论文笔记:Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

    Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation2019-03-18 14:4 ...

  10. 论文笔记系列-DARTS: Differentiable Architecture Search

    Summary 我的理解就是原本节点和节点之间操作是离散的,因为就是从若干个操作中选择某一个,而作者试图使用softmax和relaxation(松弛化)将操作连续化,所以模型结构搜索的任务就转变成了 ...

随机推荐

  1. java泛型<? extends E> 有上限通配符与<? Super E>有上限通配符

    通配符?,?表示占位,表明将来使用的时候在指明类型 <?>无限定的通配符, 是让泛型能够接受未知类型的数据 <? extends E> 有上限通配符,能够接受指定类及其子类类型 ...

  2. linux execl()函数

    关于execl()函数族的用法不在赘述,其他博主介绍的很详细.下面说下作者在使用该函数时所犯的错误: 作者想通过使用execl()函数在子进程中调用其他函数,起初楼主是 这样用的: if((a = e ...

  3. python基础之try异常处理、socket套接字基础part1

    异常处理 错误 程序里的错误一般分为两种: 1.语法错误,这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正 2.逻辑错误,人为造成的错误,如数据类型错误.调用方法错误等,这些解 ...

  4. Android开发——View动画、帧动画和属性动画详解

    0. 前言   Android动画是面试的时候经常被问到的话题.我们都知道Android动画分为三类:View动画.帧动画和属性动画. 先对这三种动画做一个概述: View动画是一种渐进式动画,通过图 ...

  5. Django-Content-type用法

    from django.db import models from django.contrib.contenttypes.models import ContentType from django. ...

  6. Win10启动不了的问题处理记录

    前几天电脑突然出现蓝屏的情况,而且使用Win10自带的修复功能根本没有卵用,修复不了,很郁闷,死活进不了系统了,说什么“INACCESSABE BOOT DEVICE”,好像是引导设备不可用. 到网上 ...

  7. NoSQL简单学习(一)

    只是简单的知道有这个东西,却从来没有去接触,今天看了几篇文章,记录一下,开始慢慢接触这一领域 简介: 8种Nosql数据库系统对比 http://blog.jobbole.com/1344/ 一网打尽 ...

  8. Prolog奇怪奇妙的思考方式

    今天在<七周七语言>中接触到了prolog,发现它的编程模式和思考方式的确比较奇怪,但同时也非常奇妙,值得学习一下. 1. prolog语言介绍     和SQL一样,Prolog基于数据 ...

  9. Qt 绘制汽车仪表 指针旋转锯齿问题

    在前面几篇中出现的问题 http://blog.csdn.net/z609932088/article/details/53946245 这个是在QWidget下绘制的,出现了指针有锯齿的问题 后面开 ...

  10. 为Zabbix配置RabbitMQ监控模板

    RabbitMQ的配置参考 https://github.com/jasonmcintosh/rabbitmq-zabbix 简而言之,具体分为几个步骤: 1. 将脚本文件(scripts文件夹)和配 ...