[CVPR2020]论文翻译: Learn to Augment: Joint Data Augmentation and Network Optimizationfor Text Recogn...

Abstract

手写文本和场景文本具有各种形状和变形的图案。因此,训练一个鲁棒的识别模型需要大量的数据以尽可能覆盖多样性。与数据收集和注释相反,数据增强是一种低成本的方法。在本文中,我们提出了一种新的文本图像增强方法。与传统的增强方法(例如旋转,缩放和透视变换)不同,我们提出的增强方法旨在学习适当有效的数据增强,从而对于训练强大的识别器更加有效和专业。通过使用一组客户基准点,所提出的增强方法是灵活且可控的。此外,我们通过联合学习弥合了孤立的数据扩充过程与网络优化之间的鸿沟。代理网络从识别网络的输出中学习并控制基准点,并为识别网络生成更合适的训练样本。在包括常规场景文本,不规则场景文本和手写文本在内的各种基准上进行的大量实验表明,提出的增强和联合学习方法显着提高了识别网络的性能。提供了用于几何增强的通用工具包。
C++版本
Python版本

Introduction

过去十年见证了深度神经网络在计算机视觉社区中所取得的巨大进步[3,11,14,21]。有限的数据不足以训练鲁棒的深度神经网络,因为该网络可能会过度拟合训练数据并在测试集上产生较差的泛化[5]。但是,数据收集和注释需要大量资源。与单目标分类任务[21]不同,文本字符串的注释工作更加困难,因为文本图像中有多个字符。这也是大多数最先进的场景文本识别方法[23,28,38]仅使用合成样本[13,17]进行训练的原因。数据限制还影响手写文本的识别。存在着各种各样的写作风格。收集大规模带注释的手写文本图像的成本很高,并且无法涵盖所有​​多样性[47]。由于难以模仿各种书写方式,因此生成手写文本的合成数据也具有挑战性。

要获得更多训练样本,可以对现有数据进行随机增强[9]。具有不同书写风格的手写文本,以及具有不同形状的场景文本,例如透视文本和弯曲文本,仍然很难被识别[5,28,38]。因此,几何增强是获得识别方法鲁棒性的重要途径。


图1.(a)现有的几何扩充,包括旋转,缩放和透视变换; (b)我们提出的弹性扩充。 此外,联合学习方法将数据增强和网络训练的隔离过程架起了桥梁。

如图1(a)所示,常见的几何变换是旋转,缩放和透视变换。图像中的多个字符被视为一个实体,并对图像进行全局扩充。但是,应考虑每个字符的多样性。给定文本图像,扩充目标是增加文本字符串中每个字符的多样性。因此,现有的扩展仅限于过于简单的转换,这对于训练而言是效率低下的。

此外,由于长尾分布[31],有助于网络鲁棒性的有效训练样本可能仍然很少[31]。这是造成低效率训练的另一个原因。对于每个训练样本,随机增强的策略都是相同的,而忽略了样本之间的差异以及网络的优化过程。在手动控制的静态分布下,扩增可能会产生许多“简单”的样本,这些样本对于训练没有用。因此,静态分布下的随机扩充很难满足动态优化的要求。同时,通常无法按预期将在一个数据集上手动设计的最佳增广策略转移到另一个数据集。我们的目标是研究一种无需任何人工修改即可自动适应其他任务的可学习的扩充方法。

在本文中,我们提出了一种用于文本识别的新数据扩充方法,该方法专为类似序列的字符[36]扩充而设计。我们的增强方法侧重于图像的空间转换。我们首先在图像上初始化一组基准点,然后移动这些点以生成新图像。从代理网络的预测分布中抽取代表点移动以创建“较难”训练样本的移动状态。然后,增强模块将移动状态和图像作为输入,并生成新图像。我们采用基于移动最小二乘法的相似性变换[35]来生成图像。此外,随机运动状态也被馈送到增强模块以生成随机增强图像。最后,代理从增加识别难度的运动状态中学习。难度是根据编辑距离的度量来衡量的,该距离与识别性能高度相关。

总而言之,我们的贡献如下:

  1. 我们为包含多个字符的文本图像提出了一种数据增强方法。 据我们所知,这可能是第一种专门为类似序列的字符设计的增强方法。
  2. 我们提出了一个可以共同优化数据增强和识别模型的框架。 经过扩展的样本是通过自动学习过程生成的,因此对于模型训练更加有效和有用。 所提出的框架是端到端可训练的,无需进行任何微调。
  3. 在包括场景文本和手写文本在内的各种基准测试上进行的广泛实验表明,所提出的增强和联合学习方法显著提高了识别器的性能,尤其是在小型训练数据集上。

