目標(biāo)檢測(cè)--Fast RCNN詳解-多細(xì)節(jié)

姓名:李澤銘? ? ? ? ? 學(xué)號(hào):22011210787? ? ? ? ? 通信工程學(xué)院

轉(zhuǎn)載自:https://blog.csdn.net/qinghuaci666/article/details/80677045a

【嵌牛導(dǎo)讀】Fast Rcnn是一種卷積神經(jīng)網(wǎng)絡(luò),繼2014年的RCNN之后氢惋,Ross Girshick在15年推出Fast RCNN,構(gòu)思精巧间校,流程更為緊湊,大幅提升了目標(biāo)檢測(cè)的速度牺丙。在Github上提供了源碼舟舒。同樣使用最大規(guī)模的網(wǎng)絡(luò),F(xiàn)ast RCNN和RCNN相比恐似,訓(xùn)練時(shí)間從84小時(shí)減少為9.5小時(shí),測(cè)試時(shí)間從47秒減少為0.32秒傍念。在PASCAL VOC 2007上的準(zhǔn)確率相差無(wú)幾矫夷,約在66%-67%之間。

【嵌牛鼻子】RCNN憋槐;卷積神經(jīng)網(wǎng)絡(luò)双藕;原理;

【嵌牛提問(wèn)】Fast RCNN是否可以用在一些要求實(shí)時(shí)性的地方阳仔?

【嵌牛正文】

1.思想

1.1基礎(chǔ):RCNN

簡(jiǎn)單來(lái)說(shuō)忧陪,RCNN使用以下四步實(shí)現(xiàn)目標(biāo)檢測(cè):

a. 在圖像中確定約1000-2000個(gè)候選框

b. 對(duì)于每個(gè)候選框內(nèi)圖像塊,使用深度網(wǎng)絡(luò)提取特征

c. 對(duì)候選框中提取出的特征近范,使用分類(lèi)器判別是否屬于一個(gè)特定類(lèi)

d. 對(duì)于屬于某一特征的候選框嘶摊,用回歸器進(jìn)一步調(diào)整其位置

RCNN中存在的問(wèn)題:

1.R-CNN網(wǎng)絡(luò)訓(xùn)練、測(cè)試速度都很慢:R-CNN網(wǎng)絡(luò)中评矩,一張圖經(jīng)由selective search算法提取約2k個(gè)建議框【這2k個(gè)建議框大量重疊】叶堆,而所有建議框變形后都要輸入AlexNet CNN網(wǎng)絡(luò)提取特征【即約2k次特征提取】,會(huì)出現(xiàn)上述重疊區(qū)域多次重復(fù)提取特征斥杜,提取特征操作冗余虱颗;

2.R-CNN網(wǎng)絡(luò)訓(xùn)練、測(cè)試繁瑣:R-CNN網(wǎng)絡(luò)訓(xùn)練過(guò)程分為ILSVRC 2012樣本下有監(jiān)督預(yù)訓(xùn)練蔗喂、PASCAL VOC 2007該特定樣本下的微調(diào)上枕、20類(lèi)即20個(gè)SVM分類(lèi)器訓(xùn)練、20類(lèi)即20個(gè)Bounding-box 回歸器訓(xùn)練弱恒,該訓(xùn)練流程繁瑣復(fù)雜;同理測(cè)試過(guò)程也包括提取建議框棋恼、提取CNN特征返弹、SVM分類(lèi)和Bounding-box 回歸等步驟锈玉,過(guò)于繁瑣;

3.R-CNN網(wǎng)絡(luò)訓(xùn)練需要大量存儲(chǔ)空間:20類(lèi)即20個(gè)SVM分類(lèi)器和20類(lèi)即20個(gè)Bounding-box 回歸器在訓(xùn)練過(guò)程中需要大量特征作為訓(xùn)練樣本义起,這部分從CNN提取的特征會(huì)占用大量存儲(chǔ)空間拉背;

