[譯] 基于R-FCN的物體檢測(cè)

題目:基于R-FCN的物體檢測(cè)

(轉(zhuǎn)載請(qǐng)注明出處:[譯] 基于R-FCN的物體檢測(cè) (zhwhong) )


摘要

我們使用R-FCN(region-based, fully convolutional networks)進(jìn)行精確和有效的物體檢測(cè)忍抽。對(duì)比之前的區(qū)域檢測(cè)(Fast/Faster R-CNN [6 , 18] 應(yīng)用于每一個(gè)區(qū)域子網(wǎng)格要花費(fèi)數(shù)百次)腻惠,我們的區(qū)域檢測(cè)是基于整幅圖片的全卷積計(jì)算狮含。為了達(dá)到這個(gè)目標(biāo)脊髓,我們使用了一個(gè)“位敏得分地圖”(position-sensitive score maps)來(lái)權(quán)衡在圖像分類(lèi)中的平移不變性和在物體檢測(cè)中的平移變換性這樣一種兩難境地钳踊。我們的方法采用了全卷積圖片分類(lèi)主干部分非驮,例如用于物體檢測(cè)的最新的殘差網(wǎng)絡(luò)(Residual Networks) (ResNets)[9]畦徘。在PASCAL VOC(e.g.纤掸,83.6% mAP on the 2007 set) 數(shù)據(jù)集的實(shí)驗(yàn)上阐肤,我們使用了101層ResNet達(dá)到了很好的效果凫佛。同時(shí),我們僅僅使用了170ms/每張圖片孕惜,比Faster R-CNN匹配快了2.5~20倍左右愧薛。公開(kāi)的代碼可以在此網(wǎng)站中訪問(wèn)到:https://github.com/daijifeng001/r-fcn

簡(jiǎn)介

比較流行的關(guān)于物體檢測(cè)的深度網(wǎng)絡(luò)可以通過(guò)ROI pooling layer分成兩個(gè)子網(wǎng)絡(luò):

(1)a shared, “fully convolutional” subnetwork independent of RoIs.(獨(dú)立于ROI的共享的、全卷積的子網(wǎng)絡(luò))
(2)an RoI-wise subnetwork that does not share computation.(不共享計(jì)算的ROI-wise子網(wǎng))

這種分解來(lái)源于較早之前的分類(lèi)框架衫画,例如:AlexNet[10]和VGGNets[23]毫炉,他們由兩個(gè)子網(wǎng)組成,一個(gè)是以spatial pooling layer結(jié)束的卷積子網(wǎng)削罩,一個(gè)是若干個(gè)fully-connected layers瞄勾。因此,spatial pooling layrer很自然的在本實(shí)驗(yàn)中被轉(zhuǎn)變成了ROI pooling layer弥激。

但是目前最好的圖像分類(lèi)網(wǎng)絡(luò)进陡,例如殘差網(wǎng)絡(luò)(ResNets)和GoogleNets都是用fully convolutional設(shè)計(jì)的。通過(guò)分析微服,使用所有的卷積層去構(gòu)建一個(gè)進(jìn)行物體檢測(cè)的共享的卷積網(wǎng)絡(luò)是一件十分自然的事趾疚,而不把ROI-wise 子網(wǎng)作為隱藏層(hidden layer)。然而以蕴,通過(guò)實(shí)證調(diào)查糙麦,這個(gè)天真的想法需要考慮到inferior detection accuracy(極差的檢測(cè)精度)與網(wǎng)絡(luò)的superior classification accuracy(較高的分類(lèi)精度)不匹配的問(wèn)題。為了解決這個(gè)問(wèn)題丛肮,在殘差網(wǎng)絡(luò)(ResNet)[9]中赡磅, ROI pooling layer of the Faster R-CNN detector 插入了兩組卷積層,他們創(chuàng)造了一個(gè)更深的ROI-wise子網(wǎng)來(lái)提高準(zhǔn)確度腾供,由于每個(gè)ROI的計(jì)算不共享仆邓,因此速度會(huì)比原來(lái)的要慢鲜滩。

上述設(shè)計(jì)主要是為了解決圖片分類(lèi)的平移不變性與物體檢測(cè)之間的平移變換性之間的矛盾。一方面节值,圖像級(jí)別的分類(lèi)任務(wù)側(cè)重于平移不變性(在一幅圖片中平移一個(gè)物體而不改變它的判別結(jié)果)徙硅,因此深度全卷積網(wǎng)絡(luò)結(jié)構(gòu)很適合處理這類(lèi)圖片分類(lèi)的問(wèn)題。

