@haoqiang
2018-06-18T12:03:07.000000Z
字数 4667
阅读 162

初赛(3月1日-4月21日)
前100名进入复赛。
我们的名次:31/2950。
复赛(5月2日-6月2日)
前5名进入决赛。
我们的名次:34。
决赛(7月4日-5日)









注:初赛数据仅包含单人模特的商品图。在复赛中,衣长、裤长、袖长、裙长四类引入单件平铺商品图。

初赛
训练集:初赛训练数据每种属性的前90%
验证集:初赛训练数据每种属性的后10%
测试集:初赛测试数据a(3月1日-4月18日);初赛测试数据b(4月19日-4月21日)
复赛
训练集:初赛训练数据 + 初赛测试数据a、b + 复赛训练数据每种属性的前90%
验证集:复赛训练数据每种属性的后10%
测试集:复赛测试数据a(5月2日-5月31日);复赛测试数据b(6月1日-6月2日)

SSD行人检测 + openpose人体关键点检测

SSD行人检测 + 填补白边(初赛时未填补白边)

前背景检测 + 填补白边(针对复赛服装平铺图)
cv2.grabCut()

验证准确率(原图/裁切图):
| 属性 \ 模型 | Inception-V3 | ResNet-50 | DenseNet-121 | Xception |
|---|---|---|---|---|
| 输入尺寸 | 299*299 | 224*224 | 224*224 | 299*299 |
| 脖颈设计 | 78.42% / +6.14% | 76.32% / +7.89% | 79.47% / +5.97% | 84.21% / +2.28% |
| 领子设计 | 79.05% / +4.05% | 78.93% / +8.21% | 81.67% / +6.19% | 81.31% / +7.02% |
| 翻领设计 | 79.12% / +3.41% | 82.24% / +3.13% | 85.37% / +0.85% | 87.36% / -0.85% |
| 颈线设计 | 80.99% / +4.26% | 82.92% / +5.24% | 85.48% / +2.16% | 86.36% / +1.34% |
| 衣长 | 80.30% / +5.21% | 84.28% / +1.32% | 86.13% / +0.44% | 86.48% / +1.59% |
| 袖长 | 83.46% / -0.23% | 86.17% / -0.23% | 86.92% / +1.35% | 88.72% / -0.45% |
| 裤长 | 84.18% / +1.61% | 84.72% / +0.67% | 85.39% / +0.53% | 88.61% / -1.48% |
| 裙长 | 80.39% / -0.98% | / | / | / |
注:
1. / 左边为使用原图训练的验证准确率,/ 右边为使用裁切图训练相对于原图的提升。
2. 加粗表示这一属性(每行)的所有模型中最高的验证准确率。
3. 在训练ResNet-50、DenseNet-121、Xception时,由于错误地将热身数据添加到训练集的裙长数据中,导致大部分图像是双份的,分出的验证集大部分与训练集重复,因此裙长属性的验证准确率不具备参考价值。这个问题在复赛时被更正。
验证准确率:
| 属性 \ 模型 | DenseNet-121 | Xception | ResNet-152 | DenseNet-161 |
|---|---|---|---|---|
| 输入尺寸 | 224*224 | 299*299 | 331*331 | 331*331 |
| 脖颈设计 | 75.61% / +9.68% | 81.99% / | 82.11% / +6.37% | 85.05% / |
| 领子设计 | 82.45% / +6.29% | 85.76% / | 87.42% / +2.87% | 85.43% / |
| 翻领设计 | 78.04% / +4.84% | 80.41% / | 81.76% / +3.15% | 83.11% / |
| 颈线设计 | 79.79% / +6.05% | 83.39% / | 83.58% / +2.81% | 83.52% / |
| 衣长 | 63.00% / -0.07% | 64.80% / +1.38% | 66.25% / +0.21% | 65.91% / |
| 袖长 | 66.74% / +0.18% | 71.14% / +0.52% | 71.43% / -0.52% | 70.50% / |
| 裤长 | 75.32% / +1.84% | 75.80% / +0.43% | 78.66% / +1.00% | 75.23% / |
| 裙长 | 69.67% / -1.20% | 72.61% / +0% | 71.26% / +1.51% | 69.59% / |
最优组合(黄色为选中该模型):

