在MATLAB中使用YOLO v2完成一个实时目标检测的示例®.我们从MATLAB中发布的一个例子开始,解释了如何训练YOLO v2对象检测器,并使用GPU编码器™,我们生成优化的CUDA代码。
我们通过使用nvcc将生成的代码编译成一个MEX文件来验证生成的代码,我们发现生成的MEX在测试视频文件上以每秒80帧的速度运行。
使用NVIDIA的硬件支持包金宝app®在gpu上,我们将生成的代码作为一个独立的应用程序部署到Jetson Xavier板上。
大家好,我是Ram Cherukuri, Mathworks的产品经理,在这个视频中,我将带你通过一个例子,在MATLAB中使用Yolo V2进行实时对象检测。
Yolo ?意思是什么
YOLO代表“你只看一次”,它是一种流行的对象检测方法。
目标检测的一种常见方法是重新使用分类器来执行检测。
例如,RCNN使用区域建议方法首先在图像中生成潜在的边界框,然后在这些被建议的框上运行分类器,然后改进预测。如您所见,这需要多次评估。
另一方面,Yolo将帧检测作为一个回归问题,并将目标检测的独立组件统一为一个单一的神经网络。
它将输入图像划分为一个网格,每个网格单元预测一定数量的边界框以及这些框的置信度。分数反映了模型对盒子中包含物体的自信程度,以及它认为盒子预测的准确性。每个网格单元还可以预测条件类的概率。
这需要大量处理,我建议参考一些论文和文章来理解这种独特方法的细微差别,因为在这个短短的视频中不可能涵盖所有内容。
Yolo已经变得非常流行和重要,因为它被认为是最先进的技术,因为它使用一个单一的网络和非常快的实时目标检测。
即使您不熟悉Yolo v2,您也可以使用MATLAB中发布的这个示例开始使用Yolo v2®这就解释了如何在数据上训练Yolov2对象检测器。
然后,使用GPU编码器™,您可以生成优化的CUDA代码的目标NVIDIA®板,如Jetson Xavier直接从MATLAB。
硬件支持包允许您将生成的代金宝app码部署到Jetson和驱动平台,我们将在下面的演示中看到。
在MATLAB中,我从这个例子中取了训练过的目标检测器作为起点我将在这里对一个测试图像进行推理。
事实上,我们运行了一个简单的测试,将Faster RCNN模型与YolO v2进行比较,您可以看到YolO v2在我的本地机器上的速度大约是YolO v2的25倍。
现在,使用GPU编码器,我们将从这个函数生成CUDA代码,并使用nvcc将其编译成一个MEX文件,这样我们就可以在我的台式机上验证生成的代码。
你可以看到生成的MEX在我桌面上的这个带有Titan Xp GPU的视频文件上以每秒80帧的速度运行。
请注意,这些不是正式的基准测试数字,因为我还有一些其他程序在后台运行,但这应该会让您对Yolo v2网络的性能有一个大致的了解。
现在,使用NVIDIA gpu的硬件支持包,我可金宝app以从连接到我的Jetson Xavier板的摄像机获取实时数据,我们可以使用相同生成的MEX文件运行推断。
这里我用的是窗外的实时数据,可以看到9号公路上的交通状况。
最后,我可以从这里的算法生成代码,从网络摄像头获取输入,使用Yolo v2进行对象检测,并显示输出。
NVIDIA硬件支持包支持这些接口的代码金宝app生成,一旦代码生成并构建完成,我们就可以在Jetson Xavier板上作为一个独立的应用程序运行可执行文件。
所以,我们使用Yolo v2独立运行在Jetson Xavier上进行实时物体检测,从连接到它的网络摄像头获取实时输入。
这里总结了这个示例的一些要点。你可以直接从MATLAB使用简单的api瞄准NVIDIA的主板,比如Jetson Xavier和Drive PX,而不需要编写任何CUDA代码。
请参考视频下面的链接来了解更多关于硬件支持包的信息,并在MATLAB中找到更多的目标检测示例。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。