D-YOLO解决落地困难 | 关注特征融合模块+无雾特征子网络,让YOLO家族无惧雨雾和风雪

AI人工智能初学者

共 20755字,需浏览 42分钟

 · 2024-04-11

点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群

不利天气条件,包括霾、雪和雨,导致图像质量下降,这通常会导致基于深度学习的检测网络性能下降。大多数现有方法尝试在执行目标检测之前对雾蒙蒙的图像进行校正,这增加了网络的复杂性,并可能导致潜在信息的丢失。

为了更好地整合图像恢复和目标检测任务,作者设计了一个双路径网络,并带有一个关注特征融合模块,同时考虑了有雾和去雾特征。作者还提出一个子网络,为检测网络提供无雾特征。具体来说,D-YOLO通过最小化清晰特征提取子网络与检测网络之间的距离来提高检测网络的性能。

在RTTS和FoggyCityscapes数据集上的实验表明,D-YOLO相比于最先进的方法表现出更好的性能。它是一个健壮的检测框架,可以弥合低级去雾与高级检测之间的差距。

I Introduction

目标检测是计算机视觉中的一个关键技术,已经在制造业、农业、医疗保健、监控安全、交通控制和自动驾驶车辆等多个领域得到广泛应用。这是因为目标检测具有双重目的:对图像内的物体进行分类和定位。近年来,目标检测方法取得了重大进展,特别是采用深度卷积神经网络(DNN)后。这些方法显示出显著的有效性和准确性,极大地推动了相关领域的发展。

然而,当前主流的目标检测算法大多是在常规数据集上进行基准测试,如MSCOCO,PASCAL-VOC和Imagenet。但是,尽管在正常图像上表现出高性能,这些方法在恶劣天气条件下通常会遇到检测性能下降的问题,尤其是在雾天,这是现实场景中最常见的情况之一。

如图1所示,当前的解决方案可以分为三类。在雾天条件下进行目标检测的主流方法可以分为三类。最常见的策略是使用成熟的去雾算法(如AOD-Net,MSBDN,Grid-dehazenet,DCP)对输入图像进行预处理,然后再将它们送入检测网络。然而,这些方法在现实世界场景中的泛化能力较差,因为恢复后的图像可能会丢失重要的细节。少数工作以级联方式结合恢复和检测网络,并使用联合损失优化网络。有些工作在训练时使用两个独立的损失。但计算复杂度和推理速度有所增加,这在资源受限的情境下是无法接受的。

为了应对这一挑战,作者认为用更高层次的特征适应来替代低级恢复是一个好方法。D-YOLO模型包括三个主要组成部分:

  • 清晰特征提取子网络
  • 特征适应子网络
  • 检测子网络

清晰特征提取子网络负责提取无雾特征。然后,这些得到的结果特征通过特征适应子网络传递到检测子网络。特征适应子网络从输入的雾天特征中产生清晰特征。此外,为了确保更可靠的检测结果,作者将模型重组为双路径,并设计了一个注意力特征融合模块来连接两个分支。这利用了去雾和雾天特征,进一步增强了模型的表征能力,在复杂天气条件下提高了其性能。模型中的所有子网络和模块在训练过程中都被激活。最终,在推理过程中,清晰特征提取子网络被禁用以实现快速准确的目标检测。

在真实世界数据集[实时交通场景,雾天驾驶]和合成基准数据集(FoogyCityscapes)上的详尽实验结果表明,D-YOLO显著超越了当前最先进的目标检测方法。作者工作的贡献可以归纳为三个方面。

总的来说,有三个主要贡献。

  1. 作者引入了一种双分支网络架构和一个注意力特征融合模块,将模糊和去模糊特征进行整合,从而使得检测性能得到进一步改进。

  2. 作者提出了一种在特征层面上有效且统一地结合恢复和检测任务的方法,使用清晰特征提取子网络为检测网络提供无雾信息。清晰特征提取模块仅在训练过程中激活,从而在推理过程中减少了计算成本,同时实现了令人满意的性能。

  3. 作者设计了一个特征适配子网络,该子网络能够将无雾信息从清晰特征提取子网络传递到检测网络,以帮助提高在恶劣天气条件下D-YOLO的准确性。

