IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> (MTA-2020)用于行人重识别的多级多尺度水平池化网络 -> 正文阅读

[人工智能](MTA-2020)用于行人重识别的多级多尺度水平池化网络

用于行人重识别的多级多尺度水平池化网络

paper题目:Multi-level and Multi-scale Horizontal Pooling Network for Person Re-identification

paper是东北大学发表在Multimedia Tools and Applications volume 2020的工作

paper地址:链接

Abstract

尽管最近取得了显著进展,但行人重识别方法要么在关键身体部位丢失时失败,要么应用于一系列复杂程度不同的图像。为了缓解这些问题,引入了一个简单而有效的多层次和多尺度水平池化网络(MMHPN)来进行行人重识别。研究贡献有三方面:1)在不同的池化规模和不同的语义级别上考虑了部分特征表示,以便在缺少判别部分的情况下获得部分信息以增加鲁棒性; 2)提出了一种自适应池化策略(APS)作为全局平均池化和全局最大池化的加权求和,可以进一步提高部分特征的可辨别性; 3)引入了一个Part Sensitive Loss(PSL)函数来减少容易分类的分区的影响,以促进person Re-ID网络的训练。使用 Market-1501、DukeMTMC-ReID 和 CUHK03 数据集的实验结果表明,所提出的 MMHPN 优于最先进的方法。具体来说,在这些具有挑战性的数据集上取得了 83.4%、75.1% 和 65.4% 的 mAP 分数。

关键词:多层次多尺度、水平池化网络、自适应池化策略、部分敏感损失、行人重识别。

1 Introduction

给定感兴趣的人查询,行人重识别 (Re-ID) 算法的目标是检索在指定行人数据库中跨多个不同安全摄像头捕获的包含同一人的图像。自动行人重识别最近引起了广泛关注,并已成为现代视频监控系统的重要组成部分。尽管在这一领域取得了进展,但在诸如遮挡、低分辨率和姿势变化大等复杂情况下,行人重新识别仍然是一个具有挑战性的问题。在这些情况下,视觉提示可能会大不相同。为了应对这些挑战,强大的深度学习表示已被广泛应用,并且与手工制作的方法相比取得了显著的性能。

深度学习表示采用的传统方法是从人的身体中提取全局特征。然而,全局特征提取的过程可能会导致一个问题,即非显著区域很容易被忽略,并且无助于提高判别力。为了解决这个问题,许多方法学习了一个有判别的部分表示,这已被证明在行人 Re-ID 准确性方面比全局特征方法更有效。最近用于行人重识别的最先进的基于部分的方法可以分为三组:1)先验知识(例如姿势估计)被用作定位部分区域的结构信息。然而,由于现成的姿态估计模型预测出意想不到的身体标志,Re-ID 的性能不可避免地受到影响。 2) 基于注意力的方法专注于增强显着部分的特征,而所选部分缺乏语义信息。 3) 基于区域的方法生成用于定位部位的边界框,但所提出的部位通常具有固定的语义,不能代表所有可能的判别部位。此外,这些方法使用最终卷积层的输出作为表示来区分人的身份,主要由高级语义特征组成,丢弃了中级语义特征。

对于行人重识别任务,有两种类型的损失函数,度量损失和softmax损失。如果一个图像对是否属于同一身份,它只是一个弱标签,在使用大型数据库时,度量损失可能会影响效率。相比之下,softmax 损失利用图像标签来监督网络参数的训练,这使 Market-150117 和 DukeMTMC-ReID18 数据集的准确性更高。然而,这两个损失函数都对每个样本(图像级别)或条带(局部级别)赋予了相同的重要性,而忽略了图像的复杂性。

