前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MATLAB程序在设备端部署实例

MATLAB程序在设备端部署实例

原创
作者头像
联远智维
修改2023-05-02 20:25:31
6180
修改2023-05-02 20:25:31
举报
文章被收录于专栏:联远智维联远智维

背景介绍

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

图1 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代码的部署流程
图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环境搭建实例.
图3 MinGW-w64环境搭建实例.

使用案例

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

代码语言:javascript
复制
save('netTransfer.mat','netTransfer');

模型预测所需的函数:

代码语言:javascript
复制
function [YPred,probs] = yuche(image)%#codegen

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

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

end

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

代码语言:javascript
复制
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工具箱代码转化实例及结果
图4 matlab coder工具箱代码转化实例及结果

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景介绍
  • 程序在设备端的部署
    • 环境搭建
      • 使用案例
      相关产品与服务
      图像识别
      腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档