4.R-CNN網(wǎng)絡(luò)需要對(duì)建議框進(jìn)行形變操作后【形變?yōu)?27×227 size】再輸入CNN網(wǎng)絡(luò)提取特征,其實(shí)像AlexNet CNN等網(wǎng)絡(luò)在提取特征過(guò)程中對(duì)圖像的大小并無(wú)要求默终,只是在提取完特征進(jìn)行全連接操作的時(shí)候才需要固定特征尺寸【R-CNN中將輸入圖像形變?yōu)?27×227可正好滿足AlexNet CNN網(wǎng)絡(luò)最后的特征尺寸要求】椅棺,然后才使用SVM分類(lèi)器分類(lèi),R-CNN需要進(jìn)行形變操作的問(wèn)題在Fast R-CNN已經(jīng)不存在齐蔽,具體見(jiàn)下两疚。

1.2改進(jìn):Fast RCNN

Fast RCNN方法解決了RCNN方法三個(gè)問(wèn)題:

問(wèn)題一:測(cè)試時(shí)速度慢

RCNN一張圖像內(nèi)候選框之間大量重疊,提取特征操作冗余含滴。

本文將整張圖像歸一化后直接送入深度網(wǎng)絡(luò)诱渤。在鄰接時(shí),才加入候選框信息谈况,在末尾的少數(shù)幾層處理每個(gè)候選框勺美。

問(wèn)題二:訓(xùn)練時(shí)速度慢

原因同上。

在訓(xùn)練時(shí)碑韵,本文先將一張圖像送入網(wǎng)絡(luò)赡茸,緊接著送入從這幅圖像上提取出的候選區(qū)域。這些候選區(qū)域的前幾層特征不需要再重復(fù)計(jì)算祝闻。

問(wèn)題三:訓(xùn)練所需空間大

RCNN中獨(dú)立的分類(lèi)器和回歸器需要大量特征作為訓(xùn)練樣本占卧。

本文把類(lèi)別判斷和位置精調(diào)統(tǒng)一用深度網(wǎng)絡(luò)實(shí)現(xiàn),不再需要額外存儲(chǔ)治筒。

Fast-RCNN的優(yōu)點(diǎn)概述:

1. 比R-CNN屉栓、SPP-net有更高的檢測(cè)質(zhì)量(mAP);

2. 把多個(gè)任務(wù)的損失函數(shù)寫(xiě)到一起耸袜,實(shí)現(xiàn)單級(jí)的訓(xùn)練過(guò)程友多;

3. 在訓(xùn)練時(shí)可更新所有的層;

4. 不需要在磁盤(pán)中存儲(chǔ)特征堤框。

Fast RCNN 的改進(jìn)可以用下面兩幅圖概括域滥。其中,左圖是原 RCNN 的做法蜈抓,而右圖則是 Fast RCNN 的做法启绰。

有個(gè)很形象直觀的對(duì)比圖: R-CNN和SPP-net


FastRCNN改進(jìn)之后:



2.系統(tǒng)結(jié)構(gòu)

整體框架大致如上述所示,幾句話總結(jié):

1.用selective search在一張圖片中生成約2000個(gè)object proposal,即RoI沟使。

2.把圖像輸入到卷積網(wǎng)絡(luò)中委可,并輸入候選框,在最后一個(gè)卷積層上對(duì)每個(gè)ROI求映射關(guān)系,并用一個(gè)RoI pooling layer來(lái)統(tǒng)一到相同的大小着倾,得到 (fc)feature vector拾酝,即一個(gè)固定維度的特征表示。

3.繼續(xù)經(jīng)過(guò)兩個(gè)全連接層(FC)得到特征向量卡者。特征向量經(jīng)由各自的FC層蒿囤,得到兩個(gè)輸出向量:第一個(gè)是分類(lèi),使用softmax崇决,第二個(gè)是每一類(lèi)的bounding box回歸材诽。

具體來(lái)講,訓(xùn)練過(guò)程如下:

1恒傻、網(wǎng)絡(luò)首先用幾個(gè)卷積層(conv)和最大池化層處理整個(gè)圖像(224*224)以產(chǎn)生conv特征圖脸侥。

