PP-Tracting学习记录

在这里插入图片描述

超强实时跟踪系统PP-Tracking:飞桨AI Studio - 人工智能学习实训社区 (baidu.com)

目标检测多目标跟踪
仅检测当前帧物体的id信息可以构建帧间的关系
无法识别同一物体并去重id信息可以识别同一物体
无法得到长轨迹或轨迹易断裂连续长轨迹,便于后续高阶应用

技术简介

Detection Based Tracking:SDE,JDE

SDE

采用目标检测与ReID解耦的方式进行

image-20211128153209887

JDE

采用目标检测与ReID耦合的方式进行

image-20211128153219783

基于检测的MOT(多目标跟踪)核心步骤:

①通过目标检测得出检测框(坐标宽高、置信度、种类名)

②通过ReID(重识别)模型提取表观特征,结合运动特征去计算相似性

③数据关联,更新和匹配轨迹

Detection Free Tracking:

PP-LCnet

PP-LCNet: A Lightweight CPU Convolutional Neural Network

abstract

提出了一个基于MKLDNN acceleration strategy的CPU轻量级网络,PP-LCNet。在分类任务上,其Latency,Acc,等方面达到SOTA。并且拥有良好的向下兼容性,例如:目标检测,语义分割扥扥。

采用PaddlePaddle实现。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P6iUpEiL-1650682835602)(C:\Users\BlackFriday\AppData\Roaming\Typora\typora-user-images\image-20211128160310959.png)]

Introduction

卷积神经网络(CNNs)代表了当前计算机视觉应用的主力军。随着模型参数和FLOPs的增加,模型特征提取能力的增强,使得基于ARM体系结构的移动设备或基于x86体系结构的CPU设备很难获得快速的推理速度。许多优秀的net,因此不被使用。

故此,想要提出一个轻量级的net,进行如下三个思考:

  1. 如何在不提升延迟的情况下,提升network的学习feature presentations。

  2. 让轻量级模型在CPU上提升准确率的因素是什么

  3. 怎么融合不同策略用于设计CPU上的轻量级网络

最终提出相应的解决方案:

  • 总结一系列方法improve accuracy without increase of inference time.
  • 平衡 accuracy and inference time

Relate works

现在的网络有两种主流思想:

  1. manuall-designed CNN architecture
  2. Neural Architecture Search(NAS)

Manually-designed Architecture

  • VGG:简单,但是有效的堆叠策略,深。
  • GoogLeNet:采用Inception block,包括四个并行的操作:1×1,3×3,5×5和最大池化。开创性的使网络更轻量。
  • MobileNet V1:通过深度可分离卷积代替了标准卷积,大大减少参数量与FLOPs
  • MobileNet V2:提出了Inverted block,进一步减少FLOPs和提升模型表现
  • ShuffleNet V1/V2 通过通道shuffle来交换信息,极大的减少了网络的开销。
  • GhostNet: 提出Ghost module 可以更少的参数生成更多的feature map。

Neural Architecture Search

随着GPU硬件的发展,GPU的重点已经从Manually-designed Architecture转变为能够自适应地执行特定任务的系统搜索的体系结构。许多NAS生成的网络使用与MobileNetV2[15]相似的搜索空间,包括EfficientNet[19]、MobileNetV3[20]、FBNet[21]、DNANet[22]、OFANet[23]等。MixNet[24]提出在同一层中混合不同核大小的深度卷积,NAS生成的网络依赖于人工生成的块,如BottleNeck,Inverted-block等。

该方法可以减小神经结构搜索的搜索空间,提高搜索效率,并有可能提高整体性能,可以在以后的工作中进一步研究。

Approach

现有的许多网络可以在ARM-based devices上跑的快,很少能在CPU上,特别是当加速系统为MKLDNN。

采用了MobileNetV1中提到的DepthSepConv作为basic block 。

DepthSepConv:没有concat,elementwise-add之类的shortcout,这些操作不仅会降低模型的推理速度,还不会提高小模型的准确率。然而,其可以在Inter CPU 加速推理器上实现深度优化。

所以将其堆叠,并附加上了一些现有的操作,最终得到了PP-LCnet。

image-20211128161142595

Better activation function

激活函数的质量影响网络的性能。

借鉴采用ModileNetV3中的H-Swish激活函数,降低指数型运算。

Performance better,inference time has hardly changed.

SE modules at appropriate positions

SE modules在许多轻量级网络中广泛使用。但是SE module在Inter CPUs上的推理时间较长,所以没有在全部的网络中采用。

做了许多相关的实验,最后将SE modules 部署在网络的末端,与MobileNetV3[20]一样,SE模块[26]的两层的激活函数分别是RELU和H-Sigmoid。

Larger convolution kernels

因:

卷积核的大小常常影响网络的最终结果。在MixNet[24]中,作者分析了不同大小的卷积核对网络性能的影响,最终将不同大小的卷积核混合在同一层网络中。但是,这样的混合会降低模型的干扰速度,所以我们尽量在单层中只使用一个大小的卷积核,并确保在低延迟和高精度的情况下使用大的卷积核。

果:

实验发现,仅用网络尾部的5×5卷积核代替3×3的卷积核,就可以达到替换几乎所有网络层的效果。

Larger dimensional 1×1 conv layer after GAP

network 小维度的输出损失feature 。所以在最后的GAP layer 添加了一个类似于FC layer的1280维1×1conv。

Conclusion and Future work

我们的工作总结了一些设计轻量级Intel CPU网络的方法,这些方法可以在避免增加推理时间的情况下提高模型的精度。虽然这些方法都是从前人的工作中得出的现有方法,但精度和速度之间的平衡还没有从实验中总结出来。通过大量的实验和对这些方法的支持,我们提出了PP-LCNet,它在处理大量视觉任务时表现出更强的性能,具有更好的精度和速度平衡,并且减小了NAS的搜索空间,也为NAS更快地访问轻量级模型提供了可能。在未来,我们还将使用NAS来获得更快、更强大的模型。

验中总结出来。通过大量的实验和对这些方法的支持,我们提出了PP-LCNet,它在处理大量视觉任务时表现出更强的性能,具有更好的精度和速度平衡,并且减小了NAS的搜索空间,也为NAS更快地访问轻量级模型提供了可能。在未来,我们还将使用NAS来获得更快、更强大的模型。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