DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion 论文详细解读

Abstract

1.解决的问题
  • 先前的工作不能充分的利用两个互补的数据源(RGB与D),只能独立的从RGB 或者是深度图中提取信息或者依赖于昂贵的后处理步骤。
  • 在复杂混乱场景下效果不好,不能够在实时任务中应用。
2.贡献
  • 提出DenseFusion一个通用可单独处理两个数据源的异质架构,并且可以对两个数据源的信息进行融合,在RGBD图像中预测已知物体的6D姿态。
  • 在神经网络架构中集成了一个迭代的微调过程,消除了之前的后处理 ICP 方法的依赖性。
3.结果

在YCB-Video和LineMOD都state-of-the-art,并且进行了机器人部署测试。

4.官方代码与视频

https://sites.google.com/view/densefusion/

Introduction

1.理想情况下,该问题的解决方案要能够处理具有各种形状、纹理的物体,且面对重度遮挡、传感器噪声、光照条件改变等情况都极为稳健,同时还要有实时任务需要的速度。

2.传统方法首先从 RGB-D 数据中提取特征,完成对应的分组和假设验证。但是,对手动特征的依赖和固定的匹配程序限制了它们在重度遮挡、灯光变化环境下的表现。近来在视觉识别领域取得的成果激发了一系列数据驱动方法,如使用 PoseCNN 和 MCN 这样的深度网络对 RGB-D 输入做姿态估计。

3.这些方法需要复杂的后处理微调步骤,从而完整利用 3D 信息,例如 PoseCNN 中生成的高度定制的迭代最近点(Iterative Closest Point ---ICP)和 MCN 中多视角假设验证规划(multi-view hypothesis verification scheme)。这些微调步骤不能与最终目标函数联合优化,在现实应用中也极为缓慢。在自动驾驶中,一种第三方解决方案被提出,它能够通过 Frustrum PointNet和 PointFusion这样的端到端深度模型很好地利用 RGB-D 数据中颜色和深度信息的补充性质。在驾驶场景中,这些模型取得了非常好的表现,也有很好的实时推理能力。但是,根据经验可知,这些方法在重度遮挡环境下不符合标准,这是实际操控领域中非常常见的一种情况。

4.在本文中,研究者提出一种端到端的深度学习方法,对 RGB-D 输入的已知物体进行 6D 姿态估计。该方法的核心是在每个像素级别嵌入、融合 RGB 值和点云,这和之前使用图像块计算全局特征Pointfusion2D边界框的研究相反。这种像素级融合方法使得本文的模型能够明确地推理局部外观和几何信息,这对处理重度遮挡情况至关重要。此外,研究者还提出了一种迭代方法,能够在端到端学习框架中完成姿态微调。这极大地提高了模型性能,同时保证了实时推理速度

5.研究者在两个流行的 6D 姿态估计基准---YCB-Video和 L i n e M O D 上评估了他们的方法。结果表明,在经过 ICP 进后,该方法的性能超越了当前最佳的 PoseCNN,其姿态估计准确率提高了 3.5 % , 推断速度提高了 200 倍。值得一提的是,我们证明了新方法在高度杂乱的场景中表现出了鲁棒性。最后,研究者还在一个真实的机器人任务中展示了它的用途,在这项任务中,机器人估计目标的姿态并抓取它们以清理桌面。

6.总之我们的贡献有两个方面:
提出了结合颜色与深度信息的方法,使用从任务中学习到的嵌入空间的2D信息来增强每个3D点的信息,并使用此新的颜色深度空间来估计6D姿势。其次,研究者将迭代细化过程集成到神经网络体系结构中,从而消除了后处理ICP步骤的先前方法的依赖性。

相关工作

大力推荐阅读综述:
Vision-based Robotic Grasping from Object Localization, Pose Estimation, Grasp Detection to Motion Planning: A Review

Model

 使用齐次变换矩阵表示6D姿态,p\in SE(3) ,该姿态是相对于相机坐标系的,由旋转矩阵R\in SO(3)和平移矩阵 t\in R^{3} ,p=[R|T] 组成。
 要想在不利的条件下(例如,重度遮挡,光线不足等)估计已知目标的姿态,只有结合颜色和深度图像通道中的信息才有可能。但是,这两个数据源是不同空间的。因此,从异质数据源中提取特征并把它们恰当地融合在一起是这个领域中的主要技术挑战。

1.Architecture Overview

该架构包含两个阶段

  1. 将RGB作为输入并且对每个已知的物体类进行语义分割,对于每个分割出来的物体,根据掩模以及掩模bounding box提取出深度像素和图象块(image patch)

