MATLAB程序在设备端部署实例

背景介绍

  MATLAB广泛应用于物理系统建模、测量测试、系统控制以及深度学习等,在工程实践中具有非常重要的地位,具体如图1所示。调研发现,科研人员能够编写各种matlab代码,通过建模仿真来更好的认识世界。近年来,随着物联网、智能硬件以及生成式AI等技术的发展,我们能否将设备采集的真实数据作为输入,让模拟仿真变得更加的真实(全真互联)。本推文对相关的内容进行归纳汇总,介绍如何将matlab代码部署到设备端,具体如下所示:
在这里插入图片描述

图1 MATLAB的应用场景

程序在设备端的部署

  MATLAB属于付费软件,官方为了吸引消费者开放了丰富的Demo程序,提供了从算法设计到模型部署所需的全套开发工具,让设计人员能够在实际工程项目非常方便的使用该软件。其中,matlab在工程中部署的流程框架如图2所示:主要的方式有:1.通过matlab coder将程序转换为C、C++和CUDA®代码,将预测模型集成到嵌入式或边缘设备;2.通过matlab compiler SDK™将预测模型集成到内部开发的企业桌面应用或服务器应用,支持 C、C++、Java 或 Python 等多种语言;3.部署为微服务 API:将模型部署 RESTful API,以通过多种应用和语言进行调用。
在这里插入图片描述

图2 matlab代码的部署流程

环境搭建

  所谓工欲善其事必先利其器,我们利用matlab coder将深度学习模型转化为C代码时,需要在电脑端安装必要的环境,主要包含有:

  • On Windows®, code generation for deep learning networks with the
    codegen function requires MinGW® compiler.
  • MATLAB Coder Interface for Deep Learning.
  • Deep Learning Toolbox™.
    在这里插入图片描述
图3 MinGW-w64环境搭建实例.

使用案例

  我们在本实例中,采用save命令将DAGNetwork保存为.mat文件,后续通过coder.loadDeepLearningNetwork()实现模型加载,最后通过classify实现模型预测;整个过程中通过MinGW将AI模型转化为C代码(不依赖第三方库),所用的程序代码如下所示:

save('netTransfer.mat','netTransfer');

模型预测所需的函数:

function [YPred,probs] = yuche(image)%#codegen

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('netTransfer.mat', 'netTransfer');
end

[YPred,probs] = classify(mynet,image);

end

模型预测的实例及程序代码:

clear all;clc;close all;

lujing='C:\Temp\matlab\matlab\AI\face_recognition\MOV_1692_174.jpg';

I=imread(lujing);
image = imresize(I, [227 227]);

[YPred,probs] = yuche(image)

最后的结果如下图4所示:
在这里插入图片描述

图4 matlab coder工具箱代码转化实例及结果.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值