GCA

https://arxiv.org/abs/2001.04069

https://hub.fastgit.org/Yaoyi-Li/GCA-Matting

摘要:在过去的几年中,基于深度学习的方法在自然图像抠图方面取得了显著的改进。其中许多方法可以生成视觉上合理的alpha估计,但通常会在半透明区域产生模糊的结构或纹理。这是由于透明对象的局部模糊性(ambiguity)造成的。一种可能的解决方案是利用远处的信息来估计局部的不透明度。传统的基于亲和度(affinity-based)的方法计算复杂度高,不适合于高分辨率的alpha估计。受基于亲和力的方法和上下文注意在图像修补中的成功应用的启发,我们提出了一种新的基于引导上下文注意模块的自然图像抠图方法。引导式上下文注意模块基于学习到的低层次亲和性直接在全局传播高层次的不透明度信息。(Guided contex-tual attention module directly propagates high-level opacity information globally based on the learned low-level affinity.)该方法能建模基于亲和性方法的信息流,同时利用深度神经网络学习的丰富特征。在Composition-1k测试集和alphamatting.com基准数据集上的实验结果表明,该方法在自然图像抠图方面优于现有的方法。

图1。我们引导的上下文注意图的可视化。 从左到右的顶行,图像,trimap和真值。第二行,alpha蒙版预测,来自编码器中的第一个GCA块的注意偏移映射(attention offset map from first GCA block in the encoder),来自解码器中的GCA块的偏移(offset from GCA block in the decoder)。

1.介绍

自然图像抠图是计算机视觉的重要任务之一。它在图像或视频编辑、合成和电影后期制作方面有多种应用(Wang、Cohen等人,2008;Aksoy、Ozan Aydin和Pollefeys,2017年;Lutz、Amplianitis和Smolic,2018年;Xu等人,2017年;Tang等人,2019年)。在过去的十年中,抠图受到了研究界的广泛关注。Alpha matting指的是将前景对象从背景中分离出来,并对它们之间的过渡进行建模的问题。图像matting的结果是alpha matte的预测,alpha matte表示每个像素处前景的不透明度。

在数学上,自然图像I被定义为前景图像F和背景图像B在每个像素处i的凸组合:

I_{i} =\alpha _{i} F_{i} +(1-{\alpha _{i}})B_{i} ,\alpha _{i}\in [0,1]     (1)

其中\alpha i是像素处的alpha值,表示前景对象的不透明度。如果\alpha i不是0或1,则像素处的图像是混合的。由于前景颜色Fi、背景颜色bi和alpha值alpha i未知,因此alpha matting的表达式定义不清。因此,大多数以前的手工制作的算法强加了一个强大的归纳偏见垫问题。

在基于相似性和基于采样的算法中,一个被广泛采用的基本思想是从具有相似外观的图像块中借用信息。基于亲和性的方法(Levin、Lischinski和Weiss,2008;陈、李、唐2013;Aksoy、Ozan Aydin和Polle feys 2017)借用了已知补丁的不透明度信息,这些补丁的外观与未知补丁相似。基于抽样的方法(Wang和Cohen,2007年;加斯塔尔和奥利维拉2010年;He等人,2011年;Feng,Liang,and Zhang 2016)根据特定的假设,从前景和背景中借用一对样本来估计未知区域中每个像素的alpha值。以往基于亲和力和基于采样的方法的一个障碍是它们不能处理trimap中只有背景和未知区域的情况。这是因为这些方法必须同时利用前地面和背景信息来估计α亚光。