最终测试准确率:91.91%(第1名准确率: 93.94%)
最优组合:ResNet-152(局部)、DenseNet-161(全局)
最终测试准确率:83.00%(第1名准确率: 86.66%)

对复赛领子相关的4种数据的裁剪图进行多任务学习。
| 属性 \ 模型 | DenseNet | DenseNet_multi-task |
|---|---|---|
| 脖颈设计 | 85.29% | +0.11% |
| 领子设计 | 88.74% | -0.68% |
| 翻领设计 | 82.88% | +2.70% |
| 颈线设计 | 85.84% | +0.60% |
对领子四种属性而言效果良好,其他四种属性效果一般,对8种属性进行多任务学习的效果不如分开训练。并且在复赛时,仅对领子四种属性使用多任务学习,会占用一个模型名额,导致其他四类只能选用一种模型,不能进行融合。舍弃。
Softmax:
L2 normalize and
AM-Softmax:
L2 normalize and
对初赛8种属性的裁切图,使用AM-Softmax Loss训练。
| 属性 \ 模型 | DenseNet_Softmax | DenseNet_AM-Softmax |
|---|---|---|
| 脖颈设计 | 85.44% | +1.23% |
| 领子设计 | 87.86% | +0.95% |
| 翻领设计 | 86.22% | -0.99% |
| 颈线设计 | 87.64% | -0.12% |
| 衣长 | 86.57% | -0.35% |
| 袖长 | 88.27% | +0% |
| 裤长 | 85.92% | +0.54% |
| 裙长 | / | / |
AM-Softmax模型的预测结果往往十分稀疏(形如:0.0001,0.0000,0.9999,0.0000),不利于最终得分(平均精度)的计算。舍弃。
衣长、裤长、袖长、裙长四种属性数据中包含单人模特商品图、单件平铺商品图,这两类数据分布可能不同,使用SSD行人检测区分二者,单独训练。
数据量如下:
| 属性 \ 数据 | 单人模特商品图(初赛+复赛) | 单件平铺商品图(仅复赛) |
|---|---|---|
| 衣长 | 22280 | 7094 |
| 袖长 | 26496 | 8362 |
| 裤长 | 17300 | 6546 |
| 裙长 | 19899 | 4787 |
验证准确率如下:
| 属性 \ 训练策略 | 合并训练 | 分开训练 |
|---|---|---|
| 衣长 | 62.93% | +2.69% |
| 袖长 | 66.92% | -0.16% |
| 裤长 | 77.16% | -3.13% |
| 裙长 | 68.47% | +2.15% |
无明显提升,且占用模型融合名额,舍弃。

对初赛领子设计原图进行实验:
| 属性 \ 训练策略 | DenseNet | Xception | 预测结果平均融合 | 特征融合 |
|---|---|---|---|---|
| 领子设计 | 81.67% | 81.31% | 82.73% | 81.55% |
效果不如对预测结果直接求平均,舍弃。
衣长属性用DenseNet-121训练裁切图得到的混淆矩阵,可以看出,衣长属性识别率低的原因主要有两方面: 不可见一类有大量错分到其他类,尤其是及地。
不可见样例:

实验:从长款~及地几类图片中挑选一部分,将其裁切为不可见,以扩充此类。


验证准确率从62.93%变为62.72%,效果不理想。舍弃。
衣长、裤长、袖长、裙长四种属性的裁切图直接resize可能会影响训练。考虑将裁切图左右填补空白成方形,再resize。
对复赛四种属性使用DenseNet-121进行实验,验证准确率如下:
| 属性 \ 训练策略 | resize | 补白边+resize |
|---|---|---|
| 衣长 | 57.68% | +5.25% |
| 袖长 | 64.83% | +2.09% |
| 裤长 | 74.52% | +2.64% |
| 裙长 | 66.80% | +1.67% |