LightTrack
CVPR2021论文:基于神经架构搜索(NAS)自动设计轻量级目标追踪器,手机端提速12倍
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
CVPR2021论文:基于神经架构搜索(NAS)自动设计轻量级目标追踪器,手机端提速12倍
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:你正在观看一场足球直播,解说员提到右边锋正在高速突破——这时,一个精度达标的追踪算法不仅要锁定运动员,还要在移动端实时跟上节奏,不卡顿、不发烫。LightTrack 正是为这类场景而生。
目标追踪(Object Tracking)是计算机视觉的核心任务之一,近几年进展飞速。SiamRPN++和Ocean等SOTA算法精度亮眼,但代价是动辄7G至20G的Flops和11M至26M参数——这在NVIDIA A100服务器上是小菜一碟,但到了手机、汽车嵌入式芯片上,就是性能灾难。
微软亚洲研究院联合大连理工、中山大学等机构,在CVPR 2021发表了LightTrack,创新性地将神经架构搜索(NAS)引入目标追踪领域,用算法自动寻找既轻又快又准的追踪器结构。论文发表以来引用量已超过350次,是该方向的重要里程碑。

图1:LightTrack通过One-Shot NAS搜索到的SuperNet架构,包含backbone超网和head超网两部分,搜索空间涵盖深度、宽度、卷积核大小等维度。
LightTrack采用了经典的One-Shot Neural Architecture Search范式,整体分两阶段:
第一阶段:训练SuperNet(超网)。 整个超网包含Backbone SuperNet和Head SuperNet两部分。Backbone基于MobileNet-like搜索空间,涵盖深度(哪些block激活)、宽度(通道数放缩)和卷积核大小(3x3或5x5);Head超网则负责分类头和回归头的结构搜索。两个超网通过权重共享机制,避免了传统NAS每个子网单独训练的指数级计算开销。Backbone在ImageNet上预训练后,再用追踪数据微调;Head超网则直接在追踪数据上训练。
第二阶段:进化搜索。 以EAO(Expected Average Overlap)为目标指标,使用进化算法在超网的子网络中搜索最优组合。由于权重已预训练完毕,搜索过程不需要从头训练每个候选结构,效率大幅提升。最终在Snapdragon 845 Adreno GPU上,LightTrack-Mobile相比Ocean实现了12倍加速、13倍参数削减、38倍Flops降低,同时精度持平甚至更优。
项目采用PyTorch实现,核心代码分布在以下几个模块:

图2:LightTrack与其他SOTA追踪器的参数量vs精度对比,LightTrack-Mobile在骁龙845上实现了数量级的效率提升。
项目提供了install.sh安装脚本,包含PyTorch 1.1.0 + CUDA 10.0、opencv-python、pandas、lmdb等依赖的安装指令。需要注意的是,PyTorch 1.1.0(CUDA 10.0)是2019年的旧版本,与最新的CUDA 11/12不兼容,如果你的设备是较新的显卡,安装脚本需要修改CUDA版本号。此外,项目没有提供Dockerfile或docker-compose,需要GPU环境且手动配置conda环境,上手门槛属于中等偏高。
评估流程相对标准化:在dataset/目录下放置VOT2019数据集的JSON标注文件和视频帧,运行bash tracking/reproduce_vot2019.sh即可得到EAO分数。预训练权重托管在Google Drive,需要手动下载后放到snapshot/目录。
LightTrack的搜索空间是手工设计的(基于MobileNet-like结构),因此最终找到的轻量追踪器在绝对精度上仍与同期SiamRPN++有一定差距——这是精度换效率的必然取舍。另外,SuperNet训练依赖大量追踪数据,数据集质量直接影响搜索结果。最关键的是,install.sh中的旧版PyTorch/CUDA依赖在今天已经很难复现,若想在最新GPU上运行,移植成本不低。
LightTrack的意义不仅在于那个12倍加速的数字,更在于证明了NAS的范式可以成功迁移到时序追踪任务。在此之后,学界陆续涌现了大量基于NAS的追踪工作,业界也将轻量追踪作为智能驾驶、AR/VR等场景的标配能力。LightTrack作为该方向的奠基性工作,值得关注和复现。
项目配套了完整的预训练SuperNet权重(Google Drive),对后续研究者而言是宝贵的baseline资源。