Dynamic Multimodal Instance Segmentation Guided by Natural Language Queries
2018-09-18 09:58:50

Paperhttp://openaccess.thecvf.com/content_ECCV_2018/papers/Edgar_Margffoy-Tuay_Dynamic_Multimodal_Instance_ECCV_2018_paper.pdf

GitHubhttps://github.com/BCV-Uniandes/query-objseg (PyTorch)

Related paper:

1. Recurrent Multimodal Interaction for Referring Image Segmentation ICCV 2017

  Codehttps://github.com/chenxi116/TF-phrasecut-public (Tensorflow)

2. Segmentation from Natural Language Expressions  ECCV 2016

本文就是在给定 language 后,从图像中分割出所对应的目标物体。所设计的 model,如下所示:

1. Visual Module (VM)

  本文采用 Dual Path Network 92 (DPN92) 来提取 visual feature;

2. Language Module (LM)

本文采用的是 sru,一种新型的快速的 sequential 网络结构。sru 定义为:

我们把  embedding 以及 hidden state 进行 concatenate,然后得到文本中每一个单词的表达,即: rt. 有了这个之后,我们基于 rt 来计算一系列的 动态滤波 fk,t,定义为:

这样,我们可以根据文本 w,就可以得到 文本的特征表达以及对应的动态滤波,即:

3. Synthesis Module (SM)

SM 是我们框架的核心,用于融合多个模态的信息。如图5所示,我们首先将 I以及 空间位置的表达,进行 concatenate,然后用 dynamic filter 对这个结果进行卷积,得到一个响应图,RESP,由 K 个 channel 组成。下一步,我们将 IN,LOC,以及 Ft 沿着 channel dimension 进行 concatenate,得到一个表达 I’。最终,我们用 1*1 的卷积来融合所有的信息,每一个时间步骤,我们有一个输出,即作为 Mt,最终,表达为:

下一步,我们用 mSRU 来产生一个 3D 的 tensor。

4. Upsampling Module (UM) :

最终,我们采用 上采样的方式,得到最终分割的 map 结果。

===== 几点疑问:

1. 作者将 spatial LOC 的信息也结合到网络中?

The same operation can also be found from the reference papers: 

1. Segmentation from Natural Language Expressions ECCV 2016

2.  Recurrent Multimodal Interaction for Referring Image Segmentation ICCV 2017

  In the paper "Segmentation from Natural Language Expressions", I find the following parts to explain why we should use  the spatial location information and concatenate with image feature maps.

