深度学习之Matlab 转C++在iOS上测试CNN手型识别

这篇博客详细介绍了如何将Matlab中的CNN模型转换为C++代码并在iOS平台上运行,实现手型识别。通过Matlab的coder工具生成静态库,将.mat参数文件转为.txt格式,然后在Xcode中导入并处理,最终在iOS应用中成功运行CNN进行手势识别。
摘要由CSDN通过智能技术生成

1 前言

在上一篇Blog,我介绍了在iOS上运行CNN的一些方法。但是,一般来说,我们需要一个性能强劲的机器来跑CNN,我们只不过需要将得到的结果用于移动端。之前在Matlab使用UFLDL的代码修改后跑了手型识别的3层CNN,这里我们就考虑将Matlab转C之后移植到xcode中。

Step 1:Matlab 转c

首先要保证代码可以跑,可以运行,比如我这边,如下测试cnn识别手型:
手型图片

>> parameters = load('./opt_parameters/opttheta_8epoches_cnn.mat');
cnnPredict(imread('./data/test_five1 (1).bmp'),parameters.opttheta)
ans =

     5

大家可以看到,我识别出来是5个手指。OK,CNN没有问题。现在就是要将cnnPredict函数转c,这里大家可以看到这个函数包含了输入数据和已训练的参数。

function labels = cnnPredict(images,opttheta)

基本方式是使用Matlab自带的工具:coder。
在Command窗口输入coder:
这里写图片描述
新建一个项目:
这里写图片描述
这里我已经导入了我要转的文件cnnPredict.m,里面有两个输入变量,我需要定义其变量类型,这里我使用autodefine types,就是写一个脚本运行这个函数,就行。也就是我一开始贴的代码,识别出来后是这样:
这里写图片描述
这里大家可以看到我这边CNN的参数并不是很多,也就是19万个参数而已。
接下来就是build了,这里选择c/c++ static library,并且只

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值