2、然后碌冶,對(duì)于每個(gè)對(duì)象建議框(object proposals 湿痢,~2000個(gè)),感興趣區(qū)域(region of interest——RoI)池層從特征圖提取固定長(zhǎng)度的特征向量扑庞。

3譬重、每個(gè)特征向量被輸送到分支成兩個(gè)同級(jí)輸出層的全連接(fc)層序列中:

其中一層進(jìn)行分類(lèi),對(duì) 目標(biāo)關(guān)于K個(gè)對(duì)象類(lèi)(包括全部“背景background”類(lèi))產(chǎn)生softmax概率估計(jì)罐氨,即輸出每一個(gè)RoI的概率分布臀规;

另一層進(jìn)行bbox regression,輸出K個(gè)對(duì)象類(lèi)中每一個(gè)類(lèi)的四個(gè)實(shí)數(shù)值栅隐。每4個(gè)值編碼K個(gè)類(lèi)中的每個(gè)類(lèi)的精確邊界盒(bounding-box)位置塔嬉,即輸出每一個(gè)種類(lèi)的的邊界盒回歸偏差。整個(gè)結(jié)構(gòu)是使用多任務(wù)損失的端到端訓(xùn)練(trained end-to-end with a multi-task loss)租悄。


1.任意size圖片輸入CNN網(wǎng)絡(luò)谨究,經(jīng)過(guò)若干卷積層與池化層,得到特征圖泣棋;

2.在任意size圖片上采用selective search算法提取約2k個(gè)建議框胶哲;

3.根據(jù)原圖中建議框到特征圖映射關(guān)系,在特征圖中找到每個(gè)建議框?qū)?yīng)的特征框【深度和特征圖一致】潭辈,并在RoI池化層中將每個(gè)特征框池化到H×W【VGG-16網(wǎng)絡(luò)是7×7】的size鸯屿;

4.固定H×W【VGG-16網(wǎng)絡(luò)是7×7】大小的特征框經(jīng)過(guò)全連接層得到固定大小的特征向量;

5.第4步所得特征向量經(jīng)由各自的全連接層【由SVD分解實(shí)現(xiàn)】把敢,分別得到兩個(gè)輸出向量:一個(gè)是softmax的分類(lèi)得分寄摆,一個(gè)是Bounding-box窗口回歸;

6.利用窗口得分分別對(duì)每一類(lèi)物體進(jìn)行非極大值抑制剔除重疊建議框修赞,最終得到每個(gè)類(lèi)別中回歸修正后的得分最高的窗口婶恼。

整體框架大致如上述所示了,對(duì)比SPP-Net,可以看出FRCN大致就是一個(gè)joint training版本的SPP-Net勾邦,改進(jìn)如下:

SPP-Net在實(shí)現(xiàn)上無(wú)法同時(shí)tuning在SPP layer兩邊的卷積層和全連接層联逻。

SPP-Net后面的需要將第二層FC的特征放到硬盤(pán)上訓(xùn)練SVM,之后再額外訓(xùn)練bbox regressor检痰。

3.特征提取網(wǎng)絡(luò)

3.1基本結(jié)構(gòu)

Fast RCNN對(duì)圖像額輸入尺寸沒(méi)有嚴(yán)格限制,ROI Pooling層的的存在確保全連接層的輸入是固定尺寸锨推。

前五階段是基礎(chǔ)的conv+relu+pooling形式铅歼,在第五階段結(jié)尾,輸入P個(gè)候選區(qū)域(圖像序號(hào)×1+幾何位置×4换可,序號(hào)用于訓(xùn)練)椎椰。


注:文中給出了大中小三種網(wǎng)絡(luò),此處示出最大的一種沾鳄。三種網(wǎng)絡(luò)基本結(jié)構(gòu)相似慨飘,僅conv+relu層數(shù)有差別,或者增刪了norm層译荞。

3.2 ROI Pooling Layer