本文专注于部分判别特征,以提高行人 Re-ID 的性能。受水平金字塔匹配(HPM)和Devil in the Middle (DIM)这两种特征学习策略的启发,提出了一个简单而有效的多级多尺度水平池化网络 (MMHPN),以充分利用全局信息高语义层次和中间语义层次的部分信息。具体来说,本文做出以下三个贡献。

  1. 将由不同卷积层产生的深度特征图水平分割成不同大小的分区条带,用于多级和多尺度池化,如图 1 所示。然后对每个部分条带进行独立分类。直观地说,整合来自不同层的多层次语义信息往往会增强上下文不变的能力,而通过金字塔池化学习多尺度信息可以提高一个人的判别特征。结合了上述两种策略的优势,从而使全局和局部特征表示更加健壮和具有判别力。

  2. 作为每个分区中最大/平均池化的替代方案,提出了一种自适应池化策略(APS)作为全局平均池化(GAP)和全局最大池化(GMP)的加权和,以自动平衡每个分区的重要性。 Max pooling 专注于显著的局部特征,但未能利用所考虑的人的可用全局信息。平均池化代表全局信息,但很容易导致对身体区域的过度估计。自适应地组合它们不仅可以利用它们的互补能力来增强特征的识别能力,还可以平衡全局信息和局部信息之间的有效性。

  3. 提出了一个部分敏感损失(PSL),在训练过程中对困难的场景和分区条带给予更多重视。其动机是,在更新网络时,容易的例子或条纹不应该占主导地位。因此,减少容易的例子的贡献,以促进行人重识别网络的训练。

使用当前的基准人员重新识别数据集进行性能评估,并证明所提出的方法可以实现最先进的性能。特别是 Market-1501、DukeMTMC-ReID 和 CUHK03 数据集上的 mAP 分数分别为 83.4%、75.2%、65.4%。

图1

图 1 提出的多层次和多尺度水平池化网络示意图。人被从多个尺度和多个语义级别分成不同的水平条纹。然后利用每个条纹的 APS 产生的特征表示来独立地学习一个人的身份。请注意, ? \bigoplus ?代表 GAP 和 GMP 之间的加权和。

2 Related Work

深度学习方法的成功最初在 2014 年扩展到 person Re-ID 社区,当时 person Re-ID 工作首次考虑了使用成对图像来学习人体部位的潜在特征的 Siamese 网络架构。这种方法的性能超过了现有的手工 Re-ID 方法。已经提出了许多基于深度卷积神经网络的方法,用于同时学习特征表示和距离度量。例如,Ahmed 等人通过使用一张输入图像的特征与另一张图像附近位置的特征之间的减法来测量特征相似性,从而改进了 Siamese 网络。最近的工作也开始利用中级特征的有效性。 Yu 等人提出了一种简单的方法,将中间层和最后一层特征图融合为一个表示,然后使用 softmax 函数来预测人的身份。本文所提出的中高级语义分支中的每个水平特征图都由独立的部分敏感损失监督,而不是融合所有特征图,然后是 softmax 损失。

最近,基于深度学习的行人重识别方法已证明比以前的方法具有更高的性能。 Zhang等人通过匹配最短路径以及手动学习距离度量来利用部分对齐来促进全局特征表示。 Sun等人将特征图在垂直方向上裁剪成六个条纹以表示局部部分并将它们连接起来作为最终的特征表示。不幸的是,它假设包含人的图像对齐良好,因此该方法容易因异常值而出错。为了解决这个问题,Li等人提出了一个水平金字塔匹配 (HPM) 网络,通过结合松弛距离来缓解异常值问题,但它在同一卷积层将特征图分割成条纹。在提出的 MMHPM 方法中,在不同的卷积层将特征图拆分为四个尺度,以融合中高级语义特征,从而有效地区分人的身份。

