作者:Yuying Ge, Ruimao Zhang, Xiaogang Wang, Xiaoou Tang, Ping Luo
团队:The Chinese University of Hong Kong
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 检索结果.
3 comments
博主不知道您有对应的训练好的deepfasion的模型吗?非常希望能获得一份以供研究qhwr2019@gmail.com是我邮箱
博主你好,你是否知道该论文的模型有预训练的dict吗?谢谢回复
非常感谢博主分享~