II Related Work

Object detection

目标检测是计算机视觉领域最关键的任务之一,在交通、医疗、遥感等多个场景中都有广泛应用。随着计算能力的提升和深度学习算法的发展,基于CNN的深度学习网络已成为当前目标检测研究的主流。目标检测方法可以分为基于 Anchor 框的方法,包括一阶段和两阶段算法, Anchor-Free 框方法以及基于 Transformer 的方法。

对于两阶段方法,第一步是选择区域 Proposal ,然后在区域 Proposal 上执行分类和回归。作为公认度很高的算法,RCNN首先开发了一个区域 Proposal 网络(RPN)以生成区域 Proposal ,之后在选定的 Proposal 上进行特征提取和检测。基于这种框架,R-CNN的成功带来了大量的变体,如Fast R-CNN,Faster R-CNN,Mask R-CNN,Cascade R-CNN,Libra R-CNN和Dynamic R-CNN。与单阶段方法相比,尽管在准确性方面具有重要意义,基于区域 Proposal 的方法仍然存在推理速度低的问题,这阻碍了它在实时场景中的应用。

在单阶段方法中,区域 Proposal 和检测结果同时生成,表现出更快的推理速度,检测性能略有下降。YOLO系列是最受欢迎的单阶段网络。它将输入图像划分为多个网格,每个网格分配有几个 Anchor 点,覆盖图像中物体可能具有的各种形状和大小。在YOLOv3取得巨大成功之后,已经建立了多个改进和众多变体。作为另一种典型的单阶段方法,SSD系列采用 Anchor 点集,并在不同分辨率的特征图上进行检测。

Object detection in adverse weather conditions

大多数主流的检测网络主要针对一般情况进行设计,并在正常天气条件下优化以处理高质量图像。因此,在光照不足或遇到如雾等障碍物时,它们的检测精度往往会下降,这使得在恶劣天气条件下进行目标检测成为一个尚未完全解决的问题。在恶劣天气条件下提高检测性能的关键点是找到结合恢复和检测任务的最佳方式。

现有的方法可以根据恢复和检测任务的顺序分为两类。最常见的方法是使用现有的恢复算法预处理低质量图像以去除雾气或雨。预处理后的图像随后被输入到目标检测网络以生成检测结果。尽管这些方法提高了输入图像的整体质量,但不能保证这种方法有助于检测网络的性能,因为预处理图像可能缺乏重要的潜在特征。

Liu等[32]开发了一种图像自适应的YOLO,这是一种端到端的框架,以级联方式执行去雾和检测。一些研究尝试同时进行图像恢复和目标检测,以减轻特定天气信息的影响。Huang及其同事开发了一个双子网检测框架,包括一个恢复子网和一个检测子网。恢复子网在ImageNet上进行训练,负责将模糊的图像特征转换为清晰的,从而减轻由雾天造成的模糊影响。

最近,一些方法使用领域适应处理恶劣天气条件下的目标检测。它们假设在用于训练的清晰图像和恶劣天气条件下的图像之间存在明显的领域偏移。在这些方法中最广泛使用的策略是对抗性训练。例如,Sindagi等[37]提出了一种基于先验的、用于恶劣天气条件下检测的无监督领域自适应网络。

张等人[38]设计了一种领域自适应的YOLO,以提升一类模型的跨领域性能。

III Methodology

Overview

作者提出的D-YOLO的整体架构如图2所示。与大多数现有方法不同,作者从不同的角度考虑处理恶劣天气下目标检测的挑战。Sindagi等人[37]提出了干净图像和雾天图像之间存在域偏移。基于此,作者认为可以通过特征适应来应对这一挑战。首先,作者设计了一个特征适应模块以及一个特征提取子网络,它们共同帮助检测网络从输入的雾天图像中生成无雾特征。此外,为了保留雾天特征中的重要信息,作者还设计了一个注意力特征融合模块,以结合去雾和原始雾天特征。

Clear feature extraction network

在作者的提出的网络中,清晰特征提取子网络(CFE)负责挖掘输入清晰图像的特征,并与特征适配模块共享。由于从雾天图像中提取的特征包含有污染信息,因此CFE子网络提供的清晰特征具有巨大潜力。这些特征可以在训练阶段显著帮助作者的模型清晰地识别图像中的物体。