2.处理分割结果并估计对象的6D姿态。包含4个部分:

(a).全卷积网络(CNN),它处理颜色信息并将图像块(image crop)中的每个像素映射到颜色特征嵌入(color embedding)
(b).基于PointNet的网络,它将掩蔽的3D点云中的每个点处理为几何特征嵌入(geometry embeddings)
(c).像素级融合网络(pixel-wise fusion network),它在像素级别组合两个嵌入(color embeddings)和(geometry embeddings),并基于无监督置信度评分输出对象的6D姿势估计
下图对应a b c

Overview of our 6D pose estimation model.png

(d).迭代自优化方法,以课程学习方式训练网络并迭代优化估计结果,下图对应(d)

Iterative Pose Refinement
2.Semantic Segmentation

第一步是分割图像中的感兴趣对象。研究者的语义分割网络是一个编码器-解码器结构,它以图像为输入,生成N+1(N个类别加上一个背景类)个通道的语义分割图。每个通道是二进制掩码,其中活动像素描述N个可能的已知类别中的每一个的对象。这项工作的重点是开发一种位姿估计算法。因此,我们使用 Posecnn中提出的分割体系结构。

3.Dense Feature Extraction

这一领域的关键技术挑战是从颜色和深度通道中正确提取信息以及它们之间的协同融合。尽管颜色和深度在RGB-D帧中呈现相似的格式,但它们的信息在不同的空间中。因此,将它们分别映射成 color features 和 geometric features,以保留数据源原有信息。
(这里我有个小小的问题,我觉得RGB图像能提取到的不仅仅是颜色特征更多的可能是纹理特征,而且纹理特征并不属于几何特征范畴。)

  • 密集三维点云特征嵌入(Dense 3D point cloud feature embedding)
    1.首先使用标定相机的内参将分割的深度像素转换为3D点云
    2.使用PointNet类似的结构提取几何特征。
    PointNet 使用对称函数(最大池化)在处理无序点集时实现排列不变性,原始体系结构将原始点云作为输入,并学习对每个点的附近信息和整个点云的信息进行编码。这些特征被证明在形状分类、分割和姿势估计中是有效的。
     我们提出了一种几何嵌入网络,一种 PointNet 架构的变体,使用平均池化而不是通常使用的最大池化作为对称缩减函数,通过将每个P分割点映射到一个 d_{geo}维特征空间来生成密集的逐点特征。

  • 密集彩色图像特征嵌入(Dense color image feature embedding)
    将颜色嵌入网络的目的是提取每个像素的特征,以便在点云特征和图像特征之间形成紧密的对应关系。 图像嵌入网络是一种基于CNN的编解码器体系结构,它将尺寸为 H\times W\times 3的图像映射到H\times W\times d_{rgb}的空间。嵌入的每个像素表示相应位置处输入图像的外观信息的 d_{rgb}维向量。

3.Pixel-wise Dense Fusion

到目前为止,研究者已经从图像和三维点云输入中获得了密集的特征,现在我们需要对信息进行融合。一种自然的想法是从分割区域的密集颜色和深度特征中生成全局特征。然而,由于严重的遮挡和分割错误,来自上一步的特征集可能包含其他对象或背景上的点/像素的特征。因此,在全局范围内盲目融合颜色和几何特征会降低估计的性能。
研究者描述了一种新颖的像素级密集融合网络(主要是利用了2D图像到3D点云的对应映射原理),它有效地结合了提取的特征(color features 和 geometric features),特别是在严重遮挡和不完美分割的情况下进行姿态估计。

  • Pixel-wise dense fusion
    研究者的密集融合网络的关键思想是进行局部的逐像素融合,而不是全局融合,这样我们就可以根据每个融合的特征进行预测。潜在的根据对象的可见部分来选择预测,并最小化遮挡和分割噪声的影响。这句话不是很理解。

步骤:
1.首先利用已知的摄像机内部参数,基于在图像平面上的投影,将每个点的几何特征与其对应的图像特征像素相关联(就是将图像和3D点云像素级关联)。
2.使用对称缩减函数将所获得的特征对串联,并喂到另一网络以生成固定大小的全局特征向量。
虽然研究者避免使用单个全局特征进行估计,但在这里,我们使用全局密集融合特征丰富了每个密集像素特征,以提供全局的上下文。
我们将每个像素的特征输入到预测对象的 6D 姿势的最终网络中。换句话说,我们将训练这个网络,从每个密集融合的特征中预测一个姿势。结果是一组P个预测姿势,每个像素特征预测一个姿态。这定义了我们的第一个学习目标。接下来就是学习如何在自我监督的方式下找到哪个姿态最优,这一方法受到Pointfusion 的启发。我们修改了网络以输出每个预测的置信度分数c_{i} ,以根据特定的上下文来决定哪个姿态估计可能是最好的假设.。

