論文解讀:DenseCap: Fully Convolutional Localization Networks for Dense Captioning

本篇論文解讀的排版主要參見(jiàn)原文的格式亡容,針對(duì)原文中的每一個(gè)小節(jié)進(jìn)行展開(kāi)讼稚,有的是對(duì)原文的一個(gè)提煉和簡(jiǎn)單概括陈醒,有的是對(duì)原文中涉及但是又沒(méi)有詳細(xì)介紹的技術(shù)的補(bǔ)充和說(shuō)明抚岗。
原文連接:https://cs.stanford.edu/people/karpathy/densecap/
作者個(gè)人主頁(yè):https://cs.stanford.edu/people/jcjohns/
PS:本篇博文不是對(duì)原文的簡(jiǎn)單翻譯扒寄,論文中每一處涉及到的知識(shí)點(diǎn)以及論文中沒(méi)有提及的技術(shù)細(xì)節(jié)鱼鼓,本文都會(huì)做一定的補(bǔ)充說(shuō)明,如果還有什么看不懂的地方的話该编,可以留言一起討論迄本,我會(huì)盡量在24小時(shí)內(nèi)回復(fù)。

<div align=center>

[圖片上傳失敗...(image-f8be6-1540209330519)]

0.摘要

??這篇文章的主要工作是對(duì)圖像的dense captioning课竣。所謂dense captioning嘉赎,就是要描述的對(duì)象不再是一幅簡(jiǎn)單的圖片,而是要將圖片中的許多局部細(xì)節(jié)都都用自然語(yǔ)言描述出來(lái)于樟。這篇文章所做的工作可以說(shuō)是object detection和image captioning的一般化公条,即當(dāng)描述的語(yǔ)言是一個(gè)單詞的時(shí)候,就可以看作是object detection迂曲,當(dāng)描述的對(duì)象是整幅圖片的時(shí)候靶橱,就成了普通的image captioning。
這篇文章的主要貢獻(xiàn)在于提出了一個(gè)Fully Convolutional Localization Network(FCLN)網(wǎng)絡(luò)結(jié)構(gòu)路捧,該網(wǎng)絡(luò)結(jié)構(gòu)可以進(jìn)行端到端式的訓(xùn)練关霸,無(wú)需額外的候選區(qū)域生成模型(以及整合到網(wǎng)絡(luò)內(nèi)部),只需要進(jìn)行一輪優(yōu)化和前饋計(jì)算就可以得到輸出結(jié)果鬓长。
網(wǎng)絡(luò)模型有三部分組成:卷積網(wǎng)絡(luò)(Convolutional Network)谒拴、密集定位層(dense localization layer)和RNN語(yǔ)言模型。

1.介紹

??本小節(jié)主要介紹了dense cationing任務(wù)的定義涉波,以及相對(duì)應(yīng)的object detection和image caotioning方面的研究英上。大家可以自己看一下原文

2.相關(guān)工作

??這里只給出重要的2篇論文(作者主要是在這兩篇論文的幾處上進(jìn)行模型構(gòu)建的),其他的可以參見(jiàn)原文
Faster R-CNN
http://papers.nips.cc/paper/5638-faster-r-cnn-towards-real-time-object-detection-with-region-proposal-networks
Deep Visual-Semantic Alignments for Generating Image Descriptions
https://cs.stanford.edu/people/karpathy/deepimagesent/

3.模型

3.0總覽

目標(biāo):設(shè)計(jì)一個(gè)可以標(biāo)定出感興趣區(qū)域并且用自然語(yǔ)言描述其中內(nèi)容的網(wǎng)絡(luò)框架模型
挑戰(zhàn)與難點(diǎn):在兼顧高效性和有效性的前提下啤覆,開(kāi)發(fā)出一個(gè)可以支持端到端訓(xùn)練并且只需一次優(yōu)化的模型

3.1模型框架

<div align=center>
[圖片上傳失敗...(image-417379-1540209330519)]