应用这一策略,论证了性能的提高,可以得出这样的结论:结合身体部位的局部表征是提高模型判别能力的最有效方法。正如第1节中所讨论的,把基于部位的深度方法分为三类。第一类是利用额外的工具,如姿势估计和landmark检测来解析行人。特别是,Su等人制定了一个姿势驱动的深度卷积(PDC)模块和特征加权子网络来克服姿势变形和视角变化。其次,有几项工作将注意力机制整合到人的突出部分的Re-Id中,并报告了显著的改进。第三,基于区域的方法被利用来定位几个基于部位的方法中的语义部分。Yao等人提出了部分损失网络,它以无监督的方式自动生成一组方框作为身体部位,并独立学习每个部位进行人的分类。在所提出的方法中,本文只在多语义层中使用简单的水平条纹,并使用多金字塔尺度作为局部特征学习的部分区域。

通常,两种类型的损失函数用作行人重识别的监督信号:度量损失和分类损失。对于嵌入学习中使用的第一个度量损失,person Re-ID 被认为是一个排序问题,其中一对或三组图像被输入到类似 Siamese 的网络中。例如,在验证网络中使用对比损失来确定一对图像是否相似,这鼓励网络使类内对的距离更近,并推动类间图像相距更远。这种损失函数是有效的,并且适用于人员 Re-ID 任务,因为由于其检索性质,它自然地减少了个人内部的变化。然而,这种模型的性能受到大型行人数据库的限制。一对图像是否相似,只是一个弱标签,并没有充分利用 Re-ID 中的身份注释。与上述方法不同,其他工作将行人 Re-ID 不视为排序问题,而是视为识别问题。由于对各种多类分类任务具有很强的鲁棒性,softmax loss 作为监督信号仍然是首要的选择。此外,集成度量损失和分类损失可能被认为是提高人员重识别整体性能的一种方式。采用三元组损失和 softmax 损失作为联合监督来训练卷积神经网络 (CNN),在使用基准数据集时取得了显著的性能。然而,上述损失函数在训练阶段都平等地对待简单和复杂的图像

3 Method

本节首先概述所提出的多级多尺度水平池化网络(MMHPN)。然后展示了所提出的多层次和多尺度水平池化框架和部分敏感损失的细节。

3.1 Overview of network


MMHPN的结构如图2所示。将包含人的图像输入到backbone网络中以提取特征图。然后特征图依次经过 res_conv5_1、res_conv5_2 和 res_conv5_3 块(见图 2),将这个具有高级信息的简单流定义为全局分支。在此过程中,为了使提取的特征图在不同语义级别上具有判别性,在中间语义级别引入了两个局部分支,分别紧跟在 res_conv5_1 和 res_conv5_2 块之后。全局分支和局部分支没有分离,因此它们对于学习特征嵌入是互补的。利用不同尺度的水平池化模块来捕获全局和局部条带中的空间信息。对于每个水平条带,使用 APS 将特征图转换为向量,这会自动平衡 GAP 操作和 GMP 操作之间的重要性。然后 MMHPN 利用独立卷积层将通道维度从 2048 减少到 256。最后,每列特征向量独立输入到分类器中,分类器由独立全连接(FC)层和 softmax 层组成,以预测每个输入图像的 ID。在训练期间,通过最小化 ID 预测的全局和局部分支上的部分敏感损失的总和来监督 MMHPN。在测试阶段,将所有特征向量连接起来形成一个 3780 维描述符,其中包含不同语义级别和池化尺度的信息。

图2

图 2 多层次多尺度水平池化网络概述。输入图像首先通过 ResNet-50(在 res_conv5 之前)提取特征图。然后在中间语义级别的 res_conv5_1 和 res_conv5_2 之后引入两个局部分支以增强判别信息。然后,使用自适应池化策略使用不同尺度的池化来生成每个条带的特征表示。最后,为每个条带分配一个独立的分类器来预测部分级别的人身份。在测试过程中,将不同尺度和语义级别的条带特征连接起来,形成每个图像的最终表示。

3.2 Multi-level and Multi-scale Horizontal Pooling Module


3.2.1 Backbone Network


