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

2023-11-08

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两阶段跟踪结构,速度更快
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习 FairMOT多目标跟踪(PANDA) 的相关文章

  • CodeForces 920C Swap Adjacent Elements

    题目大意 题目链接 给定一个序列 这个序列可以理解为一个1 n的全排列 再给出一个01串 1表示可以将索引i和i 1进行交换 且交换可以发生任意次 0表示不可以 问最后能不能将序列升序排列 题解 几乎 秒杀 因为简单 判断每个索引处的数能不
  • 数据库——关系数据库规范化习题

    对以下的关系模式 分别写出 1 码 主属性 非主属性 2 函数依赖 3 属于第几范式 为什么 4 有什么问题 5 如何分解 分解后能否达到几范式 原问题是否解决 ps 函数依赖的方法 1 先找出码 再写出码函数依赖 码 其他属性 2 再写出
  • 电脑宝马,大量宝马车电脑通病故障检修方法

    车型 宝马X5 X6 N55发动机 故障现象 报电子节气门故障 解决方法 检测那个芯片更换即可 车型 宝马E60 E66 E65 故障现象 天使眼不亮 解决方法 刷此程序即可 故障现象 手刹不好用 报内部故障 解决方法 将此处焊接即可 车型
  • 【git】2、gitlab CICD 模型部署自动化

    文章目录 一 GitLab 二 GitLab CI CD 2 1 gitlab ci yml 2 1 1 基础概念 2 1 2 创建 yml 文件 2 1 3 yml 文件中的关键字 2 2 GitLab Runner 一 GitLab G
  • android configChanges属性

    给对应的Activity配置 android configChanges orientation screenSize 横竖屏切换就不会重新创建Activity 学习到这个属性 是因为一个bug activity上有tablayout vi
  • 界面开发(二)--- NativeWindow

    NativeWindow是 net Framework提供的一个底层的类 微软官方的解释为 NativeWindow Provides a low level encapsulation of a window handle and a w
  • 虚拟机redhat9开机不能进入图形界面解决办法

    在启动时无法进入图形界面 出现错误提示 Markers probed from config file default setting from command line notice II informational WW warning
  • c#面试3(选择题)

    46 下列关于 C 中索引器理解正确的是 c A 索引器的参数必须是两个或两个以上 B 索引器的参数类型必须是整数型 C 索引器没有名字 D 以上皆非 47 以下关于 ref 和 out 的描述哪些项是正确的 多选 ACD A 使用 ref
  • java8的lambda中的map相关操作

    0 入门详解篇 1 史上最简单入门 java8的lambda中的map相关操作 基础及注意事项图文详解 2 java8的lambda中collect接口案例及原理详解 官方文档解读 3 java8 封装lambda泛型工具类之list转为m
  • Java 获取系统时间的三种方式,总结起来

    业务场景中 不乏会需要取到当前系统的时间 做一些判断 比如判断某个执行过程需要花多长时间 然后将时间记录下来 返回给业务查看 或者需要或者一个唯一的值做一些表单单号 那么当前系统时间就是唯一的 可以适用 等等 那下面总结下有哪几种方式来获取
  • 为什么 C#/.Net在国内的人气远不如国外?

    因为互联网公司是不直接靠技术赚钱的 使用何种技术对实现直接赚钱的业务来说都是次要的 往往是技术惯性决定技术选型 国内信息技术发展偏科严重 软件行业毁于盗版和缺少政府扶持 互联网行业靠低技术门槛和资本运作吸收了大量社会资源和行业精英 主导了行
  • P2P、消费贷和现金贷的区别

    P2P 消费贷和现金贷的区别 看图
  • 今天收获的意想不到的快捷键

    这个技巧最没有技术含量 但是又最最实用 而且我又竟然不知道甚至依稀好像以前听过这个快捷键 更有些 的是我从来没有想过这方面是不是该有个快捷键 使用桌面快捷键 把常用的软件在桌面上放一些快捷方式 在快捷方式上右键属性 在快捷方式中输入启动的快
  • windows服务器IIS获取客户端域账号

    在项目中遇到需要获取客户端登录的域账号信息的需求 关键部分在于服务器的iis配置 1 确保服务器接入对应的域里面 使用域账号登录的 2 iis需要设置为windows身份认证 3 我使用webform开发对应站点 通过request Ser
  • vscode给远程服务器安装扩展速度慢——安装不上解决方法(在线或离线方式)

    1 本地客户机可以联网 先在本地安装扩展 一般来说 本地安装速度很快也一定能成功 然后在本地已安装的目录里边就可以安装到远程服务器上 但是很多人安装时 速度很慢 并且会失败 我就是这种情况 在下载CMake时速度特别慢 这时可以采用离线方式
  • 线程创建的四种方式

    java中创建线程的四种方法以及区别 Java使用Thread类代表线程 所有的线程对象都必须是Thread类或其子类的实例 Java可以用四种方式来创建线程 如下所示 1 继承Thread类创建线程 2 实现Runnable接口创建线程
  • EasyX的安装与使用详细教程

    EasyX 是针对 C C 的图形库 可以帮助使用C C 语言的程序员快速上手图形和游戏编程 可以用来做些简单的演示2d类游戏 没有cocos2d x那样重量级 学习起来也比较简单 安装 1 打开Easyx官网https easyx cn
  • java+代码回调+编写_Java回调实现

    Java回调实现 什么是回调 回调核心思想 案例代码实现 后序 一 什么是回调 开发过程当中存在某种特殊的业务需求 例如 回调生活实例 PNG 描述 老板给员工下达了工作任务之后 就去做其他事情了 此时此 刻 老板不知道需要多长时间完成 不
  • elk笔记16--aggs-Bucket Aggregations

    elk笔记16 aggs Bucket Aggregations 1 Bucketing 简介 2 Bucket Aggregations 分类 2 1 Terms Aggregation 2 2 Global aggregators 2
  • 中国CDN市场厂商排名:阿里云稳居第一,腾讯云第三

    中国CDN市场厂商排名 阿里云稳居第一 腾讯云第三 日前 市场咨询机构计世资讯 CCW Research 发布 2018 2019年中国CDN市场发展报告 显示 阿里云以近31 的市场份额 成为中国CDN市场第一大厂商 腾讯云则以10 4

