曾经尝试过计算“多个”快速移动的物体吗?嗯,这非常困难,而且机会很高,你可能会数不清。该项目将使您能够跟踪此类移动对象并保持其计数,在本例中为Cars !
许多检测模型的问题是它们要么太慢而无法实时使用,要么无法准确地跟踪快速移动的物体。一种替代方法是在每“n 帧”之后应用检测模型,然后在大多数帧上使用任何跟踪算法,因为检测比跟踪更昂贵(耗时)。但问题是此类方法不太准确,因为跟踪算法很容易失去对我们实际目标对象的跟踪并最终跟踪不需要的对象,因此用于需要快速推理的应用程序不切实际且不可靠。该项目通过使用OpenVINO 工具包实时检测和跟踪快速移动的汽车来解决这个问题(即使没有 GPU)并使用质心跟踪算法来保持检测到的汽车的不同数量,所有这些都具有很高的准确性!
在安装 OpenVINO 之前,我们需要确保满足我们的先决条件。名单如下:
安装这些后,您可以安装 OpenVINO。有关更多说明,请参阅此。
在这个项目中,我们将使用汽车检测 IR 模型(中间表示)来实时检测和跟踪汽车。为此,我们将下载vehicle-detection-adas-0002模型,这是来自英特尔 OpenVINO 的预训练模型。
要下载它,首先您需要通过转到 初始化 OpenVINO 环境。打开命令提示符并运行setupvars.bat文件。/bin
如果您遇到一些意外错误,请检查您是否在正确的文件夹中或确保您已按照本文档设置了所有内容。
然后,将命令提示符中的目录更改为使用cd命令。你应该得到这样的东西:<>
Installation_PATH>/deployment_tools\tools\model_downloader
model_downloader 文件夹中的命令提示符
然后运行命令。
downloader.py --name vehicle-detection-adas-0002 --precisions FP32
-o
运行此命令
OpenVINO 下载模型
。
-b :包含权重和偏差的.bin 文件
-x : 包含网络拓扑的.xml 文件
这个怎么运作
在我们的代码中,首先我们将初始化我们的质心跟踪算法对象
ct
。
在将输入帧输入到检测对象之前,我们需要确保每个帧都具有模型期望的尺寸,在本例中为 [1x3x384x672],其中 1 是批量大小,3 是通道数,384 是高度和 672 是宽度。
然后,我们可以对“每个”帧进行检测,并获取所有检测的边界框的位置,并将其存储在一个列表中
rect
,将由一个一个的update
方法使用ct
。计算的 FPS 即帧/秒被发现约为 30 FPS(同样没有任何 GPU),这对于实时应用程序来说非常好。
使用 OpenVINO 约 30 FPS
使用MobileNet-SSD模型可提供大约 15 FPS 的帧速率,因此 OpenVINO 实施可提供 100% 更好的性能。
~15 FPS 使用 MobileNet-SSD 模型
应该注意的是,上面提到的 MobileNet-SSD 模型也被训练来检测 20 个其他对象,除了可能导致较低帧速率的汽车。但即使我们假设,与车辆检测-adas-0002模型相比,它仍然无法准确识别汽车,如下所示。
结论
该项目可用于实时捕获与交通相关的数据,这些数据可用于进一步分析,以获得交通管理的可行见解。它还可以被无人机用于对车辆进行空中监控以确保安全。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !