基于Yolo3_deep_sort的目标追踪(原理及部分代码说明) --- 已解决

基于Yolo3_Deep_sort的多目标追踪算法原理及部分代码说明


写在前面的话:楼主前一段时间参与了一个小项目,是关于人的目标追踪,在此记录一下,这篇博文主要是记录一下对这个方法的认识和理解,希望能引起你的共鸣。如果想看具体的测试环境搭建及复现说明,请查看我的另一篇博客,传送门


  将Yolo3与Deep_sort相结合,相当于目标检测中的Two stages的结构,采用detection(Yolo3)+ track(Deep_sort)的方式实现目标追踪。

1、Yolo算法思想

  Yolo(You Only Look Once,Yolo)在本方法中负责detection部分,其将输入图像分成S×S个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体,如图1所示。
图1 检测过程示意图

图1 检测过程示意图
  每个格子预测B个bounding box及其置信度(confidence score),以及C个类别概率。bbox信息(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,其均被归一化处理。置信度表示的是:是否包含物体以及包含物体情况下位置的准确性,定义为: $$ Pr(Object)\times IOU^{truth}_{pred} $$   其中:$Pr(Object)\in \left ( 0,1 \right )$,期望预测的置信度与Ground truth的IOU相同,在测试时,每个box通过类别概率和box置信度相乘来得到特定类别置信度: $$ Pr(Class_{i}|Object)*Pr(Object)*IOU^{truth}_{pred}=Pr(Class_{i})\times IOU^{truth}_{pred} $$
(1) Yolo1采用卷积神经网络结构

  开始的卷积层提取图像特征,全连接层预测输出概率。借鉴了GoogLeNet分类网络结构,共有24个卷积层,2个全链接层,网络在最后使用全连接层进行类别输出。
损失函数:使用了均方和误差作为loss函数:
l o s s = ∑ i = 0 s 2 c o o r d E r r + i o u E r r + c l s E r r loss=\sum_{i=0}^{s^{2}}coordErr+iouErr+clsErr loss=i=0s2coordErr+iouErr+clsErr
  其由三部分组成:坐标误差、IOU误差和分类误差。

(2) Yolo2相对Yolo1进行了改进

  首先去掉了在定位层后的dropout层,并在卷积层中全部使用BN层进行批量归一化处理。借鉴Faster R-CNN的思想预测bbox的偏移,移除了全连接层,使用box替换grid预测一个类别。
  而后,对Faster R-CNN的首选先验框方法做了改进,采样k-means在训练集bbox上进行聚类产生合适的先验框,由于使用欧氏距离会使较大的bbox比较小的bbox产生更大的误差,而IOU与bbox尺寸无关,因此使用IOU参与距离计算,使得通过这些anchor boxes获得好的IOU分值。距离公式:
D ( b o x , c e n t r o i d ) = 1 − I O U ( b o x , c e n t r o i d ) D(box,centroid)=1-IOU(box,centroid) D(box,centroid)=1IOU(box,ce

  • 12
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值