0%

TITLE: Weakly Supervised Cascaded Convolutional Networks

AUTHOR: Ali Diba, Vivek Sharma, Ali Pazandeh, Hamed Pirsiavash, Luc Van Gool

ASSOCIATION: KU Leuven, Sharif Tech., UMBC, ETH Zürich

FROM: arXiv:1611.08258

CONTRIBUTIONS

A new architecture of cascaded networks is proposed to learn a convolutional neural network handling the task without
expensive human annotations.

METHOD

This work trains a CNN to detect objects using image level annotaion, which tells what are in one image. At training stage, the input of the network are 1) original image, 2) image level labels and 3) object proposals. At inference stage, the image level labels are excluded. The object proposals can be generated by any method, such as Selective Search and EdgeBox. Two differenct cascaded network structures are proposed.

Two-stage Cascade

The two-stage cascade network structure is illustrated in the following figure.

The first stage is a location network, which is a fully-convolutional CNN with a global average pooling or global maximum pooling. In order to learn multiple classes for single image, an independent loss function for each class is used. The class activation maps are used to select candidate boxes.

The second stage is multiple instance learning network. Given a bag for instances

$$ x_{c}={x_{j}|j=1,…,n} $$

and a label set

$$ y_{c}={y_{i}|y_{i} \in {0,1}, i=1,..,C } $$

where each $$ x $$ is one of the condidate boxes, $$ n $$ is the number of candidate box, $$C$$ is the number of categories and $$ \sum_{i=1}^{C}y_{i} $$, the probabilities and loss can be defined as

$$ Score(I,f_{i})=max(f_{i1},…,f_{in}) $$

$$ P(I, f_{i}) = \frac{exp(Score(I,f_{i}))}{\sum_{k=1}^{C}exp(Score(I,f_{k}))} $$

$$ L_{MIL}(P,y) = - \sum_{i=1}^{C}y_{i}log(P(I, f_i)) $$

Im my understanding, only the boxes with the most confidence in each category will be punished if they are wrong. Besides, the equations in the paper have some mistakes.

Three-stage Cascade

The three-stage cascade network structure adds a weak segmentation network between the two stages in the two-stage cascade network. It is illustrated in the following figure.

The weak segmentation network uses the results of the first stage as supervision signal. $$s_{ic}$$ is defined as the CNN score for pixel $i$ and class $$c$$ in image $I$. The score is normalized using softmax

$$ S_{ic}= exp(s_{ic})/\sum_{k=1}^{C}exp(s_{ik})$$

Considering $$y$$ as the label set for image $I$ , the loss function for the weakly supervised segmentation network is given by

$$ L_{seg}(S,G,y)=-\sum_{i=1}^{C}y_{i}log(S_{t_{c}c}) - \sum_{i \in I_{s}} \alpha_{i}log(S_{t_{c}G_{i}}) $$

$$ By \ \ \ \ \ t_{c} = \mathop{argmax}{i \in I} S{ic} $$

where $$G_{i}$$ is the supervision map for the segmentation from the first stage.

SOME IDEAS

This work requires little annotation. The only annotation is the image level label. However, this kind of training still needs complete annotation. For example, we want to detect 20 categories, then we need a 20-d vector to annotate the image. What if we only know 10/20 categories’ status in one image?

在这一时期,朝鲜半岛上的新罗与唐朝结盟,扩张势力,压迫百济。朝廷决定援助百济,所以661年天皇亲自前往九州岛,不过她却在远征开始前就过世了。那一年,中大兄虽然以皇太子名义称制,但没有正式即位,随后663年就经历了白村江之战。

——小岛毅《东大爸爸写给我的日本史》

历史总是人写的,所以说客观的历史可能是完全不存在的。比如以上叙述的历史事件,在国内的大多数叙述都是说日本以侵略朝鲜为目的,但日本人自己的叙述却是帮助百济。想一想是不是侵略,可能也是以现代国家的边界为标准的。好像作者在叙述“阿弖流为反叛”事件:

