2019-09-15(論文學(xué)習(xí)筆記——MegaDepth: Learning Single-View Depth Prediction from Internet Photos)

摘要

目前基于3D傳感器的數(shù)據(jù)集及其缺陷:

  • NYU:只有室內(nèi)的照片
  • Make3D:訓(xùn)練集小
  • KITTI:稀疏采樣

論文中的數(shù)據(jù)集:
基于對運動中獲取的結(jié)構(gòu)多視點立體(MVS)進行建模來處理多視點網(wǎng)絡(luò)圖片——任意數(shù)據(jù)源谋币,基于此方法產(chǎn)生一個叫Megadepth的規(guī)模很大的深度圖片數(shù)據(jù)集清钥。

來自MVS數(shù)據(jù)的挑戰(zhàn):包含噪聲不可重構(gòu)的實體柜候,因此本文中提出了一種新的數(shù)據(jù)清洗的方法

在本文提出的數(shù)據(jù)集——Megadepth上訓(xùn)練的模型表現(xiàn)出了很強的泛化性能(即使在在Make3D税灌、KITTI和DIW等舊的數(shù)據(jù)集(訓(xùn)練中并沒有用到)上也有好多額表現(xiàn))

介紹

相對于預(yù)測場景實體的3D形狀鳄炉,單點深度估計是一個不受約束的問題,采用深度學(xué)習(xí)的方法解決的話需要大量的訓(xùn)練數(shù)據(jù)纸颜,然而RGB-D圖像對的采集非常困難的烁,現(xiàn)有方法存在著嚴重的缺陷,例如:

  • RGB-D傳感器:被限制在室內(nèi)使用
  • Laser scanners:基于此技術(shù)的典型數(shù)據(jù)集有Make3D和KITTI迟赃,但是這種設(shè)備操作相當麻煩陪拘,同時產(chǎn)生的只是稀疏的深度映射(LIDAR),此外Make3D和KITTI都是特定場景下的數(shù)據(jù)集(分別是大學(xué)校園纤壁、汽車上)

本文中采用幾乎沒有人合法限制的數(shù)據(jù)源構(gòu)建數(shù)據(jù)集來解決上面的問題(有重復(fù)視點的網(wǎng)絡(luò)圖片)左刽,這樣采用從運用中獲取結(jié)構(gòu)多視點立體技術(shù)可以自動地產(chǎn)生稠密的深度圖片。用以上的系統(tǒng)的輸出作為機器學(xué)習(xí)方法的輸入來解決單點深度估計問題酌媒。

本文的貢獻:

  • 第一次采用Internet SFM+MVS數(shù)據(jù)來解決單點深度估計問題欠痴。
  • 構(gòu)建并提出了一個無限制數(shù)據(jù)源迄靠、大容量的深度圖像數(shù)據(jù)集——Megadepth
  • 針對MVS圖片,提出了新的數(shù)據(jù)清洗的方法
  • 基于Megadepth訓(xùn)練模型的新的損失函數(shù)

相關(guān)工作

  • 單點深度估計:一個標準的方法是收集RGB-D圖像對喇辽,然后訓(xùn)練模型掌挚,訓(xùn)練好的模型就可以用來估計RGB圖像的深度信息。這些模型一般在比較小的訓(xùn)練集上訓(xùn)練(NYU菩咨、Make3D吠式、KITTI)
    Novotny等人基于從視屏中利用SfM+MVS構(gòu)建的3D模型訓(xùn)練了一個網(wǎng)絡(luò)來學(xué)習(xí)單個實體的3D形狀。
    通過視圖合成旦委,多視點場景也可以作為單點深度估計模型訓(xùn)練的潛在數(shù)據(jù)源,但它僅僅是一個深度信息的替代雏亚,往往不能產(chǎn)生高質(zhì)量的深度信息缨硝。
  • 相對深度估計:獲取圖像深度信息的另一個方法是人工標注圖像深度,但是人工標注絕對深度是一個挑戰(zhàn)罢低,人類比較擅長標注相對深度查辩。相對深度對于估計深度順序是有用的(因此文中也從圖片中自動集成了相對深度信息),但是僅僅通過相對深度學(xué)習(xí)的深度信息估計歐氏深度的精確度很有限网持。
  • 估計網(wǎng)絡(luò)圖片的深度信息:SfM和MVS技術(shù)的發(fā)展推動了此項任務(wù)的進步宜岛。已經(jīng)有人通過檢索和SfM從單張圖片中構(gòu)建3D模型,也有人利用以上技術(shù)注冊一張圖片到現(xiàn)有的3D模型中來推導(dǎo)深度信息功舀。但是前人的工作中需要或者提前在每個位置有詳細的3D模型或者運行時構(gòu)建它們萍倡。在本文的工作中采用SfM+MVS訓(xùn)練網(wǎng)絡(luò)去產(chǎn)生新的位置和場景。

