实时 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帧),一个轨迹没有找到匹配的候选节点,那么这个轨迹会被移除。
- 新轨迹创建:对于当前帧中没有匹配到任何轨迹的检测候选节点,跟踪器会创建新的轨迹。这些新的轨迹会被加入到跟踪图中,并在下一时刻用于进一步的跟踪
- 输出:跟踪器输出的是每个人在多个摄像头视角下的三维轨迹。这些轨迹以时间为序列,展示了每个人在空间中的移动路径。