圖一
圖二

另一方面搞疗,物體檢測(cè)任務(wù)需要定義物體的具體位置嗓蘑,因此需要平移變換特性。為了解決這矛盾匿乃,在ResNet的檢測(cè)方法中插入了ROI pooling layer到卷積層(this region-specific operation breaks down translation invariance,and the post-RoI convolutional layers are no longer translation-invariant when evaluated across different regions)桩皿。然而,這個(gè)設(shè)計(jì)犧牲了訓(xùn)練和測(cè)試的效率幢炸,因?yàn)樗肓舜罅康膔egion-wise layers泄隔。

在本篇文獻(xiàn)中,我們開(kāi)發(fā)出了一個(gè)稱(chēng)之為R-FCN(Region-based Fully Convolutional Network)的框架來(lái)用于物體檢測(cè)宛徊。我們的網(wǎng)絡(luò)由共享的全卷積結(jié)構(gòu)佛嬉,就像FCN一樣[15]。為了把平移變換特性融合進(jìn)FCN中闸天,我們創(chuàng)建了一個(gè)位敏得分地圖(position-sensitive score maps)來(lái)編碼位置信息暖呕,從而表征相關(guān)的空間位置。在FCN的頂層苞氮,我們附加了一個(gè)position-sensitive ROI pooling layer 來(lái)統(tǒng)領(lǐng)這些得分地圖(score maps)的信息湾揽,這些得分地圖不帶任何權(quán)重層。整個(gè)結(jié)構(gòu)是端對(duì)端(end-to-end)的學(xué)習(xí)笼吟。所有可學(xué)習(xí)的層在整幅圖片中都是可卷積的并且可共享的库物,并且可以編碼用于物體檢測(cè)的空間信息。圖 1說(shuō)明了這個(gè)關(guān)鍵的思路(key idea),圖 2比較了區(qū)域檢測(cè)的各種算法赞厕。

使用101層的Residual Net作為骨架艳狐,我們的R-FCN在PASCAL VOC 2007測(cè)試集上達(dá)到了83.6%的mAP定硝,在2012測(cè)試集上達(dá)到了82.0%的mAP皿桑。同時(shí),我們的結(jié)果實(shí)現(xiàn)了170ms/每張圖片的速度蔬啡,比Faster R-CNN+ResNet-101 [9] 快了2.5~20倍诲侮。這個(gè)實(shí)驗(yàn)結(jié)果說(shuō)明了我們的方法成功的解決了基于全卷積網(wǎng)絡(luò)的圖像級(jí)別的分類(lèi)問(wèn)題中的平移不變性和平移變換性之間的矛盾,就像ResNet能夠被有效的轉(zhuǎn)換成全卷積物體檢測(cè)器(fully convolutional object detectors.)一樣箱蟆。詳細(xì)的代碼參見(jiàn):https://github.com/daijifeng001/r-fcn

方法

Overview(概覽)

對(duì)于下面的R-CNN沟绪,我們采用了兩種流行的策略:region proposal和region classification.我們通過(guò)region proposal Network(RPN)來(lái)抽取候選區(qū)域,它自身是一個(gè)全卷積結(jié)構(gòu)空猜。接下來(lái)绽慈,我們?cè)赗PN和R-FCN中共享這些特性恨旱。圖 3展示了整個(gè)系統(tǒng)的結(jié)構(gòu)。

圖三

考慮到proposal region坝疼, R-FCN結(jié)構(gòu)用來(lái)將ROI分類(lèi)為物體和背景搜贤。在R-FCN中,所有可學(xué)習(xí)的權(quán)重層都是可卷積的并且是在整幅圖片中進(jìn)行計(jì)算钝凶。最后一個(gè)卷積層產(chǎn)生一堆K2個(gè)position-sensitive score maps 針對(duì)于每一個(gè)物體類(lèi)別仪芒。因此有k2(C+1)個(gè)通道輸出層(C個(gè)物體目錄項(xiàng)+1個(gè)背景)。這K2個(gè)得分地圖由K×k個(gè)空間網(wǎng)格來(lái)描述相對(duì)位置耕陷。例如掂名,對(duì)于K×k = 3×3,這9個(gè)得分地圖將物體類(lèi)別編碼為9個(gè)例子哟沫。

