[AAAI2021]论文翻译MANGO: A Mask Attention Guided One-Stage Scene Text Spotter

幻灯片1.PNG
幻灯片2.PNG
幻灯片3.PNG
幻灯片4.PNG
幻灯片5.PNG
幻灯片6.PNG
幻灯片7.PNG

Abstract

最近,端到端场景文本识别已成为一个流行的研究主题,因为它具有全局优化的优点和在实际应用中的高可维护性。大多数方法试图开发各种感兴趣的区域(RoI)操作,以将检测部分和序列识别部分连接到两阶段的文本识别框架中。然而,在这样的框架中,识别部分对检测到的结果高度敏感(例如,文本轮廓的紧凑性)。为了解决这个问题,在本文中,我们提出了一种新颖的“Mask Attention Guided One-stage”文本识别框架,称为MANGO,在该框架中无需RoI操作就可以直接识别字符序列。具体而言:

  • 开发了位置感知mask注意力模块,以生成每个文本实例及其字符的注意力权重。
  • 它允许将图像中的不同文本实例分配在不同的特征图通道上,这些通道进一步分组为一批实例特征。
  • 最后,使用轻量级序列解码器来生成字符序列。

值得注意的是,MANGO自有地适应于任意形状的文本识别,并且仅使用粗略的位置信息(例如矩形边界框)和文本注释就可以进行端到端的训练。实验结果表明,该方法在规则和不规则文本识别基准(即ICDAR 2013,ICDAR 2015,Total-Text和SCUT-CTW1500)上均达到了有竞争力甚至最新性能。

1 Introduction

场景文本识别由于其各种实际应用而备受关注,例如发票/收据理解中的关键实体识别,电子商务系统中的产品名称识别以及智能运输系统中的车牌识别。传统的场景文字识别系统通常分三步进行:定位文字区域,从原始图像中裁剪文字区域并将其识别为字符序列。然而尽管这种文本识别模型带来了许多可考虑的问题,例如:
(1)错误将在多个单独的任务之间累
(2)维护多个单独的模型的成本很高
(3)该模型难以适应各种应用程序。

