zl程序教程

您现在的位置是:首页 > 

当前栏目

CenterNet+ deepsort实现多目标跟踪

实现 目标 跟踪
2023-06-13 09:11:01 时间

CenterNet+ deepsort实现多目标跟踪

首先使用CenterNet训练自己的检测数据集,可以检测人、动物、鱼大等多种自定义类别,然后再把训练好的预训练模型传入deepsort算法进行多目标跟踪。试验结果表明centernet精度和速度方面都具有更好的优势。

CenterNet简介

论文:https://arxiv.org/abs/1904.08189

传统的基于关键点的目标检测方法例如最具代表性的 CornerNet通过检测物体的左上角点和右下角点来确定目标,但在确定目标的过程中,无法有效利用物体的内部的特征,即无法感知物体内部的信息,从而导致该类方法产生了很多误检 (错误目标框)。CenterNet利用关键点三元组即中心点、左上角点和右下角点三个关键点而不是两个点来确定一个目标,使网络花费了很小的代价便具备了感知物体内部信息的能力,从而能有效抑制误检。另外,为了更好的检测中心点和角点,我们分别提出了 center pooling 和 cascade corner pooling 来提取中心点和角点的特征。我们方法的名字叫 CenterNet,是一种 one-stage 的方法。

其抑制误检的原理基于以下推论:如果目标框是准确的,那么在其中心区域能够检测到目标中心点的概率就会很高,反之亦然。因此,首先利用左上和右下两个角点生成初始目标框,对每个预测框定义一个中心区域,然后判断每个目标框的中心区域是否含有中心点,若有则保留该目标框,若无则删除该目标框,其原理如下图所示:

代码连接:https://github.com/xingyizhou/CenterNet

Deepsort简介

Deepsort主要由以下算法组成:

  • 1、卡尔曼滤波
  • 2、马氏距离
  • 3、PCA主成分分析
  • 4、匈牙利算法
  • 5、行人重识别
  • 6、MOT评价指标

其中每一个讲起来又是一大堆,所以留着以后有时间详细讲解。

下面一张图概括且很好的展示了deepsort的算法:

Centernet+deepsort代码

https://github.com/kimyoon-young/centerNet-deep-sort

获取代码

git clone https://github.com/kimyoon-young/centerNet-deep-sort.git

安装repo

conda env create -f CenterNet.yml
pip install -r requirments.txt

快速启动

CENTERNET_PATH = 'CENTERNET_ROOT/CenterNet/src/lib/'

to

e.g) CENTERNET_PATH = '/home/kyy/centerNet-deep-sort/CenterNet/src/lib/'

运行demo

python demo_centernet_deepsort.py

实验结果