2. Related Work

场景文本识别
作为计算机视觉任务中必不可少的过程,场景文本识别已引起了很多研究兴趣[22,23,28,38]。场景文本图像中有多个字符。因此,文本字符串识别任务比单个字符识别更加困难。通常,场景文本识别方法可分为两种类型:基于定位的和无分割的。

前者试图定位字符的位置,识别它们并将所有字符分组为文本字符串[41,42]。后者得益于深度神经网络的成功,并将文本识别建模为序列识别问题。例如,He等[15]和Shi等[36]在卷积神经网络(CNNs)的顶部应用了递归神经网络(RNN)来解决类似序列的对象的空间依赖性。此外,通过注意力机制[38]解决了序列到序列的映射问题。

常规文本识别的巨大进步使得社区转向了不规则文本识别。Luo等[28] 和 Shi等。 [38]提出了整流网络,以消除扭曲,降低识别难度。 Zhan和Lu [46]反复消除了透视变形和文本线弯曲。Yang等 [43]通过对每个字符使用更多的几何约束和监督,对文本形状进行了准确的描述。尽管上述方法取得了显著进步,但不规则场景文本识别仍然是一个具有挑战性的问题。

手写文本识别
由于各种书写方式,手写文本识别仍然是一个具有挑战性的领域[5]。早期的方法是使用混合隐马尔可夫模型[10],将单词图像和文本字符串嵌入到一个共同的向量子空间中,以进行与最近邻问题有关的识别任务[1]。

在深度学习时代,Sueiras等人 [39]和Sunet等[40]通过使用CNN和RNN提取高级特征,并获得了优异的结果。张等[47]通过提出一个序列到序列域自适应网络来解决手写风格多样性问题。Bhunia等[5]对抗性地扭曲了中间特征空间,以缓解某些稀疏训练数据集中缺乏变化的情况。尽管取得了巨大的进步,但手写文字识别由于各种书写方式而仍然是一个开放且具有挑战性的问题。

数据扩充
数据扩充对于避免在深度神经网络的训练中过拟合至关重要[9,16,31]。然而,很少有研究解决文本图像的增广问题。常见的几何增强包括翻转,旋转,缩放和透视变换,通常可用于单个对象识别[21]。但是,文本图像包含多个字符。现有的过于简单的转换对文本外观的多样性没有显著贡献。

同时,静态扩充策略不能满足动态优化的要求。 Cubuk等人[9]通过使用强化学习来搜索增强策略。 Ho等 [16]生成了灵活的扩充策略计划,以加快搜索过程(在CIFAR-10上将5000 GPU小时降低到5 GPU小时)。彭等人 [31]通过对抗性学习和预训练过程增加了样本。

关于文本识别,识别器的训练需要大量数据。广泛使用的合成数据集[13,17]提供了超过一千万个样本。 [22]另外使用了大约50k的公开真实数据集进行训练,并显著提高了识别性能,这表明识别模型仍然需要大量数据。对于手写文本,现有的培训数据几乎无法涵盖各种书写样式,并且生成合成手写数据也具有挑战性。与场景文本合成不同,在画布上呈现的书写字体很少。

我们的方法是针对自动增强多个字符提出的。代理商网络在线搜索训练样本。此外,该框架是端到端可训练的,无需进行任何微调。

3. Methodology

3.1. Overall Framework


图2.提出框架的整体情况。 首先,可学习的代理预测运动状态的分布,旨在创建更难的训练样本。 然后,增强模块分别基于随机和预测的运动状态来生成增强样本。 一对样本的难度由识别网络测量。 最后,代理将增加难度的移动状态作为指导并进行自我更新。 统一框架是端到端可训练的。

如图2所示,所提出的框架由三个主要模块组成:代理网络,增广模块和识别网络。首先,我们在图像上初始化一组自定义基准点。代理网络预测的运动状态和随机生成的运动状态被馈送到增广模块。运动状态指示一组定制基准点的运动。然后,增强模块将图像作为输入,并分别基于运动状态进行变换。识别器预测增强图像的文本字符串。最后,我们根据编辑距离度量了增强图像的识别难度。代理从运动状态中学习增加了困难,并探索识别器的弱点。结果,识别器从严格的训练样本中获得了鲁棒性。

由于我们仅使用识别网络的预测,而难度是通过编辑距离而不是其他损失函数来衡量的,因此可以通过最新的先进方法来替换识别网络。 [36,38],我们将在第4节中进行演示。在本节中,我们描述了所提出框架的扩充模块和联合训练方案。

