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