在过去的十年中,许多深度卷积网络被开发出来,以提高从图像中挖掘特征的能力,其中VGG16,ResNet50和DarkNet53是一些最具开创性的网络。这些架构由于其稳健的性能和结构创新,已被广泛应用于各种计算机视觉任务中作为特征提取的主干网络。在本研究中,作者选择DarkNet53作为清晰的特性提取子网络,以从清晰图像中提取语义信息。多尺度特征被选作产生的特征图( ),这些特征随后通过一个1x1卷积层,再发送到特征适应子网络。因为 和Fa之间的通道可能不同。需要注意的是,CFE子网络仅在训练阶段激活。

Feature adaption module

FA模块充当了学习清晰特征提取子网络中有益信息的 Adapter 。转换后的特征随后被送入注意力融合模型。FA模块的结构如表1所示。在作者提出的D-YOLO中,使用了检测网络主干中的3个尺度的特征来装备FA模块。特征适配模块的结构如表1所示。

作者可以看到,特征适配模块由两个卷积层和卷积块注意力模块(CBAM)组成。

在 Adapter 中使用了通道方向的KL散度损失,以优化和稳定训练过程,从而弥合了 之间的差距。用于训练FA模块的损失函数表达如下:

在这里, 分别表示来自CFE模块和FA模块的特征图。 表示蒸馏温度,在实验中设置为1。此外,为了增强FA模块的性能,作者对不同尺度的特征应用不同的权重。如公式所示,在作者的实验中, 被设置为0.7、0.2和0.1,因为低级特征图在较高分辨率下提供了有价值的知识,这增强了目标信息。

Omni-dimensional dynamic convolution

全维度动态卷积(Omni-dimensional dynamic convolution, ODConv)是卷积神经网络(CNN)结构的增强版,它在不同的卷积核上采用多维注意力机制以实现动态卷积。这种新颖的方法可以在各个方面极大地提高特征提取和特征表示的能力。在D-YOLO中,ODConv被用作特征适配模块内部的卷积层。

ODConv网络的架构如图3所示。给定一个输入特征图x,首先通过通道全局平均池化(GAP)操作将其压缩成一个与输入通道长度相同的特征向量。然后,该特征向量随后通过一个全连接层和四个头分支。每个头分支由一个全连接层以及一个softmax或sigmoid函数组成,生成归一化的注意力 , , , 。图4。

每种注意力表示一种独特的乘法方式,包括位置上的、通道上的、滤波器上的以及核上的。这四种类型的注意力逐渐地与n个卷积核 相乘,使得odconv能够同时考虑空间和通道信息,从而增强了卷积神经网络的特征表示能力。在D-YOLO中,作者采用ODconv作为特征适配模块的卷积层,以提高适配和特征提取能力。通过这种方式,作者可以获得更准确的去雾特征,进而提升检测性能。

Attention feature fusion module

为了更好地结合朦胧(hazy)和去朦胧(dehazed)特征,提出了一种独特的朦胧感知注意力特征融合模块(AF)。去朦胧特征可能包含污染信息,当去雾模块表现不佳时,可能导致性能下降。因此,构建一个融合模块来解决去朦胧特征与原始朦胧特征之间的语义不一致性问题至关重要。作者的注意力特征融合模块的结构如图5所示。

具体来说,首先作者对雾天和去雾特征进行逐点的加法操作以获得融合特征X。随后,作者在融合特征上应用 的平均池化,扩大了接收域。然后该特征经过 卷积核的卷积处理,以及一个双线性插值运算符的顺序处理。此外,在上采样操作之后添加了一个捷径连接,形成了T。这些操作可以表示为函数(2)。

然后,作者将特征T送入一个sigmoid函数,将其归一化成注意力图。此外,作者对原始输入特征 应用了 的卷积核。最后,通过元素逐个相乘的方式结合注意力图和卷积后的输入特征,作者得到了特征 。这个过程可以表示为(3)。

