ARM CPU上的图像分类:Raspberry Pi上的SqueezeNet
参见MATLAB在树莓派™上使用深度学习进行图像分类的演示®使用树莓派支持包。万博1manbetxMATLAB为工程师和科学家提供了一个完整的集成工作流,可以在熟悉的开发环境中通过内置的高级应用程序和库来探索、原型化和部署深度学习算法。
使用MATLAB Coder™,您可以生成带有图像采集、预处理和后处理的完整推断管道的c++代码,并将其部署到任何ARM®基于Cortex-A的平台,如树莓派或NXP™i.m mx处理器系列。
大家好,我是Ram Cherukuri, MathWorks的产品经理,欢迎来到树莓派上的另一个深度学习版本,这次将它用于使用squeezenet进行图像分类。
在本视频中,我希望向您展示如何轻松地使用MATLAB中的实时I/O测试并验证MATLAB算法,在将其部署为独立应用程序之前,使用处理器在循环模拟在目标树莓派上测试它,而不需要用C或c++编写任何额外的代码。
我决定选择图像分类作为机器学习和深度学习应用的一个例子,原因有几个:
- 在从视频监控到自动驾驶等许多应用中,这是最基本的视频和图像处理任务之一。
- 而且它与嵌入式部署非常相关,这意味着它应该在目标处理器上实时工作。
你可以在mathworks.com上查阅更多关于MATLAB中的机器学习和深度学习的资源。
说到嵌入式处理器,我选择树莓派的另一个原因不是因为它有趣和容易上手。它基于Arm Cortex A,类似于市面上大多数基于视觉的处理器。
MATLAB Coder使您能够生成代码并将应用程序部署到任何支持Neon指令的基于Arm Cortex A的处理器。万博1manbetx
你可以获得最佳的性能,因为生成的代码调用Arm的计算库,它提供了针对Arm的CPU和GPU平台优化的低级函数。
请参考以下连结,以了解更多有关计算库的资料。
在之前的视频中,我们通过行人检测等示例介绍了部署方面,在本视频中,我们将重点介绍硬件在环测试和验证。
下面是我们的MATLAB算法,它接收一个输入图像,做一些调整大小作为预处理步骤,使用训练好的挤压网进行推理,然后进行后处理来识别和显示前五种分类。
下面是我的测试脚本,我将使用它来运行示例。
让我们首先运行这段代码,看看算法在MATLAB中对输入图像做了什么。你可以看到它给了我们输入图像中事物的前五种分类。
现在,我想用一些实时数据来测试和验证我的算法。在这里,我设置了一个连接到树莓派的连接,我可以使用连接到它的网络摄像头来获得来自摄像头的实时反馈,并在MATLAB中运行推理——非常简单。
请注意下载免费的树莓派支持包来尝试一下。万博1manbetx
此外,如果你有MATLAB Coder,你也可以生成代码并将其部署到树莓派上。
我们用处理器在循环中验证生成的代码如何,这样我们就可以使用MATLAB作为我们的测试平台,将输入传递给目标上的应用程序,并将结果返回MATLAB进行比较?
一旦代码生成完成,我们就可以得到这个MEX文件,我可以使用它在树莓派上运行应用程序。使用相同的测试输入,我们在树莓派上运行图像分类,并得到分类结果。您可以通过比较输出等方式进行更详细的验证,但您已经了解了重点。
在整个示例中,我们不需要编写任何C或c++代码。但是,如果你喜欢使用任何自定义库(如OpenCV),你总是可以手动集成生成的代码,并编写一个自定义主文件来编译成一个更大的应用程序。
请参考下面的链接,亲自尝试这个例子,并下载必要的支持包。万博1manbetx
了解更多
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。