随机推荐

  • 4 MATLAB_GUI_单选按钮(Radio Button)、复选框(Check Box )、切换按钮(Toggle Button)的基本用法

    目录 一 实例效果 二 步骤 1 先建一个空白的GUI 2 创建一个单选按钮 Radio Button 3 创建一个文本框 4 保存一下 并编辑单选按钮 Radio Button 的回调函数 5 保存一下 运行程序查看单选按钮的效果 6 同
  • 维纳滤波器(一)

    很久没有静下心来整理一下了 我很早之前就想做一个从Wiener 滤波器了开始讲的博客了 现在终于有了安静坐下来总结一下的理由 从这里开始入手我感觉是对这一年多时间的尊敬 我会从模型开始讲起 会把我从论文和书中的理解呈现出来 如果有时间 我会
  • 利用qt制作帮助文档

    利用qt制作帮助文档 创建文档和自定义的qt assistant 1 创建文档即是一些html文件 这里可以使用qt提供的工具像是qdoc 和Doxygen生成帮助的html文档 2 组织文档结构用于qt assistant a 创建qt
  • Intellij IDEA的JS文件报错:Import declarations are not supported by current JavaScript version

    https blog csdn net qq 38446250 article details 80276625
  • Android 返回键方法

    1 都是按下返回鍵触发 调用父类方法会直接关闭调当前activity 2 先后调用顺序onKeyDown gt onBackPressed 3 dispatchKeyEvent优先级最高 且上面两个方法不会调用 Override publi
  • 360+ChatGLM联手研发中国版“微软+OpenAI”

    文章目录 人工智能福利文章 前言 360与智谱AI强强联合 什么是智谱AI 360智脑 360GLM与360GPT大模型战略布局 写在最后 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人主页 个人社区 欢迎你的加入 全栈弄潮儿的个人社区 专
  • postgresql后端数据统计函数

    后端统计函数 函数 返回类型 描述 pg stat get backend idset int 设置当前活动的后端ID号 pg stat get backend activity interger text 后端最近查询文本 pg stat
  • html如何建立连接,HTML中如何使用JavaScript创建链接?

    给定一个HTML文档 如何使用JavaScript创建链接 并将其添加到文档中 下面本篇文章就来给大家介绍一下在HTML中使用JavaScript创建链接的方法 希望对大家有所帮助 image 做法 创建一个锚元素 创建一个文本节点 其中包
  • vite pwa项目使用

    pwa介绍 PWA Progressive Web App 就是一种网页应用 可以离线使用 变成独立应用安装到系统中 渐进式网页应用 是一种基于网页的应用 但它和传统的Web App有些不同 以下是不同点 离线 轻量 离线可用 跟普通的网页
  • java中的跳转_Java中程序跳转关键字详解

    Java中的goto是保留字 目前不能使用 虽然没有goto语句可以增强程序的安全性 但是也带来很多不便 比如说 我想在某个循环知道到某一步的时候就结束 现在就做不了这件事情 为了弥补这个缺陷 Java就提供了break continue和
  • java.lang.NoClassDefFoundError: Could not initialize class xxx 原因及解决方法

    NoClassDefFoundError产生的原因有好几种 这里记录静态变量或静态块引起的 具体抛出的异常类似 java lang NoClassDefFoundError Could not initialize class xxx JV
  • 将C++数字类型转换成字符串

    include
  • SpringBoot2.x 集成 AntiSamy 防御XSS攻击

    AntiSamy是OWASP的一个开源项目 通过对用户输入的HTML CSS JavaScript等内容进行检验和清理 确保输入符合应用规范 AntiSamy被广泛应用于Web服务对存储型和反射型XSS的防御中 XSS攻击全称为跨站脚本攻击
  • SourceTree如何修改账号密码

    修改SourceTree账号或密码 修改账号 找到 C Users Administrator AppData Local Atlassian SourceTree 中的 userhosts 文件 删除其中要修改的账户 返回SourceTr
  • MySQL WHERE语句筛选操作符

    使用SELECT语句但不使用WHERE子句在表中查询数据 则会获取表中的所有行记录 这些行记录中大部分是不想要的行记录 WHERE子句允许根据指定的过滤表达式或条件来指定要选择的行 1 等于 等于 几乎任何数据类型都可以使用它 2 lt g
  • 小程序坑录-wx.getLocation接口申请

    最近在用uni app通用框架做h5和小程序 结果在小程序审核的时候 又遇到了很多天坑 故记录之 从2022 年 7 月 14 日开始 使用位置接口 就必须在app json中进行声明了 除此之外 在正式使用时 还需要在开发管理 接口权限内
  • 期货开户关于基本面量化

    一 库存 供求矛盾看库存 东西没有了 缺了 就会涨价 不缺 一般不会涨 所以 一定要注意库存 去库存快的品种 特别是库存低 价格低的品种 要重点关注 库存有一点要特别注意 要是 有效去库存 通过降价让下游买货 这种 去库存 不是根本 因为库
  • Leetcode:链表刷题(7道经典题目)

    Leetcode 链表刷题 7道经典题目 本文带来的是以链表为主题的一些经典题目 203 移除链表元素 707 设计链表 206 反转链表 24 两两交换链表中的节点 19 删除链表的倒数第 N 个结点 面试题 02 07 链表相交 142
  • Redis设置失效时间

    Redis设置失效时间还有nx和nxx 通过设置失效时间 可以将到达规定时间对应的key和value进行删除 设置失效时间的两种方式 1 在设值的时候设置失效时间 set code test ex px 秒 毫秒 时间 数值 set cod
  • 深度学习 FairMOT多目标跟踪(PANDA)

    FairMOT 复赛期间对于多目标跟踪任务使用的baseline 本质属于联合学习检测和嵌入模型 Joint Detection and Embedding JDE 毕设项目演示地址 链接 毕业项目设计代做项目方向涵盖 目标检测 语义分割