与现有依赖于通道维度的注意力融合方法不同,作者的模块采用pxr平均池化而不是全局平均池化。每个空间位置不仅能够自适应地将其周围的信息性上下文作为来自原始尺度空间的嵌入,还可以建模通道间的依赖关系。

因此,在不大幅增加计算复杂性的情况下,卷积层的视场得到了显著扩大。其次,AFF同时编码雾天和去雾特征。它能够保留对于为目标位置生成具有辨识力和选择性的注意力图至关重要的重要空间信息。

IV Experiment and Analysis

Dataset

作者通过以下优化方案训练了所提出的网络:对于数据集,由于在恶劣天气条件下可用于目标检测的数据集有限,因此作者基于VOC数据集建立了一个雾天检测数据集。为了获得有雾的图像,作者采用了著名的大气散射模型来生成合成雾,具体如以下方程所示。

在这里,J(x)表示干净的图像,A指的是全局大气光,而t(x)指的是介质透射图,可以通过以下方式计算:

其中 表示大气散射参数,d(x) 指的是场景深度,可以定义为:

在这里, 表示当前像素到中心像素的欧氏距离,w 和 h 分别指图像的行数和列数。在作者的实验中,作者将全局大气光参数 A 设置为 0.5,同时随机地将大气散射参数 设在 0.07 到 0.12 之间以控制雾的等级。

为了使不同数据集中的标签保持一致,作者只采用包含 RTTS 数据集中目标类别(即,汽车、公交车、摩托车、自行车和人)的 VOC 数据集图像来构建训练集。在处理原始 VOC 数据集中的这些干净图像之后,作者获得了 9578 张用于训练的雾天图像(VOC-Foggy)。

Iv-B1 Testset

鉴于公开的真实世界恶劣天气条件下的检测数据集寥寥无几,为了评估和比较作者提出的D-YOLO和其他检测方法在恶劣天气条件下的性能,作者选择了三个不同的测试集,包括一个合成雾天数据集和两个真实世界的雾天数据集。

雾天驾驶数据集是一个现实世界的雾天数据集,用于目标检测和语义分割。它包括466个车辆实例(即汽车、公交车、火车、卡车、自行车和摩托车)和269个人类实例(即人和骑行者),这些实例是从101张现实世界的雾天图像中标记的。此外,尽管雾天驾驶数据集中有八个标注目标类别,但作者仅选择上述五个目标类别进行检测,以确保训练和测试之间的一致性。

RTTS是一个在自然雾天条件下可用的相对全面的数据库,它包含了4322张真实世界的雾天图像,以及五个标注的目标类别。考虑到在现实世界中捕获雾气/清晰图像对是困难甚至不可能的,李等人提出了RTTS数据集,从任务驱动的角度评估去雾算法在真实世界场景中的泛化能力。

FoggyCityscapes是一个模拟真实场景雾气的合成雾气数据集。每张雾气图像都是使用Cityscapes的清晰图像和深度图渲染而成的。因此,Foggy Cityscapes中的标注和数据划分是从Cityscapes继承而来的。FoggyCityscapes数据集中总共有34个类别。与Foggy Driving数据集一样,作者根据上述五个类别过滤图像和标签。

Implementation Details

D-YOLO使用SGD优化器进行训练,初始学习率为0.01。作者还采用了余弦退火衰减策略来调整学习率。作者将训练的轮数设置为100,批量大小设置为16。在训练期间,除了来自VOC-Foggy数据集的雾天图像外,作者还发送原始的清晰图像到CFE子网络以提取清晰特征并与检测网络共享。

在训练过程中,禁用了马赛克数据增强策略,因为这种策略可能会增加特征适应子网络的训练难度,从而影响整个网络的总体性能。特征适应子网络和检测网络首先联合训练30个轮次。在剩余的70个轮次中,特征转移模块内的权重被冻结,因为相比检测任务,特征适应任务的损失收敛得更快,整个过程的联合训练可能会妨碍检测结果的准确性。作者在单个RTX3090GPU上训练作者的模型。

Comparison with State-of-the-art Methods

在作者的实验中,选择了平均平均精度(mAP)作为在所提出的VOC-Foggy数据集上的量化评估指标。比较是在十种不同的算法之间进行的。作者选择YOLOv8n作为作者的 Baseline 。