R-FCN以position-sensitive ROI pooling layer作為結(jié)束層崭放。他將最后一個(gè)卷積層的輸出結(jié)果聚集起來(lái),然后產(chǎn)生每一個(gè)ROI的得分記錄归露。我們的position-sensitive RoI層產(chǎn)生的是selective pooling芍锦,并且k×k的每個(gè)條目?jī)H僅聚集來(lái)自于k×k得分地圖堆里面的一個(gè)得分地圖。通過(guò)端對(duì)端的訓(xùn)練裹虫,ROI 層帶領(lǐng)最后一層卷積層去學(xué)習(xí)特征化的position-sensitive score maps肿嘲。圖 1說(shuō)明了這個(gè)過(guò)程。圖 4筑公、圖 5是兩個(gè)可視化的例子雳窟。本算法的具體細(xì)節(jié)介紹參見(jiàn)后面的條目。

圖四
圖五

Backbone architecture(主干架構(gòu))

R-FCN算法是基于ResNet-101[9]的匣屡,雖然其他的深度學(xué)習(xí)網(wǎng)絡(luò)可以應(yīng)用封救。RstNet-101有100個(gè)帶global average pooling的卷積層,有一個(gè)1000級(jí)的fc層(fully-connected)捣作。我們?nèi)サ袅薵lobal average pooling和fc layer誉结,然后只使用卷積層來(lái)計(jì)算feature maps。We use the ResNet-101 released by the authors of [9], pre-trained on ImageNet [20]券躁。在ResNet-101中惩坑,最后一個(gè)卷積塊是2048-d(2048維度)我們附加了一個(gè)隨機(jī)初始化的1024d的1×1的卷積層來(lái)降低維度(更精確的,我們?cè)黾恿司矸e層的深度)也拜,然后我們使用了k2(C+1)個(gè)通道的卷積層來(lái)產(chǎn)生得分地圖以舒,下面會(huì)有具體的介紹。

Position-sensitive socre maps & position-sentitive RoI pooling

為了在每個(gè)RoI中編碼位置信息慢哈,我們通過(guò)一個(gè)網(wǎng)格把每個(gè)RoI分成k×k個(gè)bins蔓钟。對(duì)于w×h的RoI區(qū)域,每一個(gè)bin的大小≈w/k×h/k卵贱。在我們的方法中滥沫,最后一個(gè)卷積層有k2個(gè)得分地圖組成侣集。對(duì)于第i行第j列的bin(0≤i , j≤k-1), 其得分地圖的計(jì)算公式為:

在本篇論文中我們通過(guò)平均得分來(lái)對(duì)ROI區(qū)域進(jìn)行投票,從而產(chǎn)生(C+1)維的向量兰绣。然后我們計(jì)算了每一個(gè)目錄項(xiàng)的softmax響應(yīng):

在訓(xùn)練和評(píng)級(jí)的時(shí)候肚吏,他們被用來(lái)估計(jì)交叉熵?fù)p失(cross-entropy loss)。

進(jìn)一步的狭魂,我們用相似的方法定位了邊界框回歸(bounding box regression)罚攀。在k2(C+1)個(gè)卷積層,我們附加了一個(gè)4k2個(gè)卷積層用于邊界框回歸雌澄。Position-sensitive RoI pooling 在4k2的map中表現(xiàn)出來(lái)斋泄,對(duì)于每一個(gè)RoI,產(chǎn)生一個(gè)4k2位的向量镐牺,然后被聚合為一個(gè)4維向量通過(guò)平均投票炫掐。這個(gè)4維用 t = (t_x, t_y, t_w, t_h) 參數(shù)化一個(gè)邊框。

Position-sensitive score maps 有一部分的靈感來(lái)自于實(shí)例級(jí)的語(yǔ)義分割FCNs睬涧。進(jìn)一步的募胃,我們引入了position-sensitive RoI pooling layer 來(lái)統(tǒng)領(lǐng)物體檢測(cè)得分地圖的學(xué)習(xí)。在ROI層之后畦浓,沒(méi)有可學(xué)習(xí)的層痹束,從而來(lái)加快訓(xùn)練和測(cè)試(training and inference)。

Training(訓(xùn)練)

在預(yù)先計(jì)算了region proposals讶请,端對(duì)端地訓(xùn)練R-FCN結(jié)構(gòu)是非常簡(jiǎn)單的祷嘶。接下來(lái),我們的損失函數(shù)(loss fuction)的定義由兩部分組成:交叉熵?fù)p失(cross-entropy loss)和邊界回歸損失(box regression loss):

上式中夺溢,C是RoI的真實(shí)標(biāo)簽(C = 0表示的是背景)论巍。

是用于分類(lèi)的交叉熵?fù)p失函數(shù)(cross-entropy loss)