4.6D Object Pose Estimation

优化目标:真实姿态下目标模型上的采样点与预测姿态变换后的同一模型上的对应点之间的距离。
\color{red}{这里很重要,具体解释一下再说损失函数}
目标模型(一般在视频第一帧中的目标物体,定义为目标模型,也就是一段视频中,后续建模出来的点云数据,都是以第一帧的目标物体为标准)。目标模型根据拍摄其他视角图片时保存的摄像头参数(一般含有旋转矩阵和偏转矩阵-也就是标准的姿态参数),求得当前帧(或者说当前视角)的点云数据。总的来说也就是把目标模型的点云,依据按照最标准的参数(旋转和偏移)转换成其他视角的点云数据。这样每个点云都进行了标准的变换,这里标准的旋转和偏移,我们可以称为ground truth pose。
损失函数:
L_{i}^{p}=\frac{1}{M}\sum_{j}^{}\left\|(Rx_{j}+t)-(\hat{R}_{i}x_{j}+\hat{t}_{i})\right\|
x_{j}表示从对象的 3D 模型中随机选择的 M 个 3D 点的第 j 个点,
p=\left [ R|t \right ]是真实的物体姿态,p=\left [ \hat{R}_{i}|\hat{t}_{i} \right ]是从i^{th}密集像素的融合嵌入生成的预测姿态。
由于对称对象有多个规范框架,可能有无限多个规范框架,这导致学习目标不明确。(举个例子,比如一个球体,各视角的纹理相似,形状基本是圆的,旋转一下,提取的特征可能不变,但3D姿态却变化了。)取而代之的是估计模型上的每个点与真实模型上最近的点之间距离的最小值。对称对象的损失函数如下:
L_{i}^{p}=\frac{1}{M}\sum_{j}\min \limits_{0<k<M}\left\|(Rx_{j}+t)-(\hat{R}_{i}x_{k}+\hat{t}_{i})\right\|
然后把上面每个像素的loss加起来:L=\frac{1}{N}\sum_{i}L_{i}^{p},然而,正如前面所解释的,我们希望我们的网络学会平衡每个像素预测之间的置信度。为此,我们用密集像素置信度对每个像素 loss 进行加权,并添加第二置信度正则化项:
L=\frac{1}{N}\sum_{i}(L_{i}^{p}c_{i}-wlog(c_{i}))
其中,N是从融合后的P个元素中随机采样的密集像素特征的数量,而w是平衡超参数。直观地说,低置信度 c_{i}会导致低位姿估计损失 (L),但从第二项wlog(c_{i}) 开始会招致很高的惩罚,反之亦然。我们使用置信度最高的姿态估计作为最终输出。
\color{red}{我自己总结了一下}:
通俗的讲,就是第一项中置信度 (c_{i}) 变大会导致损失函数 (L)变大,这是不应该的,而第二项中置信度 (c_{i}) 变大,会导致损失函数 (L) 减去一个较大的值,从而使整体变小。总之就是这个损失函数 (L) 会随着置信度 (c_{i}) 增大而减小,最终选择使损失函数 (L) 的取最小值的姿态估计作为输出。

5.迭代自优化

迭代最近点算法(ICP)(\color{red}{后续准备写一篇博客详细介绍算法以及实现})是许多6D位姿估计方法使用的一种强大的优化方法。然而,对于实时应用而言,性能最好的 ICP 实现通常效率不够高。在这里,我们提出了一种基于神经网络的迭代优化算法,可以快速而稳健地改善最终的位姿估计结果。
我们的目标是使网络能够以迭代的方式校正自身的位姿估计误差。这里的挑战是训练网络完善之前的预测,而不是做出新的预测。要做到这一点,我们必须将前一个迭代中所做的预测作为下一个迭代的输入的一部分。
再次把这张图放过来!

Iterative Pose Refinement

研究者的方法核心思想是:
1.将先前预测的姿态作为目标对象的标准帧的估计,并将输入的点云转换为该估计的标准帧。
2.将变换后的点云反馈到网络中,并基于先前估计的姿态预测剩余姿态。
 具体来说,我们训练了一个专用的位姿残差估计网络来对给定初始位姿估计的主网络进行优化。在迭代过程中,我们使用主网络中嵌入的图像特征,并为新变换的点云计算的几何特征进行密集融合,姿态残差估计器使用来自融合像素特征集合的全局特征作为输入。