3.1.1卷積網(wǎng)絡(luò)(Convalutional Network)

??作者采用了基于VGG-16的網(wǎng)絡(luò)結(jié)構(gòu)苍日,包含13層卷積核為3×3的卷積層和4層池化核為2×2的最大池化層(原本的VGG是5層池化層,這里作者做了一些小改動(dòng)窗声,改為4層)相恃,因此,對(duì)于大小為3×W×H的圖片笨觅,經(jīng)過(guò)卷積網(wǎng)絡(luò)后拦耐,輸出結(jié)果是C×W'×H'的特征圖譜耕腾,這里C=512W’=\lfloor\frac{W}{16}\rfloor杀糯,H’=\lfloor\frac{H}{16}\rfloor扫俺,該特征圖譜就是下一層Fully Convolutional Localization Layer的輸入。

3.1.2全卷積定位層(Fully Convolutional Localization Layer)

輸入和輸出

輸入
: 來(lái)自卷積網(wǎng)絡(luò)的特征圖譜C×W'×H'(size任意)

輸出
: 輸出B個(gè)候選區(qū)域的表征向量(定長(zhǎng))固翰,每個(gè)特征向量都包含下面三個(gè)關(guān)鍵信息:

  • 候選區(qū)域的坐標(biāo):輸出形式是一個(gè)B×4的矩陣狼纬,每行代表一個(gè)候選區(qū)域的坐標(biāo)
  • 候選區(qū)域的置信分?jǐn)?shù):一個(gè)長(zhǎng)度為B的一維列向量,向量?jī)?nèi)每個(gè)元素都給出了候選區(qū)域的得分骂际。得分越高說(shuō)明越可能是真實(shí)區(qū)域
  • 候選區(qū)域的特征:輸出形式為B×C×X×Y的特征集合疗琉,這里B代表區(qū)域個(gè)數(shù),X×Y表示特征圖譜的大星嘎痢(注意盈简,這里的size已經(jīng)是固定的),C代表特征的維度

??這里額外說(shuō)明一下犯戏,在CNN階段我們不需要指定輸入圖片的大兴突稹(傳統(tǒng)CNN分類任務(wù)由于FC全連接層的限制,使得輸入圖片的大小是固定的)先匪,因?yàn)檫@里我們關(guān)心的是圖片的特征种吸,而卷積層和池化層根本不care輸出尺寸的多少,它們只負(fù)責(zé)拿到前一層的特征圖譜(feature map)呀非。
??但是為什么這里的輸出必須是定長(zhǎng)的向量呢坚俗?主要是因?yàn)楹竺鍾NN模型的制約,由于RNN模型接受的數(shù)據(jù)必須的定長(zhǎng)的岸裙,所以在全卷積定位層(FCL)階段的最后一步猖败,我們需要使用雙線性插值的方法來(lái)使輸出成為定長(zhǎng)的特征向量。

卷積錨點(diǎn)(Convolutional Anchors)
??這里的工作主要參考自Faster R-CNN降允。主要思想是借助一系列具有平移不變性的錨點(diǎn)(anchors)來(lái)預(yù)測(cè)候選區(qū)域的位置和大小恩闻,具體做法如下:
??對(duì)于大小為W'×H'的特征圖譜來(lái)說(shuō),將圖譜中的每一個(gè)像素點(diǎn)都做為一個(gè)錨點(diǎn)(anchor)(錨點(diǎn)數(shù)量為W'×H'個(gè))剧董,將該點(diǎn)反向映射會(huì)原始圖像W*H中幢尚,然后基于該錨點(diǎn),畫出不同寬高比和大小的若干個(gè)“錨箱”(anchor box)翅楼。下圖所示是3個(gè)具有相同大小但是不同寬高比的錨箱示例(分別為1:1尉剩,1:2,2:1)毅臊。