因此,提出了许多工作以端到端的方式来最终优化文本识别过程。这些方法通常使用各种兴趣区域(RoI)操作以可微分的方式桥接文本检测和识别部分,从而形成了两阶段框架。粗略地说,早期的端到端方法将轴对齐的矩形RoI用作连接模块。这些方法处理不规则的(例如,透视图或弯曲的)文本实例能力有限,因为这种类型的RoI可能会带来背景或其他文本的干扰。为了解决这个问题,后来的方法(设计了一些形状自适应RoI机制来提取不规则物体。文本实例并将其校正为规则形状。



图1:传统的两阶段文本识别过程和提出的MANGO的图示。 图(a)显示了通过RoI操作连接检测和识别部分的两阶段文本识别策略。 图(b)是一种提出的单阶段文本识别方法,它可以直接输出最终的字符序列。

在两阶段方法中,识别部分高度依赖于定位结果,这就要求检测部分必须能够捕获准确的文本边界以消除背景干扰。因此,训练鲁棒的文本检测模型依赖于准确的检测注释,例如在不规则文本识别中使用的多边形或蒙版注释。自然地,标记这种注释是费力且昂贵的。另一方面,要确保紧紧封闭的文本区域(由检测注释进行监督)对于以下识别任务而言是最佳形式,这并不容易。例如,在图1(a)中,紧密的文本边界可能会擦除字符的边缘纹理并导致错误的结果。通常,需要手动扩展这些严格的检测结果,以适应实际应用中的识别。此外,在proposals之后执行带有非极大抑制(NMS)的复杂RoI操作也很耗时,尤其是对于任意形状的区域。尽管(Xing et al.2019)提出了一种单阶段采用字符分割策略的字符级别的识别框架,但很难扩展到具有更多字符类别(例如汉字)的情况。它还会丢失角色之间的关键上下文信息。

实际上,当人们阅读时,他们不需要描绘文本实例的准确轮廓。通过视觉注意力关注的粗略文本位置来识别文本实例就足够了。在这里,我们将场景文本识别重新考虑为注意力和阅读的问题,即,一次直接读出粗略注意的文本区域的文本内容。

在本文中,我们提出了一种名为MANGO的“Mask Attention Guided One stage”文本监视程序,称为MANGO,这是一种紧凑而强大的单阶段框架,可直接从图像中同时预测所有文本,而无需进行任何RoI操作。具体来说,我们引入了一个位置感知蒙版注意力(PMA)模块以在文本区域上生成空间注意力,该模块包含实例级蒙版注意力(IMA)部分和字符级蒙版注意力(CMA)部分。 IMA和CMA分别负责感知图像中文本和字符的位置。可以通过位置感知注意力谱直接提取文本实例的特征,而不必进行显式的裁剪操作,这尽可能保留了全局空间信息。
在这里,使用动态卷积将不同文本实例的特征映射到不同的特征谱通道(Wang等人,2020c),如图1(b)所示。之后,应用轻量级序列解码器一次批量生成字符序列特征。

请注意,MANGO可以仅使用粗略的位置信息(例如,矩形边界框,甚至是文本实例的中心点)进行端到端优化,还可以使用序列注释。 受益于PMA,该框架可以自适应地识别各种不规则文本,而无需任何纠正机制,并且还能够了解任意形状的文本的阅读顺序。

本文的主要贡献如下:
(1)我们提出了一种名为MANGO的紧凑而强大的一阶段文本识别框架, 该框架可以以端到端的方式进行训练。
(2)我们开发了位置感知蒙版注意力模块,以将文本实例特征生成为一个batch,并与最终字符序列建立一对一的映射。 只能使用粗略的文本位置信息和文本注释来训练该模块。
(3)广泛的实验表明,我们的方法在规则和不规则文本基准上均获得了有竞争甚至最新的性能。

2 Related Works

早期场景文本发现方法(Liao,Shi,and Bai 2018; Liao et al.2017; Wang et al.2012)通常首先使用训练有素的检测器来定位每个文本,例如(Liao et al.2017; Zhou et al.2017; He et al.2017; Ma et al.2018; Xu et al.2019; Baek et al.2019),然后使用序列解码器识别裁剪后的文本区域(Shi et al.2016; Shi,Bai和Yao 2017; Cheng et al.2017; Zhan and Lu 2019; Luo,Jin and Sun 2019)。为了充分利用文本检测和文本识别之间的互补性,已经提出了一些工作以端到端的方式优化场景文本发现框架,其中使用了模块连接器(例如RoI Pooling(Ren等人,2015a))在(Li,Wang,and Shen 2017; Wang,Li,and Shen 2019)中,(He等人2018)中使用的RoI-Align和(Liu等人2018)中使用的RoI-Rotate的开发是为了文本检测和文本识别部分。请注意,这些方法无法发现任意形状的文本。
为了解决不规则问题,已经提出了许多最近的工作来设计各种自适应RoI操作以发现任意形状的文本。 Sun等人(2018年)采用了透视图RoI转换模块来纠正透视图文本,但是该策略仍然难以处理弯曲度较大的文本。 (Liao et al.2019)提出了受两阶段Mask-RCNN启发的mask textspotter,用于逐个字符地检测任意形状的文本,但是这种方法会丢失字符的上下文信息,并且需要字符级位置注释。 Qin等人(2019)直接采用Mask-RCNN和基于注意力的文本识别器,该模型使用RoI-Masking模块在识别之前消除了背景干扰。 (Feng et al.2019)将文本实例视为一组特征块,并采用RoI-Slide操作来重建直线特征图。 (Qiao et al。2020)和(Wang et al。2020a)都检测到文本周围的关键点,并应用薄板样条变换(Bookstein 1989)纠正不规则实例。为了获得弯曲文本的平滑特征(Liu et al.2020),使用Bezier曲线表示文本实例的上下边界,并提出了Bezier-Align操作以获取校正后的特征图。
上述方法在两阶段框架中实现了端到端场景文本点,其中需要设计基于RoI的连接器(例如RoI-Align,RoI-Slide和Bezier-Align等),以实现以下目的:明确裁剪特征图。
在两阶段框架中,性能很大程度上取决于RoI操作获得的文本边界精度。但是,这些复杂的多边形注释通常很昂贵,并且并不总是适合识别部分,如前所述。

2.2 One-stage End-to-end Scene Text Spotting

在一般的对象定位领域,许多最新进展证明了在对象检测中研究的一阶段框架的效率和有效性(Redmon等人2016; Liu等人2016; Lin等人2017b; Tian等人2019;段等人(2019)或实例分割(Wang等人2019b; Tian,Shen和Chen 2020; Wang等人2020c; Xie等人2020; Chen等人2020)。但是,场景文本发现是一项更具挑战性的任务,因为它涉及序列识别问题而不是单个对象分类。这是因为场景文本具有许多特殊特征:任意形状(例如,曲线,倾斜或透视图等),数百万个字符组合,甚至是不受限制的阅读顺序(例如,从右到左)。最近,(Xing et al.2019)提出了一种通过直接分割单个字符的一种舞台场景文本识别方法。但是,它丢失了各个字符之间的序列上下文信息,并且很难传递给更多的字符类。据我们所知,以前没有工作可以在一个阶段的框架中处理序列级别的场景文本发现任务。

3 Methodology


图2:MANGO的工作流程。 我们以S = 6为例。 将输入特征输入到位置感知蒙版注意力模块中,以将实例/字符的不同特征映射到不同通道。 识别器最终一次全部输出字符序列。 Centerline Segmentation分支用于生成所有文本实例的粗略位置。 前缀“ R-”和“ C-”分别表示网格的行和列。

3.1 Overview

我们提出了一个名为MANGO的单阶段场景文本查找器,如图2所示。其深层特征是通过ResNet-50(He等人,2016)和特征金字塔网络(FPN)(Lin等人,2017a)的主干提取的。 然后将生成的特征图馈送到三个可学习的模块中:
(1)用于学习单个文本实例的位置感知蒙版注意力(PMA)模块,其中包括实例级蒙版注意力( IMA)子模块和字符级掩码注意力(CMA)子模块。
(2)识别器用于将注意力实例特征解码为字符序列。
(3)全局文本中心线分割模块,用于在推理阶段提供粗略的文本位置信息。

3.2 Position-aware Mask Attention Module

单阶段的文本识别问题可以视为原始图像中的纯文本识别任务。关键步骤是在文本实例到最终字符序列之间以固定顺序建立直接的一对一映射。在这里,我们开发了位置感知注意力(PMA)模块,以便为接下来的序列解码模块一次捕获所有表示文本的特征。受(Wang等人2019b)中使用的网格映射策略的启发,我们发现可以将不同的实例映射到不同的特定通道中,并实现实例到特征的映射。也就是说,我们首先将输入图像划分为S×S的网格。然后,通过提出的PMA模块将网格周围的信息映射到特征图的特定通道中。

具体来说,我们将特征提取后获得的特征图表示为x∈RC×H×W,其中C,H和W分别表示为特征图的通道数量,宽度和高度。然后我们将特征图x送入PMA(包括IMA和CMA模块)模块,以生成文本实例的特征表示(如下所述)。

Instance-level Mask Attention
MA负责生成实例级注意力蒙版遮罩,并将不同实例的特征分配给不同的特征图通道。 它是通过在切片网格上操作一组动态卷积内核(Wang等人2020c)来实现的,表示为GS×S×C。卷积核大小设置为1×1。

因此可以通过将这些卷积核应用于原始特征图来生成实例级注意力掩码:


要学习动态卷积核G,我们需要在文本实例和网格之间进行网格匹配。 与一般的对象检测或实例分割任务不同,文本实例通常以较大的纵横比甚至严重弯曲。 直接使用文本边界框的中心进行网格匹配是不合理的。

如果有两个实例占用同一个网格,我们只需选择一个占用率较大的实例。

Character-level Mask Attention
正如许多工作 (Chenget等人2017; Xing等人2019)所表明的那样,字符级位置信息可以帮助提高识别性能。 这激励我们设计全局字符级注意力子模块,以为后续的识别任务提供细粒度的特征。

如图2所示,CMA首先将原始特征图x和实例级注意力蒙版xins连接在一起,然后是两个卷积层(卷积核大小= 3×3)遵循下式来预测字符级注意力蒙版:

3.3 Sequence Decoding Module

由于将不同文本实例的注意蒙版分配给不同的特征通道,因此我们可以将文本实例打包为一批。 一个简单的想法是进行(Wang等人2020b)中使用的注意力融合操作,以生成批处理的连续特征xseq,即


然后,我们可以将文本识别问题转换为纯序列分类问题。 后面的序列解码网络负责生成一批字符序列(S2)。 具体来说,我们在xseq上添加了两层双向长短期记忆(BiLSTM)(Hochreiter和Schmidhuber 1997)来捕获顺序关系,最后通过完全连接的(FC)层输出字符序列。

(包括26个字母,10个数字,32个ASCII标点符号和1个EOS符号)。 具体而言,如果预测的字符串的长度小于L,则其余的预测将使用EOS符号进行补充。

3.4 Text Centerline Segmentation

该模型现在能够分别输出S2网格的所有预测序列。 但是,如果图像中有两个以上的文本实例,我们仍然需要指出哪个网格对应于那些识别结果。

由于我们的方法不依赖准确的边界信息,因此我们可以应用任何文本检测策略(例如RPN(Ren等人2015b)和YOLO(Redmon等人。 2016)),以获取文本实例的粗略的几何信息。 考虑到场景文本可能是任意形状的,我们遵循大多数基于分割的文本检测方法(Long等人2018; Wang等人2019a)来学习单个文本实例的全局文本中心线区域分割(或缩小ground truth)。

3.5 Optimization

IMA和CMA模块都用于使网络聚焦于特定的实例和字符位置,这在理论上只能通过最后的识别部分来学习。 但是,在复杂的场景文本场景中,如果没有位置信息的辅助,网络可能难以收敛。 但是,我们发现,如果模型已经在合成数据集上进行了预先的字符级监督,则可以轻松转移模型。 因此,可以分两步对模型进行优化。

首先,我们可以将IMA和CMA的学习视为纯分割任务。 结合中心线区域分割,所有分割任务都使用二进制Dice系数损失进行训练(Milletari,Navab和Ahmadi 2016),而识别任务仅使用交叉熵损失。 全局优化可以写成



请注意,预训练步骤实际上是一次性的任务,然后将主要学习CMA和IMA以适应该识别任务。 与以前需要平衡检测和识别权重的方法相比,MANGO的端到端结果主要由最终识别任务监督。

3.6 Inference

在推断阶段,网络输出一批(S×S)概率矩阵(L×M)。 根据中心线分割任务的预测,我们可以确定哪些网格应视为有效。 我们首先进行“广度优先搜索”(BFS),以找到各个相连的区域。 在此过程中,可以过滤许多类似文本的纹理。 由于每个连接区域可能与多个网格相交,因此我们采用字符加权投票策略来生成最终的字符串,如图3所示。

具体来说,我们计算连接区域i与网格j之间的连接率oi,j作为每个字符的权重。 对于实例i的第k个字符,其字符加权投票结果通过


在这里,占用率提供了每个网格的置信度,并且多个输出融合可以生成更可靠的结果。 具有最大占用率的网格将被视为粗糙的输出位置,可以根据特定任务将其替换为任何形式。

4 Experiments

4.1 Datasets

我们列出了本文使用的数据集如下:训练数据。我们使用SynthText 800k(Gupta,Vedaldi和Zisserman 2016)作为预训练数据集。利用实例级注释和字符级注释对PMA模块进行预训练。在微调阶段,我们旨在获得一个支持常规和非常规场景文本读取的通用文本点。在这里,我们构建了一个用于微调的通用数据集,其中包括来自Curved SynthText的150k图像(Liu等人2020),从COCO-Text过滤的13k图像(Veitet等人2016),从ICDAR-MLT过滤的7k图像(Nayefet等人2019)以及ICDAR2013(Karatzas等人2013),ICDAR2015(Karatzas等人2015)和Total-Text(Ch'ng and Chan 2017)中的所有训练图像。请注意,这里我们仅使用实例级别的注释来训练网络。测试数据集。我们在两个标准文本点标基准ICDAR2013(Karatzas等人2013)(IC13)和ICDAR2015(Karatzas等人2015)(IC15)中评估了我们的方法,其中主要包含水平和透视文本,以及两个不规则的基准Total-Text(Ch'ng和Chan 2017)和SCUT-CTW1500(Liu等人2019)(CTW1500),其中包含许多弯曲文本。车牌识别数据集CCPD中我们方法的能力(Xuet al.2018)。

4.2 Implementation Details

所有实验均在Pytorch中使用8×32 GB-Tesla-V100 GPU进行。网络详细信息。特征提取器使用ResNet-50(He等人2016)和FPN(Lin等人2017a)从不同的特征图中获取融合特征水平。这里,C = 256的(4×)特征图用于执行后续的训练和测试任务.Lis设置为25以覆盖大多数场景文本单词。 BiLSTM模块有256个隐藏单元,训练详细信息,所有模型均由SGDoptimizer进行训练,批处理大小= 2,动量= 0.9和重量衰减= 1×10−4。在预训练阶段,以10个周期的初始学习比率1×10-2训练网络。每3个周期将学习率除以10.在微调阶段,初始学习率设置为1×10-3。为了平衡每批中的合成图像和真实图像的数量,我们将Curved SynthText数据集与其他真实数据集的采样比率保持为1:1。微调过程持续250k次迭代,其中学习率在120k迭代和200k迭代时除以10.我们还对所有训练过程进行数据扩充,包括1)将输入图像的较长边随机缩放为长度在[720,1800]范围内,2)将图像随机旋转[-15°,15°]范围内的角度,以及3)对输入图像应用随机的亮度,抖动和对比度。在不同的数据集中,我们将IC15的评估值设置为S = 60,将IC13,Total-Text和CTW1500的评估值设置为S = 40。我们将所有权重参数简单地设置为λ1=λ2=λ3=λ= 1。测试细节。由于输入图像的尺寸是重要的重要影响性能,因此我们将报告不同输入比例下的性能,即保持原始比例和将图像的较长边调整为固定值。所有图像都在单一尺度上进行测试。由于当前的实现方式仅提供了粗略的定位,因此,我们通过考虑IoU> 0.1的所有检测结果,修改(Wang,Babenko和Belongie 2011)的端到端评估指标。在这种情况下,由于某些低等级的建议匹配而导致精度下降,先前方法的性能甚至会下降。