L_reg 是邊界回歸損失函數(shù)(bounding box regression loss)
t* 表示真實(shí)邊框。
λ 被初始化設(shè)置為1风响。

當(dāng)RoI與實(shí)際邊框的重疊部分至少有0.5嘉汰,那么我們認(rèn)為是positive examples,否則是negative example状勤。

在訓(xùn)練時(shí)鞋怀,我們的方法采用OHEM(online hard example mining)是非常容易的。每個(gè)RoI區(qū)域的計(jì)算是可忽略的荧降,從而使得樣例挖掘(example mining)近乎是cost-free的接箫。假定每張圖片有N個(gè)proposals攒读,一個(gè)直接的方法是朵诫,我們計(jì)算所有N個(gè)proposals的損失。然后我們對(duì)所有ROI按照損失進(jìn)行排序薄扁。然后挑選B個(gè)具有最高損失的ROI剪返。Backpropagation(反向傳播算法)是基于選擇的樣例來(lái)演算的废累。因?yàn)槲覀兊拿總€(gè)ROI的計(jì)算都是近似可以忽略的,所以forward time基本上不會(huì)受N的影響脱盲。而OHEM Fast R-CNN可能是會(huì)花費(fèi)雙倍的時(shí)間邑滨。在下表中,我們提供了一個(gè)詳細(xì)的時(shí)間數(shù)據(jù)钱反。

我們使用了0.0005的權(quán)重衰減系數(shù)和0.9的動(dòng)量掖看。缺省情況下,我們使用單尺度(single-scale)的訓(xùn)練:圖片被統(tǒng)一調(diào)整為600個(gè)像素的大小面哥。每個(gè)GPU處理1張圖片哎壳,選取B=128ROI來(lái)用于反向傳播。我們使用了8個(gè)GPU來(lái)訓(xùn)練模型(所以有效的小批量(mini-batch)大小是8×)尚卫。對(duì)于20k個(gè)mini-batches我們使用了0.001的學(xué)習(xí)速率归榕;而對(duì)于10k個(gè)mini-batches,我們使用了0.0001的學(xué)習(xí)速率吱涉。為了讓R-FCN擁有帶RPN的特征刹泄,我們采用了4步交替訓(xùn)練,在RPN和R-FCN中交替訓(xùn)練怎爵。

Inference(推論)

特征地圖(feature maps)在RPN和R-FCN中共享計(jì)算特石。然后RPN部分選擇出了ROI,而R-FCN部分評(píng)估了catagogy-wise scores和regresses bounding boxes。在推論階段鳖链,我們計(jì)算了300個(gè)ROI區(qū)域县匠。結(jié)果通過(guò)non-maximum suppression(NMS)來(lái)進(jìn)行后處理,使用了0.3IoU的閾值撒轮,作為standard practice乞旦。

A trous and stride

我們的全卷積網(wǎng)絡(luò)架構(gòu)是在FCN的基礎(chǔ)上進(jìn)行修改的。特別的题山,我們將ResNet-101的stride從32像素減少到16像素兰粉,從而增加了得分地圖數(shù)量。All layers before and on the conv4 stage [9] (stride=16) are unchanged; the stride=2 operations in the first conv5 block is modified to have stride=1, and all convolutional filters on the conv5 stage are modified by the “hole algorithm” [15, 2] (“Algorithme à trous” [16]) to compensate for the reduced stride. For fair comparisons, the RPN is computed on top of the conv4 stage (that are shared withR-FCN), as is the case in [9] with Faster R-CNN, so the RPN is not affected by the à trous trick. The following table shows the ablation results of R-FCN (k _ k = 7 _ 7, no hard example mining). The à trous trick improves mAP by 2.6 points.

Visualization(可視化)

在圖 4和圖 5我們展示了通過(guò)R-FCN學(xué)習(xí)到的position-sensitive score maps顶瞳。不同的特征地圖標(biāo)志了不同的特征相對(duì)位置信息玖姑。例如:“top-center-sensitive”score map對(duì)于那些top-center位置關(guān)系的物體顯示了較高的分?jǐn)?shù)。如果一個(gè)候選框與真實(shí)物體精確的重合了(圖 4)慨菱,那么大多數(shù)的k2個(gè)bins會(huì)被強(qiáng)烈的激活焰络,然后會(huì)得到較高的分?jǐn)?shù)。相反的符喝,如果候選邊框與真實(shí)物體并沒(méi)有完全準(zhǔn)確的重合(圖 5)那么有一些k2bins不會(huì)被激活闪彼,從而導(dǎo)致得分很低。

相關(guān)工作