2. Run the code successfully. 

  1. wangxiao@AHU:/DMS$ python3 -u -m dmn_pytorch.train --backend dpn92 --num-filters 10 --lang-layers 3 --mix-we --accum-iters 1
  2. /usr/local/lib/python3.6/site-packages/torch/utils/cpp_extension.py:118: UserWarning:
  3.  
  4. !! WARNING !!
  5.  
  6. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  7. Your compiler (c++) may be ABI-incompatible with PyTorch!
  8. Please use a compiler that is ABI-compatible with GCC 4.9 and above.
  9. See https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html.
  10.  
  11. See https://gist.github.com/goldsborough/d466f43e8ffc948ff92de7486c5216d6
  12. for instructions on how to install GCC 4.9 or higher.
  13. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  14.  
  15. !! WARNING !!
  16.  
  17. warnings.warn(ABI_INCOMPATIBILITY_WARNING.format(compiler))
  18. Argument list to program
  19. --data /DMS/referit_data
  20. --split_root /DMS/referit_data/referit/splits/referit
  21. --save_folder weights/
  22. --snapshot weights/qseg_weights.pth
  23. --num_workers 2
  24. --dataset unc
  25. --split train
  26. --val None
  27. --eval_first False
  28. --workers 4
  29. --no_cuda False
  30. --log_interval 200
  31. --backup_iters 10000
  32. --batch_size 1
  33. --epochs 40
  34. --lr 1e-05
  35. --patience 2
  36. --seed 1111
  37. --iou_loss False
  38. --start_epoch 1
  39. --optim_snapshot weights/qsegnet_optim.pth
  40. --accum_iters 1
  41. --pin_memory False
  42. --size 512
  43. --time -1
  44. --emb_size 1000
  45. --hid_size 1000
  46. --vis_size 2688
  47. --num_filters 10
  48. --mixed_size 1000
  49. --hid_mixed_size 1005
  50. --lang_layers 3
  51. --mixed_layers 3
  52. --backend dpn92
  53. --mix_we True
  54. --lstm False
  55. --high_res False
  56. --upsamp_mode bilinear
  57. --upsamp_size 3
  58. --upsamp_amplification 32
  59. --dmn_freeze False
  60. --visdom None
  61. --env DMN-train
  62.  
  63. Processing unc: train set
  64. loading dataset refcoco into memory...
  65. creating index...
  66. index created.
  67. DONE (t=5.78s)
  68. Saving dataset corpus dictionary...
  69. 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 42404/42404 [10:18<00:00, 68.56it/s]
  70. Processing unc: val set
  71. loading dataset refcoco into memory...
  72. creating index...
  73. index created.
  74. DONE (t=21.52s)
  75. 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3811/3811 [00:53<00:00, 71.45it/s]
  76. Processing unc: trainval set
  77. loading dataset refcoco into memory...
  78. creating index...
  79. index created.
  80. DONE (t=4.97s)
  81. 0it [00:00, ?it/s]
  82. Processing unc: testA set
  83. loading dataset refcoco into memory...
  84. creating index...
  85. index created.
  86. DONE (t=5.24s)
  87. 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1975/1975 [00:27<00:00, 72.62it/s]
  88. Processing unc: testB set
  89. loading dataset refcoco into memory...
  90. creating index...
  91. index created.
  92. DONE (t=5.06s)
  93. 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1810/1810 [00:31<00:00, 57.91it/s]
  94. Train begins...
  95. [ 1] ( 0/120624) | ms/batch 456.690311 | loss 3.530792 | lr 0.0000100
  96. [ 1] ( 200/120624) | ms/batch 273.972313 | loss 1.487153 | lr 0.0000100
  97. [ 1] ( 400/120624) | ms/batch 257.813077 | loss 1.036689 | lr 0.0000100
  98. [ 1] ( 600/120624) | ms/batch 251.565860 | loss 1.047311 | lr 0.0000100
  99. [ 1] ( 800/120624) | ms/batch 249.070073 | loss 1.657688 | lr 0.0000100
  100. [ 1] ( 1000/120624) | ms/batch 246.906650 | loss 1.815347 | lr 0.0000100
  101. [ 1] ( 1200/120624) | ms/batch 245.645234 | loss 2.601908 | lr 0.0000100
  102. [ 1] ( 1400/120624) | ms/batch 245.039105 | loss 1.495383 | lr 0.0000100
  103. [ 1] ( 1600/120624) | ms/batch 244.460579 | loss 1.441855 | lr 0.0000100
  1.  

