实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking
实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking
论文url https://arxiv.org/abs/2003.11753
论文简述:
提出了一个名为Deep Multi-Camera Tracking (DMCT)的实时3D多摄像机跟踪系统。该系统旨在解决使用多个RGB摄像机进行3D人群跟踪的挑战性任务。
总体框架图:
输入:
- 多个RGB摄像机的实时视频帧,每个视频帧是一个彩色图像,具有高度和宽度的像素矩阵。
DGPN(Deep GroundPoint Network):
- 基础卷积层(Base CNN Layers)
- 从输入图像中提取基本的视觉特征,如边缘、角点和纹理等,经过卷积和激活函数(如ReLU)处理后,输出的是一组特征图(feature maps),这些特征图捕捉了输入图像的重要视觉信息。
- 深度特征提取层
- 使用预训练的深度网络(如ResNet或DLA)作为骨干网络,进一步提取更深层次的特征。这些特征包括对象的部分、姿态和形状等,输出的是更丰富、更抽象的特征图,这些特征图为后续的地面点预测提供了必要的信息。
- 透视校正层
- 原理:透视校正层的目的是解决由于摄像机视角和距离不同导致的透视变形问题。在多摄像机系统中,同一个物体在不同摄像机视图中的大小和形状可能会有所不同,该层通过学习摄像机的内参和外参(即相机矩阵),来消除透视变形的影响(ps:相机矩阵由摄像头校准过程获取,可能是相机图像标定操作)
- 校正过程:具体来说,对于每个摄像机视图,网络会计算一个从图像平面到虚拟地面平面的映射。这个映射可以通过相机的内参矩阵和外参矩阵来实现,其中内参矩阵描述了相机镜头的畸变,外参矩阵描述了摄像机在世界坐标系中的位置和朝向。(ps:作者提出了一种改进的方法来映射人物位置热图到虚拟地面平面。这种方法通过预畸变处理,校正了由于透视变换引起的图像拉伸变形,从而提高了人物检测的准确性。具体来说,通过将地面平面划分为等半径的单元格并创建相应的掩码,这些掩码被用于损失函数,以优化网络生成的地面点预测。这种方法有效地提高了多视角下人物跟踪的性能。)
- 输出:经过透视校正后的特征图能够更准确地反映物体在地面平面上的真实位置和形状。
- 地面点预测层:
- 原理:地面点预测层的目标是为每个人生成一个地面点概率图,这个概率图表示每个人在地面平面上的投影位置的概率分布。
- 生成heatmap:这一层首先使用一系列卷积层来处理经过透视校正的特征图,然后通过一个特定的输出层(通常是一个卷积层,其卷积核的尺寸与地面点的预期大小相匹配)来生成热图。这个输出层的每个卷积核负责预测一个特定区域的地面点概率。
- 概率转换:输出层的每个卷积核会为每个像素点分配一个概率值,这个值表示该像素点是某个人体地面点的可能性。这通常是通过一个激活函数(如softmax)来实现的,确保每个像素点的概率值在0到1之间,并且整个热图中所有像素点的概率值之和为1。
投影与聚合(Projection & Aggregation):
- 利用相机矩阵将每个视角的概率图投影到共享的地面平面上。这样,来自多个相机的投影概率图就可以融合在一起,形成一个统一的地面平面占用图(occupancy map)。这个过程涉及到3D几何计算,将不同视角的信息整合到一个共享的二维平面上。
占用图融合(Occupancy Map Fusion):
- 融合过程可以通过两种方式进行。第一种方法是通过对投影的概率图进行平均,生成最终的占用图。第二种方法则是将所有概率图堆叠起来,作为人员检测器的输入。在实际应用中,实验表明使用视角感知的融合方法能够更好地处理遮挡和噪声,提高跟踪的准确性。
a图为实际人的分布位置,b图为上述操作后生成的候选的人的位置,上述操作后还需要进行下述操作来捕捉目标在时间序列上的动态信息,进行更精准的人员目标识别
DGN(Deep Glimpse Network):
- 基础卷积层(Base CNN Layers):
- 提取特征信息(作用和输出同上)
- 时间感知层(Temporal Glimpse Layer):
- 作用:时间感知层的目的是捕捉人员在时间序列上的动态信息。这一层使用了的“时间瞥见”(glimpse)机制,通过在时间维度上对特征图进行采样和聚合,来模拟人类视觉系统在观察运动时的聚焦效应。
- 操作:时间感知层通过在特征图序列上应用一组特定的卷积核(temporal convolutional layers),将连续帧的信息融合在一起,生成新的特征表示。这个过程类似于在时间序列上对特征图进行“缩放”,以便更好地捕捉运动模式。
- 输出:经过时间感知层处理后,得到一组包含时间信息的特征图。这些特征图不仅包含了空间信息,还融入了目标随时间变化的动态特征。
- 时间卷积层(Temporal CNN Layer):
- 作用:时间卷积层的作用是进一步处理时间感知层的输出,通过在时间维度上进行更复杂的特征融合和抽象,以提取更高层次的时间特征。
- 操作:时间卷积层使用一系列卷积操作来处理时间感知层的特征图,这些操作可以捕捉更长期的时序依赖关系和复杂的动态模式。
- 输出:时间卷积层输出一组综合了空间和时间信息的高级特征图,这些特征图用于后续的人员分类和跟踪。
Tracker
- 输入:跟踪器接收来自Deep Glimpse Network的人候选检测结果,这些结果是在融合的占用图上通过人检测模块得到的。
- Tracking Graph构建:用于表示轨迹和检测候选之间的关系。在这个图中,矩形节点代表已经形成轨迹的节点,椭圆形节点代表当前帧中检测到的候选节点,五边形节点代表预测节点。
- 轨迹的延伸:对于每个已有的轨迹,跟踪器尝试在当前帧中找到它的延伸。这意味着跟踪器会寻找一个路径,这个路径不仅通过当前轨迹的最后一个节点,而且还要通过所有其他节点,并且保证路径之间不会相交(即节点不共享)。
- 节点间的匹配:跟踪器通过计算节点间的相似度来确定它们是否匹配。这里的相似度通常是通过计算检测候选和轨迹节点之间的欧几里得距离来衡量的。跟踪器会为每个轨迹节点找到最可能的匹配候选节点。
- 轨迹的更新:一旦找到匹配,跟踪器会更新轨迹,将旧的轨迹节点扩展到新的匹配节点。如果在一定数量的帧中(例如100帧),一个轨迹没有找到匹配的候选节点,那么这个轨迹会被移除。
- 新轨迹创建:对于当前帧中没有匹配到任何轨迹的检测候选节点,跟踪器会创建新的轨迹。这些新的轨迹会被加入到跟踪图中,并在下一时刻用于进一步的跟踪
- 输出:跟踪器输出的是每个人在多个摄像头视角下的三维轨迹。这些轨迹以时间为序列,展示了每个人在空间中的移动路径。
效果图片展示:
实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking的更多相关文章
- 教你如何认识人脸识别开发套件中的双目摄像、3D结构光摄像头、单目摄像头的区别及详细讲解
深圳市宁远电子提供的人脸识别模组可支持双目摄像头和3D结构光摄像头,在客户咨询中经常有被问到双目的为什么会比单目的成本高,区别在哪里,他们的适用于哪些场景呢?在此,深圳市宁远电子技术工程师就为大家详细 ...
- 3D深度估计
3D深度估计 Consistent Video Depth Estimation 论文地址:https://arxiv.org/pdf/2004.15021.pdf 项目网站:https://roxa ...
- 前端的3D(css3版本)--淘宝造物节3D创景的制作
其实是依托Css3的功劳,先上一个例子 链接: https://pan.baidu.com/s/1cZ-mMI01FHO3u793ZhvF2w 提取码: d3s7代码地址:链接: https://pa ...
- 深度自适应增量学习(Incremental Learning Through Deep Adaptation)
深度自适应增量学习(Incremental Learning Through Deep Adaptation) 2018-05-25 18:56:00 木呆呆瓶子 阅读数 10564 收藏 更多 分 ...
- 从零3D基础入门XNA 4.0(1)——3D开发基础
[题外话] 最近要做一个3D动画演示的程序,由于比较熟悉C#语言,再加上XNA对模型的支持比较好,故选择了XNA平台.不过从网上找到很多XNA的入门文章,发现大都需要一些3D基础,而我之前并没有接触过 ...
- 深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统
深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统 作者:寒小阳 时间:2016年3月. 出处:http://blog.csdn.net/han_xiaoyang/arti ...
- Android+OpenCV 摄像头实时识别模板图像并跟踪
通过电脑摄像头识别事先指定的模板图像,实时跟踪模板图像的移动[用灰色矩形框标识] ps:一开始以为必须使用OpenCV Manager,可是这样会导致还需要用户去额外安装一个apk,造成用户体验很差, ...
- 【深度学习】:一门入门3D计算机视觉
一.导论 目前深度学习已经在2D计算机视觉领域取得了非凡的成果,比如使用一张图像进行目标检测,语义分割,对视频当中的物体进行目标跟踪等任务都有非常不错的效果.传统的3D计算机视觉则是基于纯立体几何来实 ...
- TensorFlow和深度学习入门教程(TensorFlow and deep learning without a PhD)【转】
本文转载自:https://blog.csdn.net/xummgg/article/details/69214366 前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络,并把 ...
- TensorFlow和深度学习新手教程(TensorFlow and deep learning without a PhD)
前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络.并把其PPT的參考学习资料给了我们, 这是codelabs上的教程:<TensorFlow and deep lear ...
随机推荐
- 【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be null. (Parameter 'receiverConnectionString') 错误
问题描述 使用VS Code创建Python Function,处理Event Hub中的数据.当部署到Azure Function App后,函数无法执行,查看 Function 日志出现 Valu ...
- Binlog分析利器-binlog_summary.py
Binlog中,除了具体的SQL,其实,还包含了很多有价值的信息,如, 事务的开始时间. 事务的结束时间. 事务的开始位置点. 事务的结束位置点. 操作的开始时间(一个事务通常会包含多个操作). 表 ...
- Kafka的Controller
控制器组件(Controller),是 Apache Kafka 的核心组件.它的主要作用是在 Apache ZooKeeper 的帮助下管理和协调整个 Kafka 集群.集群中任意一台 Broker ...
- Mysql使用limit深度分页优化
1.背景: mysql使用select * limit offset, rows分页在深度分页的情况下.性能急剧下降. 例如:select * 的情况下直接⽤limit 600000,10 扫描的是约 ...
- Java面向对象(下)--static/final/代码块/抽象/接口/内部类
目录 1 关键字:static 2 理解main方法的语法 3 类的成员之四:代码块 4关键字:final 5 抽象类与抽象方法 6 接口(interface) 7 类的成员之五:内部类 static ...
- 解决windows11远程连接阿里云Centos7
本地连接CentOs7时报错 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 网上大部分说的是去修改 vim /etc/ss ...
- electron vite2 vue3 安装 cvep my-electron-cvep
npm config set registry=https://registry.npm.taobao.org/ npm config set ELECTRON_MIRROR=http://npm.t ...
- deepin平台安装debian的cao蛋时
我在deepin系统安装别的系统的时候,一直在boot界面无法进行下一步.困扰了我好几天,最后从电脑的左侧换成了电脑的右侧(usb)接口. 终于安装成功.你是......牛(deepin)
- ARM的无线ble IP Cordio-B50 stack and profiles简析
一 简介 人家英文写的很清楚,我就不蹩脚额翻译了. Cordio-B50 stack is designed specifically for Bluetooth low energy single- ...
- 从一线方案商的角度来看高通QCC3020芯片
写在前面的话 QCC3020的推出已经有一段时间了.在蓝牙音频的圈子里,属于家喻户晓的芯片了.再加上高通的大力宣传和一些顶尖级产品的使用,可以说,它是高通在吸收CSR的技术之后,着力推出的最具竞争 ...