然而,阿弖流为发动“叛乱”了吗?反抗来自天皇的“控制体制”,或许可被视为叛乱,不过问题在于,他们是否原本就接受来自天皇的统治?

如果现在的朝鲜半岛和日本列岛为一个国家,那么现在的历史应该说是唐朝侵略了“朝鲜-日本国”。最近还有人在探讨元朝是否应该算作中国历史的一部分。或许历史应该站在更广泛的范围之内来看,而不能只拿现在的国界范围来区分国别史,这也是小岛毅的历史观。

《东大爸爸写给我的日本史》估计是第一本我不能完全看懂而又坚持看完的书,看不懂是因为书中的很多史实我完全不了解,这本书更像是给有一定日本历史知识的人的课本补充读物,而又放不下的原因是作者本身对历史的思考,以及其中作者对“仁义道德”、鲁迅、人吃人的一些想法,这些元素对于我们中国人来说应该是很熟悉的,能够看到一个外国人对这些内容的认识,也是一件很有意思的事情。

TITLE: Speed/accuracy trade-offs for modern convolutional object detectors

AUTHOR: Jonathan Huang, Vivek Rathod, Chen Sun, Menglong Zhu, Anoop Korattikara, Alireza Fathi, Ian Fischer, Zbigniew Wojna, Yang Song, Sergio Guadarrama, Kevin Murphy

ASSOCIATION: Google Research

FROM: arXiv:1611.10012

CONTRIBUTIONS

In this paper, the trade-off between accuracy and speed is studied when building an object detection system based on convolutional neural networks.

Summary

Three main families of detectors — Faster R-CNN, R-FCN and SSD which are viewed as “meta-architectures” are considered. Each of these can
be combined with different kinds of feature extractors, such as VGG, Inception or ResNet. other parameters, such as the image resolution, and the number of box proposals are also varied to compare how they perform in the task of detecting objects. The main findings are summarized as follows.

Accuracy vs time

The following figure shows the accuracy vs time of different configurations.

Generally speaking, R-FCN and SSD models are faster on average while Faster R-CNN tends to lead to slower but more accurate models, requiring at least 100 ms per image.

Critical points on the optimality frontier

  1. SSD models with Inception v2 and Mobilenet feature extractors are most accurate of the fastest models.
  2. R-FCN models using Residual Network feature extractors which seem to strike the best balance between speed and accuracy.
  3. Faster R-CNN with dense output Inception Resnet models attain the best possible accuracy

The effect of the feature extractor

There is an intuition that stronger performance on classification should be positively correlated with stronger performance detection. It is true for Faster R-CNN and R-FCN, but it is less apparant for SSD as the following figure illustrated.

The effect of object size

Not surprisingly, all methods do much better on large objects. Even though SSD models typically have (very) poor performance on small objects, they are competitive with Faster RCNN and R-FCN on large objects, even outperforming these meta-architectures for the faster and more lightweight feature extractors as the following figure illustrated.

The effect of image size

Decreasing resolution by a factor of two in both dimensions consistently lowers accuracy (by 15.88% on average) but also reduces inference time by a relative factor of 27.4% on average.

Strong performance on small objects implies strong performance on large objects, but not vice-versa as SSD models do well
on large objects but not small.

The effect of the number of proposals

For Faster R-CNN, reducing proposals help accelerating prediction significantly because the computation of box classifier is correlated with the number of the proposals. The interesting thing is that Inception Resnet, which has 35.4% mAP with 300 proposals can still have surprisingly high accuracy (29% mAP) with only 10 proposals. The sweet spot is probably at 50 proposals.

For R-FCN, computational savings from using fewer proposals are minimal, because the box classifier is only run once per image. At 100 proposals, the speed and accuracy for Faster R-CNN models with ResNet becomes roughly comparable to that of equivalent R-FCN models which use 300 proposals in both mAP and GPU speed.

The following figure shows the observation, in which solid lines shows the relation between number of proposals and mAP, while dotted lines shows that of GPU inference time.