论文笔记:Dynamic Multimodal Instance Segmentation Guided by Natural Language Queries的更多相关文章

  1. 论文笔记《Feedforward semantic segmentation with zoom-out features》

    [论文信息] <Feedforward semantic segmentation with zoom-out features> CVPR 2015 superpixel-level,f ...

  2. 论文笔记 - Calibrate Before Use: Improving Few-Shot Performance of Language Models

    Motivation 无需参数更新的 In-Context Learning 允许使用者在无参数的更新的情况下完成新的下游任务,交互界面是纯粹的自然语言,无 NLP 技术基础的用户也可以创建 NLP ...

  3. 论文阅读笔记二十二:End-to-End Instance Segmentation with Recurrent Attention(CVPR2017)

    论文源址:https://arxiv.org/abs/1605.09410 tensorflow 代码:https://github.com/renmengye/rec-attend-public 摘 ...

  4. Multimodal —— 看图说话(Image Caption)任务的论文笔记(一)评价指标和NIC模型

    看图说话(Image Caption)任务是结合CV和NLP两个领域的一种比较综合的任务,Image Caption模型的输入是一幅图像,输出是对该幅图像进行描述的一段文字.这项任务要求模型可以识别图 ...

  5. Rank & Sort Loss for Object Detection and Instance Segmentation 论文解读(含核心源码详解)

    第一印象 Rank & Sort Loss for Object Detection and Instance Segmentation 这篇文章算是我读的 detection 文章里面比较难 ...

  6. 论文笔记:A Review on Deep Learning Techniques Applied to Semantic Segmentation

    A Review on Deep Learning Techniques Applied to Semantic Segmentation 2018-02-22  10:38:12   1. Intr ...

  7. 论文笔记《Fully Convolutional Networks for Semantic Segmentation》

    一.Abstract 提出了一种end-to-end的做semantic segmentation的方法,也就是FCN,是我个人觉得非常厉害的一个方法. 二.亮点 1.提出了全卷积网络的概念,将Ale ...

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

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

  9. Twitter 新一代流处理利器——Heron 论文笔记之Heron架构

    Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...

随机推荐

  1. linux考试题改错

    符号链接和硬链接有什么区别? 改:符号链接存储文件路径,可以指向不同分区文件,源文件删除后失效. 改:硬链接指向文件索引节点,仅能指向同一分区文件,源文件删除后可以访问. 请描述文件和目录9位权限位的 ...

  2. 通过ALT+F9关键CALL追踪注册码

    1)弹出关键字对话框,记录关键字注册失败,请检查···· 2)使用PEID查壳 3)peid提示无壳 4)发送到OD 5)F9使od运行 5.1)继续输入用户 5.2)使其暂停 5.3)点击调试中的执 ...

  3. Manjaro 玩机记录

    需求: 物理机使用linux个人版本系统,最好支持 微软office QQ/Tim 等通讯软件, 软件易安装, 图形界面可修改, 具有多个多个开发环境如:python2 python3 gcc nod ...

  4. iOS 如果页面 A 跳转到 页面 B,A 的 viewDidDisappear 方法和 B 的 viewDidAppear 方法哪个先调用?

    如果页面 A 跳转到 页面 B,A 的 viewDidDisappear 方法和 B 的 viewDidAppear 方法哪个先调用? 1. - (void)pushViewController:(U ...

  5. Windebug调试

    .loadby SOS clr .Symfix .reload !threads !printexception [address]

  6. 19.0-uC/OS-III内存管理

    内存管理 uC/OS-III可以获得连续的内存块.内存块大小可以相同, 所有的内存分 区包含了整数个内存块. 在特定的时间执行内存块的分配和释放.内存分 区以内存块数组的形式被静态分配的.如果分配后不 ...

  7. SQL中exsit和in

    本周在做ETL的时候踩了个小坑 A表中数据有18条,有字段UserID B表与A表结构相同,但只有16条数据(手动删除2条,更改2条UserID为不重复的其他值) 当 Select UserID fr ...

  8. Viewer.js插件浏览图片

    https://www.jianshu.com/p/e3350aa1b0d0 Viewer.js插件浏览图片 Viewer.js插件浏览图片 Viewer.js插件浏览图片

  9. Java发送邮件功能

    package com.hd.all.test.testjava; import java.util.Properties; import javax.mail.Address; import jav ...

  10. MySQL Backup mydumper

    生产环境中有一实例每天使用mysqldump备份时长达到了2个小时53分钟,接近3个小时,还不算上备份文件归档的时间,这个时间对于逻辑备份来说有点久.为了提高逻辑备份效率,打算替换为使用mydumpe ...