论文:DeepFashion2: A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images - CVPR2019

作者:Yuying Ge, Ruimao Zhang, Xiaogang Wang, Xiaoou Tang, Ping Luo

团队:The Chinese University of Hong Kong

数据集开源:Github - witchablenorms/DeepFashion2

DeepFashion2 团队基于 DeepFashion2 数据集构建了一个统一的分析模型. 很是强大,把服装主体检测、服装关键点估计、服装分割、服装检索做到了 end-to-end,厉害!

采用的数据集划分:391K 张 training 图片;34K 张 validation 图片;67K 张 test 图片.

问题描述:

[1] - 服装主体检测:旨在预测图片中的服装边界框及对应的服装类目标签. 评价标准采用 COCO 的 $AP_{box}$、$AP_{box}^{IoU=0.50}$ 和 $AP_{box}^{IoU=0.75}$.

[2] - 服装关键点检测:旨在预测图片中每个检测到的服装主体的关键点位置. 评价标准采用 COCO human pose estimation 的 $AP_{pt}$、$AP_{pt}^{OKS=0.50}$ 和 $AP_{pt}^{OKS=0.75}$,其中 $OKS$ 表示物体关键点的相似性.

[3] - 服装分割: 旨在对图片中每个服装主体的每一像素进行分类(包括 background). 评价标准采用 $AP_{mask}$、$AP_{mask}^{IoU=0.50}$ 和 $AP_{mask}^{IoU=0.75}$.

[4] - 服装检索(Commercial-Consumer):给定 Consumer 拍摄的图片检测到的服装,搜索与之对应的相似的 Commercial 商品图片. 评价标准采用 top-k 检索精度. 这里会考虑服装检测器的影响,如果没有检测到服装主体,则查询的商品也是缺失的. 具体的,在 DeepFashion2 traning 数据集中共有 686K 组 commercial-consumer 服装对;在 validation 数据集中,共有 10990 张 consumer 图片,其包含 12550 个服装主体作为待查询数据集,21436 张 commercial 图片,其包含 37183 个服装主体作为查询数据集;在 test 数据集中,共有 21550 张 consumer 图片,其包含 24402 个服装主体作为待查询数据集,43608 张 commercial 图片,其包含 75347 个服装主体作为查询数据集.

1. Match R-CNN

基于 Mask R-CNN 构建的 baseline 模型 - Match R-CNN. 其实现了服装主体检测、服装关键点估计、服装实例分割与服装检索的联合学习的 end-to-end 训练框架. 主要是通过采用不同的网络分支,并在各网络分支的输出端接入 Siamese 模块来聚合所学习到的特征.

Match R-CNN 如图:

1.1. Match R-CNN 流程

Match R-CNN 采用两张图片 $I_1$ 和 $I_2$ 作为输入.

每张图片 $I$ 经过三个网络模块处理,依次为:Feature Network(FN)、Perception Network(PN)、Macthing Network(MN). 具体地,

[1] - Stage1 - Feature Network(FN)

FN 由 ResNet-FPN backbone、RPN(region proposal network) 和 RoI Align 模块组成.

图片 $I$ 首先被送入 ResNet50 提取特征;然后再进过 FPN 模块,FPN 采用带有侧向连接(lateral connections) 的 top-down 结构,构建了特征图的金字塔;接着,RoIAlign 分别提取金字塔特征图的不同层的特征.

[2] - Stage2 - Perception Network(PN)

PN 包含三个网络分支,分别处理关键点估计、服装主体检测、服装 mask 分割任务.

Stage1 中 FN 提取的 RoI 特征被分别送入 PN 的三个网络分支.

服装检测分支包含两个全连接层,分别用于分类和边界框回归.

服装关键点估计分支包含 8 个 conv 层和 2 个 deconv 层.

服装 mask 分割分支包含 4 个 conv 层、1 个 deconv 层和 1 个 conv 层用于预测 masks.

[3] - Stage3 - Matching Network(MN)

MN 包含一个特征提取网络和一个用于服装检索的相似性学习网络.