R-CNN已經(jīng)說(shuō)明了帶深度網(wǎng)絡(luò)的區(qū)域候選的有效性。R-CNN計(jì)算那些關(guān)于裁剪不正常的覆蓋區(qū)域的卷積網(wǎng)絡(luò)畏腕,并且計(jì)算在區(qū)域直接是不共享的缴川。SPPnet,F(xiàn)ast R-CNN和Faster R-CNN是半卷積的(semi-convolutional)描馅,在卷積子網(wǎng)絡(luò)中是計(jì)算共享的把夸,在另一個(gè)子網(wǎng)絡(luò)是各自計(jì)算獨(dú)立的區(qū)域。

物體檢測(cè)器可以被認(rèn)為是全卷積模型铭污。OverFeat [21] detects objects by sliding multi-scale windows on the shared convolutional feature maps恋日。在某些情況下,可以將單精度的滑動(dòng)窗口改造成一個(gè)單層的卷積層嘹狞。在Faster R-CNN中的RPN組件是一個(gè)全卷積檢測(cè)器谚鄙,用來(lái)預(yù)測(cè)是一個(gè)關(guān)于多尺寸的參考邊框的實(shí)際邊框。原始的RPN是class-agnostic(class無(wú)關(guān)的)刁绒。但是對(duì)應(yīng)的clss-specific是可應(yīng)用的闷营。

另一個(gè)用于物體檢測(cè)的是fc layer(fully-connected)用來(lái)基于整幅圖片的完整物體檢測(cè)。

實(shí)驗(yàn)

總結(jié)與展望

我們提出的Region-based Fully Convolutional Networks是一個(gè)簡(jiǎn)單知市、精確傻盟、有效的用于物體檢測(cè)的框架。我們的系統(tǒng)很自然的采用了state-of –the –art 圖片分類(lèi)骨架嫂丙,就像基于全卷積的ResNets一樣娘赴。我們的方法比Faster R-CNN更精確,并且在訓(xùn)練和預(yù)測(cè)上都比它要快跟啤。

我們特意使本篇論文中給出的R-FCN看起來(lái)簡(jiǎn)單诽表。其實(shí)仍然存在一系列的FCNS的正交擴(kuò)展用來(lái)進(jìn)行語(yǔ)義分割,還有一些基于區(qū)域方法的擴(kuò)展用來(lái)進(jìn)行物體檢測(cè)隅肥。很高興我們的系統(tǒng)能夠享受到這些成果竿奏。

Reference


(注:感謝您的閱讀,希望本文對(duì)您有所幫助腥放。如果覺(jué)得不錯(cuò)歡迎分享轉(zhuǎn)載泛啸,但請(qǐng)先點(diǎn)擊 這里 獲取授權(quán)。本文由 版權(quán)印 提供保護(hù)秃症,禁止任何形式的未授權(quán)違規(guī)轉(zhuǎn)載候址,謝謝!)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末种柑,一起剝皮案震驚了整個(gè)濱河市岗仑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聚请,老刑警劉巖荠雕,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡舞虱,警方通過(guò)查閱死者的電腦和手機(jī)欢际,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)母市,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)矾兜,“玉大人,你說(shuō)我怎么就攤上這事患久∫嗡拢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蒋失,是天一觀的道長(zhǎng)返帕。 經(jīng)常有香客問(wèn)我,道長(zhǎng)篙挽,這世上最難降的妖魔是什么荆萤? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮铣卡,結(jié)果婚禮上链韭,老公的妹妹穿的比我還像新娘。我一直安慰自己煮落,他們只是感情好敞峭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著蝉仇,像睡著了一般旋讹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轿衔,一...
    開(kāi)封第一講書(shū)人閱讀 51,146評(píng)論 1 297
  • 那天沉迹,我揣著相機(jī)與錄音,去河邊找鬼害驹。 笑死胚股,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的裙秋。 我是一名探鬼主播琅拌,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼摘刑!你這毒婦竟也來(lái)了进宝?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤枷恕,失蹤者是張志新(化名)和其女友劉穎党晋,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡未玻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年灾而,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扳剿。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旁趟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庇绽,到底是詐尸還是另有隱情锡搜,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布瞧掺,位于F島的核電站耕餐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辟狈。R本人自食惡果不足惜肠缔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望哼转。 院中可真熱鬧明未,春花似錦、人聲如沸释簿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)庶溶。三九已至煮纵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間偏螺,已是汗流浹背行疏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留套像,地道東北人酿联。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像夺巩,于是被迫代替她去往敵國(guó)和親贞让。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

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