在 K 次迭代之后,我们获得作为每次迭代估计的串联的最终姿态估计:
\hat{p}=\left [ R_{K}|t_{K} \right]\cdot\left[ R_{K-1}|t_{K-1}\right]\cdot\cdot\cdot\cdot\cdot\cdot\left [ R_{0}|t_{0} \right]

姿态残差估计器可以与主网络联合训练。但训练开始时的姿态估计噪声太大,以至于它无法学习任何有意义的东西。所以,在实践中,联合训练是在主网收敛之后开始的。

Experiments

在实验部分,想要回答以下问题:
(1) 密集融合网络与朴素的全局级联融合相比如何?
(2) 密集融合和预测方案对严重的遮挡和分割误差是否具有鲁棒性?
(3) 迭代优化算法是否改善了最终的位姿估计?
(4) 对于机器人抓取等下游任务,我们的方法是否足够健壮和高效?
为了回答前三个问题,研究者在 YCB-Video Dataset 和 LineMOD 这两个6D目标姿态估计数据集上对我们的方法进行了评估。

  • YCB-Video数据集:以不同遮挡条件下不同形状和纹理级别的对象为特色。
  • LineMOD数据集:是一个广泛使用的数据集,它允许我们与更广泛的现有方法进行比较。

为了回答最后一个问题,研究者将模型部署到一个真实的机器人平台上,并使用我们的模型预测来评估机器人抓取任务的性能。

1.Datasets
  • YCB-Video Dataset:具有21个形状和质地各不相同的YCB对象。该数据集包含92个RGB-D视频,其中每个视频显示不同室内场景。视频使用6D姿势和分段蒙版进行注释。
    我们将数据集的80个视频用于训练,从其余12个视频中选择2949个关键帧用于测试,并将 YCB-Video DataSet 发布的相同80000个合成图像包括在我们的训练集中。在我们的实验中,我们与使用深度细化 (ICP) 算法和基于学习的深度方法的结果进行了比较。
  • LineMOD Dataset:由13个视频中的13个低纹理对象组成。
    我们使用与以前基于学习的工作相同的训练集和测试集,没有额外的合成数据,并与最先进算法的最佳 ICP 优化结果进行比较。
2.Metrics

在 YCB-Video 数据集,使用了两个评估标准:
1.点云之间的平局距离average closest point distance(ADD-S),他分别考虑的对称和不对称物体的评估。通过估算的姿态\left[\hat{R}|\hat{t} \right]和ground truth pose \left[R|t\right],ADD-S会计算由他们转换之后,对应点云之间的距离,然后取得平均值。然后我们求得了其AUC曲线,AUC得最大阈值设定为0.1m。
2.同时也做了低于2cm的实验。对于机器人抓取物体,能容忍的最大误差值就是2cm。
在 LineMOD数据集,使用ADD标准评估不对称的物体,ADD-S评估对称的物体。

3.Implementation Details

图像嵌入网络由一个 Resnet-18 编码器和4个上采样层作为解码器组成。PointNet 架构是一个多层感知机(MLP),后面跟着一个平均池化缩减功能。颜色(color)和几何(geometric)密集特征嵌入都是128维的向量。我们选择平衡超参数 w = 0.01 。迭代姿态优化由 4个fc层组成,这些层直接输出全局密集特征的姿态残差。我们对所有实验都使用2次优化迭代。

4.Architectures

比较了4个模型变体以表明我们设计网络的有效性

  • PointFusion使用 CNN 提取固定大小的特征向量,并通过直接连接图像特征和几何特征进行融合。网络的其余部分与我们的架构相似。与这一模型的比较证明了我们密集融合网络的有效性。
  • Ours (single):使用我们的密集融合网络,但它不执行逐点预测,而只使用全局特征向量输出单个预测。
    3.Ours (per-pixel):根据每个密集融合的特征执行每像素预测。
    4.Ours (iterative) :在Ours (per-pixel)的基础下,使用iterative refinement 。
5.Evaluation on YCB-Video Dataset

下表显示了YCB-Video 数据集中所有21个对象的评估结果:


YCB-Video评估结果