<div align=center>
[圖片上傳失敗...(image-491a01-1540209330519)]
??如果采用Faster R-CNN的設(shè)置理茎,即每個(gè)錨點(diǎn)對(duì)應(yīng)3個(gè)不同的size取值(128^2,256^2,512^2)和3個(gè)不同的寬高比取值(1:1皂林,1:2朗鸠,2:1),因此式撼,每個(gè)錨點(diǎn)對(duì)應(yīng)的錨箱數(shù)量為k=9童社,在本文中采用的是k=12,具體對(duì)應(yīng)多少個(gè)size和寬高比文中并沒(méi)有給出著隆。對(duì)于這k個(gè)錨箱,定位層(localization layer)會(huì)通過(guò)回歸模型來(lái)預(yù)測(cè)相應(yīng)的置信分?jǐn)?shù)(score)和位置信息(scalars)呀癣。具體的計(jì)算過(guò)程是將特征圖片作為輸入美浦,經(jīng)過(guò)一個(gè)卷積核為3×3的卷積層(filter個(gè)數(shù)為256),然后再經(jīng)過(guò)一個(gè)卷積核為1×1卷積層(filter個(gè)數(shù)為5k项栏,這里k代表anchor box的數(shù)量),所以這一層的最終輸出是5k×W'×H'的張量浦辨,包含了所有錨點(diǎn)對(duì)應(yīng)的置信分?jǐn)?shù)和位置信息。

邊界回歸(Box Regression)
??邊界回歸主要是對(duì)剛剛預(yù)測(cè)的候選區(qū)域的一次精修沼沈,進(jìn)行邊界回歸的原因主要是當(dāng)前的候選區(qū)域可能與真實(shí)區(qū)域并不是特別匹配流酬,如下圖所示:

<div align=center>
[圖片上傳失敗...(image-151951-1540209330519)]

??圖中,綠色框代表真實(shí)區(qū)域列另,紅色框代表目前的候選區(qū)域芽腾,我們可以看到,候選區(qū)域雖然可以判斷出區(qū)域內(nèi)存在物體(飛機(jī))页衙,但是它的定位并不是很準(zhǔn)取摊滔,這時(shí)候就可以利用box regression來(lái)對(duì)邊框進(jìn)行微調(diào)。核心思想是利用線性回歸得到關(guān)于邊框的四個(gè)位移參數(shù)(t_x,t_y,t_w,t_h)店乐,然后通過(guò)下面的式子對(duì)候選區(qū)域的中點(diǎn)(x,y)和size(w艰躺,h)進(jìn)行更新
x=x_a+t_xw_a$$$$ y=y_a+t_yh_a$$$$ w=w_aexp(t_w) $$$$h=h_aexp(h_w)
有關(guān)box regression的詳細(xì)講解可以參考這篇論文:
https://blog.csdn.net/zijin0802034/article/details/77685438
(PS:這篇論文的講解是基于R-CNN的,其中的符號(hào)表示與本文有些出入眨八,如t_x,t_y在R-CNN中代表的是真實(shí)區(qū)域的中心坐標(biāo)腺兴,看的時(shí)候注意一下各個(gè)符號(hào)都表達(dá)了什么,不要搞混了)

區(qū)域采樣
??以圖像大小為W=720廉侧,H=540页响,錨箱(anchor box)數(shù)量為k=12的情況為例,得到的候選區(qū)域的個(gè)數(shù)應(yīng)該為\lfloor\frac{720}{16}\rfloor×\lfloor\frac{540}{16}\rfloor×12=17820(文章中寫的是17280伏穆,我感覺(jué)應(yīng)該是寫錯(cuò)了)拘泞。
為了降低成本,我們只取這些候選區(qū)域的子集來(lái)參與訓(xùn)練過(guò)程和測(cè)試過(guò)程枕扫,具體選取原則如下:

在訓(xùn)練階段
: 采用Faster R-CNN的方法陪腌,采集一個(gè)大小為B=256的minibatch來(lái)進(jìn)行訓(xùn)練,在這B個(gè)候選區(qū)域中,有至多B/2個(gè)正樣本诗鸭,其余均為負(fù)樣本染簇。采集時(shí),如果所有的候選區(qū)域中(這里為17280個(gè))正樣本的數(shù)量不足B/2個(gè)强岸,那么就由負(fù)樣本補(bǔ)充锻弓,所以,最終的minibatch中正樣本的數(shù)量B_P\le B/2蝌箍,而負(fù)樣本的數(shù)量B_N=B-B_P青灼。正樣本和負(fù)樣本的定義如下:

  • 正樣本:候選區(qū)域與一個(gè)或多個(gè)真實(shí)區(qū)域的面積相交部分大于70%
  • 負(fù)樣本: 候選區(qū)域與所有真實(shí)區(qū)域的面積相交部分小于30%

在測(cè)試階段
: 基于每個(gè)候選區(qū)域的置信分?jǐn)?shù),采用非極大抑制選取B=300個(gè)置信分?jǐn)?shù)最高的候選區(qū)域

??非極大抑制:這里的抑制就是忽略的意思妓盲,非極大抑制的意思就是忽略那些與具有最高score值的候選區(qū)域的相交面積大于設(shè)定閾值的其他候選區(qū)域杂拨。這樣做的目的主要是為了減少重疊區(qū)域的輸出,從而更精細(xì)化的定位目標(biāo)位置悯衬。

??經(jīng)過(guò)以上操作弹沽,最終我們可以得到關(guān)于這B個(gè)候選區(qū)域的位置坐標(biāo)和置信分?jǐn)?shù),表示為B×4和B×1的張量筋粗,這就是定位層(localization layer)的輸出策橘。

雙線性插值(Bilinear Interpolaion)

??在經(jīng)過(guò)采樣后,我們得到的各個(gè)候選區(qū)域是具有不同大小和寬高比的矩形框娜亿。為了與全連接層(主要進(jìn)行識(shí)別分類)和RNN語(yǔ)言模型的進(jìn)行建立連接丽已,我們必須將候選區(qū)域提取成固定大小的特征表示向量。對(duì)于這一問(wèn)題暇唾,F(xiàn)aster R-CNN提出了感興趣區(qū)域池化層(RoI pooling layer)促脉,具體方法是大小為W'×H'的卷積特征圖譜進(jìn)行劃分,得到具有X×Y個(gè)小網(wǎng)格的網(wǎng)格圖策州,然后根據(jù)最大池化的原理瘸味,將小網(wǎng)格內(nèi)的像素最大值作為代表該網(wǎng)格的特征像素,最終可以得到定長(zhǎng)為X×Y的特征向量够挂。劃分示意圖如下所示旁仿。

<div align=center>
[圖片上傳失敗...(image-b55193-1540209330519)]