如表3所示,所选择的算法可以分为三类:

  1. Baseline : Baseline 模型直接在雾霾或清晰图像上进行训练。
  2. 去雾与检测(D&D):对雾霾图像采用两阶段方法,首先将雾霾图像通过去雾模型,之后再将处理过的图像输入到预训练的 Baseline 模型中。
  3. 联合:在雾霾图像上同时训练去雾和检测任务。

V-C1 Comparisons on Real-World Dataset

首先,作者在RTTS数据集上测试了作者提出的方法。从表3可以看出,与其他10种最新的技术水平(SOTA)方法相比,D-YOLO在几乎所有的类别中都取得了更高的mAP。

此外,从表4雾天驾驶数据集的结果中,作者仍然可以观察到D-YOLO比其他候选方法表现更好。这是因为作者特别设计的特征适配和特征融合模块使网络能够从雾天和正常场景中学习丰富的信息,这对于克服恶劣天气的影响至关重要。

V-C2 Comparisons on Synthetic Dataset

作者还评估了作者的模型在合成数据集上的表现。从表5中,来自Citiscapes-foggy数据集的结果表明,D-YOLO在雾天条件下检测物体具有更大的潜力。此外,作者发现如果第二阶段的检测模型在雾天图像上进行训练,不论使用哪种去雾算法,测试结果都会严重下降。训练集(雾天图像)和测试集(去雾图像)之间的不一致可能表明存在清晰的领域偏移,导致检测性能降低。

因此,在作者的实验中,第二阶段的检测模型始终在雾天图像上进行预训练。在IA-Yolo中,图像恢复和目标检测是顺序进行的,由一个检测损失控制,一个自行设计的DIP模块负责恢复任务。在DSNet中,去雾网络是AOD-net。

Qualitive comparison

为了定性比较,作者将D-YOLO与当前领先方法IA-Yolo进行了对比。如图6所示,作者展示了从FoggyCityscapes数据集中得到的树木检测结果。作者可以看到,D-YOLO能够以更高的准确性和置信度生成更多的检测目标。

在IA-yolo中,检测和恢复任务仅通过一个损失函数进行控制。然而,如图所示,IA-Yolo的输出与其他模型不同,这是因为在去雾之外,IA-Yolo还包括了一系列传统图像处理技术。这对目标检测有利,但使得IA-Yolo在提高雾天情境下检测性能方面成为一个较不健壮的框架。

Efficiency analysis

作者还对D-YOLO的效率进行了评估。推理速度和参数数量在表格中给出。所有实验都是在单个RTX3090 GPU上进行的,使用的是RTTS数据集。图像分辨率为 。作者将D-YOLO与多种去雾及检测方法以及IA-Yolo进行了比较。

如表6所示,D-YOLO在参数数量和推理速度上具有很大优势,确保了实时预测并提升了性能。

Experiments on rainy condition

为了进一步探索D-YOLO在其它恶劣天气条件下的泛化能力,作者采用了RainyCityscapes数据集来评估D-YOLO在雨天条件下的检测能力。RainyCityscapes数据集包含10620张合成雨天图像,以及八个标注目标类别(汽车、火车、卡车、摩托车、公交车、自行车、骑车人、行人)。每张清晰的图像都与36种变体配对。3600张图像被选为训练集,1800张图像被选为测试集。

如上所述,作者在所有标注中只保留了前面提到的五个目标类别。比较的模型包括基准Yolov8、Yolov8-C和作者提出的D-YOLO。如表所示,D-YOLO性能优于其他模型。图7展示了基准YOLOv8n和D-YOLO的检测结果。可以看出,作者提出的网络能够以更高的置信度分数辨别出更多目标,进一步证明了在恶劣天气条件下,D-YOLO具有泛化能力。

Ablation Studies and Analysis

进行了一系列消融研究,包括不同的模块组合、不同的损失函数以及不同的损失权重。

V-G1 Module combination

在作者对D-YOLO架构的探索中,作者系统地研究了各种模块和子网络对模型整体性能的影响。这包括清晰的特征提取子网络、注意力特征融合模块以及特征增强模块。值得注意的是,当省略注意力特征融合模块时,架构默认为单分支模型。