MegaDepth數(shù)據(jù)集

  • 從Flickr下載網(wǎng)絡(luò)圖片——拍照效果非常好的地標
  • 采用最先進的SFM和MVS方法重構(gòu)地標為3D模型辟汰,這將為張圖片產(chǎn)生SfM模型和稠密深度映射列敲,但這些深度映射有大量的噪聲和奇異值。
    針對以上問題的處理:1)2)通過語意分割產(chǎn)生相對深度數(shù)據(jù)

圖片校準和重構(gòu)

通過COLMAP為收集的每張圖片構(gòu)建3D模型帖汞。COLMAP是最先進的SfM系統(tǒng)——重構(gòu)相機位姿和稀疏點云戴而,和MVS系統(tǒng)——稠密深度映射。COLMAP可以為每張重構(gòu)的圖片I產(chǎn)生一個深度映射D和諸如:相機參數(shù)翩蘸、稀疏SfM點所意、camera visibility

改善深度映射

COLMAP產(chǎn)生的原始深度映射包含很多奇異值(產(chǎn)生原因:移動實體、噪聲深度不連續(xù)催首、背景深度融合進前景實體)扶踊,因此需要進行深度映射的改善

  • 首先,采用在深度估計上更穩(wěn)定的基于COLMAP的改善的MVS算法郎任。COLMAP迭代地計算深度信息姻檀,每次迭代中,盡量保證相鄰像素深度映射的幾何穩(wěn)定性涝滴。保證該穩(wěn)定性的一個方法是給背景預(yù)測一致的深度绣版,一個壞的影響就是背景深度會吃掉前景實體胶台。為了克服這個影響,COLMAP的每次迭代中杂抽,比較每個像素值更新前后的深度值诈唬,并選擇最近(最小)的深度值缩麸,接著采用中值濾波器刪除掉不穩(wěn)定的深度值(平滑)铸磅。
  • 然后,采用語意分割的方法強化和過濾(實體感知過濾器)深度映射杭朱,并且產(chǎn)生額外的相對深度數(shù)據(jù)阅仔。

通過語意分割進行深度強化

MVS方法在有多個種類的實體的當場景中有不好的表現(xiàn),但是如果可以知道圖像中的語意分布弧械,則可以減小多實體的影響八酒,或者至少可以確定有問題的像素位置,而深度學(xué)習(xí)在語意分割中具有良好的表現(xiàn)刃唐。
語意分割在構(gòu)建我們提出的數(shù)據(jù)集過程中有三個主要的作用1)移除前景區(qū)域中的偽MVS深度羞迷;2)通過分割作為區(qū)分每張圖片是提供絕對深度信息或者相對深度信息的指標;3)通過組合語意信息和MVS深度自動地標注相對深度關(guān)系画饥,標注的這些數(shù)據(jù)有助于訓(xùn)練MVS不能夠重構(gòu)的區(qū)域衔瓮。
- 語意過濾:對于每張圖片,采用PSPNet進行語意分割抖甘,并把像素按語意分為三個子集:
1)前景實體:包括一些經(jīng)常出現(xiàn)在前景中的實體热鞍,有靜態(tài)前景和動態(tài)前景。
2)背景實體:包括建筑衔彻、山等碍现。
3)天空:在深度過濾中填空需要特殊處理
語意分類后没炒,為了克服移動實體(人)造成的偽深度篱竭,文中對圖片中每個連通區(qū)域進行處理:如果<50%的像素有重構(gòu)的深度信息,將移除該區(qū)域中的所有深度信息绑咱。此外為了克服填空的影響悴晰,文中還去掉了在填空區(qū)域中的重構(gòu)深度慢睡。

  • 絕對深度 VS 相對深度
    雖然每類3D實體有上千種場景圖,但它們深度圖的質(zhì)量是不一樣的铡溪,因此將訓(xùn)練數(shù)據(jù)集限制在一個具有該質(zhì)量深度圖的子集內(nèi)是有用的漂辐。具體的,考察一張圖片棕硫,如果>30%的像素由可靠的深度值組成髓涯,則保留它作為學(xué)習(xí)絕對深度信息的訓(xùn)練數(shù)據(jù)集樣本,這個評價指標將保留那些沒有大的移動前景實體的樣本哈扮。不被用作學(xué)習(xí)絕對深度訓(xùn)練集的樣本將有另一個的用途:自動生成學(xué)習(xí)相對深度關(guān)系的訓(xùn)練集纬纪。
  • 自動相對深度標注:
    來自網(wǎng)絡(luò)的圖片中蚓再,如果包含一些移動的實體、不易被MVS重構(gòu)的實體包各,如果我們僅僅采用前文構(gòu)建的數(shù)據(jù)集訓(xùn)練模型摘仅,將會缺少這些實體的的ground truth深度。為了解決這個問題问畅,我們采用了一個新的基于3D幾何信息和語意分割的方法為我們的訓(xùn)練圖片(不屬于絕對深度模型訓(xùn)練集的圖片)自動地提取相對深度標簽娃属,具體方法如下:
    對于上面提到的每張圖片,計算兩個區(qū)域:F_ord(前景:基于語意信息)护姆、B_ord(背景:基于3D幾何信息矾端, 也包含在整張圖片深度范圍的后四分位數(shù)以上深度可靠深度信息),F(xiàn)_ord中的每個像素一定比B_ord中的每個像素更接近相機卵皂。

