实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking

这篇具有很好参考价值的文章主要介绍了实时 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图为上述操作后生成的候选的人的位置,上述操作后还需要进行下述操作来捕捉目标在时间序列上的动态信息,进行更精准的人员目标识别文章来源地址https://www.toymoban.com/news/detail-845592.html

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的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue调用电脑端摄像头实时拍照

    点击照相机拍照,弹出照相机拍照弹窗,点击拍照按钮,截取录像的帧,点击保存,提交数据给后台。 1.html模块 2.css模块 就是一个弹窗,这里就不进行展示了。 3.js模块

    2024年02月12日
    浏览(51)
  • 如何获取当前摄像头实时画面(或说图片)

    可以使用所在平台提供的摄像头接口或第三方库来获取当前摄像头实时画面(或图片),具体实现方式可能因不同平台和库而异。以下是几个常见平台的示例方法: 在 Windows 平台上,可以使用 DirectShow 或 Media Foundation API 获取摄像头实时画面。 在 macOS 平台上,可以使用 AVFo

    2024年02月10日
    浏览(55)
  • 基于FFmpeg+rtsp读取摄像头实时图像

    项目介绍:前端时间做了一个项目用qt 编写软件获取海康摄像头rtsp视频流,实现实时显示。当时采用的是VLC-Qt播放RTSP流这种方式(参考:基于libVLC的视频播放器之二:使用VLC-Qt播放RTSP流_草上爬的博客-CSDN博客_libvlc rtsp)。花了一段时间研究也做出来了,可是发现了一个无法

    2023年04月08日
    浏览(86)
  • OpenCV获取网络摄像头实时视频流

    参考文章: [常用工具] OpenCV获取网络摄像头实时视频流_opencv网络摄像头 [常用工具] OpenCV获取网络摄像头实时视频流_opencv网络摄像头_落痕的寒假的博客-CSDN博客 在使用OpenCv处理视频时,无论是视频文件还是摄像头画面,都要使用VideoCapture类来进行每一帧图像的处理。当我们

    2024年02月01日
    浏览(63)
  • 使用手机摄像头实现视频监控实时播放

    视频监控实时播放的原理与目前较为流行的直播是一致的,所以采用直播的架构实现视频监控实时播放,流程图如下: 目前实时视频流的传输协议有以下几种:RTSP、RTMP、HLS、Http-flv。 安卓APP开发使用HBuilder,而HBuilder内置了LivePusher直播推流控件,该控件使用了RTMP协议,所以

    2023年04月08日
    浏览(49)
  • Java获取实时摄像头进行拍照(附源码)

    Java是一种通用编程语言,可以用来开发各种类型的应用程序,包括涉及图像处理和相机操作的应用程序。         要在Java中获取实时摄像头进行拍照,通常会借助一些 第三方库或API ,例如 OpenCV(Open Source Computer Vision Library) 或 Java Media Framework(JMF) 等。这些库和API提

    2024年01月25日
    浏览(45)
  • python调用海康网络摄像头,实时显示监控内容

    用网线将海康威视摄像头与电脑连接在一起;(或者用交换机,在一个交换机下面) 海康摄像头的默认ip是192.168.1.64 效果:和通过海康摄像头网址效果一样 rtsp://用户名:密码@ip地址/Streaming/Channels/2

    2024年02月16日
    浏览(42)
  • 使用YOLOv5实现多摄像头实时目标检测

    这篇博客将在单摄像头目标检测的基础上,实现单网络多线程的实时目标检测。 在detect.py同级目录下新建streams.txt文件,每个视频流源单独成行: 本地摄像头填0 USB摄像头填1,2,3… IP摄像头要根据摄像头类型,按下面格式填写(我将在之后的博客中讲解实现) 0是电脑自带摄像

    2024年02月05日
    浏览(59)
  • 使用YOLOv5实现单摄像头实时目标检测

    我将在上一节的基础上,一步一步展示如何实现单摄像头实时目标检测,其中包括我在配置过程中遇到的报错和解决方法。 将\\\'--source\\\'的默认值改为0 这里的\\\'0\\\'是指系统默认的第一个摄像头,通常是电脑自带的摄像头,所以一定要记得把摄像头打开再运行代码(有些电脑会有摄

    2024年02月03日
    浏览(67)
  • Android实时获取摄像头画面传输至PC端

    最近在做一个PC端小应用,需要获取摄像头画面,但是电脑摄像头像素太低,而且位置调整不方便,又不想为此单独买个摄像头。于是想起了之前淘汰掉的手机,成像质量还是杠杠的,能不能把手机摄像头连接到电脑上使用呢?经过搜索,在网上找到了几款这类应用,但是都

    2024年02月12日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包