4.3 Results on Text Spotting Benchmarks

常规文本的评估我们首先根据常规评估指标(Karatzas等,2015)对IC13和IC15的方法进行评估,然后基于三种不同的lexi-cons(强)对两个评估项目(端到端''和单词斑点'')进行评估,弱和通用)。表1显示了评估结果。与使用常规词典评估的先前方法相比,我们的方法在“通用”项目上获得了最佳结果(除了IC15的端到端通用结果之外),并在其余评估项目上获得了竞争结果(强”和“弱”)。与最近使用特定词典的最新MaskMaskTextSpotter(Liao et al.2019)相比,我们的方法在所有评估项目上均明显优于该方法。尽管推理速度很高,但FOTS的FPS最高(帧数第二),它无法处理不正常的情况。与基于不规则的方法相比,我们的方法获得了最高的FPS。不规则文本的评估我们在Total-Text上测试了我们的方法,如表2所示。我们发现我们的方法比最先进的方法高出3.2%和5.3 “无”和“满”指标中的百分比。请注意,即使没有明确的纠正机制,我们的模型也只能在识别监督的驱动下才能很好地处理不规则文本。尽管在1280的测试规模下,推理速度约为ABCNet的1/2,但我们的方法取得了显着的性能提升。我们还在CTW1500上评估了我们的方法。报告端到端结果的作品很少,因为它主要包含行级文本注释。为了适应这种情况,我们在CTW1500的训练集上对检测分支进行了重新训练,以学习线级中心线分割,并确定主干和其他分支的权重。请注意,识别不会受到影响,仍然会输出单词级序列。最终结果将根据推断的连接区域简单地从左到右连接起来。汉字设置为NOT CARE。结果如表3所示。我们发现,在“无”和“满”度量标准下,我们的方法明显比以前的提升了1.9%和4.6%。因此,我们相信,如果只有行级注解的数据足够多,我们的模型就可以很好地适应这种情况。