3.2. Text Augmentation


给定文本图像,扩充目标是增加文本字符串中每个字符的多样性。 这促使我们使用更多的自定义基准点进行转换。 如图3所示,我们将图像平均划分为N个块,并在顶部和底部图像边界上初始化2个(N + 1)个基准点。 之后,通过遵循一定的分布并随机地将基准点移到半径R内来减弱图像。为生成增强图像,我们基于在输入图像上移动最小二乘[35]来应用相似度变形。 给定图像的点,变换就可以了


讨论
尽管薄板样条变换(TPS)[6]在形状校正[38]和特征级对抗学习[5]方面取得了成功,但据报道,TPS出现了不均匀的缩放和剪切,这在许多应用中都是不希望的[35] 。为什么以前使用TPS的工作可能的原因是TPS中的所有运算符都是可微分的并且可以在大多数主流深度学习库中找到。由于我们的增强学习无需进行识别损失的反向计算,而我们的目标是建立一般的增广,因此我们选择基于移动最小二乘法的相似变形作为我们的变换策略。此外,我们还比较了相似转换与刚性转换[35],后者被认为是一般对象最现实的转换。如图4所示,刚性变换保留相对形状(对于一般对象而言是现实的),但是相似度变换更适合于文本图像增强,因为它为每个字符提供了更灵活的变形。进一步的分析在第4.4节和表2中给出。

图4.弹性(相似性)和刚性变形的比较。 所有图像上基准点的移动是相同的。 刚性变换保留了相对的形状(对于一般对象而言是重新分类的),但是文本图像增强要求每个字符都具有更灵活的变形。 因此,弹性(相似性)转换更适合于文本图像扩增。

3.3. Learnable Agent

与以前的智能增强方法[9]使用增强学习来搜索最佳策略不同,我们以更快,更高效的方式解决了学习问题。受启发式算法的启发,我们在所有可能的解决方案中找到了解决方案。由于训练过程是动态的,因此近似解就足够了,而精确解在计算上是昂贵的。对于训练过程中的每个步骤,我们都会生成预测运动状态的变化。它可以作为学习目标的候选。如果随机移动状态增加了识别难度,则代理将从移动状态中学习。相反,如果运动状态降低了识别难度,我们就逆转学习目标。

我们提出了寻找更难变形的样本作为运动学习问题的问题。如图3所示,给定图像,我们随机移动基准点以使图像变形。每个基准点的移动操作(∆x,∆y)与两个因素有关:1)移动方向,即(∆x,∆y); 2)移动距离,即( | ∆x |,| ∆y |)。在我们的实践中,距离的学习未能收敛。代理网络很难精确地了解运动的距离。另一个有趣的观察结果是,失败的代理网络始终会预测最大移动距离以创建过多的失真样本,从而降低了识别器训练的稳定性。因此,我们将学习空间限制在运动方向上。根据移动方向,在半径范围内随机产生移动距离。由于随机性在扩充中引入了不确定性,因此它避免了由代理网络预测的乏味移动。而且,可以将代理网络设计为轻量级体系结构。如表1所示,代理网络仅由六个卷积层和一个全连接层组成。代理网络的存储需求小于1.5M。

代理网络的学习方案如算法1所示。首先,可学习的代理预测运动状态分布,以创建更难的训练样本。随机运动状态也被馈送到增强模块。然后,增强模块分别基于两个运动状态生成增强样本。之后,识别网络将增强样本作为输入并预测文本字符串。这对样本的难易程度是通过ground truth和预测文本字符串之间的编辑距离来衡量的。最终,代理采取移动状态,这种状态会增加难度并进行自我更新。统一框架是端到端训练的。

4. Experiments

在本节中,我们将对各种基准进行广泛的实验,包括规则和不规则的场景文本以及手写文本。 我们首先进行消融研究,以分析训练数据的大小,分成的patch数N和运动半径R对性能的影响。 我们的方法也与现有的仿射和刚性变换进行了比较。 然后,我们将最先进的认知模型与我们的方法进行集成,以展示可学习数据增强的有效性。最后,我们将我们的方法与特征级对抗学习方法[5]结合起来,以进一步提高识别性能,这表明我们的方法是灵活的,可以在其他增强系统中应用。

4.1. Scene Text Datasets

广泛使用的合成数据集[17]和[13]分别包含900万和800万个合成词。 我们随机抽取了10k,100k和100万张图像(分别称为Syn-10k,Syn-100k和Syn-1m)进行消融研究。

Real-50k 由Li [22]等人从所有公开数据集上收集,包含大约5万个样本。