??RoI pooling layer需要兩個(gè)輸入:卷積特征圖譜和候選區(qū)域坐標(biāo)。但是在應(yīng)用梯度下降時(shí)孽糖,該方法只能對(duì)特征圖譜采用反向傳播(BP)算法枯冈,而不能對(duì)候選區(qū)域坐標(biāo)使用BP算法,為了克服這個(gè)缺點(diǎn)办悟,在本文中尘奏,作者采用了雙線性插值。
??具體來(lái)說(shuō)病蛉,就是對(duì)于任意的特征圖譜U(C×W'×H')和候選區(qū)域炫加,我們要將其放縮成大小為(C×X×Y)的特征圖譜V瑰煎,放縮過(guò)程按照如下步驟進(jìn)行:

  1. 計(jì)算VU的反向投影坐標(biāo)值,例如對(duì)于特征圖譜V中的任意一點(diǎn)坐標(biāo)(x_{i,j}^V,y_{i,j}^V)俗孝,投影到U中的坐標(biāo)值為x_{i,j}=x_{i,j}^V*\frac{W'}{X}酒甸,y_{i,j}=y_{i,j}^V*\frac{H'}{Y}很容易看出,這里x_{i,j}和y_{i,j}的值均為浮點(diǎn)數(shù)赋铝,然而圖像的像素坐標(biāo)在計(jì)算機(jī)中必須為整數(shù)插勤,所以這里坐標(biāo)(x_{i,j},y_{i,j})對(duì)應(yīng)的像素點(diǎn)是虛擬像素點(diǎn),并不是U中實(shí)際存在的點(diǎn)革骨。
  2. 按照雙線性插值法农尖,得到U(x_{i,j}^U,y_{i,j}^U)坐標(biāo)點(diǎn)的像素值,該像素值就是V中對(duì)應(yīng)點(diǎn)的像素值V_{c,i,j}苛蒲,計(jì)算公式如下V_{c,i,j}=\sum_{i'=1}^{W’}\sum_{j'=1}^{H'}U_{c,j',j'}k(i'-x_{i,j})k(j'-y_{i,j})卤橄,其中 ,k(d)=max(0,1-|d|)
  3. 利用上面的方法臂外,計(jì)算V中所有像素點(diǎn)的坐標(biāo)值,得到C×X×Y的特征圖譜

??對(duì)于上面的步驟可能理解起來(lái)不太直觀喇颁,下面我們利用一個(gè)例子來(lái)幫助理解漏健,我們假定源圖譜U的大小為4×4,目的圖譜V的大小為3×3橘霎,如下圖所示
<div align=center>
[圖片上傳失敗...(image-fb0cea-1540209330519)]

如果我們想要知道V中某點(diǎn)的坐標(biāo)值蔫浆,以V的中心點(diǎn)為例,我們先計(jì)算出V反向投影到U的坐標(biāo)值(x_{i,j},y_{i,j})
<div align=center>
[圖片上傳失敗...(image-764299-1540209330519)]
x_{i,j}=1*\frac{4}{3}=1.333姐叁,y_{i,j}=1*\frac{4}{3}=1.333

然后瓦盛,利用上面的公式計(jì)算V_{c,i,j}的值
V_{c,i,j}=95*0.667*0.667+32*0.667*0.333+156*0.333*0.667+84*0.333*0.333=93.336\approx 93

<div align=center>
[圖片上傳失敗...(image-f21ef2-1540209330519)]

最終,對(duì)于B個(gè)候選區(qū)域外潜,我們會(huì)得到形式為B×C×X×Y的一個(gè)張量原环,這就是localization layer的最終輸出。

3.1.3識(shí)別網(wǎng)絡(luò)(Recognition Network)

??識(shí)別網(wǎng)絡(luò)以一個(gè)全連接的神經(jīng)網(wǎng)絡(luò)处窥,它接受的是來(lái)自定位層的候選區(qū)域的特征矩陣(定長(zhǎng))嘱吗。將每個(gè)候選區(qū)域的特征拉伸成一個(gè)一維列向量,令其經(jīng)過(guò)兩層全連接層滔驾,每次都使用ReLU激活函數(shù)和Dropout優(yōu)化原則谒麦。最終,對(duì)于每一個(gè)候選區(qū)域哆致,都會(huì)生成一個(gè)長(zhǎng)度為D=4096的一維向量绕德。
??將所有的正樣本的存儲(chǔ)起來(lái)颅夺,形成一個(gè)B×D形狀的矩陣命满,將該矩陣傳送到RNN語(yǔ)言模型中。
另外番刊,我們?cè)试S識(shí)別網(wǎng)絡(luò)對(duì)候選區(qū)域的置信分?jǐn)?shù)和位置信息進(jìn)行二次精修,從而生成每個(gè)候選區(qū)域最終的置信分?jǐn)?shù)和位置信息城丧,這一次的精修與之前的box regression基本是一樣的延曙,只不過(guò)是針對(duì)這個(gè)長(zhǎng)度D的向量又進(jìn)行了一次box regression而已(在R-CNN論文中已經(jīng)指出,理論上是可以通過(guò)迭代使用box regression來(lái)不斷讓候選區(qū)域無(wú)限逼近真實(shí)區(qū)域的亡哄,不過(guò)實(shí)現(xiàn)表明枝缔,對(duì)最終的結(jié)果提升并不大)。

