ParseNet: Looking Wider to See Better
ICLR2016
https://github.com/weiliu89/caffe/tree/fcn

本文主要在语义分割问题中引入 global context 信息来提升分割精度

首先指出 FCN 丢弃了全局信息
FCN disregards global information about an image, thus ignoring potentially useful scene-level semantic context

其他方法尝试引入更多的 context 信息,但是都比较复杂,计算量也比较大。

这里我们首先想到了 global context,毕竟在整体中看待局部问题更清晰
As for semantic segmentation, per pixel classification, is often ambiguous in the presence of only local information. However, the task becomes much simpler if contextual information, from the whole image, is available.

尽管在理论上网络的顶层特征具有很大的感受野,例如使用 VGG特征的 FCN 的 fc7 有 404 × 404 感受野。但是我们发现实际的感受野比这个小很多。这里我们使用了一个滑动随机噪声块的方法来确定合适的感受野。

To identify the effective receptive field, we slide a small patch of random noise across the input image, and measure the change in the activation of the desired layer. If the activation does not vary significantly, that suggests the given random patch is outside of the empirical receptive field

实际中我们是使用全局均值池化来得到 global context
Specifically, we use global average pooling and pool the context features from the last layer or any
layer if that is desired

有了 global context feature 和 FCN 中的 local feature map,这里需要把这两个特征融合,有两个选择:early fusion,late fusion,对应分类前融合,分类后融合。early fusion 相对简单一些。

考虑到将多个不同的 scale and norm 特征向量融合起来,这里需要做归一化,我们采用了 L2 norm layer

实验结果对比:

有帮助的情况

有负作用的情况

VGG 网络对应的实现