在模型变体中,Ours (Iterative) 取得了最好的性能。即使没有迭代细化,研究者的方法也能够胜过 PoseCNN + ICP。特别是,我们的(迭代)在 ADD-S<2cm 指标上的性能优于 PoseCNN + ICP 3.5%。

  • Effect of dense fusion
    研究者的两种密集融合基线 (Ours(single)) 和Ours(per-pixel)) 都大大优于PointFusion,这表明,与PointFusion中使用的全局融合级联方法相比,密集融合具有明显的优势。
  • Effect of iterative refinement
    可以看到,迭代优化改进提高了整体位姿估计性能,特别是对于无纹理对称物体(加粗的),如bowl碗(29%)、banana香蕉(6%)、extra_large_clamp特大型夹具(6%)等方向模糊的物体,其性能得到了显著的改善。
  • Robustness towards occlusion
    模型表现随物体遮挡比率的变化
  • Effect of iterative refinement
    密集融合方法的主要优点是它对遮挡的鲁棒性。为了量化遮挡对最终性能的影响,我们计算了每个对象的可见表面比率(补充材料中提供了更多详细信息)\color{red}{感兴趣去看原论文的附录}。然后我们计算精度(ADD-S<2cm 百分比)如何随着遮挡程度的变化而变化。如图 5 所示,PointFusion 和 PoseCNN+ICP 的性能随着遮挡的增加而显着下降。相比之下,我们的方法都没有出现明显的性能下降。特别是,Ours(per-pixel)和 Ours(iterative)的性能总体上仅下降了 2%。
  • Time efficiency
    比较了模型与 PoseCNN+ICP 的时间效率如下表:
    时间效率对比

    可以看到我们的方法比 PoseCNN+ICP 快了两个数量级。特别是 PoseCNN+ICP 将大部分时间花在后处理 ICP 上。相比之下,我们所有的计算组件,即分割 (Seg)、姿态估计 (PE) 和迭代细化 (Refine),都同样有效,并且整体运行时间对于实时应用来说足够快(16 FPS)。
  • Qualitative evaluation
    下图可视化 PoseCNN+ICP、PointFusion 和我们的迭代细化模型所做的一些样本预测。
    YCB-Dataset结果可视化

正如所看到的,由于严重的遮挡,PoseCNN和ICP和PointFusion无法估计最左边列的碗和中间列的饼干盒的正确姿态,而研究者的方法仍然是稳健的。另一个具有挑战性的情况是由于分割不良(图中未显示)而导致夹子位于中间行。该方法仅从物体的可见部分对夹具进行定位,有效地减少了对精确分割结果的依赖。

6.Evaluation on LineMOD Dataset

下表将研究者的方法与以前基于RGB 方法上进行深度细化 (ICP)在 ADD 指标上进行了比较。


LineMOD数据集上的对比结果

可以看到,即使没有迭代优化步骤,研究者的方法也比目前最先进的深度优化方法提高7%的性能。在使用迭代优化方法进行处理后,最终结果又提高了8%,证明了本文提出的基于学习的深度方法在精度和效率上都优于复杂的ICP应用。

LineMOD数据集上迭代优化的性能

下图是每个优化迭代之后可视化估计的6D姿态,其中研究者的姿态估计在2个优化迭代之后平均提高了0.8厘米(ADD)。

7.Robotic Grasping Experiment

在最后一个实验中,研究者评估了他们的方法估计的姿势是否足够准确以使机器人能够抓取和操纵。如图所示

机器人抓取实验

研究者将五个物体放在桌子上四个不同的随机位置,三个随机方向,包括部分遮挡的配置。由于拾取对象的顺序未优化,因此不允许对象重叠的配置。机器人在每个物体上尝试12次,总共60次尝试。机器人使用估计的对象方向来计算抓取器的手指与对象较窄维度的对准。使用研究者提出的方法估计物体的姿态,机器人的抓取成功率为73%。最难抓住的物体是香蕉(12次成功尝试中有7次)。一个可能的原因是我们的香蕉模型与数据集中的不完全相同-我们的模型是纯黄色的。这一特性阻碍了估计,特别是方位的估计,并导致沿对象较长轴的一些抓取尝试失败。尽管这种不太准确的情况,我们的结果表明,我们的方法足够健壮,可以在没有显式领域适应的情况下部署在真实世界的机器人任务中,即使使用不同的RGB-D传感器,并且在与训练数据中的背景不同的情况下也是如此。

Conclusion

提出了一种从 RGB-D 图像中估计已知物体6D姿态的新方法。研究者的方法融合了密集特征,包括基于预测置信度的颜色和深度信息。使用这种密集融合方法,研究者在几个数据集上的性能都优于以前的方法,并且对遮挡的鲁棒性明显更强。此外,研究者还演示了机器人可以使用我们提出的方法来抓取和操作对象。

暂时未懂的问题

这一部分的几个问题我没理解,我列出来,欢迎大家一起讨论,如果我突然想明白了,我会写出来!
1.对称缩减函数与对称函数的区别?
2.ADD-S怎么生成AUC曲线?

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

推荐阅读更多精彩内容