所提出的 MMHPN 的backbone是 ResNet-50,与其他行人 Re-ID 系统相比,具有相对简洁的架构以获得具有竞争力的性能并与以前的方法保持一致以进行公平比较。对原始 ResNet-50 进行了一些细微的修改。首先,去除全局平均池化层和后续层。此外,res_conv4_1块的步长设置为1,这将特征图从原始图像大小的 1/32 放大到 1/16,以提供更丰富的空间性和检测特征的粒度。最后,紧跟 res_conv5_1 和 res_conv5_2 之后的两个局部分支被添加以学习中级语义特征,如图 2 所示。

3.2.2 Multi-level Semantic Module (MSM)


一个有效的person Re-ID模型应该具备在不同语义级别提取判别特征的能力。然而,大多数现有的人 Re-ID 系统直接利用深度神经网络,通常设计用于对象识别,并采用具有高级语义特征的最终层输出作为表示。结果,中级特征被遗漏,无法有效判别身份。因此,深度人员重识别必须在融合模块中混合中高级语义特征。

在图 2 中采用了多级语义分支,将具有局部信息的上、中分支定义为中级语义分支。将包含全局信息的底部分支表示为高级语义分支。此外,两个中级分支也被视为连接到 res_conv5_1 和 res_conv5_2 块的辅助分类器,以增加梯度信号,鼓励中级区分,并提供额外的正则化。

如图 3 所示,当缩小表示区域的区域以学习局部特征时,可以观察到网络鼓励局部注意力图的响应开始聚集在一些在全局注意力图中未利用的显著语义模式上。从上述观察中,可以得出结论,小尺度的身体部位倾向于学习头部、裤子和鞋子等中级细节,而大尺度的身体部位将利用高级语义信息。因此,在局部分支将特征图分割成 8、4 和 2 个条带,以使系统能够专注于中级信息,如图 2 所示。全局分支包含完整的特征图,没有任何分区信息。结果,将分别具有高级和中级语义信息的全局和局部表示结合起来,形成判别性人 Re-ID 模型的最终特征描述符。

图3

图 3 不同模型最后一次卷积输出产生的不同尺度的注意力图。第二列:行人图像。第一列:IDE 模型的全局注意力图。第三列:四个局部注意力图,对应于人物图像的四个条纹,由基于部分的模型产生。

3.2.3 Multi-scale Horizontal Pooling Module (MHPM)


由于全连接层需要一个固定长度的向量,卷积神经网络必须接受一个固定大小的输入图像,这通常与行人图像以及身体部位的图像相矛盾,这些图像通常是不同的大小或比例。结果,由于输入图像的规模有限,识别精度受到影响。

为了消除对任意大小的输入图像的要求,采用了HPM的概念,它在四个尺度上拆分和汇集特征图。如图 3 所示,所提出的多尺度池化模块有四个尺度,每个尺度的输出特征图分别被分成 8、4、2 和 1 个条带,并对每个条带应用自适应池化策略。通过应用多尺度水平池化,既可以获得不同大小的身体部位的固定维向量,也可以捕获从全局到局部、从高级到中级、从粗到细的分区的判别表示.此外,全局和局部线索以四个尺度叠加在一起,这有助于使最终预测更加可靠,尤其是在关键部分缺失的情况下。

3.2.4 Adaptive Pooling Strategy