為了讓全聯(lián)接層能夠接收 Conv-Pooling 后的特征瓤的,有兩種方法:

1.要么是重新調(diào)整 pooling 后的特征維度,使它適應(yīng)全聯(lián)接層

2.要么是改變?nèi)?lián)接層的結(jié)構(gòu)吞歼,使它可以接收任意維度的特征

后者一個(gè)有效的解決方案是 FCN(全卷積網(wǎng)絡(luò))圈膏,不過(guò) Fast RCNN 出來(lái)之時(shí)還沒(méi)有 FCN,因此它采用的是前一種思路篙骡。

那要如何調(diào)整 pooling 后的特征呢稽坤?論文提出了一種 ROI Pooling Layer 的方法(ROI 指的是 Region of Interest)。事實(shí)上糯俗,這種方法并不是 Fast RCNN 的原創(chuàng)尿褪,而是借鑒了 SPPNet 的思路。關(guān)于 SPPNet得湘,網(wǎng)上資料很多杖玲,就不再贅述了,所以我開(kāi)門(mén)見(jiàn)山講一下 ROI Pooling Layer 是怎么處理的忽刽。假設(shè)首個(gè)全聯(lián)接層接收的特征維度是 H?W?D天揖,例如 VGG16 的第一個(gè) FC 層的輸入是 7 * 7 * 512,其中 512 表示 feature map 的層數(shù)跪帝。那么今膊,ROI Pooling Layer 的目標(biāo),就是讓 feature map 上的 ROI 區(qū)域伞剑,在經(jīng)過(guò) pooling 操作后斑唬,其特征輸出維度滿足 H?W。具體做法是,對(duì)原本 max pooling 的單位網(wǎng)格進(jìn)行調(diào)整恕刘,使得 pooling 的每個(gè)網(wǎng)格大小動(dòng)態(tài)調(diào)整為 h / H?w / W(假設(shè) ROI 區(qū)域的長(zhǎng)寬為 h?w)缤谎。這樣,一個(gè) ROI 區(qū)域可以得到 H?W 個(gè)網(wǎng)格褐着。然后坷澡,每個(gè)網(wǎng)格內(nèi)依然采用 max pooling 操作。如此一來(lái)含蓉,不管 ROI 區(qū)域大小如何频敛,最終得到的特征維度都是 H?W?D。

下圖顯示的馅扣,是在一張 feature map 上斟赚,對(duì)一個(gè) 5 * 7 的 ROI 區(qū)域進(jìn)行 ROI Pooling 的結(jié)果,最后得到 2 * 2 的特征差油。

這時(shí)拗军,可能有人會(huì)問(wèn),如果 ROI 區(qū)域太小怎么辦蓄喇?比如发侵,拿 VGG16 來(lái)說(shuō),它要求 Pooling 后的特征為 7 * 7 * 512公罕,如果碰巧 ROI 區(qū)域只有 6 * 6 大小怎么辦器紧?還是同樣的辦法,每個(gè)網(wǎng)格的大小取 6 / 7?6 / 7=0.85?0.85楼眷,然后铲汪,以寬為例,按照這樣的間隔取網(wǎng)格:[0,0.85,1.7,2.55,3.4,4.25,5.1,5.95]

取整后罐柳,每個(gè)網(wǎng)格對(duì)應(yīng)的起始坐標(biāo)為:[0,1,2,3,3,4,5]

再如將大小不同的區(qū)域pooling為3*3:



3.3 Back-propagation through RoI pooling layers. 通過(guò)RoI池化層的反向傳播掌腰。

從這篇借鑒理解RoI池化層:Fast R-CNN論文詳解

1.首先看普通max pooling層如何求導(dǎo)

設(shè)xi為輸入層節(jié)點(diǎn),yi為輸出層節(jié)點(diǎn)张吉,那么損失函數(shù)L對(duì)輸入層節(jié)點(diǎn)xi的梯度為:


其中判決函數(shù)δ(i,j)表示輸入i節(jié)點(diǎn)是否被輸出j節(jié)點(diǎn)選為最大值輸出齿梁。

