冠军方案分享:ICPR 2020大规模商品图像识别挑战赛冠军解读
极市导读
近日,国际模式识别大会(ICPR 2020)拉开帷幕,各个workshop也公布了各项挑战赛的结果,来自中国的DeepBlueAI 团队斩获了由ICPR 2020、Kaggle和JDAI等联合举办大规模商品图像识别挑战赛冠军。>>加入极市CV技术交流群,走在计算机视觉的最前沿
赛题介绍
评测指标
本次赛题采用的是Overall Accuracy
团队成绩
DeepBlueAI团队通过数据分析,网络结构设计以及loss改进等逐步优化算法,最好的单模在Public & Private上的分数分别是0.70918/0.73618,均超过了第2名最好的成绩,并且通过模型集成的方法,取得Public & Private第一名的成绩,领先第2名两个百分点。
赛题分析
该赛题提供了约150000张图片,10000个细粒度的SKU级别的标签,以及360个组别标签,经过数据分析可以总结该数据集有以下特点:
虽然提供了150000张图片,但是由于类别数比较多,大部分类别的图片数量都少于20张;
同一个细粒度标签下的图片包含了商店场景和消费者场景,商店场景的背景比较简单,消费者场景背景比较复杂;如下图所示,每一列都属于同一个SKU标签,大部分商店场景图片都是白色背景,但消费者拍摄的图片背景比较多样化。
竞赛方案
本次竞赛方案采用了resnest[2]作为基础骨架网络进行特征提取,并且使用了GeM pooling[3]对骨架网络最后一层特征进行池化,基于池化的向量进行group和SKU-level的多任务分类,分类器采用了CircleSoftmax[4]调整类间间距,并且在每一个分类器之前引入了一个BNNeck[5]的结构。Loss上采用了FocalLoss[6]和CrossEntropy Loss联合训练的方式。
数据增强上,采用了常规的翻转、随机擦除、颜色增强、AugMix[7]等
假设是CNN提取后的第k个特征图,是第k个特征图池化后的结果。则GeM Pooling[3]的计算过程可由下式表示:
GeM Pooling可以看作Average Pooling和Max Pooling的延申,当p=1时,GeM Pooling退化成Average Pooling,当p无穷大时,GeM pooling 等效于Max Pooling.
在分类器的选择上,使用了全连接层构建基线模型,通过数据分析发现该数据集存在类内距离大,类间距离小等特点,因此借鉴了人脸识别常用的分类器CosFace[8]和CircleSoftmax[4],通过在训练过程中引入调整分类超平面的方式,使得测试时的不同类别的特征更容易区分。
如下图,分别是Cosface[8]和CircleSoftmax[4]的训练测试过程。
CosFace训练测试过程
CircleSoftmax训练测试过程
Loss设计
Loss设计上使用了Focal Loss[6]和CrossEntropy Loss联合训练的方案,避免了Focal Loss需要调整超参和过度放大困难样本权重的问题。
以上是DeepBlueAI团队参赛的优化路线图,首先通过水平翻转增强以及resnest50构建了基线模型,取得Public榜单61.26的成绩;通过在池化层后面引入BNNeck,数据增强上引入随机擦除,并把平均池化层替换层GeM Pooling层,取得了Public榜单约68的成绩;通过替换分类器为CircleSoftmax以及联合FocalLoss损失进行训练的策略,取得了Public榜单69的成绩;通过增大分辨率以及增加网络层数,联合组别信息进行训练,取得了单模Public榜单约71的成绩;最后通过模型集成,取得了Public榜单73.01的成绩,并且在该赛题排名第一。
总结
DeepBlueAI团队针对大规模细粒度商品图像识别任务,通过数据分析、数据增强、网络结构设计以及loss改进等设计了一个简单的细粒度图像识别算法。
该算法取得了Public & Private第一名的成绩,领先第2名两个百分点,有望帮助人工智能零售系统快速并准确地从图像和视频中自动识别出产品的存货单元级别的类别,优化消费者的购物体验。
作者介绍
罗志鹏,DeepBlue Technology北京AI研发中心负责人,毕业于北京大学,曾任职于微软亚太研发集团。现主要负责公司AI平台相关研发工作,带领团队已在CVPR、ICCV、ECCV、KDD、NeurIPS、SIGIR、AAAI等数十个世界顶级会议挑战赛中获得二十多项冠军,以一作在KDD、WWW等国际顶会上发表论文,具有多年跨领域的人工智能研究和实战经验。
推荐阅读