当前位置: 首页 > news >正文

深度学习 FairMOT多目标跟踪(PANDA)

FairMOT

复赛期间对于多目标跟踪任务使用的baseline。

本质属于联合学习检测和嵌入模型(Joint Detection and Embedding,JDE)

毕设项目演示地址: 链接

毕业项目设计代做项目方向涵盖:

目标检测、语义分割、深度估计、超分辨率、3D目标检测、CNN、OpenCV、场景文本识别、去雨、机器学习、风格迁移、视频目标检测、去模糊、显著性检测、剪枝、活体检测、人脸关键点检测、3D目标跟踪、视频修复、人脸表情识别、时序动作检测、图像检索、异常检测等

改进点

网络结构

  1. 使用anchor free替换anchor base。
    1. anchor base可能导致多个anchor对应一个目标,对于reid分支会造成歧义
  2. 多特征融合
    1. 类似FPN,将高层信息不断的上采样和底层信息融合,文中称之为深层聚合算子(Deep Layer Aggregation,DLA),改进是在ResNet基础上做的
  3. 添加一个和检测头平行的reid分支,提取每个目标的reid特征(文中是128,但程序里是512)
    1. 实现检测和reid的联合训练

loss

  1. 检测分支
    1. 同普通的anchor free损失
    2. heatmap loss:计算所有像素点的损失
    3. +focal loss:在heatmap计算出每个位置存在目标的置信度后,添加一个focal loss
    4. offset(中心偏移)和size(框大小)loss:直接使用L1 loss(绝对值损失)
  2. reid分支
    1. 使用CE loss:将每个ID视为一类,来训练reid特征向量

参考链接

多目标跟踪 | FairMOT:统一检测、重识别的多目标跟踪框架,全新Baseline

PANDA比赛

round1

训练

  1. 图片切割为2560*2560
  2. 只保留IOU大于0.5的目标
  3. 如果添加0.5和0.1等多尺度训练效果会更好

原因:

尽可能的保证图像中的目标在切割时不要被切断,因此将原图缩放后在切割是很有必要的,不然原图下近处的目标会被切断,无法参与训练。

前后处理

  1. 图片缩放到为1,0.5,0.1三个尺度,然后按照overlap=0.5的步长统一切割为2560*2560
  2. 对于每个patch的预测结果,如果其距离patch边界小于10个像素就直接剔除
  3. 综合所有patch的预测结果,并进行nms
    1. 置信度阈值由0.5变为0,提高4个点
    2. NMS的IOU换为DIOU,提高1个点

原因:

  1. 多尺度可以保证,即可以检测到远处的小目标,也可以检测到近处的大目标(因为0.1尺度下,近处的目标就不会被分割开了)
  2. 剔除边缘的目标:靠近边缘的预测结果,可以视为当前目标只有部分在该patch内,那么显然根据部分信息得到的预测框必然精度不高,而且overlap=0.5,该目标必然会在另一个overlap里完全出现,不必担心漏检该目标
  3. 置信度为0:经过实验,阈值设置高了,会导致大量漏检,因此设为0可以减少漏检,同时结合2减少误检,效果有所提升

网络结构

  1. cascade rcnn
    1. 检测效果好
    2. 在mmdetection框架下,相比于FCOS等anchor free的模型,在开启FP16时,训练稳定且可以将batch提高,减少内存,而其他模型FP16会导致loss为nan(初步猜测是因为梯度消失),或者内存减少不明显,因此该模型对于显存较小的机器很友好
  2. DCN
    1. 在stage2,3,4的最后添加DCN模块
    2. 可以提取出适应目标形状的特征,相较于传统卷积,提取的特征更能覆盖目标

round2

训练

  1. 同round1,在原尺度切片
  2. 同round1,标签增加了ID类,用于跟踪

前后处理

与round1完全相同

网络结构

  1. FairMOT

原因:

  1. 使用anchor free作为检测模型,可以更好的和reid结合
  2. 将检测和reid放在一个网络,相比D&T两阶段跟踪结构,速度更快

相关文章:

  • 深度学习图像分割U-Net和FCN讲解
  • MySQL语句(二)
  • MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的作用及生成时机
  • python-读写Excel(三)-xlwt格式设置
  • 主从复制Slave_IO_Running: NO Slave_SQL_Running: NO 解决办法
  • 14对象的方法
  • 神经网络原理与实例精解,神经网络案例讲解范文
  • 【dfs爆搜】poj 1129 Channel Allocation
  • 244页14万字XX智能交通系统设计方案
  • 9月24日计算机视觉基础学习笔记——经典机器学习_02
  • Java编程之语法结构
  • springboot-webFlux的webclient详细使用介绍,细节拉满
  • 分布式主键生成设计策略
  • getch()与_getch()、不能将const char*类型的值分配到const* 类型的实体
  • java-php-python-ssmC语言教学辅导网站计算机毕业设计
  • 收藏网友的 源程序下载网
  • 【翻译】babel对TC39装饰器草案的实现
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • CSS魔法堂:Absolute Positioning就这个样
  • Github访问慢解决办法
  • httpie使用详解
  • Java多态
  • Java应用性能调优
  • Otto开发初探——微服务依赖管理新利器
  • PHP 小技巧
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 技术:超级实用的电脑小技巧
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 算法之不定期更新(一)(2018-04-12)
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • Spring Batch JSON 支持
  • 组复制官方翻译九、Group Replication Technical Details
  • #QT(一种朴素的计算器实现方法)
  • (4)STL算法之比较
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • ***监测系统的构建(chkrootkit )
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .htaccess 强制https 单独排除某个目录
  • .net framework4与其client profile版本的区别
  • .NET Micro Framework初体验(二)
  • .NET 指南:抽象化实现的基类
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .Net的C#语言取月份数值对应的MonthName值
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET中统一的存储过程调用方法(收藏)
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @Async注解的坑,小心
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [DAX] MAX函数 | MAXX函数
  • [JavaWeb学习] tomcat简介、安装及项目部署
  • [LeetCode] 148. Sort List 链表排序