不被選中【δ(i,j)=false】有兩種可能:xi不在yi范圍內(nèi),或者xi不是最大值肮蛹。

若選中【δ(i,j)=true 】則由鏈?zhǔn)揭?guī)則可知損失函數(shù)L相對(duì)xi的梯度等于損失函數(shù)L相對(duì)yi的梯度×(yi對(duì)xi的梯度->恒等于1)勺择,故可得上述所示公式;

2.RoI max pooling層求導(dǎo)

設(shè)xi為輸入層的節(jié)點(diǎn)伦忠,yri 為第r個(gè)候選區(qū)域的第j個(gè)輸出節(jié)點(diǎn)省核,一個(gè)輸入節(jié)點(diǎn)可能和多個(gè)輸出節(jié)點(diǎn)相關(guān)連,如下圖所示昆码,輸入節(jié)點(diǎn)7和兩個(gè)候選區(qū)域輸出節(jié)點(diǎn)相關(guān)連气忠;


該輸入節(jié)點(diǎn)7的反向傳播如下圖所示邻储。


對(duì)于不同候選區(qū)域,節(jié)點(diǎn)7都存在梯度旧噪,所以反向傳播中損失函數(shù) L 對(duì)輸入層節(jié)點(diǎn)?xi 的梯度為損失函數(shù) L 對(duì)各個(gè)有可能的候選區(qū)域 r 【?xi 被候選區(qū)域r的第j個(gè)輸出節(jié)點(diǎn)選為最大值 】輸出?yri 梯度的累加吨娜,具體如下公式所示:


判決函數(shù) [i=i?(r,j)] 表示 i 節(jié)點(diǎn)是否被候選區(qū)域r 的第j 個(gè)輸出節(jié)點(diǎn)選為最大值輸出,若是淘钟,則由鏈?zhǔn)揭?guī)則可知損失函數(shù)L相對(duì) xi 的梯度等于損失函數(shù) L 相對(duì)yri 的梯度×( yrj 對(duì)xi 的梯度->恒等于1)宦赠,上圖已然解釋該輸入節(jié)點(diǎn)可能會(huì)和不同的yrj有關(guān)系,故損失函數(shù)L相對(duì)xi 的梯度為求和形式米母。

4.網(wǎng)絡(luò)參數(shù)訓(xùn)練

4.1參數(shù)初始化

網(wǎng)絡(luò)除去末尾部分如下圖袱瓮,在ImageNet上訓(xùn)練1000類(lèi)分類(lèi)器。結(jié)果參數(shù)作為相應(yīng)層的初始化參數(shù)爱咬。


其余參數(shù)隨機(jī)初始化。

4.2分層數(shù)據(jù)

在調(diào)優(yōu)訓(xùn)練時(shí)绊起,每一個(gè)mini-batch中首先加入N張完整圖片精拟,而后加入從N張圖片中選取的R個(gè)候選框。這R個(gè)候選框可以復(fù)用N張圖片前5個(gè)階段的網(wǎng)絡(luò)特征虱歪。

實(shí)際選擇N=2蜂绎, R=128。

4.3訓(xùn)練數(shù)據(jù)構(gòu)成笋鄙,Mini-batch sampling.

作者從對(duì)象建議框(object proposal)中選擇25%的RoI师枣,這些RoI與ground-truth bbox邊界框至少有0.5的部分交叉重疊,也就是正樣本萧落,即 u >= 1践美。其余的RoI選那些IoU重疊區(qū)間在[0.1,0.5)的谋作,作為負(fù)樣本困介,即 u = 0,大約為75%田篇。之所以選擇負(fù)樣本需要大于0.1的閾值是因?yàn)槭褂脝l(fā)式的hard example mining(低于0.1的IoU作為難例挖掘的啟發(fā)式)许布。在訓(xùn)練期間兴革,圖像有0.5的概率水平翻轉(zhuǎn)。

5.分類(lèi)與位置調(diào)整

5.1子網(wǎng)絡(luò)結(jié)構(gòu)

