免费企业网站源码生成,整合营销概念,wordpress最干净的搬家教程,wordpress怎么上传文件【深度学习#xff1a;对象跟踪】对象跟踪完整指南 [教程] 什么是计算机视觉中的对象跟踪#xff1f;对象跟踪有哪些不同类型#xff1f;图像跟踪视频跟踪单目标跟踪多对象跟踪 计算机视觉中对象跟踪的用例监测零售自动驾驶汽车医疗保健 对象跟踪方法步骤 1#xff1a;目标… 【深度学习对象跟踪】对象跟踪完整指南 [教程] 什么是计算机视觉中的对象跟踪对象跟踪有哪些不同类型图像跟踪视频跟踪单目标跟踪多对象跟踪 计算机视觉中对象跟踪的用例监测零售自动驾驶汽车医疗保健 对象跟踪方法步骤 1目标初始化第 2 步外观建模第 3 步运动估计第 4 步目标定位 对象跟踪的挑战背景杂波照度变化闭塞低分辨率比例变化目标形状的变化快动作 用于目标跟踪的深度学习算法深度排序MDNetSiamMaskGOTURN Encord 中的对象跟踪指南步骤 1创建新项目第 2 步添加数据集步骤 3设置本体第 4 步设置质量保证一切准备就绪 结论 视觉对象跟踪是计算机视觉中的一个重要领域。迄今为止已经提出了许多具有有希望结果的跟踪算法包括最近出现的基于深度学习的算法并因其出色的跟踪性能而引起了许多人的兴趣。在我们深入研究一些最著名的对象跟踪深度学习算法之前让我们首先了解对象学习及其在计算机视觉领域的重要性。
什么是计算机视觉中的对象跟踪
对象跟踪涉及一种算法用于跟踪目标对象的运动并预测图像或视频中对象的位置和其他相关信息。
对象跟踪与对象检测不同许多人会熟悉 YOLO 算法对象检测仅限于单个帧或图像并且仅在输入图像中存在感兴趣的对象时才有效而对象跟踪是一种用于预测目标对象位置的技术 通过跟踪物体的轨迹无论它是否存在于图像或视频帧中。
对象跟踪算法可以根据任务和它们所训练的输入类型分为不同的类型。让我们来看看四种最常见的对象跟踪算法类型
Image tracking 图像跟踪Video tracking 视频跟踪Single object tracking 单对象跟踪Multiple object tracking 多对象跟踪
对象跟踪有哪些不同类型
图像跟踪
图像跟踪的目的是检测给定输入中感兴趣的二维图像。然后当图像在环境中移动时图像会被持续跟踪。因此影像追踪最适合具有鲜明对比度图像、不对称性、图案以及感兴趣影像与影像数据集中其他影像之间存在若干可识别差异的数据集。
视频跟踪
顾名思义视频跟踪是跟踪视频中感兴趣对象的任务。它涉及按顺序分析视频帧并通过预测和创建周围的边界框将对象的过去位置与当前位置拼接在一起。它广泛用于交通监控、自动驾驶汽车和安全监控因为它可以实时预测有关物体的信息。
图像和视频对象跟踪算法都可以根据它们所跟踪的对象数量进一步分类
单目标跟踪
顾名思义单对象跟踪涉及在视频或图像序列中一次仅跟踪一个目标。目标和边界框坐标在第一帧或图像中指定并在后续帧和图像中识别和跟踪。
单对象跟踪算法应该能够跟踪给定的任何检测到的对象甚至是没有训练可用分类模型的对象。 多对象跟踪
另一方面多对象跟踪涉及跟踪多个对象。跟踪算法必须首先确定每帧中的对象数量然后跟踪每个帧中每个对象的身份。 既然我们已经对物体追踪有了一个简单的了解那就让我们来看看它的几个使用案例然后深入了解物体追踪算法的各个组成部分。
计算机视觉中对象跟踪的用例
监测
实时物体跟踪算法可用于多种监控。它们既可用于跟踪活动也可用于跟踪物体–例如物体跟踪算法可用于检测某个监控地点内是否有动物并在检测到入侵者时发出警报。在大流行病期间物体跟踪算法经常被用于人群监控即跟踪人们在公共场所是否保持社交距离。
零售
在零售业物体追踪通常用于追踪顾客和产品–亚马逊 Go 商店就是一个例子在那里这些算法对于建立无收银员结账系统至关重要。多物体跟踪系统不仅会跟踪每个顾客还会跟踪顾客拿起的每个物体从而使算法能够实时确定顾客将哪些产品放入购物篮然后在顾客穿过结账区时生成自动收据。这是计算机视觉任务如何为顾客带来切实利益如更快结账和更流畅的体验的一个实际例子。
自动驾驶汽车
人工智能驱动的物体检测和跟踪技术最广为人知的用途可能就是自动驾驶汽车。视觉物体跟踪在汽车中被用于多种用途包括障碍物检测、行人检测、轨迹估计、避免碰撞、车速估计、交通监控和路线估计。人工智能是自动驾驶交通的核心而图像分类和移动物体检测将对这一领域的未来产生巨大影响。
医疗保健
视觉物体跟踪技术在医疗保健行业的应用日益广泛。例如制药公司使用单个和多个目标跟踪来实时监控药品生产确保实时检测和处理任何紧急情况如机器故障或药品生产线故障。
在重点介绍了物体跟踪的几个示例之后让我们来深入了解其组成部分。
对象跟踪方法
步骤 1目标初始化
对象跟踪的第一步是定义目标和感兴趣对象的数量。通过在目标对象周围绘制一个边界框来识别感兴趣的对象——在图像序列中这通常位于第一张图像中而在视频中则位于第一帧中。
然后跟踪算法必须预测对象在剩余帧中的位置同时识别对象。
此过程可以手动或自动完成。用户进行手动初始化以使用边界框或省略号注释对象的位置。另一方面对象检测器通常用于实现自动初始化。
第 2 步外观建模
外观建模涉及对对象的视觉外观进行建模。当目标物体经历许多不同的场景时例如不同的照明条件、角度或速度物体的外观可能会有所不同从而导致错误信息和算法失去对物体的跟踪。必须执行外观建模以便建模算法能够捕获感兴趣对象移动时引入的不同变化和变形。
这种类型的优化主要由两个部分组成
视觉表示使用视觉特征构建可靠的对象描述统计建模使用统计学习技术为对象识别构建有效的数学模型 第 3 步运动估计
一旦定义了对象并对其外观进行了建模就可以利用运动估计来推断模型的预测能力以准确预测对象的未来位置。这是一个动态状态估计问题通常通过使用线性回归技术、卡尔曼滤波或粒子滤波等预测变量来完成。
第 4 步目标定位
运动估计近似于最有可能找到物体的区域。一旦确定了物体的大致位置就可以利用视觉模型来精确定位目标的确切位置——这是通过贪婪搜索或基于运动估计的最大后验估计来执行的。
对象跟踪的挑战
在构建对象跟踪算法时会出现一些常见的挑战。在笔直的道路或简单的环境中跟踪物体很简单。在现实世界中感兴趣的对象会受到许多因素的影响使对象跟踪变得困难。在设计对象跟踪算法时意识到这些常见挑战是解决这些问题的第一步。对象跟踪的一些常见挑战是
背景杂波
当背景人口稠密时很难提取特征、检测甚至跟踪目标对象因为它会引入更多的冗余信息或噪声使网络对重要特征的接受度降低。 照度变化
在现实生活中感兴趣物体上的照明会随着物体的移动而发生巨大变化这使得其定位更难跟踪和估计。 图 5目标对象被阴影。 闭塞
当不同的物体和物体进入和离开画面时目标物体的边界框通常会被遮挡从而阻止算法识别和跟踪它因为背景或前景会干扰它。当多个对象的边界框靠得太近时通常会发生这种情况从而导致算法混淆并将跟踪对象标识为新对象。 低分辨率
根据分辨率的不同训练数据集边界框内的像素数可能太低无法使对象跟踪保持一致。 比例变化
比例也是一个因素当第一帧和当前帧的边界框超出范围时算法跟踪目标对象的能力可能会受到挑战。 目标形状的变化
在图像和帧中感兴趣对象的形状可能会旋转、变暗、变形等。这可能是由于多种因素造成的例如视点变化或对象比例的变化并且通常会干扰算法的对象跟踪直觉。 快动作
特别是在跟踪快速移动的物体时物体的快速运动通常会影响跨帧和图像准确跟踪物体的能力。
现在我们已经讨论了构建对象跟踪算法所需的每个组件以及在现实世界中使用该算法时面临的挑战。我们正在构建的算法是针对现实世界中的应用因此构建强大而高效的对象跟踪算法至关重要。深度学习算法已被证明可以在对象跟踪方面取得成功。以下是一些著名的算法
用于目标跟踪的深度学习算法
对象跟踪已经存在了大约 20 年并且已经开发了许多方法和想法来提高跟踪模型的准确性和效率。
一些方法中使用了传统或经典的机器学习算法例如 k 最近邻或支持向量机——这些方法可以有效地预测目标对象但它们需要专业人员提取重要和歧视性信息。
另一方面深度学习算法会自行提取这些重要的特征和表示。因此让我们来看看其中一些用作对象跟踪算法的深度学习算法
深度排序
DeepSORT是一种众所周知的对象跟踪算法。它是简单在线实时跟踪器或 SORT一种在线跟踪算法的扩展。SORT 是一种使用卡尔曼滤波器根据物体过去位置估计物体位置的方法。卡尔曼滤波器对遮挡非常有效。
SORT 由三个组件组成
检测首先检测初始感兴趣的对象。预测使用卡尔曼滤波器预测感兴趣对象的未来位置。卡尔曼滤波器预测了物体的新滤波器需要对其进行优化。关联需要优化已预测的目标对象的大致位置。这通常是通过使用匈牙利算法检测未来的位置来完成的。
深度学习算法用于改进SORT算法。它们允许 SORT 以更高的精度估计对象的位置因为这些网络现在可以预测目标图像的特征。卷积神经网络 CNN 分类器本质上是在特定于任务的数据集上训练的直到达到高精度。一旦实现分类器将被移除只留下从数据集中收集的特征。然后SORT 算法使用这些提取的特征来跟踪目标对象。
DeepSORT的工作频率为20Hz特征生成占用了近一半的推理时间。因此在给定现代 GPU 的情况下系统保持计算效率并实时运行。 MDNet
Multi-Domain Net 或 MDNet 是一种基于 CNN 的对象跟踪算法它使用大规模数据进行训练。它被训练为使用带注释的视频来学习目标的共享表示即它需要属于不同域的多个带注释的视频。它的目标是学习广泛的变化和空间关系。
MDNet 中有两个组件
预训练这里需要深度学习网络来学习多域表示。该算法在多个带注释的视频上进行训练以学习表示和空间特征。在线视觉跟踪然后删除特定于域的图层网络具有共享图层。这包括学习的表示。在推理过程中会添加一个二元分类层然后对其进行进一步训练或在线微调。 SiamMask
SiamMask的目标是提高全卷积暹罗网络的离线训练技术。暹罗网络是卷积神经网络它使用两个输入来创建密集的空间特征表示裁剪图像和较大的搜索图像。
暹罗网络只有一个输出。它比较两个输入图像的相似性并确定两个图像是否包含相同的目标对象。通过使用二元分割任务来增加损失这种方法对于对象跟踪算法特别有效。经过训练后SiamMask 可以在线运行只需要边界框初始化提供与类无关的对象分割掩码并以每秒 35 帧的速度旋转边界框。 GOTURN
大多数通用对象跟踪器都是从头开始在线训练的尽管有大量视频可供离线训练。使用回归网络的通用对象跟踪GOTURN利用基于回归的神经网络来监控通用对象以便通过对带注释的视频进行训练来提高其性能。
该跟踪算法采用基本的前馈网络无需在线训练允许其在测试期间以每秒 100 帧的速度运行。该算法从标记的视频和大量图像中学习防止过度拟合。跟踪算法学习在通用对象在不同空间中移动时实时跟踪它们。 所有这些算法都是在公开可用的数据集上进行训练的这凸显了标注良好的数据的重要性。这对于机器学习和计算机视觉领域的任何人来说都是一个关键话题因为建立精确的物体跟踪算法首先要有一个强大的标注数据集。
帮助您高效注释视频和图像流数据集的平台通常还包括内置的自动物体跟踪等功能。这有助于减少构建良好数据集所花费的时间并快速启动深度学习解决方案来进行物体跟踪。让我们来看看如何使用 Encord 为物体跟踪算法构建数据集
Encord 中的对象跟踪指南
步骤 1创建新项目
在主页上点击 新建项目 开始并添加项目名称和描述–这将有助于其他人在团队中共享数据集或在将来引用数据集。 图 15 第 2 步添加数据集
在这里您可以使用现有的数据集也可以添加新的数据集。我已经使用 新数据集 图标添加了数据集因此我选择了它。
添加说明还有助于其他团队成员共享您创建和注释的数据集。作为一项安全措施它还可以保存在私有云中。
在这里我从 VOT2022 挑战赛数据集中选择并上传了 100 张汽车图片。 图 16 步骤 3设置本体
你可以把本体看作是你对数据提出的问题。在这里我在本体中添加了“汽车”作为对象——您可以在任何给定的图像或帧中根据需要跟踪任意数量的对象。要了解有关本体的更多信息您可以阅读 Encord 的更多文档。 图 17 第 4 步设置质量保证
在处理大型数据集时此步骤至关重要以确保在每个阶段都保持一定的质量。这可以手动或自动完成 - 更多详细信息在 Encord 的文档中。 图 18 图 19 一切准备就绪
通过 4 个简单的步骤创建一个项目您就可以开始并自动化标签了。如何自动执行视频注释博客文章将帮助您自动执行对象跟踪的标记过程。
结论
对象跟踪用于识别视频中的对象并将其解释为一系列高精度轨迹。根本的困难是在计算效率和性能之间取得平衡而深度学习算法提供了这种平衡。
在本文中我们讨论了对象跟踪的一些实际用例以及构建对象跟踪算法的一些主要挑战以及这些深度学习算法如何为准确性和效率铺平道路。我们希望这篇文章能激励您构建高效的对象跟踪算法