I0728 09:33:23.666250  9633 layer_factory.hpp:74] Creating layer data
I0728 09:33:23.666260  9633 net.cpp:91] Creating Layer data
I0728 09:33:23.666263  9633 net.cpp:369] data -> data
I0728 09:33:23.666270  9633 net.cpp:121] Setting up data
I0728 09:33:23.666308  9633 db.cpp:34] Opened lmdb examples/VOC2012ext/VOC2012ext_val_img_lmdb
I0728 09:33:23.666638  9633 data_layer.cpp:79] output data size: 1,3,500,375
I0728 09:33:23.666998  9633 net.cpp:128] Top shape: 1 3 500 375 (562500)
I0728 09:33:23.667004  9633 layer_factory.hpp:74] Creating layer data_data_0_split
I0728 09:33:23.667009  9633 net.cpp:91] Creating Layer data_data_0_split
I0728 09:33:23.667012  9633 net.cpp:411] data_data_0_split <- data
I0728 09:33:23.667016  9633 net.cpp:369] data_data_0_split -> data_data_0_split_0
I0728 09:33:23.667021  9633 net.cpp:369] data_data_0_split -> data_data_0_split_1
I0728 09:33:23.667026  9633 net.cpp:121] Setting up data_data_0_split
I0728 09:33:23.667032  9633 net.cpp:128] Top shape: 1 3 500 375 (562500)
I0728 09:33:23.667040  9633 net.cpp:128] Top shape: 1 3 500 375 (562500)
I0728 09:33:23.667042  9633 layer_factory.hpp:74] Creating layer label
I0728 09:33:23.667048  9633 net.cpp:91] Creating Layer label
I0728 09:33:23.667052  9633 net.cpp:369] label -> label
I0728 09:33:23.667057  9633 net.cpp:121] Setting up label
I0728 09:33:23.667083  9633 db.cpp:34] Opened lmdb examples/VOC2012ext/VOC2012ext_val_label_lmdb
I0728 09:33:23.667201  9633 data_layer.cpp:79] output data size: 1,1,500,375
I0728 09:33:23.667306  9633 net.cpp:128] Top shape: 1 1 500 375 (187500)
I0728 09:33:23.667320  9633 layer_factory.hpp:74] Creating layer conv1_1
I0728 09:33:23.667328  9633 net.cpp:91] Creating Layer conv1_1
I0728 09:33:23.667332  9633 net.cpp:411] conv1_1 <- data_data_0_split_0
I0728 09:33:23.667345  9633 net.cpp:369] conv1_1 -> conv1_1
I0728 09:33:23.667351  9633 net.cpp:121] Setting up conv1_1
I0728 09:33:23.667574  9633 net.cpp:128] Top shape: 1 64 500 375 (12000000)
I0728 09:33:23.667583  9633 layer_factory.hpp:74] Creating layer relu1_1
I0728 09:33:23.667588  9633 net.cpp:91] Creating Layer relu1_1
I0728 09:33:23.667592  9633 net.cpp:411] relu1_1 <- conv1_1
I0728 09:33:23.667598  9633 net.cpp:358] relu1_1 -> conv1_1 (in-place)
I0728 09:33:23.667601  9633 net.cpp:121] Setting up relu1_1
I0728 09:33:23.667604  9633 net.cpp:128] Top shape: 1 64 500 375 (12000000)
I0728 09:33:23.667606  9633 layer_factory.hpp:74] Creating layer conv1_2
I0728 09:33:23.667610  9633 net.cpp:91] Creating Layer conv1_2
I0728 09:33:23.667613  9633 net.cpp:411] conv1_2 <- conv1_1
I0728 09:33:23.667616  9633 net.cpp:369] conv1_2 -> conv1_2
I0728 09:33:23.667619  9633 net.cpp:121] Setting up conv1_2
I0728 09:33:23.667858  9633 net.cpp:128] Top shape: 1 64 500 375 (12000000)
I0728 09:33:23.667865  9633 layer_factory.hpp:74] Creating layer relu1_2
I0728 09:33:23.667867  9633 net.cpp:91] Creating Layer relu1_2
I0728 09:33:23.667870  9633 net.cpp:411] relu1_2 <- conv1_2
I0728 09:33:23.667874  9633 net.cpp:358] relu1_2 -> conv1_2 (in-place)
I0728 09:33:23.667878  9633 net.cpp:121] Setting up relu1_2
I0728 09:33:23.667882  9633 net.cpp:128] Top shape: 1 64 500 375 (12000000)
I0728 09:33:23.667887  9633 layer_factory.hpp:74] Creating layer pool1
I0728 09:33:23.667892  9633 net.cpp:91] Creating Layer pool1
I0728 09:33:23.667894  9633 net.cpp:411] pool1 <- conv1_2
I0728 09:33:23.667897  9633 net.cpp:369] pool1 -> pool1
I0728 09:33:23.667901  9633 net.cpp:121] Setting up pool1
I0728 09:33:23.667906  9633 net.cpp:128] Top shape: 1 64 250 188 (3008000)
I0728 09:33:23.667909  9633 layer_factory.hpp:74] Creating layer conv2_1
I0728 09:33:23.667914  9633 net.cpp:91] Creating Layer conv2_1
I0728 09:33:23.667917  9633 net.cpp:411] conv2_1 <- pool1
I0728 09:33:23.667929  9633 net.cpp:369] conv2_1 -> conv2_1
I0728 09:33:23.667932  9633 net.cpp:121] Setting up conv2_1
I0728 09:33:23.668062  9633 net.cpp:128] Top shape: 1 128 250 188 (6016000)
I0728 09:33:23.668067  9633 layer_factory.hpp:74] Creating layer relu2_1
I0728 09:33:23.668071  9633 net.cpp:91] Creating Layer relu2_1
I0728 09:33:23.668072  9633 net.cpp:411] relu2_1 <- conv2_1
I0728 09:33:23.668076  9633 net.cpp:358] relu2_1 -> conv2_1 (in-place)
I0728 09:33:23.668078  9633 net.cpp:121] Setting up relu2_1
I0728 09:33:23.668081  9633 net.cpp:128] Top shape: 1 128 250 188 (6016000)
I0728 09:33:23.668083  9633 layer_factory.hpp:74] Creating layer conv2_2
I0728 09:33:23.668087  9633 net.cpp:91] Creating Layer conv2_2
I0728 09:33:23.668089  9633 net.cpp:411] conv2_2 <- conv2_1
I0728 09:33:23.668092  9633 net.cpp:369] conv2_2 -> conv2_2
I0728 09:33:23.668097  9633 net.cpp:121] Setting up conv2_2
I0728 09:33:23.668298  9633 net.cpp:128] Top shape: 1 128 250 188 (6016000)
I0728 09:33:23.668303  9633 layer_factory.hpp:74] Creating layer relu2_2
I0728 09:33:23.668306  9633 net.cpp:91] Creating Layer relu2_2
I0728 09:33:23.668308  9633 net.cpp:411] relu2_2 <- conv2_2
I0728 09:33:23.668311  9633 net.cpp:358] relu2_2 -> conv2_2 (in-place)
I0728 09:33:23.668314  9633 net.cpp:121] Setting up relu2_2
I0728 09:33:23.668328  9633 net.cpp:128] Top shape: 1 128 250 188 (6016000)
I0728 09:33:23.668329  9633 layer_factory.hpp:74] Creating layer pool2
I0728 09:33:23.668334  9633 net.cpp:91] Creating Layer pool2
I0728 09:33:23.668335  9633 net.cpp:411] pool2 <- conv2_2
I0728 09:33:23.668339  9633 net.cpp:369] pool2 -> pool2
I0728 09:33:23.668342  9633 net.cpp:121] Setting up pool2
I0728 09:33:23.668346  9633 net.cpp:128] Top shape: 1 128 125 94 (1504000)
I0728 09:33:23.668349  9633 layer_factory.hpp:74] Creating layer conv3_1
I0728 09:33:23.668352  9633 net.cpp:91] Creating Layer conv3_1
I0728 09:33:23.668354  9633 net.cpp:411] conv3_1 <- pool2
I0728 09:33:23.668359  9633 net.cpp:369] conv3_1 -> conv3_1
I0728 09:33:23.668361  9633 net.cpp:121] Setting up conv3_1
I0728 09:33:23.668678  9633 net.cpp:128] Top shape: 1 256 125 94 (3008000)
I0728 09:33:23.668685  9633 layer_factory.hpp:74] Creating layer relu3_1
I0728 09:33:23.668689  9633 net.cpp:91] Creating Layer relu3_1
I0728 09:33:23.668691  9633 net.cpp:411] relu3_1 <- conv3_1
I0728 09:33:23.668695  9633 net.cpp:358] relu3_1 -> conv3_1 (in-place)
I0728 09:33:23.668699  9633 net.cpp:121] Setting up relu3_1
I0728 09:33:23.668701  9633 net.cpp:128] Top shape: 1 256 125 94 (3008000)
I0728 09:33:23.668704  9633 layer_factory.hpp:74] Creating layer conv3_2
I0728 09:33:23.668706  9633 net.cpp:91] Creating Layer conv3_2
I0728 09:33:23.668709  9633 net.cpp:411] conv3_2 <- conv3_1
I0728 09:33:23.668711  9633 net.cpp:369] conv3_2 -> conv3_2
I0728 09:33:23.668715  9633 net.cpp:121] Setting up conv3_2
I0728 09:33:23.669340  9633 net.cpp:128] Top shape: 1 256 125 94 (3008000)
I0728 09:33:23.669347  9633 layer_factory.hpp:74] Creating layer relu3_2
I0728 09:33:23.669351  9633 net.cpp:91] Creating Layer relu3_2
I0728 09:33:23.669353  9633 net.cpp:411] relu3_2 <- conv3_2
I0728 09:33:23.669356  9633 net.cpp:358] relu3_2 -> conv3_2 (in-place)
I0728 09:33:23.669359  9633 net.cpp:121] Setting up relu3_2
I0728 09:33:23.669363  9633 net.cpp:128] Top shape: 1 256 125 94 (3008000)
I0728 09:33:23.669364  9633 layer_factory.hpp:74] Creating layer conv3_3
I0728 09:33:23.669368  9633 net.cpp:91] Creating Layer conv3_3
I0728 09:33:23.669370  9633 net.cpp:411] conv3_3 <- conv3_2
I0728 09:33:23.669373  9633 net.cpp:369] conv3_3 -> conv3_3
I0728 09:33:23.669376  9633 net.cpp:121] Setting up conv3_3
I0728 09:33:23.669988  9633 net.cpp:128] Top shape: 1 256 125 94 (3008000)
I0728 09:33:23.669992  9633 layer_factory.hpp:74] Creating layer relu3_3
I0728 09:33:23.669996  9633 net.cpp:91] Creating Layer relu3_3
I0728 09:33:23.669998  9633 net.cpp:411] relu3_3 <- conv3_3
I0728 09:33:23.670001  9633 net.cpp:358] relu3_3 -> conv3_3 (in-place)
I0728 09:33:23.670003  9633 net.cpp:121] Setting up relu3_3
I0728 09:33:23.670006  9633 net.cpp:128] Top shape: 1 256 125 94 (3008000)
I0728 09:33:23.670008  9633 layer_factory.hpp:74] Creating layer pool3
I0728 09:33:23.670012  9633 net.cpp:91] Creating Layer pool3
I0728 09:33:23.670014  9633 net.cpp:411] pool3 <- conv3_3
I0728 09:33:23.670018  9633 net.cpp:369] pool3 -> pool3
I0728 09:33:23.670022  9633 net.cpp:121] Setting up pool3
I0728 09:33:23.670027  9633 net.cpp:128] Top shape: 1 256 63 47 (758016)
I0728 09:33:23.670028  9633 layer_factory.hpp:74] Creating layer conv4_1
I0728 09:33:23.670032  9633 net.cpp:91] Creating Layer conv4_1
I0728 09:33:23.670034  9633 net.cpp:411] conv4_1 <- pool3
I0728 09:33:23.670037  9633 net.cpp:369] conv4_1 -> conv4_1
I0728 09:33:23.670040  9633 net.cpp:121] Setting up conv4_1
I0728 09:33:23.671077  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.671087  9633 layer_factory.hpp:74] Creating layer relu4_1
I0728 09:33:23.671092  9633 net.cpp:91] Creating Layer relu4_1
I0728 09:33:23.671093  9633 net.cpp:411] relu4_1 <- conv4_1
I0728 09:33:23.671097  9633 net.cpp:358] relu4_1 -> conv4_1 (in-place)
I0728 09:33:23.671099  9633 net.cpp:121] Setting up relu4_1
I0728 09:33:23.671103  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.671104  9633 layer_factory.hpp:74] Creating layer conv4_2
I0728 09:33:23.671108  9633 net.cpp:91] Creating Layer conv4_2
I0728 09:33:23.671124  9633 net.cpp:411] conv4_2 <- conv4_1
I0728 09:33:23.671128  9633 net.cpp:369] conv4_2 -> conv4_2
I0728 09:33:23.671131  9633 net.cpp:121] Setting up conv4_2
I0728 09:33:23.672897  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.672919  9633 layer_factory.hpp:74] Creating layer relu4_2
I0728 09:33:23.672926  9633 net.cpp:91] Creating Layer relu4_2
I0728 09:33:23.672930  9633 net.cpp:411] relu4_2 <- conv4_2
I0728 09:33:23.672935  9633 net.cpp:358] relu4_2 -> conv4_2 (in-place)
I0728 09:33:23.672940  9633 net.cpp:121] Setting up relu4_2
I0728 09:33:23.672945  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.672946  9633 layer_factory.hpp:74] Creating layer conv4_3
I0728 09:33:23.672952  9633 net.cpp:91] Creating Layer conv4_3
I0728 09:33:23.672955  9633 net.cpp:411] conv4_3 <- conv4_2
I0728 09:33:23.672957  9633 net.cpp:369] conv4_3 -> conv4_3
I0728 09:33:23.672963  9633 net.cpp:121] Setting up conv4_3
I0728 09:33:23.675709  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.675727  9633 layer_factory.hpp:74] Creating layer relu4_3
I0728 09:33:23.675734  9633 net.cpp:91] Creating Layer relu4_3
I0728 09:33:23.675736  9633 net.cpp:411] relu4_3 <- conv4_3
I0728 09:33:23.675741  9633 net.cpp:358] relu4_3 -> conv4_3 (in-place)
I0728 09:33:23.675745  9633 net.cpp:121] Setting up relu4_3
I0728 09:33:23.675750  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.675751  9633 layer_factory.hpp:74] Creating layer pool4
I0728 09:33:23.675756  9633 net.cpp:91] Creating Layer pool4
I0728 09:33:23.675758  9633 net.cpp:411] pool4 <- conv4_3
I0728 09:33:23.675762  9633 net.cpp:369] pool4 -> pool4
I0728 09:33:23.675766  9633 net.cpp:121] Setting up pool4
I0728 09:33:23.675771  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.675773  9633 layer_factory.hpp:74] Creating layer conv5_1
I0728 09:33:23.675779  9633 net.cpp:91] Creating Layer conv5_1
I0728 09:33:23.675781  9633 net.cpp:411] conv5_1 <- pool4
I0728 09:33:23.675784  9633 net.cpp:369] conv5_1 -> conv5_1
I0728 09:33:23.675788  9633 net.cpp:121] Setting up conv5_1
I0728 09:33:23.677517  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.677533  9633 layer_factory.hpp:74] Creating layer relu5_1
I0728 09:33:23.677539  9633 net.cpp:91] Creating Layer relu5_1
I0728 09:33:23.677543  9633 net.cpp:411] relu5_1 <- conv5_1
I0728 09:33:23.677547  9633 net.cpp:358] relu5_1 -> conv5_1 (in-place)
I0728 09:33:23.677551  9633 net.cpp:121] Setting up relu5_1
I0728 09:33:23.677554  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.677556  9633 layer_factory.hpp:74] Creating layer conv5_2
I0728 09:33:23.677561  9633 net.cpp:91] Creating Layer conv5_2
I0728 09:33:23.677562  9633 net.cpp:411] conv5_2 <- conv5_1
I0728 09:33:23.677567  9633 net.cpp:369] conv5_2 -> conv5_2
I0728 09:33:23.677569  9633 net.cpp:121] Setting up conv5_2
I0728 09:33:23.680333  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.680363  9633 layer_factory.hpp:74] Creating layer relu5_2
I0728 09:33:23.680371  9633 net.cpp:91] Creating Layer relu5_2
I0728 09:33:23.680373  9633 net.cpp:411] relu5_2 <- conv5_2
I0728 09:33:23.680378  9633 net.cpp:358] relu5_2 -> conv5_2 (in-place)
I0728 09:33:23.680383  9633 net.cpp:121] Setting up relu5_2
I0728 09:33:23.680387  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.680389  9633 layer_factory.hpp:74] Creating layer conv5_3
I0728 09:33:23.680393  9633 net.cpp:91] Creating Layer conv5_3
I0728 09:33:23.680395  9633 net.cpp:411] conv5_3 <- conv5_2
I0728 09:33:23.680399  9633 net.cpp:369] conv5_3 -> conv5_3
I0728 09:33:23.680403  9633 net.cpp:121] Setting up conv5_3
I0728 09:33:23.682839  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.682864  9633 layer_factory.hpp:74] Creating layer relu5_3
I0728 09:33:23.682874  9633 net.cpp:91] Creating Layer relu5_3
I0728 09:33:23.682878  9633 net.cpp:411] relu5_3 <- conv5_3
I0728 09:33:23.682883  9633 net.cpp:358] relu5_3 -> conv5_3 (in-place)
I0728 09:33:23.682904  9633 net.cpp:121] Setting up relu5_3
I0728 09:33:23.682909  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.682911  9633 layer_factory.hpp:74] Creating layer pool5
I0728 09:33:23.682915  9633 net.cpp:91] Creating Layer pool5
I0728 09:33:23.682919  9633 net.cpp:411] pool5 <- conv5_3
I0728 09:33:23.682921  9633 net.cpp:369] pool5 -> pool5
I0728 09:33:23.682925  9633 net.cpp:121] Setting up pool5
I0728 09:33:23.682931  9633 net.cpp:128] Top shape: 1 512 63 47 (1516032)
I0728 09:33:23.682934  9633 layer_factory.hpp:74] Creating layer fc6
I0728 09:33:23.682938  9633 net.cpp:91] Creating Layer fc6
I0728 09:33:23.682941  9633 net.cpp:411] fc6 <- pool5
I0728 09:33:23.682945  9633 net.cpp:369] fc6 -> fc6
I0728 09:33:23.682950  9633 net.cpp:121] Setting up fc6
I0728 09:33:23.687371  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.687388  9633 layer_factory.hpp:74] Creating layer relu6
I0728 09:33:23.687394  9633 net.cpp:91] Creating Layer relu6
I0728 09:33:23.687397  9633 net.cpp:411] relu6 <- fc6
I0728 09:33:23.687402  9633 net.cpp:358] relu6 -> fc6 (in-place)
I0728 09:33:23.687407  9633 net.cpp:121] Setting up relu6
I0728 09:33:23.687410  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.687412  9633 layer_factory.hpp:74] Creating layer drop6
I0728 09:33:23.687417  9633 net.cpp:91] Creating Layer drop6
I0728 09:33:23.687419  9633 net.cpp:411] drop6 <- fc6
I0728 09:33:23.687422  9633 net.cpp:358] drop6 -> fc6 (in-place)
I0728 09:33:23.687425  9633 net.cpp:121] Setting up drop6
I0728 09:33:23.687429  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.687432  9633 layer_factory.hpp:74] Creating layer fc7
I0728 09:33:23.687436  9633 net.cpp:91] Creating Layer fc7
I0728 09:33:23.687438  9633 net.cpp:411] fc7 <- fc6
I0728 09:33:23.687441  9633 net.cpp:369] fc7 -> fc7
I0728 09:33:23.687444  9633 net.cpp:121] Setting up fc7
I0728 09:33:23.688313  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.688318  9633 layer_factory.hpp:74] Creating layer relu7
I0728 09:33:23.688321  9633 net.cpp:91] Creating Layer relu7
I0728 09:33:23.688323  9633 net.cpp:411] relu7 <- fc7
I0728 09:33:23.688326  9633 net.cpp:358] relu7 -> fc7 (in-place)
I0728 09:33:23.688329  9633 net.cpp:121] Setting up relu7
I0728 09:33:23.688331  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.688334  9633 layer_factory.hpp:74] Creating layer drop7
I0728 09:33:23.688338  9633 net.cpp:91] Creating Layer drop7
I0728 09:33:23.688339  9633 net.cpp:411] drop7 <- fc7
I0728 09:33:23.688344  9633 net.cpp:358] drop7 -> fc7 (in-place)
I0728 09:33:23.688345  9633 net.cpp:121] Setting up drop7
I0728 09:33:23.688349  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.688351  9633 layer_factory.hpp:74] Creating layer fc7_drop7_0_split
I0728 09:33:23.688354  9633 net.cpp:91] Creating Layer fc7_drop7_0_split
I0728 09:33:23.688356  9633 net.cpp:411] fc7_drop7_0_split <- fc7
I0728 09:33:23.688359  9633 net.cpp:369] fc7_drop7_0_split -> fc7_drop7_0_split_0
I0728 09:33:23.688364  9633 net.cpp:369] fc7_drop7_0_split -> fc7_drop7_0_split_1
I0728 09:33:23.688367  9633 net.cpp:121] Setting up fc7_drop7_0_split
I0728 09:33:23.688370  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.688374  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.688375  9633 layer_factory.hpp:74] Creating layer fc7_norm
I0728 09:33:23.688381  9633 net.cpp:91] Creating Layer fc7_norm
I0728 09:33:23.688383  9633 net.cpp:411] fc7_norm <- fc7_drop7_0_split_0
I0728 09:33:23.688387  9633 net.cpp:369] fc7_norm -> fc7_norm
I0728 09:33:23.688391  9633 net.cpp:121] Setting up fc7_norm
I0728 09:33:23.688405  9633 net.cpp:128] Top shape: 1 1024 63 47 (3032064)
I0728 09:33:23.688407  9633 layer_factory.hpp:74] Creating layer pool6_1x1
I0728 09:33:23.688411  9633 net.cpp:91] Creating Layer pool6_1x1
I0728 09:33:23.688413  9633 net.cpp:411] pool6_1x1 <- fc7_drop7_0_split_1
I0728 09:33:23.688417  9633 net.cpp:369] pool6_1x1 -> pool6_1x1
I0728 09:33:23.688421  9633 net.cpp:121] Setting up pool6_1x1
I0728 09:33:23.688448  9633 net.cpp:128] Top shape: 1 1024 1 1 (1024)
I0728 09:33:23.688452  9633 layer_factory.hpp:74] Creating layer pool6_1x1_norm
I0728 09:33:23.688454  9633 net.cpp:91] Creating Layer pool6_1x1_norm
I0728 09:33:23.688457  9633 net.cpp:411] pool6_1x1_norm <- pool6_1x1
I0728 09:33:23.688460  9633 net.cpp:369] pool6_1x1_norm -> pool6_1x1_norm
I0728 09:33:23.688464  9633 net.cpp:121] Setting up pool6_1x1_norm
I0728 09:33:23.688473  9633 net.cpp:128] Top shape: 1 1024 1 1 (1024)
I0728 09:33:23.688477  9633 layer_factory.hpp:74] Creating layer pool6_1x1_norm_drop
I0728 09:33:23.688480  9633 net.cpp:91] Creating Layer pool6_1x1_norm_drop
I0728 09:33:23.688483  9633 net.cpp:411] pool6_1x1_norm_drop <- pool6_1x1_norm
I0728 09:33:23.688485  9633 net.cpp:358] pool6_1x1_norm_drop -> pool6_1x1_norm (in-place)
I0728 09:33:23.688489  9633 net.cpp:121] Setting up pool6_1x1_norm_drop
I0728 09:33:23.688493  9633 net.cpp:128] Top shape: 1 1024 1 1 (1024)
I0728 09:33:23.688495  9633 layer_factory.hpp:74] Creating layer fc7_norm_score21
I0728 09:33:23.688500  9633 net.cpp:91] Creating Layer fc7_norm_score21
I0728 09:33:23.688503  9633 net.cpp:411] fc7_norm_score21 <- fc7_norm
I0728 09:33:23.688505  9633 net.cpp:369] fc7_norm_score21 -> fc7_norm_score21
I0728 09:33:23.688509  9633 net.cpp:121] Setting up fc7_norm_score21
I0728 09:33:23.688671  9633 net.cpp:128] Top shape: 1 21 63 47 (62181)
I0728 09:33:23.688679  9633 layer_factory.hpp:74] Creating layer fc7_norm_score21_fc7_norm_score21_0_split
I0728 09:33:23.688683  9633 net.cpp:91] Creating Layer fc7_norm_score21_fc7_norm_score21_0_split
I0728 09:33:23.688685  9633 net.cpp:411] fc7_norm_score21_fc7_norm_score21_0_split <- fc7_norm_score21
I0728 09:33:23.688688  9633 net.cpp:369] fc7_norm_score21_fc7_norm_score21_0_split -> fc7_norm_score21_fc7_norm_score21_0_split_0
I0728 09:33:23.688693  9633 net.cpp:369] fc7_norm_score21_fc7_norm_score21_0_split -> fc7_norm_score21_fc7_norm_score21_0_split_1
I0728 09:33:23.688695  9633 net.cpp:121] Setting up fc7_norm_score21_fc7_norm_score21_0_split
I0728 09:33:23.688699  9633 net.cpp:128] Top shape: 1 21 63 47 (62181)
I0728 09:33:23.688702  9633 net.cpp:128] Top shape: 1 21 63 47 (62181)
I0728 09:33:23.688704  9633 layer_factory.hpp:74] Creating layer pool6_1x1_norm_score21
I0728 09:33:23.688709  9633 net.cpp:91] Creating Layer pool6_1x1_norm_score21
I0728 09:33:23.688712  9633 net.cpp:411] pool6_1x1_norm_score21 <- pool6_1x1_norm
I0728 09:33:23.688716  9633 net.cpp:369] pool6_1x1_norm_score21 -> pool6_1x1_norm_score21
I0728 09:33:23.688720  9633 net.cpp:121] Setting up pool6_1x1_norm_score21
I0728 09:33:23.688875  9633 net.cpp:128] Top shape: 1 21 1 1 (21)
I0728 09:33:23.688880  9633 layer_factory.hpp:74] Creating layer pool6_1x1_norm_upscore21
I0728 09:33:23.688885  9633 net.cpp:91] Creating Layer pool6_1x1_norm_upscore21
I0728 09:33:23.688889  9633 net.cpp:411] pool6_1x1_norm_upscore21 <- pool6_1x1_norm_score21
I0728 09:33:23.688890  9633 net.cpp:411] pool6_1x1_norm_upscore21 <- fc7_norm_score21_fc7_norm_score21_0_split_0
I0728 09:33:23.688894  9633 net.cpp:369] pool6_1x1_norm_upscore21 -> pool6_1x1_norm_upscore21
I0728 09:33:23.688897  9633 net.cpp:121] Setting up pool6_1x1_norm_upscore21
I0728 09:33:23.688910  9633 net.cpp:128] Top shape: 1 21 63 47 (62181)
I0728 09:33:23.688911  9633 layer_factory.hpp:74] Creating layer score21
I0728 09:33:23.688916  9633 net.cpp:91] Creating Layer score21
I0728 09:33:23.688918  9633 net.cpp:411] score21 <- pool6_1x1_norm_upscore21
I0728 09:33:23.688921  9633 net.cpp:411] score21 <- fc7_norm_score21_fc7_norm_score21_0_split_1
I0728 09:33:23.688925  9633 net.cpp:369] score21 -> score21
I0728 09:33:23.688930  9633 net.cpp:121] Setting up score21
I0728 09:33:23.688933  9633 net.cpp:128] Top shape: 1 21 63 47 (62181)
I0728 09:33:23.688935  9633 layer_factory.hpp:74] Creating layer upscore21
I0728 09:33:23.688940  9633 net.cpp:91] Creating Layer upscore21
I0728 09:33:23.688941  9633 net.cpp:411] upscore21 <- score21
I0728 09:33:23.688946  9633 net.cpp:369] upscore21 -> upscore21
I0728 09:33:23.688953  9633 net.cpp:121] Setting up upscore21
I0728 09:33:23.689322  9633 net.cpp:128] Top shape: 1 21 504 376 (3979584)
I0728 09:33:23.689327  9633 layer_factory.hpp:74] Creating layer score
I0728 09:33:23.689332  9633 net.cpp:91] Creating Layer score
I0728 09:33:23.689333  9633 net.cpp:411] score <- upscore21
I0728 09:33:23.689337  9633 net.cpp:411] score <- data_data_0_split_1
I0728 09:33:23.689340  9633 net.cpp:369] score -> score
I0728 09:33:23.689343  9633 net.cpp:121] Setting up score
I0728 09:33:23.689379  9633 net.cpp:128] Top shape: 1 21 500 375 (3937500)
I0728 09:33:23.689383  9633 layer_factory.hpp:74] Creating layer predlabel
I0728 09:33:23.689391  9633 net.cpp:91] Creating Layer predlabel
I0728 09:33:23.689393  9633 net.cpp:411] predlabel <- score
I0728 09:33:23.689396  9633 net.cpp:369] predlabel -> predlabel
I0728 09:33:23.689400  9633 net.cpp:121] Setting up predlabel
I0728 09:33:23.689405  9633 net.cpp:128] Top shape: 1 1 500 375 (187500)
I0728 09:33:23.689407  9633 layer_factory.hpp:74] Creating layer evaluation
I0728 09:33:23.689411  9633 net.cpp:91] Creating Layer evaluation
I0728 09:33:23.689414  9633 net.cpp:411] evaluation <- predlabel
I0728 09:33:23.689416  9633 net.cpp:411] evaluation <- label
I0728 09:33:23.689420  9633 net.cpp:369] evaluation -> evaluation
I0728 09:33:23.689424  9633 net.cpp:121] Setting up evaluation
I0728 09:33:23.689430  9633 net.cpp:128] Top shape: 1 21 1 3 (63)

语义分割--ParseNet: Looking Wider to See Better相关推荐

  1. 语义分割系列论文 ParseNet

    语义分割系列论文 ParseNet 核心思想--Global Context 理论感受野的大小(Receptive Field) 实际感受野的大小 此文章如何扩大感受野? 疑点(读者可以忽略本节) 总 ...

  2. 以及其任何超类对此上下文都是未知的_ECCV'20 |OCRNet化解语义分割上下文信息缺失难题...

    编者按:图像语义分割一直都是场景理解的一个核心问题.针对语义分割中如何构建上下文信息,微软亚洲研究院和中科院计算所的研究员们提出了一种新的物体上下文信息--在构建上下文信息时显式地增强了来自于同一类物 ...

  3. 语义分割双料冠军!微软 OCRNet化解语义分割上下文信息缺失难题|ECCV 2020

    编者按:图像语义分割一直都是场景理解的一个核心问题.针对语义分割中如何构建上下文信息,微软亚洲研究院和中科院计算所的研究员们提出了一种新的物体上下文信息--在构建上下文信息时显式地增强了来自于同一类物 ...

  4. 【阅读笔记】《ParseNet: Looking Wider to See Better》

    本文记录了博主阅读论文<ParseNet: Looking Wider to See Better>的笔记,代码.更新于2019.05.16. 文章目录 Abstract Introduc ...

  5. 【论文汇总】Semantic-Segmentation(语义分割)

    语义分割 关于语义分割的所有论文和资源的列表. 数据集重要性 语义分割-深度学习 DL模型语义分割的若干实现 数据集 voc2012 CitySpaces Mapillary ADE20K PASCA ...

  6. 【语义分割】1、语义分割超详细介绍

    文章目录 一.分割方法介绍 1.1 Fully Convolutional Networks [2015] 1.1.1 FCN 1.1.2 ParseNet 1.2 Encoder-Decoder B ...

  7. 实时语义分割算法大盘点

    本文转载自计算机视觉工坊 语义分割论文 语义图像分割是计算机视觉中发展最快的领域之一,有着广泛的应用.在许多领域,如机器人和自动驾驶汽车,语义图像分割是至关重要的,因为它提供了必要的上下文,以采取行动 ...

  8. 语义分割江湖的那些事儿——从旷视说起

    点击我爱计算机视觉标星,更快获取CVML新技术 本文来自知乎Face++ Detection组专栏,52CV获作者ycszen授权转载. https://zhuanlan.zhihu.com/p/55 ...

  9. 应用于语义分割问题的深度学习技术综述(语义分割综述)

    应用于语义分割问题的深度学习技术综述 基本介绍 摘要 1 .引言 2.术语及背景概念 2.1 常见的深度网络架构 2.1.1 AlexNet 2.1.2 VGG 2.1.3 GoogLeNet 2.1 ...