平均池化通常利用身体的全局范围,但容易估计不相关的背景,而最大池化侧重于最显著的局部区域,但缺乏判别信息。直观地说,自适应地集成 GAP 和 GMP 适合自动平衡每个条带中全局和局部信息之间的有效性。为此,提出了一种使用 GAP 和 GMP 操作的加权求和的自适应池化策略 (APS)。具体来说,所提出的 MMHPN 有四个尺度,在每个尺度中,从backbone网络 B B B继承的特征图被水平且均等地划分为特定数量的条带。将第 i i i个尺度中的第 j j j个条纹表示为 B i , j B_{i, j} Bi,j?。请注意,索引 i i i j j j从上到下递增。然后,通过 GAP 和 GMP 操作的加权和对每个条带进行池化,以获得特征向量 V i , j V_{i, j} Vi,j?
V i , j = avgpool ? ( B i , j ) + ω i maxpool ? ( B i , j ) V_{i, j}=\operatorname{avgpool}\left(\mathrm{B}_{i, j}\right)+\omega_{i} \operatorname{maxpool}\left(\mathrm{B}_{i, j}\right) Vi,j?=avgpool(Bi,j?)+ωi?maxpool(Bi,j?)
其中 ω i {\omega_{i}} ωi?表示可学习的参数,并以相同的比例共享。本文也尝试在同一个分支中设置每个条带共享参数 ω \omega ω,但是由于上分支条带尺度的明显差异,Re-Id模型无法收敛。通过这种设计,不同尺度的每个分区可以通过自适应调整学习参数 ω \omega ω来自愿选择更多地关注全局信息或局部信息。然后使用卷积层将每个尺度的通道尺寸从 2048 减少到 256。最后,将这些具有相同索引 i i i的降维向量 R i , j R_{i, j} Ri,j?连接起来,以获得行人图像的最终特征描述符。

3.3 Part sensitive loss


考虑到对各种多类分类任务的强鲁棒性,在提出的 MMHPN 中使用 softmax 损失来增强深度表示的判别能力。如第 3.1 节所述,不同语义级别的三个分支在学习行人图像的判别描述符方面具有互补优势。为了最大化这些互补效应,网络的三个分支被联合训练,以全局和局部特征学习的方式来区分人的身份。利用一个非共享的全连接层作为每个条带的分类器。具体来说,将每个特征列向量 R i , j R_{i, j} Ri,j?输入到相应的分类器 F C i , j F C_{i, j} FCi,j?中,并使用 softmax 层来预测人的身份。在训练阶段,将每个人视为一个类,并将 MMHPN 视为将给定图像映射到一组预测 z i , j ∧ z_{i, j}^{\wedge} zi,j?的函数;每个 z i , j ∧ z_{i, j}^{\wedge} zi,j?可以表述为:
z i , j ∧ = exp ? ( ( W i , j y ) T R i , j ( I ) ) ∑ n = 1 N exp ? ( ( W i , j n ) T R i , j ( I ) ) , z_{i, j}^{\wedge}=\frac{\exp \left(\left(W_{i, j}^{y}\right)^{T} R_{i, j}(I)\right)}{\sum_{n=1}^{N} \exp \left(\left(W_{i, j}^{n}\right)^{T} R_{i, j}(I)\right)}, zi,j?=n=1N?exp((Wi,jn?)TRi,j?(I))exp((Wi,jy?)TRi,j?(I))?,
其中 y y y是输入图像 I I I的ground truth identity, N N N表示训练数据集中个体的总数, W i , j W_{i, j} Wi,j?定义为 F C i , j F C_{i, j} FCi,j?中的学习权重。该样本的损失函数由下式计算预测概率 z i , j ∧ z_{i, j}^{\wedge} zi,j?的 softmax loss 总和。
L softmax? = ? ∑ m = 1 M ∑ i , j log ? ( z ^ i , j m ) , L_{\text {softmax }}=-\sum_{m=1}^{M} \sum_{i, j} \log \left(\hat{\mathrm{z}}_{i, j}^{\mathrm{m}}\right), Lsoftmax??=?m=1M?i,j?log(z^i,jm?),
其中 M 是训练阶段中小批量的大小。