经过 Stage2 FN 网络模块的 RoI 特征,关于服装类目、服装关键点和服装 mask,已经具有很高的判别力.

将 FN 模块输出的 RoI 特征送入 MN 网络,以得到用于检索的特征向量. 其中,$v_1$ 和 $v_2$ 被送入相似性学习网络处理,以得到图片 $I_1$ 和 $I_2$ 中所检测到的服装主体间的相似性(similarity score).

具体地,MN 中的特征提取网络包含 4 个 conv 层,一个 pooling 层和一个 fc 层; MN 中的相似性学习网络由 相减(subtraction)、平方(square)和一个 fc 层组成,其估计了两个服装主体是否匹配的概率.

FN+PN = Mask R-CNN

1.2. Loss 函数

Match R-CNN 的参数 $\Theta$ 的优化,是通过最小化五个损失函数来实现的,即:

$$ \mathcal{L} = \lambda_1 \mathcal{L}_{cls} + \lambda_2 \mathcal{L}_{box} + \lambda_3 \mathcal{L}_{pose} + \lambda_4 \mathcal{L}_{mask} + \lambda_5 \mathcal{L}_{pair} $$

其中,$\mathcal{L}_{cls}$、$\mathcal{L}_{box}$、$\mathcal{L}_{pose}$ 和 $\mathcal{L}_{mask}$ 与 Mask R-CNN 中保持一致.

[1] - $\mathcal{L}_{cls}$ 采用交叉熵(CE) loss,用于服装分类;

[2] - $\mathcal{L}_{box}$ 采用 smooth loss,用于边界框回归;

[3] - $\mathcal{L}_{pose}$ 采用交叉熵(CE) loss,用于关键点估计;

[4] - $\mathcal{L}_{mask}$ 采用交叉熵(CE) loss,用于服装分割;

[5] - $\mathcal{L}_{pair}$ 采用交叉熵(CE) loss,用于服装检索,具体如下:

$$ \mathcal{L}_{pair} = - \frac{1}{n} \sum_{i=1}^n [y_i log(\hat{y}_i) + (1-y_i)log(1 - \hat{y}_i)] $$

若 $y_i = 1$ 则表示一对的两个主体是匹配的;若 $y_i = 0$ 则不匹配.

1.3. 实现

[1] - 每张训练图片 resize,保持其最短边为 800 pixels,最长边不超过 1333 pixels.

[2] - 每个 minibatch 中,单张 GPU 处理两张图片,共采用 8 块 GPU 进行训练.

[3] - minibatch size 为 16,初始化学习率 LR=0.02,并在 8 个 epochs、11 个 epochs 后以 0.1 的因子衰减 LR,训练 12 个 epochs 后停止. 记为 1x.

1.4. 推断Inference

测试时,图片采用类似于训练的 resize 方法.

top-1000 proposals 检测结果用于边界框分类与边界框回归. 然后,对这些 proposals 进行 NMS 过滤处理,再分别送入关键点估计分支和 mask 分割分支.

对于检索任务,对于 consumer 拍摄的图片,检测到的每个服装主体具有最高置信度的作为待查询项.

2. Results

Match R-CNN 与 Mask R-CNN 在特征提取和关键点估计、边界框检测、mask 分割方面基本一致.

2.1. Mask R-CNN 服装检测

服装检测失败的分析结果,如:

2.2. Mask R-CNN 服装分割

服装分割结果,如:

服装分割失败的结果,如:

2.3. Mask R-CNN 服装关键点

关键点检测结果,如:

2.4. Match R-CNN 服装检索

Consumer-to-Shop Clothes Retrieval

图: 在 validation 数据集 query 的检索精度.(1)检测的边界框;(2)GT 边界框. 评价标准采用的 top-1, top-5, top-10, top-15 和 top-20 的检索精度.

服装检索结果,如:

图:左边第一列为待查询的图片,其后五列为 top-5 检索结果.

Last modification:June 20th, 2019 at 11:06 am