創(chuàng)建數(shù)據(jù)集

數(shù)據(jù)集中包含了有稠密3D重構(gòu)的世界各地地標的200個模型秩铆,同時呈現(xiàn)了15萬的重構(gòu)圖片。過濾后保留了13萬張可用圖片渐裂,在這13萬張圖片中有大約10萬為絕對深度數(shù)據(jù)豺旬,3萬張為相對深度數(shù)據(jù)钠惩。再加上A. Knapitsch, J. Park等人用過的數(shù)據(jù)集柒凉,構(gòu)成了完整的Megadepth

深度估計網(wǎng)絡(luò)

網(wǎng)絡(luò)結(jié)構(gòu):對比了VGG,“hourglass” network篓跛,和ResNet膝捞,最后確定了使用hourglass作為深度預(yù)測模型

  • 損失函數(shù)
    SFM+MVS確定的的深度的尺度是不確定的,所以并不能直接拿預(yù)測深度和ground truth進行比較愧沟。但是深度對的相對深度的尺度是確定的(此處也可以是對數(shù)域中的利率蔬咬,就是估計的深度先取對數(shù),再進行成對比較沐寺,比值的尺度是確定的)林艘。基于上面的考慮混坞,文中處理的是對數(shù)域的深度狐援,并且用一個不隨尺度改變(深度對的比率)的損失函數(shù)進行訓(xùn)練。
    \mathfrak{L}_{si} = \mathfrak{L}_{data} + \alpha \mathfrak{L}_{grad} + \beta \mathfrak{L}_{ord}

尺度不變部分(data term):在線性時間內(nèi)計算所有對數(shù)深度對之間區(qū)別的均方誤差究孕。
這里用L表示預(yù)測對數(shù)深度啥酱、用L^*表示對數(shù)ground truth深度。L_iL_i^*表示i位置對應(yīng)的對數(shù)深度值厨诸。這里定義R_i = L_i - L_i^*镶殷,并且定義:
\mathfrak{L}_{data} = \frac{1}{n}\sum_{i = 1}^{n}\left ( R_i \right )^2 - \frac{1}{n^2}\left ( \sum_{i = 1}^{n}R_i \right )^2
上式中n表示ground truth深度數(shù)據(jù)中合法深度的個數(shù)。

多尺度微酬、尺度不變梯度匹配部分(grad term):為了在訓(xùn)練過程中在獎勵更平滑的梯度變化的同時懲罰更尖銳的深度不連續(xù)性绘趋,文中用了一個多尺度颤陶、尺度不變的梯度匹配子\mathfrak{L}_{grad}作為損失函數(shù)的一部分,其定義為:預(yù)測和ground truth深度數(shù)據(jù)之間對數(shù)深度的梯度區(qū)別的\mathit{l}_1懲罰項:
\mathfrak{L}_{grad} = \frac{1}{n}\sum_{k}\sum_{i}\left ( \left | \bigtriangledown _xR_i^k \right | + \left | \bigtriangledown _yR_i^k \right | \right )
上式中:R_i^k對數(shù)深度區(qū)別矩陣中位置為i尺度為k的值埋心,由于損失是在多尺度下計算的指郁,\mathfrak{L}_{grad}可以捕獲不同尺度圖像的深度梯度。文中使用的尺度有4個尺度拷呆。

