Ram Cherukuri,MathWorks
在MATLAB中使用YOLO v2完成一个实时目标检测的示例®. 我们从MATLAB中发布的一个示例开始,该示例解释了如何使用GPU编码器来训练YOLO v2对象检测器™, 我们生成优化的CUDA代码。
我们通过使用nvcc将生成的代码编译成一个MEX文件来验证生成的代码,我们发现生成的MEX在测试视频文件上以每秒80帧的速度运行。
使用NVIDIA的硬件支持包金宝app®我们将生成的代码作为一个独立的应用程序部署到Jetson Xavier板上。
大家好,我是Ram Cherukuri, Mathworks的产品经理,在这个视频中,我将带你通过一个例子,在MATLAB中使用Yolo V2进行实时对象检测。
约洛是什么?
YOLO代表“你只看一次”,是一种流行的目标检测方法。
一种常见的目标检测方法是重新利用分类器进行检测。
例如,RCNN使用区域建议方法首先在图像中生成潜在的边界框,然后在这些被建议的框上运行分类器,然后改进预测。如您所见,这需要多次评估。
另一方面,Yolo将帧检测作为一个回归问题,并将对象检测的各个部分统一到单个神经网络中。
它将输入图像划分为一个网格,每个网格单元预测一定数量的边界框以及框的置信度分数。分数反映了模型对盒子包含对象的确认程度,以及它认为盒子预测的准确性。每个网格单元还预测条件类概率。
这需要大量处理,我建议参考一些论文和文章来理解这种独特方法的细微差别,因为在这个短短的视频中不可能涵盖所有内容。
Yolo已经变得非常流行和重要,因为它被认为是最先进的技术,因为它使用一个单一的网络和非常快的实时目标检测。
即使您不熟悉,也可以使用MATLAB中发布的示例开始使用Yolo v2®这就解释了如何在数据上训练Yolov2对象检测器。
然后,使用GPU编码器™, 您可以直接从MATLAB生成优化的CUDA代码,以针对NVIDIA®板,如Jetson Xavier。
硬件支持包允许您将生成的代金宝app码部署到Jetson和驱动平台,我们将在下面的演示中看到。
在MATLAB中,我以示例中经过训练的对象检测器为起点,在这里我将对测试图像进行推理。
事实上,我们运行了一个简单的测试,将更快的RCNN模型与YolO v2进行比较,您可以看到,在我的本地机器上,YolO v2大约快25倍。
现在,使用GPU编码器,我们将从这个函数生成CUDA代码,并使用nvcc将其编译成一个MEX文件,这样我们就可以在我的台式机上验证生成的代码。
您可以看到,在我的桌面上,生成的MEX以每秒80帧的速度运行,该桌面上有一个Titan Xp GPU。
请注意,这些不是官方的基准数据,因为我还有一些其他程序也在后台运行,但这应该会让您了解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国家/地区网站未针对您所在地的访问进行优化。