AI亿览通入口
400-700-8700
资深的快消人都深知线下零售抢占终端渠道的重要性。获取货架上本品竞品的可视排面占比、本品的可见度、二次陈列等数据,做到知己知彼,是打赢货架战争至关重要的一步。
 
面对数百万终端门店货架上琳琅满目的商品,人工采集数据效率低,即便是抽样数据量级之大也往往令人头疼不已,甚至有翻拍舞弊等现象。
 
品览面向快消零售行业提供AI物品识别服务,利用计算机视觉智能识别海量SKU,从零售货架图像中解析准确有效且完备的数据。
 
在计算机视觉诸多目标检测模型中,RetinaNet作为经典模型之一,在检测精度和检测速度两方面都有优异的表现。选择RetinaNet模型框架并调优应用在货架商品检测场景,深受客户好评。
 

本文作者为品览技术合伙人魏勋,深入浅出的解读了RetinaNet模型的发展及在货架商品检测盘点上的应用。

 

 

一、 物体检测

 

对货架上的商品进行盘点,首先需要对商品进行检测,得到商品的类别信息和位置信息,这就需要用到计算机视觉领域中的物体检测技术(Object Detection)。物体检测是计算机视觉领域的经典问题,一直以来都是研究的热点方向。相比物体分类,物体检测不仅需要获得物体的分类信息 ,还需要获得物体的位置框信息,如下图所示,不仅需要判别图像中的物体是猫还是狗,还需要获得猫和狗的位置检测框(bounding box)。

 

无标题

△ 计算机视觉三大任务

 
从传统的人工设计特征加浅层分类器的框架,到基于深度学习的端到端的检测框架,物体检测技术一步步变得愈加成熟。在2013年之前主流检测算法是传统的特征优化检测方法,在2013年之后,整个学术界和工业界都逐渐利用深度学习来做物体检测。
 

深度学习中的物体检测模型,大致可以分成两阶段(two-stage)和单阶段(one-stage)两个类别。物体检测深度学习模型最初是从两阶段模型发展起来,正如RCNN系列(RCNN,fast-RCNN, faster-RCNN),然而两阶段模型由于需要经过两个阶段的操作(例如faster-RCNN需要第一阶段通过RPN来获取可能的位置框信息,第二阶段对获取的位置框来进行分类判别),导致速度很慢。后来逐渐发展出了单阶段模型,可以一次性地得到物体的类别信息和位置信息,如YOLO系列,SSD系列,能够达到很快的速度,但是检测精度相比faster-RCNN逊色不少。

 

屏幕快照2020-02-2617.18.11

 

△ 单阶段模型与两阶段模型对比

 
在一段时间内,检测模型的精度与速度就像是鱼和熊掌难以兼得。为了打破这个僵局,Facebook AI研究团队(以下简称FAIR)深入研究了单阶段模型精度退变的原因,发现其很可能是由于正负样本极不平衡,导致检测loss容易被大量负样本左右,从而影响检测精度。为了有效解决这个问题,FAIR于2018年提出了基于Focal Loss的单阶段检测模型:RetinaNet,此模型在保持单阶段模型速度的同时,能够逼近甚至超越精度最高的两阶段检测模型。

 

 

二、 Focal Loss

 

为了解决类别不平衡(class-imbalance)的问题,RetinaNet开创性的提出了一种简洁而高效的损失函数(loss function):Focal Loss。Focal Loss 通过在交叉熵损失(cross-entropy loss)上乘以一个系数来自动调节容易区分的样本和难以区分的样本对loss的贡献。这样得到的loss最终将集中精力去诱导模型去努力分辨那些难分的目标类别,于是就有效提升了整体的目标检测准度。对于容易区分的样本,即pt值较大,其对loss的贡献会呈指数衰减,见下图。

 

5971313-e428c6e5d01e0174

△ Focal loss

 

 

三、 RetinaNet框架

 

RetinaNet的框架整体是ResNet+FPN+FCN,它使用ResNet作为backbone来提取图像特征,然后从中抽取5层特征层来构建特征金字塔网络(FPN: feature pyramid network),最后接两个独立的全卷积网络(FCN: full convolution network)分别得到物体的类别信息和位置框信息。

 

5971313-152cb2d4c07fce20

 

△ RetinaNet框架

 

 

四、 RetinaNet性能

 

作者选择了特征提取能力极强的Resnet作为backbone,然后借鉴了FPN的思想,对多尺度特征进行了强化利用,从而得到了表达力更强、包含多尺度目标区域信息的feature maps集合,对小目标物体也能达到一个良好的检测精度。

 

同时结合上述提到的Focal Loss机制和单阶段模型的设计,使得RetinaNet在检测精度和前向速度上都达到了一个很高的水准,如下图所示。采用ResNeXt-101-FPN作为backbone,最终能在COCO test-dev数据集上达到40.8 mAP值。

无标题222

△ RetinaNet与其他模型在COCO数据集上的检测精度

 

5971313-6ef9b076738d9708

 

△ RetinaNet与其他单阶段模型的速度对比

 

 

五、 RetinaNet用于货架商品的检测

 

货架商品盘点对于检测模型的精度和速度都有较高的要求,因此RetinaNet作为货架商品的检测模型无疑是一个很好的选择。

 

由于RetinaNet的设计机制,使其能够对货架上密集摆放的小商品也能达到一个良好的检测精度,相比其他的单阶段模型,很少有漏检的情况发生。

 

444444

△ 品览调味品及饮料货架商品检测图

 
 
参考文献:

Lin, Tsung Yi , et al. "Focal Loss for Dense Object Detection." IEEE Transactions on Pattern Analysis & Machine Intelligence PP.99(2017):2999-3007.

 

 

 
 
 
 
 

【品览AI论技】RetinaNet在货架商品盘点中的应用

2020-02-26