具有魯棒性的相對深度損失(ord term):相對深度損失部分闲坎,捕獲的是前文中自動生成的相對深度關(guān)系誤差。
對于相對深度數(shù)據(jù)集中的每張圖片茬斧,在訓(xùn)練過程中腰懂,文中選取單個像素對(i, j)项秉,其中i像素和j像素或者在前景F_{ord}中或者在B_{ord}中绣溜,\mathfrak{L}_{ord}的設(shè)計如下,它對少數(shù)的不正確的相對深度關(guān)系對是魯棒的娄蔼。
\mathfrak{L}_{ord} = \left\{\begin{matrix} log\left ( 1 + exp\left ( P_{ij} \right ) \right ) & if P_{ij} \leq \tau \\ log\left ( 1 + exp\left ( \sqrt{P_{ij}} \right ) \right ) + c & if P_{ij} \geq\tau \end{matrix}\right.
其中P_{ij} = -r_{ij}^*(L_i - L_j)怖喻, r_{ij}^*就是前文中自動標注的i和j之間的相對深度關(guān)系, 如果 r_{ij}^* = 1則i像素比j像素離鏡頭更遠岁诉,否則 r_{ij}^* = -1锚沸,c是一個常數(shù),它的作用是是\mathfrak{L}_{ord}是連續(xù)的涕癣。訓(xùn)練過程中對于一張圖片哗蜈,如果文中的自動標注方法認為圖中的一個像素對有相似的深度順序,則\mathfrak{L}_{ord}鼓勵該點對之間的深度差最大(并且是有序的)坠韩,在訓(xùn)練過程中,基于交叉驗證距潘,文中設(shè)定\tau = 0.25

評估

評估的目的是回答下面的三個問題:

  • 在MD數(shù)據(jù)集上訓(xùn)練的模型怎樣泛化到新的訓(xùn)練中沒有用到過的網(wǎng)絡(luò)照片中只搁。
  • 文中提出的深度數(shù)據(jù)處理的重要性音比,文中的損失函數(shù)的各部分的重要性。
  • 在MD數(shù)據(jù)集上訓(xùn)練的模型在其他數(shù)據(jù)集上的泛化能力如何好

要回答以上的三個問題氢惋,文中設(shè)計了多個實驗內(nèi)容——在一個數(shù)據(jù)集上訓(xùn)練洞翩,在其他數(shù)據(jù)集上測試,以此來展示MD數(shù)據(jù)集訓(xùn)練的網(wǎng)絡(luò)的強大的泛化能力明肮。

實驗過程中也說明了文中提出的深度數(shù)據(jù)強化策略在實現(xiàn)泛化能力上的必要性菱农;同時說明了文中提出的損失函數(shù)在預(yù)測的數(shù)量質(zhì)量上都提高了預(yù)測表現(xiàn)。

實驗設(shè)計:從MD數(shù)據(jù)集的200個重構(gòu)模型中柿估,隨機選擇46個作為測試集循未,在剩余的154個重構(gòu)模型中,隨機的將每個模型的所有圖片分成訓(xùn)練集和驗證集,其中訓(xùn)練集占96%的妖,測試集占4%绣檬,在驗證過程中設(shè)置\alpha = 0.5\beta = 0.1嫂粟。實驗時采用pytorch實現(xiàn)模型娇未,采用Adam算法調(diào)參,以32的批量大小訓(xùn)練了20個epochs

為了比較的公平性星虹,在所有的實驗中訓(xùn)練和驗證都采用MD作為數(shù)據(jù)集零抬,文中通過MD數(shù)據(jù)集一共訓(xùn)練了4個模型并計算了平均錯誤率。

在MD測試集上模型的簡化測試和評估

下面介紹在MD數(shù)據(jù)集上測試通過MD數(shù)據(jù)集訓(xùn)練的模型的實驗過程宽涌。

評價指標:為了量化估計平夜,采用了兩個尺度不變的錯誤度量方法(SfM不具有尺度特性)。
第一個是:scale-invariant RMSE卸亮,公式如下:

第二個是:SDR——SfM Disagreement Rate忽妒,公式如下:
SDR\left ( D, D^* \right ) = \frac{1}{n}\sum_{i, j \in \psi } \mathbb{I}\left ( ord\left ( D_i, D_j \right ) \neq ord\left ( D_i^*, D_j^* \right ) \right )
上式中的\psi是像素對(有用于比較的SfM深度的像素對)的集合,n是滿足條件像素對的個數(shù)兼贸,ord(.段直,.)是一個可以表示三種深度關(guān)系(更遠、更近溶诞、同樣深度)的映射鸯檬,具體如下:
ord\left ( D_i,D_j \right )=\left\{\begin{matrix} 1 & if \frac{D_i}{D_j} > 1 + \delta \\ -1 & if \frac{D_i}{D_j} < 1 - \delta \\ 0 & if 1 - \delta\leq \frac{D_i}{D_j} \leq 1 + \delta \end{matrix}\right.

文中也定義了SDR^=SDR^\neq分別為ord\left ( D_i^*,D_j^* \right ) = 0ord\left ( D_i^*,D_j^* \right ) \neq0的反對(預(yù)測深度關(guān)系和SfM深度關(guān)系不同)率。文中的實驗中設(shè)置\delta = 0.1來容忍SfM深度點中深度的不確定性很澄。為了提高效率文中只在所有的SfM深度數(shù)據(jù)集中采樣一個子集來計算誤差京闰。

不同的網(wǎng)絡(luò)和損失函數(shù)對實驗結(jié)果的影響:文中共嘗試了三種主流的網(wǎng)絡(luò)來預(yù)測深度颜及,分別為VGG甩苛、hourglass、ResNet ,來測試文中提出的損失函數(shù)在三種網(wǎng)絡(luò)中和現(xiàn)有損失函數(shù)(Eigen el al)的比較結(jié)果俏站。
文中還以他們提出的損失函數(shù)中的單個部分的組合為損失函數(shù)分別訓(xùn)練了神經(jīng)網(wǎng)絡(luò)讯蒲,最終的結(jié)果顯示,以文中提出的損失函數(shù)(data_term+grad_term+ord_term)訓(xùn)練的網(wǎng)絡(luò)的泛化能力最強肄扎。并且在不同的組合中墨林,hourglass網(wǎng)絡(luò)和其他網(wǎng)絡(luò)相比,效果最好犯祠。

值得一提的是:損失函數(shù)中增加\mathfrak{L}_{grad}部分可以很大程度上提高ord\left ( D_i^*,D_j^* \right ) = 0ord\left ( D_i^*,D_j^* \right )

實驗結(jié)果表明文中提出的損失函數(shù)可以有效地保護深度數(shù)據(jù)中的原始結(jié)構(gòu)旭等,同時可以有效地捕獲距離較近實體(人和電線桿)之間的深度差距。

文中還通過在KITTI衡载、Make3D搔耕、DIW三個數(shù)據(jù)集上測試來比較在MD數(shù)據(jù)集上訓(xùn)練的模型在采用和不采用文中提出的深度強化方法時的預(yù)測表現(xiàn)。實驗結(jié)果表明痰娱,在原始的MVS數(shù)據(jù)集上訓(xùn)練的模型泛化能力并不是特別好弃榨,證明了文中提出的深度強化方法的有效性菩收。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鲸睛,隨后出現(xiàn)的幾起案子娜饵,更是在濱河造成了極大的恐慌,老刑警劉巖官辈,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箱舞,死亡現(xiàn)場離奇詭異,居然都是意外死亡拳亿,警方通過查閱死者的電腦和手機褐缠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來风瘦,“玉大人队魏,你說我怎么就攤上這事⊥蛏Γ” “怎么了胡桨?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長瞬雹。 經(jīng)常有香客問我昧谊,道長,這世上最難降的妖魔是什么酗捌? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任呢诬,我火速辦了婚禮,結(jié)果婚禮上胖缤,老公的妹妹穿的比我還像新娘尚镰。我一直安慰自己,他們只是感情好哪廓,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布狗唉。 她就那樣靜靜地躺著,像睡著了一般涡真。 火紅的嫁衣襯著肌膚如雪分俯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天哆料,我揣著相機與錄音缸剪,去河邊找鬼。 笑死东亦,一個胖子當著我的面吹牛杏节,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拢锹,長吁一口氣:“原來是場噩夢啊……” “哼谣妻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起卒稳,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蹋半,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后充坑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體减江,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年捻爷,在試婚紗的時候發(fā)現(xiàn)自己被綠了辈灼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡也榄,死狀恐怖巡莹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情甜紫,我是刑警寧澤降宅,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站囚霸,受9級特大地震影響腰根,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拓型,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一额嘿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧劣挫,春花似錦册养、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冰啃。三九已至邓夕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阎毅,已是汗流浹背焚刚。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扇调,地道東北人矿咕。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親碳柱。 傳聞我的和親對象是個殘疾皇子捡絮,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

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