3.1.4 RNN語(yǔ)言模型(RNN Language Model)

??將圖片的特征圖譜輸入到RNN語(yǔ)言模型當(dāng)中蚊惯,從而獲得基于圖片內(nèi)容的自然語(yǔ)言序列愿卸。基本方法是將識(shí)別網(wǎng)絡(luò)的輸出結(jié)果進(jìn)行編碼(每一個(gè)候選區(qū)域到對(duì)應(yīng)一個(gè)編碼)截型,記為x_{-1}=CNN(I)趴荸,然后將該區(qū)域?qū)?yīng)的真實(shí)描述s_1,...,s_T也進(jìn)行編碼,記為x_1,...x_T宦焦,這里发钝,x_i就是對(duì)應(yīng)的s_i的向量編碼。于是波闹,我們就得到了長(zhǎng)度為T+2的單詞向量序列x_{-1},x_0,x_1,...,x_T酝豪,其中x_{-1}代表這候選區(qū)域的圖像信息,x_0是特殊的開(kāi)始標(biāo)志精堕,x_1,...x_T代表每一個(gè)單詞的向量編碼孵淘,將這T+2長(zhǎng)度的向量序列feed到RNN中,訓(xùn)練出一個(gè)預(yù)測(cè)模型歹篓。
接著瘫证,在預(yù)測(cè)階段,訓(xùn)練好的RNN語(yǔ)言模型的輸入是x_{-1}x_0(START token)庄撮,然后根據(jù)公式h_t,y_t=f(h_{t-1},x_t)分別計(jì)算出隱藏狀態(tài)h_0和單詞向量y_0背捌。這里,y_t是一個(gè)長(zhǎng)度為|V|+1的向量重窟,V代表詞庫(kù)的size载萌,多出來(lái)的1是一個(gè)特殊的END標(biāo)志,根據(jù)y_0預(yù)測(cè)出第一個(gè)word巡扇,然后將該word再作為下一層LSTM網(wǎng)絡(luò)(RNN中的語(yǔ)言模型網(wǎng)絡(luò))的輸入扭仁,預(yù)測(cè)出第二個(gè)word,一直遞歸的重復(fù)這個(gè)過(guò)程厅翔,直到輸出的word是END標(biāo)志為止乖坠。該預(yù)測(cè)過(guò)程可以用下面的公式和兩張示意圖表示。
x_{-1}=CNN(I)$$$$x_t=W_eS_t刀闷,t\in \{ 0...N-1 \} $$$$p_{t+1}=LSTM(x_t)熊泵,t\in \{ 0...N-1\}

??上式中仰迁,x_{-1}代表CNN生成的D維圖像特征向量,并且它將作為整個(gè)RNN語(yǔ)言模型的初始輸入顽分,S_t代表RNN模型生成的一個(gè)個(gè)單詞(word)徐许,其中S_0是一個(gè)特殊的開(kāi)始標(biāo)志,p_{t+1}代表第t+1個(gè)單詞在整個(gè)單詞表中的分布率卒蘸,它是p(S_{t+1}|I,S_0,...,S_t)的簡(jiǎn)寫形式雌隅,之后,選取p_t概率最大的元素作為句子中第t個(gè)單詞的輸出缸沃,如果概率最大的元素對(duì)應(yīng)的是END標(biāo)識(shí)符恰起,則句子生成結(jié)束,迭代終止趾牧。

<div align=center>
[圖片上傳失敗...(image-a2b94f-1540209330519)]

<div align=center>
[圖片上傳失敗...(image-dbbb53-1540209330519)]