IIIT 5K单词[30](IIIT5K)包含3000个测试单词图像。
Street View Text [41](SVT)由647个单词图像组成,用于测试。许多图像都被严重的噪点和模糊破坏。

ICDAR2003 [27](IC03)丢弃了包含非字母数字字符或少于三个字符的图像后,包含867张裁剪的图像[41]。

ICDAR2013 [20](IC13)继承了IC03的大部分样例。它包含1015张裁剪的图像。

Street View Text Perspective[33](SVT-P)包含645张裁剪的图像进行测试。它们中的大多数是透视失真的。

CUTE80[34](CT80)包含在自然场景中拍摄的80个高分辨率图像。它是专门收集来评估弯曲文本识别的性能的。它包含288个裁剪的自然图像。

ICDAR2015 [19](IC15)是通过使用ground truth单词边界框裁剪单词并获得200多种不规则文本图像而获得的。

4.2. Handwritten Text Datasets

IAM [29]包含657位不同作者所写的13,000多行和115,000个单词。

RIMES[2]包含1000多个作者用法语编写的60,000个单词。

4.3. Implementation Details


网络
表1中详细介绍了代理网络的结构,它是一个轻量级网络(小于1.5M),由六个卷积层和一个全连接层组成。输出大小表示2(N + 1)个点,两个坐标和两个移动方向。当我们使用编辑距离作为难度的度量标准时,该框架与各种识别损失无关。例如,Shi 等人[36]采用卷积循环神经网络的CTC损失[12],并且注意解码器[28,38]由交叉熵损失指导。因此,我们的框架对不同的识别器友好。我们在以下实验中显示了该方法的灵活性。

优化
在消融研究中,我们使用ADADELTA [45]作为优化器使用默认学习率。batchsize设置为64。所有图像的大小调整为(32,100)。当我们的方法与最新的识别器集成时,为了公平比较,实验设置包括优化器,学习率,图像大小以及训练和测试数据集与识别器相同。
环境
所有实验均在NVIDIA 1080Ti GPU上进行。增强模块只需不到2毫秒即可在2.0GHz CPU上生成(32,100)图像。可以利用多线程加速。对于每次迭代,具有可学习增强的端到端训练花费的时间少于单个识别器训练时间的1.5倍。如果经过随机扩充训练,则几乎没有额外的时间消耗。

4.4. Ablation Study

在本节中,我们进行了一系列的消融研究。由于发布的场景文本数据集[13,17]提供了数以千万计的训练样本,因此可以对三个尺度的小型数据集进行采样。因此,我们对场景文本数据集进行了消融研究。训练数据集是Real-50k,Syn-10k,Syn-100k和Syn-1m。我们使用默认学习率的ADADELTA [45]作为优化器。batch size设置为64。所有图像都将大小调整为(32,100)。在表2中,我们将所有场景文本测试集组合为一个统一的大型数据集进行评估。



由于注意力识别器是最前沿的方法,因此我们选择[38]具有ResNet和注意力解码器的网络作为识别器。无需任何扩充即可训练的识别器用作基准。遵循广泛使用的评估指标[28,38],通过表2-4中的单词精度来衡量性能。为了确保训练足够,我们在模型达到最高准确度后再训练10个epoch。

训练数据的大小
如表2所示,使用我们可学习的增强方法的识别器在很大程度上优于基线。例如,Syn-10k数据集的最大准确率提升了14.0%。这表明我们提出的方法大大提高了小数据设置中识别器的通用性。随着数据集大小的增加,差距减小。但是,在100万个训练数据Syn-1m上,其准确率仍显着提高了6.5%。

Transformation
Affine变换[18](包括旋转,缩放和平移)与我们的增强方法进行了比较。结果如表2, 这表明使用仿射增强的识别器性能优于基线,但仍落后于使用我们的扩展方法的识别器,因为仿射变换仅限于设计的几何变形,无法发现文本外观的多样性。我们还进行了一项实验,以研究刚性转化的有效性。如第3.2节所述,尽管刚性转换对于一般对象[35]来说是现实的,但相似性转换更适合于文本图像的扩增。

可学习的Agent
在表2中,Agent网络通过共同学习数据增强和识别器训练来进一步提高性能。特别是,使用Real-50k训练识别器时,它的准确性提高了3.1%。图5展示了Real-50k上的训练损失曲线和大型评估数据集上的测试准确性曲线。一个有趣的观察是,识别器与可学习的代理的损失降低的速度比其他方法要慢,这表明代理网络探索了识别器的弱点并产生了较难的样本进行训练。因此,识别器保持学习并获得鲁棒性。相比之下,当损失接近零时,传统的识别器就会停止学习。