第五階段的特征輸入到兩個(gè)并行的全連層中(稱(chēng)為multi-task)蜜唾。


cls_score層用于分類(lèi)杂曲,輸出K+1維數(shù)組p,表示屬于K類(lèi)和背景的概率袁余。

bbox_prdict層用于調(diào)整候選區(qū)域位置擎勘,輸出4*K維數(shù)組t,表示分別屬于K類(lèi)時(shí)泌霍,應(yīng)該平移縮放的參數(shù)货抄。

源碼中bbox_loss_weights用于標(biāo)記每一個(gè)bbox是否屬于某一個(gè)類(lèi)

5.2 多任務(wù)損失函數(shù)

作者這樣設(shè)置的目的是想讓loss對(duì)于離群點(diǎn)更加魯棒述召,控制梯度的量級(jí)使得訓(xùn)練時(shí)不容易跑飛。 最后在5.1的討論中蟹地,作者說(shuō)明了Multitask loss是有助于網(wǎng)絡(luò)的performance的积暖。

smooth L1損失函數(shù)曲線如下圖所示,相比于L2損失函數(shù)怪与,其對(duì)離群點(diǎn)夺刑、異常值不敏感,可控制梯度的量級(jí)使訓(xùn)練時(shí)不容易跑飛分别;


5.3 全連接層提速

在實(shí)現(xiàn)時(shí)遍愿,相當(dāng)于把一個(gè)全連接層拆分成兩個(gè),中間以一個(gè)低維數(shù)據(jù)相連耘斩。



6.實(shí)驗(yàn)與結(jié)論

實(shí)驗(yàn)過(guò)程不再詳述沼填,只記錄結(jié)論

- 網(wǎng)絡(luò)末端同步訓(xùn)練的分類(lèi)和位置調(diào)整,提升準(zhǔn)確度

- 使用多尺度的圖像金字塔括授,性能幾乎沒(méi)有提高

- 倍增訓(xùn)練數(shù)據(jù)坞笙,能夠有2%-3%的準(zhǔn)確度提升

- 網(wǎng)絡(luò)直接輸出各類(lèi)概率(softmax),比SVM分類(lèi)器性能略好

- 更多候選窗不能提升性能

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荚虚,一起剝皮案震驚了整個(gè)濱河市薛夜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌版述,老刑警劉巖梯澜,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異渴析,居然都是意外死亡晚伙,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)俭茧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)撬腾,“玉大人,你說(shuō)我怎么就攤上這事恢恼∶裆担” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵场斑,是天一觀的道長(zhǎng)漓踢。 經(jīng)常有香客問(wèn)我,道長(zhǎng)漏隐,這世上最難降的妖魔是什么喧半? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮青责,結(jié)果婚禮上挺据,老公的妹妹穿的比我還像新娘取具。我一直安慰自己,他們只是感情好扁耐,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布暇检。 她就那樣靜靜地躺著,像睡著了一般婉称。 火紅的嫁衣襯著肌膚如雪块仆。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天王暗,我揣著相機(jī)與錄音悔据,去河邊找鬼。 笑死俗壹,一個(gè)胖子當(dāng)著我的面吹牛科汗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绷雏,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肛捍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了之众?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤依许,失蹤者是張志新(化名)和其女友劉穎棺禾,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體峭跳,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡膘婶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛀醉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片悬襟。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拯刁,靈堂內(nèi)的尸體忽然破棺而出脊岳,到底是詐尸還是另有隱情,我是刑警寧澤垛玻,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布割捅,位于F島的核電站,受9級(jí)特大地震影響帚桩,放射性物質(zhì)發(fā)生泄漏亿驾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一账嚎、第九天 我趴在偏房一處隱蔽的房頂上張望莫瞬。 院中可真熱鬧儡蔓,春花似錦、人聲如沸疼邀。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)檩小。三九已至开呐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間规求,已是汗流浹背筐付。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阻肿,地道東北人瓦戚。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像丛塌,于是被迫代替她去往敵國(guó)和親较解。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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