有關(guān)RNN模型生成圖片描述的詳細(xì)介紹可以參考下面兩篇論文:
Show and Tell: A Neural Image Caption Generator
https://arxiv.org/abs/1411.4555
Deep Visual-Semantic Alignments for Generating Image Descriptions
https://arxiv.org/abs/1412.2306

3.2損失函數(shù)(Loss function)

??這篇文章訓(xùn)練時(shí)的損失函數(shù)有五個(gè)检盼,如下圖所示,首先是lacalization layer定位層的邊框位置回歸和置信分?jǐn)?shù)兩處損失函數(shù)翘单,前者使用smooth L1 loss吨枉,后者使用binary logistic loss。損失函數(shù)的數(shù)學(xué)定義可以參考Fast R-CNN和Faster R-CNN里面的損失函數(shù)哄芜。
??接下來(lái)是Recognition Network的兩處損失函數(shù)东羹,該層和localization layer一樣,也是邊框位置和置信分?jǐn)?shù)兩個(gè)損失函數(shù)忠烛,最后是語(yǔ)言模型的損失函數(shù),采用的取交叉熵(cross-entropy)損失函數(shù)权逗。
??作者利用bathch size和sequence length對(duì)所有的損失函數(shù)都進(jìn)行了歸一化美尸。經(jīng)過(guò)不斷測(cè)試,作者發(fā)現(xiàn)將后續(xù)區(qū)域邊框的初始權(quán)重設(shè)為0.1斟薇,將圖片描述的置信權(quán)重設(shè)為1.0师坎,是比較高效率的初始化設(shè)置。
文中并沒(méi)有對(duì)損失函數(shù)給出詳細(xì)定義堪滨,通過(guò)查閱相關(guān)論文后胯陋,得到了各個(gè)損失函數(shù)的詳細(xì)定義如下:

置信度損失函數(shù)(binary logistic loss)
: l(w,b)=-\sum_{i=1}^{m}lnP(y_i|x_i;w,b)$$$$P(y=1|x)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}$$$$P(y=0|x)=\frac{1}{1+e^{w^Tx+b}}這里,w為矩陣袱箱,b為向量遏乔,x_i是輸入的圖像區(qū)域的特征圖譜,y_i為期望的真實(shí)輸出(is or not object)

邊框位置回歸損失函數(shù)(smooth L1 loss)
: L_{loc}(t^u,v)=\sum_{i\in \{x,y,w,h\}}smooth_{L_1}(t_i^u-v_i)
smooth_{L_1}(x)=\begin{cases} 0.5x^2& \text{if |x|<1} \\|x|-0.5& \text{otherwise} \end{cases}
公式中发笔,t^u=(t_x^u,t_y^u,t_w^u,t_h^u)代表了預(yù)測(cè)邊框的位置信息盟萨,v=(v_x,v_y,v_w,v_h)代表了真實(shí)邊框的位置信息

交叉熵?fù)p失函數(shù)
: L(I,S)=-\frac {1}{T} \sum_{t=1}^{T}logp_t(x_t)這里,I代表image了讨,S代表sentence捻激,S_t代表sentence中的第t個(gè)word制轰,p_t代表第t個(gè)word的預(yù)測(cè)分布,因?yàn)橐箵p失函數(shù)最小胞谭,所以每次我們都選擇概率最大的word垃杖。注意到這里的交叉熵?fù)p失函數(shù)比起完整的定義來(lái)說(shuō),缺少了真實(shí)分布P丈屹,這是因?yàn)樵谧匀徽Z(yǔ)言模型中调俘,我們無(wú)法獲取語(yǔ)句的真實(shí)分布,因此泉瞻,需要用交叉熵的估計(jì)值進(jìn)行代替脉漏。

<div align=center>
[圖片上傳失敗...(image-3a025-1540209330519)]

3.2訓(xùn)練和優(yōu)化