Patch Number and Moving Radius(补丁数和移动半径)
我们分别研究了两个关键参数N和R。训练数据集为Syn-10k。表3和表4显示了实验结果。我们发现,对于规则文本,要获得最佳性能,可以将补丁数N设置为2或3。对于不规则文本(SVT-P,CT80和IC15),N最好设置为3,因为在此设置下,会生成大量用于训练的曲线文本图像。因此,识别器获得了鲁棒性。我们进一步说明了不同移动半径R的有效性。对于(32,100)图像的最佳设置是R =10。在以下实验中,我们将N和R的最佳设置用于进一步的研究。

4.5. Integration with State-of-the-art Methods


在本节中,我们将我们提出的方法与最新的识别器集成在一起。不同任务的扩充样本如图6所示。我们首先在非规则场景文本基准上显示了基于注意力的识别器[38]的改进。然后,我们使用基于CTC的识别器[5]并在手写文本上进行实验,验证了我们方法的通用性。请注意,我们的方法无需任何手动修改即可自动适应常规文本识别任务。此外,我们证明了我们的方法是灵活的,可以与其他增强系统集成以进一步提高性能。

不规则的场景文本识别
不规则的形状是场景文本识别的挑战之一。 Shi等人 [38]提出的ASTER是一种基于注意力的识别器,配备了修正网络。我们通过增加训练样本并增加文本外观的多样性来研究识别器的鲁棒性。实验设置包括优化器,学习率,图像尺寸和训练数据集,与ASTER相同[38]。

将我们的方法所提升的性能与最新方法进行了比较。尽管使用真实样本[22]和字符级几何约束[43]来训练识别器可以显著提高性能,为了进行公平比较我们遵循大多数方法的设置。Zhan和Lu [46]多次校正了图像,Shi等[38]只执行一次校正,我们选择结果,并在论文中报告一次校正迭代。场景文本识别器的性能是通过单词的准确性来衡量的。

如表5所示,我们首先复现了与ASTER [38]相同的识别器,它是基准。重新实现的ASTER的结果与原始论文中的结果相当。然后,我们将我们的方法与识别器集成在一起。在 CT80(4.5%)上显著提高了准确度。值得注意的是,SVT-P仍具有改进(1.5%),其中包含噪声,模糊和低分辨率的图像。尽管大量的合成样本可能涵盖了许多文本外观变化,但是我们的改进显示出对不规则文本识别的合理改进。结果与最新的技术方法相比具有竞争力。

手写文本识别
由于手写样式的多样性是手写文本识别的主要挑战[1],并且有限的训练数据难以涵盖所有手写样式,因此我们在两个受欢迎的数据集IAM [29]和RIMES [2]上验证我们方法的有效性。我们使用字符错误率(CER)和单词错误率(WER)作为手写文本识别的指标。 CER测量的Levenshtein距离由ground-truth的长度归一化。 WER表示ground-truth的所有单词中单词级别的错误率。

我们在表6和表7中将我们的方法与最新方法进行了比较。此外,与以前的Bhunia等人[5]的扩增方法进行了比较。为了公平比较,我们的实验设置与[5]相同。



我们使用与[5]相同的基于CTC的识别网络。表6和表7中显示的基准是复现的结果。此外,我们在识别网络中复现了对抗特征变形模块(AFDM)[5]。 AFDM是Bhunia等人提出的用于智能增强的关键模块。准确性按预期增加。请注意,我们复现的结果要优于原始论文中的大多数结果(8个中的7个),这证明了我们的实现和实验的有效性。我们发现我们的增强极大地促进了识别器的鲁棒性。它大大提高了性能(IAM不受约束地减少了WER 5.08%),并且性能明显优于AFDM。使用我们的方法训练的识别器还胜过所有最新方法。

最后, AFDM和我们的训练方法都可以通过显著的准确性提高来进一步提高识别器的性能。这表明我们的方法是一个元框架,可以在其他扩展系统中应用。

5. Conclusion

在本文中,我们提出了一种可学习的增强方法,用于训练文本识别器。 我们的方法可能是专门为类似序列的字符设计的第一种几何扩充方法。 此外,我们的方法通过联合学习弥合了数据扩充和网络优化之间的鸿沟。 所提出的方法简单而有效。 它能够自动适应常规文本识别任务,而无需进行任何手动修改。 大量的实验表明,我们的方法提高了场景文本和手写文本识别器的性能。 而且,我们的方法是一种元框架,可以将其合并到其他增强系统中。 将来,我们将把我们的方法扩展到在多目标检测和识别中更广泛的应用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容