此外,作者还实验了ODConv在FA模块中的效果。作者将其与普通卷积以及SEAttention进行了比较,后者与ODConv结构相似,但只包括通道注意力权重。

正如表8所示的作者的实证结果表明,CFE子网络和注意力特征融合模块在提升整个网络的性能方面扮演了关键角色。这些组件的整合显著提高了模型的功效,证明了它们在优化目标检测架构设计中的不可或缺性,特别是在恶劣天气条件下。

V-G2 Loss function

此外,作者还比较了不同的损失函数。在实验中,作者考虑了五种不同的变体,涵盖了L1、L2和KL散度:MimicLoss、MGDLoss(匹配引导蒸馏)、CWDLoss(通道蒸馏)以及PWDLoss。MimicLoss和MGDLoss基于L1Loss,而CWD和PWD基于Kulback-Leibler(KL)散度。如表格IX所示,作者的实证发现表明,基于L1的损失函数的模型通常在性能上会有所下降,这可以归因于L1损失的性质严格,它提出了强烈的约束,可能对模型的收敛产生负面影响,导致模型性能下降。

相反,KL散度作为两种概率分布之间相似性的度量,关注特征相对分布,并倾向于减轻不相关背景信息的影响。在KL散度约束下训练的网络显示出对不利天气条件的增强鲁棒性,以及准确度的显著提升。在所评估的损失中,CWDLoss表现出最佳性能。这是因为雾天图像和清晰图像之间存在一个域偏移,主要表现为通道维度上的差异。缩小 之间通道分布的距离有助于提高模型在雾天条件下的性能。

Iv-B3 Attention mechanism

作者研究了注意力特征融合模块中不同注意力机制的效果,选择性地将SKC(选择性 Kernel 卷积)和AFF(注意力特征融合)作为作者比较中的竞争方法。在SKC中,通过全局平均池化应用通道注意力,然后是一个全连接层和一个softmax函数。在AFF中,注意力是通过双分支结构计算的,分别提取全局和局部信息。

D-YOLO采用 平均池化,并带有短路结构,用卷积层替换了全连接层,在降低复杂性的同时保持了单分支结构。这种设计使得作者的注意力特征融合模块能够同时处理通道和位置信息,而计算成本较低。作者在RTTS数据集上比较了不同的注意力机制,结果如图8所示,作者的注意力特征融合模型在mAP上超过了其他竞争方法。

Loss weight

为了进一步提高D-YOLO在恶劣天气下的检测性能,作者采用了几种损失函数。本研究中的损失主要由两部分组成:检测损失 和去雾损失 。相应地,使用 来调整 的比例。为了探索 的最佳组合,作者在RTTS数据集上进行了大量实验。需要注意的是,除了固定的权重参数外,作者还采用了一种带有梯度惩罚的动态权重。

在一个时期内,随着训练的进行, 的比例逐渐减少至1。正如表10中的数据所示,引入 显著有助于提高模型性能,当 动态加权时观察到最有效的结果。

V Conclusion

在本文中,作者提出了一种针对恶劣天气条件下目标检测的统一注意力框架,称为D-YOLO。D-YOLO有三个关键组成部分。清晰特征提取子网络负责从未降级的图像中提取无雾特征。清晰特征提取模块的输出被发送到特征适配模块,在那里通过域自适应生成去雾特征。

此外,作者还开发了一个注意力特征融合模块,它完全融合了有雾和去雾特征,有效地提高了目标特征的互补性和丰富性。在合成和真实世界数据集上的定性和定量评估表明,D-YOLO优于现有的最先进算法。然而,D-YOLO在识别非常具有挑战性的场景中的物体时仍然存在困难。将来,结合迁移学习和开发更有效的特征适配方法将是一个有价值的研究方向。

参考

[1].D-YOLO a robust framework for object detection in adverse weather conditions.

扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称






想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF

行业技术方案👉AI安防、AI医疗、AI自动驾驶
AI模型部署落地实战👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入「集智书童-知识星球」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

免责声明
凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

点击下方“阅读原文”,
了解更多AI学习路上的「武功秘籍

浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报