得益于Adobe图像抠图数据集(Xu et al.2017),更多基于学习的图像抠图方法(Xu et al.2017;Lutz、Amplianitis和Smolic,2018年;Lu等人,2019年;Tang等人(2019年)近年来出现。大多数基于学习的方法都是以网络先验作为归纳偏差,直接预测alpha mattes。此外,SampleNet(Tang et al.2019)提出利用深层绘画方法在未知区域生成前景和背景像素,而不是从图像中选择。它结合了基于学习和基于抽样的方法。

本文提出了一种基于神经网络不透明度传播的图像抠图方法。近年来,从自然语言处理(Vaswani et al.2017;Yang等人,2019),数据挖掘(Kipf和Welling,2016;维利ˇ 奇科维´ c等人,2017)到计算机视觉(Yu等人,2018;Wang等人,2018年),神经网络中的信息传播被广泛使用。SampleNet Matting(Tang et al.2019)间接利用背景信息进行前景和背景修复。与此相反,我们提出的方法直接从图像上下文(image context)到未知像素进行信息流。我们设计了一个引导上下文注意模型,它在全卷积网络中建模基于亲和力的传播。在该模块中,利用低层图像特征作为引导,并在此引导的基础上进行alpha特征的传输。我们在图1中展示了一个引导上下文注意图的示例,在结果部分显示了更多细节。在引导上下文注意模块中,来自两个不同网络分支的特征被结合在一起。将已知和未知图像块区域的信息传递给未知区域中外观相似的特征图像块。(In the guided contextual attention module, features from two distinct net-work branches are leveraged together.The information of both known and unknown patches are transmitted to feature patches in the unknown region with similar appearance.)

我们提出的方法可以从两个不同的角度来看待。一方面,引导上下文注意可以被解释为一种基于亲和力的方法,用于网络先验的alpha-matte值传递。未知图块在低层图像特征相似性的指导下,彼此共享高层alpha特征。另一方面,所提出的方法也可以看作是一个指导修复任务。在这方面,图像抠图任务被视为在输入图像的引导下对alpha图像的修复任务。未知区域类似于图像修补中需要填充的孔洞。与从同一图像背景中借用像素的修补方法不同,图像抠图是在原始RGB图像的引导下,从alpha蒙版图像的已知区域中借用像素值0或1来填充未知区域。

相关工作

一般来说,自然图像抠图方法可以分为三类:基于采样的方法、基于传播的方法和基于学习的方法。

基于抽样的方法(Wang和Cohen,2007年;加斯塔尔和奥利维拉2010年;He等人,2011年;Feng、Liang和Zhang(2016)通过对未知区域中每个像素的前景和背景区域的颜色进行采样来求解组合方程(1)。在不同的度量和假设下选择前景和背景样本对。然后用组合方程计算初始α亚光值。Robust Matting(Wang和Co-hen,2007年)沿着边界选择了样本,并具有可信度。通过随机游动优化了铺垫函数。共享Matting(Gastal和Oliveira 2010)为一组相邻像素选择了最佳的样本对,并减少了大量冗余计算成本。在Global Matt ting(He et al.2011)中,利用图像中的所有样本来估计α亚光。采样采用随机匹配算法。最近,CSC Matting(Feng,Liang,and Zhang 2016)通过稀疏编码收集了一组更具代表性的样本,以避免遗漏真正的样本对。

传播方法(Levin、Lischinski和Weiss 2008;陈、李、唐2013;Aksoy、Ozan Aydin和Polle feys 2017)也被称为基于亲和性的方法,通过将α值从前景和背景传播到未知区域的每个像素来估计α亚光。闭式Matting(Levin、Lischinski和Weiss 2008)是基于传播的方法中最流行的算法之一。其在局部光滑性约束下求解代价函数。KNN Matting(Chen,Li,and Tang,2013)收集了K个最近邻居在全球范围内匹配的非本地邻居。此外,信息流Matting(Aksoy、Ozan Aydin和Polle feys 2017)提出了一种颜色混合流,将颜色的局部和非局部亲和力与空间平滑度结合起来。

由于深度卷积神经网络的巨大成功,基于学习的方法在最近的自然图像抠图(Cho、Tai和Kweon 2016;Xu等人,2017年;Lutz、Amplianitis和Smolic,2018年;Lu等人,2019年;Tang等人,2019年)。DCNN Matting(Cho、Tai和Kweon 2016)是第一种将深度神经网络引入图像Matting任务的方法。它利用网络学习不同方法的综合结果。Deep Matting(Xu et al.2017)提出了一种具有大规模数据集的全神经网络模型,用于基于学习的Matting方法,这是Deep image Matting中最重要的工作之一。继深度铺垫之后,AlphaGan(Lutz、Amplianitis和Smolic,2018)在一个对抗性框架内探索了深度图像铺垫。更多的后续工作,如SampleNet Matting(Tang et al.2019)和IndexNet(Lu et al.2019),以及不同的架构,也产生了吸引人的αmatte估计。

用于深度图像抠图的基线网络

我们提出的模型使用引导上下文注意模块和定制的U-Net(Ronneberger、Fischer和Brox 2015)架构来执行深层自然图像匹配。我们首先构建了定制的U-Net基线,然后介绍了所提出的引导上下文注意(GCA)模块。

图2. 概述我们提出的引导上下文注意抠图框架。 基线模型共享相同的架构,没有GCA块和图像特征块。 原始图像和trimap是alpha特征的输入。 图像特征块和GCA块仅以原始合成图像作为输入。 蓝色箭头表示alpha特征流,黄色箭头表示低级图像特征流。 GCA:引导语境注意; SN:谱归一化; BN:批量归一化; xN:重复次数。 Overview of our proposed guided contextual attention matting framework. The baseline model shares the same architecture without GCA blocks and image feature block. Original image and trimap are the inputs of alpha feature. Image feature block and GCA blocks only takes the original merged image as input. The blue arrows denote alpha feature flow and yellow arrows denote low-level image feature flow. GCA: guided contextual attention; SN: spectral normalization; BN: batch normalization; xN: replicate Ntimes.

基线结构

U-Net(Ronneberger、Fischer和Brox 2015)式体系结构在最近的抠图任务(Lutz、Am Plabinitis和Smolic 2018;Tang等人,2019年;Lu等人,2019)以及图像分割(Long、Shelhamer和Dar rell,2015)、图像到图像翻译(Isola等人,2017)和图像修复(Liu等人,2018)。我们的基线模型与图2中的引导上下文注意框架共享几乎相同的网络体系结构。唯一的区别是基线模型用恒等映射层替换GCA块,并且没有图像特征块。该基线网络的输入是一个裁剪的图像块和一个3通道的一个one_hot trimap,它们作为6通道输入拼接在一起。输出是相应的估计阿尔法蒙版。基线结构构建为具有堆叠残差块(He等人,2016)的编码器-解码器网络。

由于底层特征在保留alpha蒙版中的细节纹理信息方面起着至关重要的作用,因此在我们定制的基线模型中,解码器在上采样块之前而不是在每个上采样块之后组合编码器特征。这样的设计可以避免对编码器特征进行更多的卷积,这些特征应该提供较低级别的特征。我们还使用一个两层的快捷块来对齐编码器特征通道进行特征融合(We also use a two layer short cut block to align channels of encoder features for feature fusion.)。此外,与典型的只结合不同中间层特征的U网结构不同,我们直接将原始输入通过一个快捷块传递给到最后一个卷积层(we directly forward the original input to the last convolutional layer through a short cut block instead)。这些特征不与stem共享任何计算。因此,这个捷径分支只关注细节纹理和梯度。

除了广泛使用的批量归一化(Ioffe和Szegedy 2015),我们还将谱归一化spectral normalization(Miyato et al.2018)引入每个卷积层,以增加对网络Lipschitz常数的约束,并稳定训练,这在图像生成任务中很普遍(Brock、Donahue和Simonyan 2019;Zhang等人,2019年)。

损失函数

我们的网络只利用一个alpha预测损失。α预测损失定义为未知区域上的预测值与真值之间的绝对差值的平均值:

其中u表示trimap中标记为未知的区域,^\alpha i和\alpha i表示位置i的alpha matte的预测和地面真值。

在以前的工作中,对于深度图像铺垫任务提出了一些损失,如合成损失(Xu et al.2017)、梯度损失(Tang et al.2019)和Gabor损失(Li et al.2019)。Deep Matting中使用的合成损失(Xu等人,2017)是原始输入图像和由地面真实前景、背景和预测的alpha matte合成的预测图像之间的绝对差异。梯度损失计算未知区域中预测的和真值阿尔法蒙版的梯度幅度之间的平均绝对差值。Gabor loss在(Li et al.2019)中提出,用一束Gabor滤波器代替梯度算子,旨在比梯度损失对纹理和梯度进行更全面的监督。

我们深入研究这些损失,以揭示是否涉及不同的损失可以有利于alpha matte在我们的基线模型估计。我们在表1中提供了Composition-1k测试集的烧蚀研究(Xu et al.2017)。如表1所示,在均方误差和梯度误差下,合成损失的使用不会带来任何显著差异,当我们加入梯度损失和α预测损失时,两种误差都会增加。Gabor损失的引入虽然在一定程度上减小了梯度误差,但也略微增加了均方误差。因此,在我们的模型中,我们只选择alpha预测损失。

表1 基于基线结构的数据增强和不同损失函数的消融研究。 定量结果在Composition-1k测试仪上进行了测试。 Aug:数据扩充。Rec:α预测损失。Comp:合成损失。GradL:梯度损失。Gabor:Gabor损失。

Data Augmentation

由于Xu等人提出的最主要的图像抠图数据集只包含431个前景对象进行训练。我们将数据扩充视为基线模型的必要条件。我们引入了一系列的数据扩充。

首先,following(Tang et al.2019)中的数据扩充,我们以0.5的概率随机选择两个前景物体,并将它们组合以获得新的前景物体和新的alpha 图像。接着,以0.25的概率将前景物体和alpha图像resize到640×640。这样,网络几乎可以看到整个前景图像,而不是一个cropped snippet。然后,对前景图像和相应的alpha图像进行随机仿射变换。在这个仿射变换中,我们定义了随机旋转、缩放、shearing以及垂直和水平翻转。然后,通过对alpha图像的膨胀和腐蚀产生trimap,使用5到29的随机像素数(trimaps are generated by a dilation and an erosion on alpha images with random num-ber of pixels ranging from 5 to 29)。得到trimap后,我们从每张前景图像、对应的alpha和trimap上随机裁剪512×512的图块。所有裁剪图块都以一个未知区域为中心。(All of the cropped patches are centered on an unknown region.)然后将前景图像转换到HSV空间,并对色调、饱和度和灰度值施加不同的抖动。最后,我们从MS COCO数据集(Lin et al.2014)中为每个前景图块随机选择一个背景图像,并将其合成以获得输入图像。

为了证明数据扩充的有效性,我们进行了一个最小数据扩充的实验。在这种情况下,只保留两个必要的操作,图像裁剪和trimap扩张。更多的增强,如随机图像调整大小和翻转,这在以前的大多数深度图像抠图方法中被广泛使用(Xu等人,2017;Lutz、Amplianitis和Smolic,2018年;Tang等人,2019年;Lu等人(2019年),不包括在本实验中。我们将此实验设置视为无数据扩充。实验结果也在表1中列出。我们可以看到,在没有额外的增强的情况下,我们的基线模型已经与Deep Matting的性能相当。

引导上下文注意模块

引导上下文注意模块包括两类组件,一个用于低层图像特征的图像特征提取块;一个或多个用于信息传播的引导上下文注意块。

低层图像特征

大多数基于亲和性的方法都有一个基本的归纳偏置,即外观几乎相同的局部区域应该具有相似的不透明度。这种归纳偏差允许alpha值基于亲和图从trimap的已知区域传播到未知区域,这通常可以产生令人印象深刻的alpha蒙版预测。

基于此,我们在框架中定义了两种不同的特征流(图2):alpha特征流(蓝色箭头)和image特征流(黄色箭头)。Alpha特征由6通道输入(原始图像和trimap的拼接)生成。最终的alpha蒙版可以直接从alpha特征中预测。低级别图像特征与高级别alpha特征形成对比。这些特征仅由输入图像生成,通过3个步幅为2的卷积层,这与传统的基于相似度的方法中的局部颜色统计特性是一致的。(The final alpha matte can be predicted directly from alpha features.Low-level image features contrast with the high-level alpha features.These fea-tures are generated only from the input image by a sequence of three convolutional layer with stride 2, which are anal-ogous to the local color statistics in conventional affinity-based methods.)

换句话说,alpha特征包含不透明度信息,而低层图像特征包含外观信息。在给定不透明度和外观信息的情况下,我们可以建立一个亲合图,作为基于亲合的方法来进行不透明度的传播。具体来说,我们利用低层图像特征来引导alpha特征的信息流。

引导上下文注意

受(Yu et al.2018)中提出的图像修复上下文注意的启发,我们介绍了我们的引导上下文注意块。

图3  引导上下文注意块的图示。 计算实现为卷积或反卷积。 为了保持整洁,此图中未显示用于自适应的另外两个1x1卷积层。 一种是在提取面片之前应用于输入图像特征,另一种是在元素求和之前应用于传播结果。

如图3所示,引导上下文注意同时利用图像特征和alpha特征。首先将图像特征分为已知部分和未知部分,从整个图像特征中提取3×3的patches。每个feature patch都代表了特定位置的外观信息。We reshape the patches as convolutional kernels. 为了测量以(x,y)为中心的未知区域patchU_{x,y} 与以(x’,y’)为中心的图像特征patchI_{x’,y’} 之间的相关性,相似性定义为归一化内积:

其中:;y2ui也是图像特征patch setI的一个元素,即i中的U。常数λ是一个惩罚超参数,我们在模型中使用了10 4,它可以避免每个未知面片与自身之间的巨大相关性。在实现中,这种相似性是通过未知区域特征和由图像特征块重塑的核之间的卷积来计算的。给定相关,我们沿着(x 0;y0)获得每个贴片引导注意力得分的维度如下所示,

其中w(\dot)是一个权函数,K=I是来自已知区域的图像特征块集。与图像修复任务不同,trimap中未知区域的面积不受控制。在许多输入trimaps中,存在大量未知区域,几乎没有已知像素。因此,通常仅将不透明度信息从已知区域传播到未知部分是不可行的。在我们引导的上下文注意中,我们让未知部分借用已知补丁和未知补丁的特征。根据公式(5)中定义的权重函数,根据每个区域的面积为已知和未知面片分配不同的权重。如果已知区域的面积较大,则已知的斑块可以更准确地呈现在信息中,从而暴露出前景和背景的差异,因此我们对已知的斑块进行更大的加权。然而,如果未知区域有一个过度旋转区域,则已知的面片只能提供局部的外观信息,这可能会损害不透明度。然后将一个小权重分配给已知的面片。

当我们从图像特征中得到引导注意分数时,我们基于引导注意定义的仿射图对alpha特征进行传播。与图像特征类似,从alpha特征中提取并重塑面片作为滤波器kernels。信息传播被实现为引导注意分数和重塑alpha特征块之间的反卷积。这种反褶积产生未知区域中的α特征的重建,并且反褶积中重叠像素的值被平均。最后,我们将输入alpha特征和传播结果通过元素求和结合起来。这种按元素求和的方法可以作为一种残差连接来稳定训练。

引导注意力上下文的网络

大多数基于亲和性的铺垫方法都是基于拉普拉斯图的闭式解closed-form solution based on the graph Laplacian(Levin、Lischinski和Weiss,2008;李和吴2011;陈、李和唐(2013年)。闭式解可视为传播的不动点或无限传播迭代的限制(Zhou等人,2004)。基于此,我们将两个引导上下文注意块对称地粘贴到编码端和解码端。它的目的是在我们的模型中传播更多的次数,并充分利用不透明的信息流。

当我们计算高分辨率特征上的引导性上下文注意时,会注意到更详细的信息出现。然而,另一方面,注意块的计算复杂度是O(c(hw)^2 ),其中chw分别是特征图的通道数、高度和宽度。因此,我们将两个引导性上下文注意块添加到特征图为64×64的阶段上。

我们的GCA Matting网络在Adobe Image Matting数据集(Xu等人,2017年)上培训了200000个iterations,总批量大小为40。我们使用Adam optimizer(Kingma和Ba 2014)进行优化,β_1=0.5β_2=0.999。学习率初始化为4×10^{-4},学习率衰减使用warm-up和余弦衰减。

结果

在本节中,我们报告了我们提出的模型在两个数据集上的评估结果,即Composition-1k测试集和alphamatting.com数据集。定量结果和定性结果都显示在本节中。我们评估了(Rhemann et al.2009)提出的绝对差(SAD)、均方误差(MSE)、梯度误差(Grad)和连通性误差(Conn)之和下的定量结果。

Composition-1k测试数据集

在(Xu et al.2017)中提出的Composition-1k测试数据集包含1000个测试图像,这些图像由50个前景对象和来自Pascal VOC数据集的1000个不同背景图像组成(Everingham et al.2015)。我们将我们的方法和基线模型与三种最先进的深度图像铺垫方法进行了比较:深度铺垫(Xu et al.2017)、IndexNet铺垫(Lu et al.2019)和SampleNet铺垫(Tang et al.2019),以及三种传统手工算法:基于学习的铺垫(Zheng and Kambhamettu 2009)、闭式铺垫(Levin,Lischinski和Weiss 2008)和KNN Mat ting(Chen、Li和Tang 2013)。定量结果如表2所示。我们的方法优于所有最先进的方法。此外,我们的基线模型也比一些性能最好的方法得到更好的结果。表2所示的结果验证了所提出的引导上下文注意的有效性。

表2 Composition-1k测试仪的定量结果。 最佳结果用粗体强调。(-指示原始论文中未给出。)

一些定性结果如图4所示。深度铺垫和索引网铺垫的结果由(Lu et al.2019)中提供的源代码和预训练模型生成。如图4所示,我们的方法在不同的前景对象上取得了更好的性能,尤其是在半透明区域。未知区域更大,优势更明显。这种良好的性能得益于具有相似外观特征的特征块之间的信息流。

此外,我们提出的方法可以在一个具有8GB内存的Nvidia GTX1080上对Composition-1k测试数据集中的每个图像作为一个整体进行评估(evaluate each image in Composition-1k testing dataset as a whole)。由于我们在网络中将每幅图像作为一个整体而不进行缩放,因此引导上下文注意块在推理阶段是被应用于比训练阶段的64×64分辨率高得多的特征图上。这样可以在细节纹理中获得更好的性能。

Alphamatting.com基准数据集

alphamatting.com基准数据集(Rhemann et al.2009)有八个不同的图像。对于每个测试图像,有三个对应的trimap,即“小”、“大”和“用户”。基准上的方法是根据四个不同指标的24个alpha-matte估计值的平均排序进行排序的。我们在alphamatting.com基准上对我们的方法进行了评估,并在表3中给出了分数。还显示了基准中的一些顶级方法以供比较。

如表3所示,GCA Matting在基准中的梯度误差度量下排名第一。该方法在“大”和“用户”trimaps下的评价结果明显优于其他方法。由于trimap具有较大的未知区域,因此抠图得更加困难。因此,我们可以说我们的方法对未知区域的变化更具鲁棒性。此外,在MSE度量下,我们的方法与SampleNet在所有等级上几乎相同。一般来说,提出的GCA Matting方法是该基准数据集上性能最好的方法之一。

我们在图5中提供了一些可视化的例子。我们的方法和一些顶级算法在“Ele-phant”和“Plastic bag”上的结果显示了我们方法的良好性能。例如,在测试图像“塑料袋”中,以前的大多数方法都会在铁丝上出错。然而,我们的方法从周围背景补丁的上下文信息中学习,并正确地预测这些像素。

注意力图的可视化

我们通过展示具有最大注意分数的像素位置来可视化在引导上下文注意块中学习的注意图。与光流估计(Dosovitskiy et al.2015;Hui、Tang和Loy,2018年;Sun等人,2018)和图像修复(Yu等人,2018)中广泛使用的偏移图(表示每个像素的相对位置)不同,我们的注意力图显示了注意力激活值最高的对应像素的绝对位置。从这个注意图中,我们可以很容易地确定每个特征像素的不透明度信息从何处传播。如图1所示,已知区域中没有信息流,未知区域中的特征块倾向于从外观相似的块中借用信息。图1显示了我们的GCA块在输入图像中的关注哪里(Figure 1 reveals where our GCA blocks attend to physically in the input image)。由于在对图像特征进行分片提取之前,引导上下文注意块中存在一个自适应卷积层,因此两个注意块的注意映射是不理想的。已知和未知部分的权重显示在注意图的左上角。

从图1中的注意力偏移图中,我们可以很容易地识别出屏幕中的汽车。筛子中心的浅粉色斑块表明这些特征是从汽车左侧传播的。而蓝色的补丁显示了从右侧道路借用的特征。这些传播的特征将有助于在随后的卷积层中识别前景和背景。

结论

本文提出用端到端的神经网络,通过不透明度信息的传播来解决图像抠图问题。因此,引入了一个引导上下文注意模型,以全卷积的方式建模基于亲和力的传播方法。在所提出的注意力模型中,不透明度信息是在信息的外观引导下,通过α特征间的传递来实现的。对Composition-1k测试数据集和alphamatting.com数据集的评价结果表明了该方法的优越性。

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