??我們用預(yù)訓(xùn)練ImageNet的權(quán)重來(lái)初始化CNN,其他權(quán)重的取值來(lái)源于標(biāo)準(zhǔn)差為0.01的高斯分布袖牙。CNN中權(quán)重的訓(xùn)練使用了momentum為0.9的SGD侧巨,其他的權(quán)重使用了Adam算法。學(xué)習(xí)速率分別為\beta _1=0.9\beta _2=0.99鞭达。CNN的fune-tuning在迭代一輪后就開(kāi)始了司忱,但是不包含CNN中的前四個(gè)卷積層的微調(diào)。
??訓(xùn)練時(shí)的batches由一張長(zhǎng)邊為720像素的圖片構(gòu)成(在該圖片中選取B個(gè)候選區(qū)域組成mini-batch)畴蹭。源碼實(shí)現(xiàn)采用的是Torch7坦仍,在Titan X GPU上面一次mini batch的運(yùn)行時(shí)間是300ms。訓(xùn)練模型直到收斂的運(yùn)行時(shí)間總共花費(fèi)了3天
源碼地址:https://github.com/jcjohnson/densecap
源碼實(shí)現(xiàn)教程(中文):https://github.com/jcjohnson/densecap

4.實(shí)驗(yàn)

程序運(yùn)行示例:

<div align=center>
[圖片上傳失敗...(image-4bbc49-1540209330519)]

圖片描述精確度以及程序運(yùn)行時(shí)間

<div align=center>
[圖片上傳失敗...(image-8dbafc-1540209330519)]

bonus task:根據(jù)語(yǔ)言圖片檢索圖片
<div align=center>
[圖片上傳失敗...(image-36bc9d-1540209330519)]

5.總結(jié)

這篇論文的亮點(diǎn)在于提出了一個(gè)FCLN結(jié)構(gòu)叨襟,并且利用雙線性插值使得localization layer可導(dǎo)繁扎,從而可以支持從圖片區(qū)域到自然語(yǔ)言描述之間的端到端訓(xùn)練,并且實(shí)驗(yàn)結(jié)果表現(xiàn)糊闽,當(dāng)前的網(wǎng)絡(luò)結(jié)構(gòu)相較于以前的網(wǎng)絡(luò)結(jié)構(gòu)梳玫,不論是在生成的圖片描述的質(zhì)量上,還是在生成速度上右犹,都有一定的提升提澎。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市念链,隨后出現(xiàn)的幾起案子盼忌,更是在濱河造成了極大的恐慌,老刑警劉巖掂墓,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谦纱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡梆暮,警方通過(guò)查閱死者的電腦和手機(jī)服协,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)啦粹,“玉大人偿荷,你說(shuō)我怎么就攤上這事窘游。” “怎么了跳纳?”我有些...
    開(kāi)封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵忍饰,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我寺庄,道長(zhǎng)艾蓝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任斗塘,我火速辦了婚禮赢织,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘馍盟。我一直安慰自己于置,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布贞岭。 她就那樣靜靜地躺著八毯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瞄桨。 梳的紋絲不亂的頭發(fā)上话速,一...
    開(kāi)封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音芯侥,去河邊找鬼泊交。 笑死,一個(gè)胖子當(dāng)著我的面吹牛柱查,可吹牛的內(nèi)容都是我干的活合。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼物赶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了留晚?” 一聲冷哼從身側(cè)響起酵紫,我...
    開(kāi)封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎错维,沒(méi)想到半個(gè)月后奖地,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赋焕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年参歹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隆判。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡犬庇,死狀恐怖僧界,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情臭挽,我是刑警寧澤捂襟,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站欢峰,受9級(jí)特大地震影響葬荷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纽帖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一宠漩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧懊直,春花似錦扒吁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至波俄,卻和暖如春晨逝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背懦铺。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工捉貌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冬念。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓趁窃,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親急前。 傳聞我的和親對(duì)象是個(gè)殘疾皇子醒陆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容