目标跟踪(4)使用dlib进行对象跟踪
来源:http://www.tudoupe.com时间:2022-03-11
此课程将展示您如何使用 dlib 和 Python 来监控事物。 在阅读今天的材料后, 您将能够使用 dlib 实时视频跟踪对象 。
- 一. 操作物体试验一次(或每N框架一次)。
- 然后,在未测试该物品的情况下,使用一种特定跟踪方法,当物体在后续框架中移动时可以遵循。
这样的方法可行吗?
事实上,特别是如果我们利用“利比”跟踪相关算法的实施情况。
今天的书将教你如何使用Dlib的关联性监测器实时跟踪视频流中的项目。
一. 使用 dlib 跟踪对象
从今天的课程开始,我们将简短地过一遍Dlib, 以便完成基于相关性的目标跟踪。
之后,我将演示如何使用Dlib的物体追踪器 在你自己的程序里。
最后,我们今天要总结一下 Dlib的目标追踪器的局限性和缺陷。
二,什么是相关追踪器?
Dlib相关跟踪器以Bolme等人MOSSE2010年跟踪器的工作为基础。也就是说,用与自我适应有关的过滤器监测视觉物体。尽管该部追踪器适用于移动对象,然而,它往往无法处理比额表变化的问题。
达内利扬和同事当发现最佳缩放时, 此函数返回使用缩放金字塔进行适当评估的项目的分数 。这种技术使我们能够追踪在(1) 移徙和(2) 扩大整个视频流过程中变化的物体,此外,这是我们可以实时完成的工作。
3.项目结构
只需在终端上运行“树”命令,
我们有三个目录:
input/描述用于跟踪物体的输入影片集output/我们正在录影带上工作 所跟踪的物品在经过处理的录影带的盒子和标签里写着mobilenet_ssd/该目录包含咖啡因有线电视新闻网的模型文件。
今天,我们将看一看Python脚本:track_object.py。
四,部署我们的Dlib目标追踪器
让我们继续使用Dlib 来创建我们的物体追踪器
打开track_object.py并插入以下代码:
我们进口这里需要的袋子 值得一提的是我们用它OpenCV, dlib, 和 imiples。
让我们看看我们如何分析我们的指令线参数:
我们的脚本需要四个命令线参数:
- 原托克特: 我们部署所需的 Caffe 原托克特文件路径 。
- - 模式:我们安装了必要的咖啡厅预培训模型。
- 今天的脚本适用于视频文件, 而不是您的网络摄像头(尽管你可以简单地修改它以容纳网络摄像头种子)。
- 标签:我们有兴趣测试和追踪的类标签。在下面的代码块中,您可以看到模型支持的可用类。
还有两个选项:
- 输出:如果想要存储目标跟踪器结果,请提供视频文件输出的可选路径。
- 信任度: 默认值= 0.2 这是最小概率阈值, 允许我们从 Caffe 物体探测器中过滤假阳性 。
让我们确定这个模型支持的类别, 然后从磁盘上装载我们的网络:
我们将使用预先训练过的移动网络 SDD 在一个框内进行目标测试。 然后对象位置将被发送到 Dlib 中的相应追踪器, 以跟踪电影的剩余框架。 该模型支持 20 个对象类别( 后台类加一个 ) 。
N.B. 如果您使用不同的咖啡类模式, 您必须重新定义此 CLASS 列表。 如果您使用今天下载的模型, 您不能更新此列表 。
在环形框架之前, 我们必须将咖啡类模型装入内存中。 所有装入咖啡类模型所需要的就是原生体和模型文件的路径( 两者都可以在命令行数字字典中找到 ) 。
现在让我们做关键初始化工作,
我们建立视频流、追踪器和视频刻录器,以及我们的文字标签。我们展示每秒的框架数估计。
现在是时候开始循环利用我们的视频框架了:
那么我们必须测试目标(如果我们还没有):
如果我们的追踪器对象是无的, 我们必须首先在框架里检测到对象。 为了达到这个目的, 我们建造了一个浮标, 并把它传送到网络上 。detections:
如果我们的物体探测器发现了任何物品最有可能得到的东西。 在这篇文章中,我们刚刚展示了如何使用Dlib 进行个别物体追踪因此,我们必须确定发现可能性最大的人。下星期的博客文章中,
我们将从那里获得信任( conf) 和与物品有关的标签。
现在该是过滤结果的时候了。在这里,我们努力保证 我们拥有正确的对象 通过命令行参数发送:
我们保证在信任度上方的组合, 而对象就是我们正在搜索的类型。 当我们稍后运行脚本时, 我们将会使用“ 人” 或“ 猫” 作为示例, 来显示我们如何过滤结果 。
让我们看看安装追踪器的情况:
这个elseBlock 处理我们被锁在一个要跟踪的物件中的案件 。 把它视为“ 大光亮云” 电影中的战斗场景 。 “ 当对手被锁在导航系统后, 可以通过更新来跟踪它 。 ”
这就需要采取两项主要行动:
- 我们需要更新追踪对象 这是一项巨大的努力
update方法的后端执行。 - 从
tracker获取对象的位置( G) 。get_position对不起,我不知道。这里将是 PID 管理环的位置, 例如,如果机器人试图跟踪被跟踪的项目。 在我们的假想中, 我们将用边界框和标签来指定框架中的对象 。
让我们完成循环:
最后,在剧本结束前,打印FPS框架速率并释放手指:
5.完整代码
第六, dlib 的实时目标跟踪器
打开终端并键入以下命令:
以下是第二个如何使用 dlib 来追踪物体的例子:
七. 抗辩和可能的改进
演示文稿结尾处, 您将会看到对象跟踪器已消失。 提醒注意没有“ 完美对象跟踪器” 之类的东西; 而且, 此对象跟踪技术不需要在您插入屏幕的每个框上使用费用更高的对象探测器 。
相反,为了推断物体的新位置,dlib的必要跟踪器将(1) 事先了解上一个框架的物体边界框的位置,(2) 从当前框架收集的数据结合起来。
为了纠正这种情况,我建议定期使用费用更高的物体探测器,以便(一) 核实物品是否存在,(二) 利用更新的(最好是正确的)边界框架坐标重新设置物体跟踪。
C++中的目标跟踪
参考目录
https://pyimagesearch.com/2018/10/22/object-tracking-with-dlib/
http://dlib.net/video_tracking_ex.cpp.html
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
