wordpress标签大全,杭州网站优化排名,网站开发的项目总结,傻瓜app制作开发基于深度学习网络的美食识别系统matlab仿真,带GUI界面最近在折腾一个好玩的项目——用Matlab搞了个能识别美食的深度学习系统。这玩意儿不仅支持常见的炸鸡披萨寿司分类#xff0c;还带了个能拖拽图片的GUI界面#xff0c;实测发现对着外卖拍张照准确率居然有八成以上。咱们这…基于深度学习网络的美食识别系统matlab仿真,带GUI界面最近在折腾一个好玩的项目——用Matlab搞了个能识别美食的深度学习系统。这玩意儿不仅支持常见的炸鸡披萨寿司分类还带了个能拖拽图片的GUI界面实测发现对着外卖拍张照准确率居然有八成以上。咱们这就来拆解这个有意思的小工具。先说说数据这事儿。我从Food-101数据集里挑了炸鸡、寿司、披萨三类各1000张图片用Matlab的imageDatastructure直接撸了个数据管道imds imageDatastore(food_dataset,... IncludeSubfolders,true,... LabelSource,foldernames); [trainImgs,testImgs] splitEachLabel(imds,0.8,randomized);这里有个坑要注意文件夹命名必须和类别名称完全一致。曾经因为文件夹名多了个下划线让模型把pizza认成新类别排查了俩小时才发现问题。网络结构方面咱们整了个轻量化的CNN。考虑到美食图片颜色特征重要第一层卷积核特意设大了点layers [ imageInputLayer([224 224 3]) convolution2dLayer(7,16,Padding,same) batchNormalizationLayer reluLayer maxPooling2dLayer(2,Stride,2) convolution2dLayer(5,32,Padding,same) batchNormalizationLayer reluLayer maxPooling2dLayer(2,Stride,2) fullyConnectedLayer(3) softmaxLayer classificationLayer];这个结构在GTX 1060上跑起来迭代一次大概3秒左右。如果显卡不太行的话可以把32改成16亲测准确率只会掉2个点左右。训练参数设置是门玄学。经过多次尝试下面这个配置收敛最快options trainingOptions(sgdm,... InitialLearnRate,0.001,... MaxEpochs,15,... Shuffle,every-epoch,... ValidationData,testImgs,... VerboseFrequency,50);注意学习率千万别超过0.005否则直接梯度爆炸。有次手抖多按个零loss值直接飙到NaN训练了个寂寞。GUI界面用App Designer拖控件搞定。核心是那个识别按钮的回调函数function RecognizeButtonPushed(app, ~) img imread(app.ImagePath); % 读取用户上传的图片 processedImg imresize(img,[224 224]); % 强制统一尺寸 label classify(app.net, processedImg); % 调用训练好的模型 app.PredictionLabel.Text char(label); % 显示结果 % 显示概率分布 scores predict(app.net, processedImg); bar(app.UIAxes, scores); app.UIAxes.XTickLabels {炸鸡,寿司,披萨}; end这里有个骚操作——预测时不仅显示类别还把置信度用柱状图画出来。实测发现当三个类别概率都在0.3左右时多半是拍到混合食材了。测试时遇到个搞笑情况拿康师傅红烧牛肉面的包装图测试系统坚定地认为是披萨。后来发现是因为包装上的大块牛肉和芝士颜色接近披萨这启示我们需要加入更多非实物的训练样本。要提升准确率可以试试这几个trick在数据增强里加上随机遮挡augmenter imageDataAugmenter(RandXlation,[-20 20],... RandYReflection,true);改用迁移学习加载预训练的ResNet50net resnet50; lgraph layerGraph(net); newFCLayer fullyConnectedLayer(3,Name,new_fc); lgraph replaceLayer(lgraph,fc1000,newFCLayer);加入温度作为特征比如热成像图不过这个需要特殊传感器支持现在的系统还有个彩蛋连续识别出三次炸鸡后界面会自动弹出热量警告的弹窗。毕竟做技术的也得关心用户健康不是笑完整代码已经打包放在Github上需要的小伙伴可以直接clone下来试试。下次打算加入语音播报功能让AI用东北话报菜名那画面想想就有意思...