最新文章

  1. linux+nm+内容详解,【Linux】nm命令中符号类型详解
  2. python向mysql中添加数据_通过python操控MYSQL添加数据,并将数据添加到EXCEL中-阿里云开发者社区...
  3. [数分提高]2014-2015-2第8教学周第1次课 (2015-04-21)
  4. 双向dcdc变换器simulink仿真_台达_OBC双向充电_HighEfficiency HighDensity GaNBased 6.6kW
  5. 《springcloud超级入门》微服务的概念和优缺点《一》
  6. mysql cast报错_mysql数据库cast
  7. 《恋上数据结构第1季》映射 TreeMap,HashMap,LinkedHashMap
  8. ASP.NET文件上传的三种基本方法
  9. 关于机器人方面的sci论文_化学教学论文发表【期刊论文】化学教学论文发表
  10. UE4 蓝图通信:接口调用
  11. 如何通过给MM修电脑培养感情
  12. 好用的web报表设计器(报表工具)
  13. maple中plot和plots函数的区别——笔记1
  14. 小学计算机课第二课堂活动,小学信息技术第二课堂计划.doc
  15. 【编译原理】词法分析器语法分析器
  16. matlab图像处理--Otsu阈值分割
  17. IPFS(三)源码解读之-add
  18. webjs--实现多图片的上传
  19. 如何理解拜占庭将军问题
  20. Android函数响应式编程——RxJava最快速度入门

热门文章

  1. RDKit | 通过评估合成难度(SA Score)筛选化合物
  2. 我的超级大魔王Cookie
  3. vue 父页面中的方法 调用_解决Vue中页面成功渲染数据undefined的问题
  4. python并发发送http请求_用python异步发送http请求来提升效率
  5. 拿到offer可以不去吗_2020应届毕业生求职难吗?不难!教你四招,拿到心动的Offer...
  6. 为什么导师不喜欢推荐老实人?这是我听过最醍醐灌顶的回答
  7. MPB:林科院袁志林组-​枫香-真菌互作培养体系构建
  8. 我们从那里来—子宫日记 Womb
  9. Python使用matplotlib可视化多个时间序列数据、添加双Y轴、以显示具有不同尺度的时间序列数据(secondary y axis)
  10. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(分组颜色配置、添加数据点)实战