4.4 Visualization Analysis

图4可视化了IC15和Total-Text上的端到端文本发现结果。 我们详细显示了字符投票之前每个正网格(oi,j> 0.3)的预测结果。 我们看到我们的模型可以正确地专注于相应的位置并学习任意形状(例如弯曲或垂直)文本实例的字符序列的复杂读取顺序。 采取字符投票策略后,将生成具有最高置信度的单词。我们还用可视化的CMA演示了CTW1500的一些结果,如图5所示。请注意,我们仅根据数据集的位置微调线级分割部分 标签,同时固定其余部分。在这里,我们通过将所有网格的注意图覆盖在相同的字符位置(k)上来可视化CMA的特征图:


4.5 Ablation Studies

网格编号的消除网格编号S2是影响最终结果的关键参数。如果太小,则占据相同网格的文本太多。否则,太大的S会导致更多的计算成本。在这里,我们进行实验以找到不同数据集的S的可行值。从表4中,我们发现IC13和TotalText的bestS均为40。 IC15的值为60。这是因为IC15包含更多密集和较小的实例。总而言之,当S> = 40时,总体性能随沙的增加而稳定。当然,FPS随S的增加而略有下降。信息。为了证明这一点,我们还进行了实验,以矩形边框的形式转移所有本地化注释。我们仅采用RPN头作为检测分支。表5显示了IC15和Total-Text的结果。即使进行严格的位置监控,MANGO的性能也只能降低0%到3%,并且可以与最新技术相比。请注意,粗略位置仅用于网格选择,因此可以根据特定任务的要求尽可能简化它。