Others

The paper also discussed the FLOPs and Memories. The observations in these parts are sort of obvious for the practitioner. Another observation is that Good localization at .75 IOU means good localization at all IOU thresholds.

那年春节,我倒心血来潮提起了勇气,开始走访一个个小时候玩伴的家。

有的人已经结婚了,抱着孩子,和我讲述他在夜市上摆着的那摊牛肉店的营收。有的当上了渔夫,和我讲话的时候,会不自觉地把自己的身子一直往后退,然后问:“会不会熏到你啊?”有的开起服装厂当上了老板,吃饭的时候一直逼我喝陈酿多少多少年的茅台,然后醉气熏熏地拉着我,中气十足地说:“咱们是兄弟对不对,是兄弟你就别嫌我土,我也不嫌你穷,我们喝酒……”

我才明白,那封信里,我向文展说的“小时候的玩伴真该一起聚聚了”,真是个天真的提议。每个人都已经过上不同的生活,不同的生活让许多人在这个时空里没法相处在共同的状态中,除非等彼此都老了,年迈再次抹去其他,构成我们每个人都重要的标志,或许那时候的聚会才能成真。

—— 蔡崇达《皮囊》

感觉大家都成长了,只有我自己还活在以前的日子里,以为伙伴们都和小时候一样。读到这一段话,突然相当以前一个很尴尬的遭遇,有一个小学时的玩伴小A和我进入了不同的初中,在初二的一次聚会中,跟小A开了一个小学的时候经常开的玩笑,但是小A并没有做出小学时的反应。现在想想,原来在那么早之前我们每个人就都不一样了。

现在,只有那些从小到大一直保持联系,而且教育经历差不多的人同伴才保持着亲密的关系。作为独生子女的一代,或许我们各自都会一些孤僻,而同时又都渴望有一群兄弟姐妹。我们就好像《老友记》里的那六个人,互相成为同龄人里的支柱,大家聚在一起寻开心、吐苦水、分享各自生活里的趣事。然而,逐渐的,好像电视剧结束时,当大家各自组建了家庭,好像也就到了大家需要适当分开的时候了。再没有人想要来一场说走就走的撸串,或许是不想打扰别人的生活,或许是觉得不该就那么脱离家庭。也许,这就是大家感觉我们变了的原因吧。


不知不觉买了十本书,什么方面的都有,期待赶紧把它们都读完。

TITLE: Fully Convolutional Instance-aware Semantic Segmentation

AUTHOR: Yi Li, Haozhi Qi, Jifeng Dai, Xiangyang Ji, Yichen Wei

ASSOCIATION: Microsoft Research Asia, Tsinghua University

FROM: arXiv:1611.07709

CONTRIBUTIONS

An end-to-end fully convolutional approach for instance-aware semantic segmentation is proposed. The underlying convolutional representation and the score maps are fully shared for the mask prediction and classification sub-tasks, via a novel joint formulation with no extra parameters. The network structure is highly integrated and efficient. The per-ROI computation is simple, fast, and does not involve any warping or resizing operations.

METHOD

The proposed method is highly related with a previous work or R-FCN. The following figure gives an illustration:

Different from the mentioned previous work, this work predicts two maps, ROI inside map and ROI outside map. The two score maps jointly account for mask prediction and classification sub-tasks. For mask prediction, a softmax operation produces the per-pixel foreground probability. For mask clssification, a max operation produces the per-pixel likelihood of “belonging to the object category”.

For an input image, 300 ROIs with highest scores are generated from RPN. They pass through the bbox regression branch and give rise to another 300 ROIs. For each ROI, its classification scores and foreground mask (in probability) is predicted for all categories. NMS with an IoU threshold is used to filter out highly overlapping ROIs. The remaining ROIs are classified as the categories with highest classification scores. Their foreground masks are obtained by mask voting. For an ROI under consideration, the ROIs (from the 600) are found with IoU scores higher than 0.5. Their foreground masks of the category are averaged on a per-pixel basis, weighted by their classification scores. The averaged mask is binarized as the output.