然而,使用 softmax 损失的一个显著问题是,在训练过程中,每个示例或条带都被赋予了相同的重要性。这会导致 softmax 损失,忽略示例或条纹的难易程度。 z i , j ∧ ≥ 0.5 z_{i, j}^{\wedge} \geq 0.5 zi,j?0.5的简单例子会产生非平凡的损失。当对大量简单示例求和时,这些小的损失值压倒了具有复杂照明、变形和尺度变化的有价值的、稀有的和困难的示例。因此,易于分类的示例或条纹构成了 softmax 损失的大部分,并主导了梯度。因此,提出了一个部分敏感损失(PSL)来鼓励网络更多地关注困难的例子或条纹,并在训练分类器时减少简单的例子的贡献。使用softmax函数将具有相同索引 i i i和不同索引 j j j的每个条带的预测概率 z i , j z_{i, j} zi,j?用于获得整个身体的容易和困难度 d i , j d_{i, j} di,j?。因此 d i , j d_{i, j} di,j?可以定义为:
d i , j = exp ? z i , j ∧ ∑ p = 1 P exp ? z i , p , ( 3 ) d_{i, j}=\frac{\exp z_{i, \mathrm{j}}^{\wedge}}{\sum_{p=1}^{P} \exp z_{i, \mathrm{p}}},(3) di,j?=p=1P?expzi,p?expzi,j??,3
其中 P P P是每个尺度上相应的条带数。由式(3)可以看出,随着预测概率 z i , j ∧ z_{i, j}^{\wedge} zi,j?值的增加, d i , j d_{i, j} di,j?的分数增加,这意味着全身相应的条带更容易被分类。当特定条带的 d i , j d_{i, j} di,j?明显大于其他条带时,应该减少权重以降低这种简单条带的有效性,并更多地关注其他难条带。因此,将动机与焦点损失保持一致,并将根据难易度 d i , j d_{i, j} di,j?的调制因子附加到 softmax 损失。具体来说,在 softmax 损失的基础上构建 PSL:
L part?sensitive? = ∑ m = 1 M ∑ i , j log ? ( z ^ i , j m ) ( 1 ? d i , j ) α i L_{\text {part sensitive }}=\sum_{m=1}^{M} \sum_{i, j} \log \left(\hat{\mathrm{z}}_{i, j}^{\mathrm{m}}\right)\left(1-\mathrm{d}_{i, j}\right)^{\alpha_{i}} Lpart?sensitive??=m=1M?i,j?log(z^i,jm?)(1?di,j?)αi?
其中 α i \alpha_{i} αi?是可调聚焦参数,范围值为 [ 0 , 2 ] [0,2] [0,2]。具有相同索引 i i i和不同索引 j j j的条带使用相同的可调参数 α i \alpha_{i} αi?。注意到所提出的 PSL 的两个关键特性:1)当条带被认为是难条带并且 d i , j d_{i, j} di,j?很小时,调制因子 ( 1 ? d i , j ) \left(1-d_{i, j}\right) (1?di,j?)接近 1,并且损失不受影响。随着 d i , j d_{i, j} di,j?趋于1,因子 ( 1 ? d i , j ) \left(1-d_{i, j}\right) (1?di,j?)趋近于0,并且容易分类的条带在全身的损失被赋予减小的权重。 2) 聚焦参数 α i \alpha_{i} αi?可以反映易条纹被降低权重的程度。当聚焦参数 α i \alpha_{i} αi?为0时,Part Sensitive loss相当于softmax loss。随着聚焦参数 α i \alpha_{i} αi?的增加,调制因子 ( 1 ? d i , j ) \left(1-d_{i, j}\right) (1?di,j?)的效果也相应增强。直观地说,调制因子 ( 1 ? d i , j ) \left(1-d_{i, j}\right) (1?di,j?)降低了易于分类的条带的损失贡献,并强制要求每个条带可以接收较低的损失。例如,当聚焦因子为 2 时, d i , j = 0.1 d_{i, j}=0.1 di,j?=0.1的简单条纹的部分敏感损失是 softmax 损失的 1%。这反过来又为严重错误分类的条带创建了高度的重要性,当 d i , j < = 0.5 d_{i, j}<=0.5 di,j?<=0.5 α i = 2 \alpha_{i}=2 αi?=2时,其损失最多缩小 4 倍。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-28 11:50:53  更:2022-04-28 11:53:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:32:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码