4.6 Challenging License Plate Recognitionwithout Position Annotations

为了证明模型的泛化能力,我们进行了实验以评估CCPD公共数据集上的端到端车牌识别结果(Xu et al.2018)。为了公平起见,我们遵循相同的实验设置,并使用带有250k图像的数据集的初始版本。 CCPD-Base数据集分为两个相等的部分:用于训练的100k样本和用于测试的100k样本。有6个复杂的测试集(包括DB,FN,旋转,倾斜,天气和挑战)用于评估算法的鲁棒性,总共有50k张图像。由于CCPD中的每个图像仅包含一个板,因此可以通过删除来进一步简化我们的模型检测分支直接预测最终字符序列。因此,网格数减少为S = 1,最大序列长度设置为L =8。我们直接对模型进行微调(已通过SynthText进行了预训练)在CCPD训练集上仅使用序列级注释,然后评估上述七个测试数据集的最终识别准确性。测试阶段是对尺寸为720×1160的原始图像执行的。
表6显示了端到端识别结果。尽管所提出的方法不是为车牌识别任务设计的,但仍然可以轻松地转移到这种情况下。我们看到,提出的模型在7个测试集中的5个中优于以前的方法,并达到了最高的平均精度。图6显示了CCPD测试集的一些可视化结果。故障样本主要来自图像太模糊而无法识别的情况。该实验表明,在许多情况下,只有一个文本实例(例如,工业印刷识别或仪表拨盘识别),可以使用良好的端到端模型无需检测注释即可获得。

5 Conclusion

在本文中,我们提出了一种名为MANGO的新颖的单阶段场景文本查找器。 该模型删除了RoI操作,并设计了位置感知注意模块来粗略定位文本序列。 之后,应用轻量级序列解码器以将所有最终字符序列成批获取。 实验表明,我们的方法可以在流行基准上获得具有竞争力的,甚至最先进的结果。

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

推荐阅读更多精彩内容