ADVANTAGES

  1. End-to-end training and testing alleviate the simplicity of the system.
  2. Utilizing the idea of R-FCN, its efficiency is proved.

人世间不会有小说或童话故事那样的结局:“从此,他们永远快快活活地一起过日子。”

人间没有单纯的快乐。快乐总夹带着烦恼和忧虑。

人间也没有永远。我们一生坎坷,暮年才有了一个可以安顿的居处。但老病相催,我们在人生道理上已走到尽头了。

—— 杨绛《我们仨》

这是这本书最后一段话的一部分,很难说这本书是充满快乐的,因为三人中两人的离去,我总有一种忧伤的情绪,然而也不得不说,每每读到这三个人有趣的互动,我的嘴角总会微微上扬。当我深深喜爱一个故事的时候,我会希望这个故事一直继续下去,不需要有美好的结局,只希望它继续下去。所以说,我可能是个追求永远的人,是个怕变老怕死的人。


我们的生命本来多轻盈,都是被这肉体和各种欲望的污浊给拖住。阿太,我记住了。“肉体是拿来用的,不是拿来伺候的。”

—— 蔡崇达《皮囊》

不知道“愉悦”到底来自于什么,可能就像哲学里的“存在”分为“物质的存在”和“精神的存在”,“愉悦”也来自于“物质的愉悦”和“精神的愉悦”,吃一顿大餐和画一幅满意的画,都能给让我快乐。不过不是有那么一句话么,快乐来自于多巴胺,如果这句话是真的,那看来“精神的愉悦”最终也得落于“物质的愉悦”。所以我觉得精神上的造诣永远不能脱离肉体,即使佛教里多少得道高僧都是通过冥想来参透佛法、领悟真理,我还是觉得他们得到的不是真正的真理,因为宗教过于抬高精神了;相对应的,科学又过于专注于观察。两者都是对真理的无限逼近,如果能够真正做到两者的统一,那也许才是真理。

同事的邀约,春节第一天准时上班的人一起吃饭庆祝。那个嘈杂的餐厅,每个人说着春节回家的种种故事:排队两天买到的票、回去后的陌生和不习惯、与父母说不上话的失落和隔阂……然后有人提议说,为了大家共同的遥远的故乡举杯。

我举起杯,心里想着:用尽各种办法让自己快乐吧,你们这群无家可归的孤魂野鬼。

—— 蔡崇达《皮囊》

如果这样就是孤魂野鬼了,那我猜我得算得上一个,而且这个世界上充满了孤魂野鬼。


最近对阅读的热情突然大增,趁着有动力,赶紧买了小三百的闲书。特别喜欢读别人的故事,看电影也是,特别喜欢一个人成长的故事,哪怕这个故事平平淡淡的,看过之后也觉得自己多了一种阅历。读着读着就有一些想法,小记于此吧。

TITLE: Densely Connected Convolutional Networks

AUTHOR: Gao Huang, Zhuang Liu, Kilian Q. Weinberger

ASSOCIATION: Cornell University, Tsinghua University

FROM: arXiv:1608.06993

CONTRIBUTIONS

Dense Convolutional Network (DenseNet) is proposed, which embraces the observation that networks can be substantially deeper, more accurate and efficient to train if they contain shorter connections between layers close to the input and those close to the output.

METHOD

DenseNet is a network architecture where each layer is directly connected to every other layer in a feed-forward fashion (within each dense block). For each layer, the feature maps of all preceding layers are treated as separate inputs whereas its own feature maps are passed on as inputs to all subsequent layers. The idea can be illustrated as the following figure:

SOME IDEAS

In the work of Yoshua Bengio’s Understanding intermediate layers using linear classifier probes, the author claims that the raw input is helpful at the beginning of the training of the network. So maybe the dense connection plays similar role in this work.

Using Caffe to implement DenseNet, large memory is of need because of the large number of split layers.