50万奖金,10亿像素,这个目标检测与跟踪可不简单
报名链接:
https://tianchi.aliyun.com/s/be6691073b92dc4f2c2f230db97af7f5
(点击文末阅读原文直达)
1.赛题介绍
1.1 任务介绍
任务一
目标检测任务:在PANDA数据集上完成车辆检测和行人检测,其中行人检测需要检测出可见范围框、全身范围框和头部范围框,车辆检测只需要检测出可见范围框。
任务二
多目标跟踪任务:输出PANDA视频序列上的行人轨迹,即输出每帧图片的行人ID和位置框。
1.2 数据集介绍
PANDA是清华大学开放的一个十亿像素的高分辨率、宽视场的图片\视频数据集,该数据集有如下特点:
宽视场,可视范围为1平方公里左右; 图片分辨率很高,因此即使对于远处的行人,依然有很丰富的细节特征; 部分场景人口密集。
示例图片如下图所示:
在该数据集上在做目标检测和多目标跟踪任务,有如下难点:
由于数据集中的图片有很宽的视场,近处的行人和远处的行人的尺寸有较大差异; 场景复杂,一些场景下行人被遮挡; 图片分辨率比较大,对算法的运行效率有挑战; 需要对运动距离和运动时间长的行人进行跟踪。
1.3 评价指标
任务一
按照COCO数据集规定的计算方式计算和,计算两者的调和平均数作为得分:
任务二
按照MOTChallenge规定的计算方式计算和,计算两者的调和平均数作为得分:
最终得分为2个任务得分的加权和:
上式中。
2.PANDA数据集论文中的baseline
PANDA数据集的开发团队使用一些算法在该数据集上进行测试,测试结果发表在CVPR2020的论文《PANDA: A Gigapixel-level Human-centric Video Dataset》中。
2.1 检测
作者测试了Faster R-CNN、Cascade R-CNN和RetinaNet三种网络,用于行人检测(包括可见范围框、全身范围框和头部范围框)任务,这三种算法都是基于MMDetection库实现的。
在COCO数据集预训练模型基础上训练,训练时,对PANDA数据集的图像进行resize操作,然后将图像分割为若干尺寸合适的图像块作为网络的输入。在分割图像块时,需要对分割线位置处的目标进行特殊处理,若在某图像块上该目标被分割后保留的面积超过原面积的50%,则保留该目标。
在测试时,将测试数据集中的图像做resize操作形成不同尺寸的图像,使用滑动窗口法(sliding window approach)生成尺寸合适的图像块作为网络的输入。
实验结果如下图所示:
上图中的“FR”代表Faster R-CNN,“CR”代表Cascade R-CNN,“RN”代表RetinaNet。“Sub”代表对不同尺寸的目标进行分组,其中“S”代表尺寸小于个像素点的目标,“M”代表尺寸在-个像素点的目标,“L”代表尺寸大于个像素点的目标。表示时的average precision,表示在[0.5,0.95]范围内步长取0.05时的average recall。
从上图中可以看出,三个算法检测小目标时性能都比较差,一个可能的原因是,PANDA数据集中目标的尺寸变化比较大,上述3个算法均不能很好地适配于目标尺寸变化如此巨大的数据集。
2.2 跟踪
作者在PANDA数据集上测试了DeepSORT、MOTDT和DAN三个跟踪算法,这三个算法都是采用了“检测器+跟踪器”的策略,使用跟踪器作者提供的参数进行测试,结果如下图所示:
上图中的“DS”、“DAN”、“MD”分别表示DeepSORT、DAN和MOTDT,“T”表示跟踪器,“D”表示检测器。
3.Gigavision往届获奖方案解读
Gigavision 2020挑战赛与本次比赛的任务基本相同,下面选取挑战赛中的冠军解决方案进行简要解读。
3.1 检测
baseline为:Backbone+DCN+FPN+Cascade R-CNN。在训练时,在baseline基础上做了如下优化:
1.使用滑动窗口切图作为网络输入,若在某图像块上该目标被分割后保留的面积超过原面积的50%,则保留该目标。
2.对于每个类别使用单独检测器,以提高检测效果。
3.在检测器中使用Global Context block,增加了网络对目标上下文的建模能力。Global Context block兼顾NLNet的全局上下文建模能力和SENet的轻量化,结构如下图所示:
Global Context block主要包括三部分:
(1)用于上下文建模的global attention pooling;
(2)用于捕获通道间依赖的bottleneck transform;
(3)用于特征融合的broadcast element-wise addition。
该结构出自论文《GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond》,开源代码:https://github.com/xvjiarui/GCNet
4.除Cascade R-CNN以外,还采用了Generalize Focal Loss(GFL)对Cascade R-CNN结果进行补充,GFL将分类与定位联合表示,而且提出了对边界框建模的新方法,实验表明使用GFL能够有效提高单阶段检测器的性能。
GFL出自论文《Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection》,开源代码:https://github.com/implus/GFocal
5.将检测器结果使用 Weighted Box Fusion(WBF)进行融合,WBF利用检测器输出的多个框融合最终结果,如下图所示:
上图表示分别使用NMS和WBF根据检测器输出结果得到最终检测框,图中蓝色是检测器预测结果,红色为ground truth。
该方法出自论文《Weighted Boxes Fusion: combining boxes for object detection models》,开源代码:https://github.com/ZFTurbo/Weighted-Boxes-Fusion
3.2 跟踪
使用了Detection+Embedding的方法。
1.检测器部分,构建anchor-free检测器,损失函数为GFL。
由于数据集有很高的分辨率,需要对图片切成若干子图,每个子图的分辨率为6000*6000,相邻的子图横向重叠1000个像素,纵向重叠2000个像素,防止子图边缘处的目标被分开。分别对子图进行检测,并将检测结果进行融合。
2. 参考论文《Learning Discriminative Features with Multiple Granularities for Person Re-Identification》
(开源代码:https://github.com/seathiefwang/MGN-pytorch)中提出的MGN架构,
参考《Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net》
(开源代码:https://github.com/XingangPan/IBN-Net)
中的方法,使用ResNet50-ibn-a提取目标的特征,然后使用Triplet loss和Softmax loss计算全局特征损失,使用Softmax loss计算局部特征损失。
参考论文《Bag of tricks and a strong baseline for deep person re-identification》
(开源代码:https://github.com/michuanhaohao/reid-strong-baseline)
中的方法优化MGN。
3.数据关联:根据第一帧的检测框初始化若干轨迹,在后面的图片序列中,根据embedding features的距离将检测框与轨迹关联,每一帧都通过指数加权平均更新跟踪器特征。
4.部分开源代码和相关论文
https://github.com/hasanirtiza/Pedestron,对应论文《Generalizable Pedestrian Detection: The Elephant In The Room》,基于MMDetection框架的行人检测代码仓库。 https://github.com/saic-vul/iterdet,拥挤环境的目标检测,对应论文《IterDet: Iterative Scheme for Object Detection in Crowded Environments》,同样是基MMDetection框架。 https://github.com/liuwei16/CSP,对应论文《High-level Semantic Feature Detection: A New Perspective for Pedestrian Detection》。 PS-RCNN: Detecting Secondary Human Instances in a Crowd via Primary Object Suppression NMS by Representative Region: Towards Crowded Pedestrian Detection by Proposal Pairing Double Anchor R-CNN for Human Detection in a Crowd
仅用于学习交流!
END