使用 10 行 MATLAB 代码尝试深度学习
此示例说明如何仅通过 10 行 MATLAB® 代码使用深度学习来识别实时网络摄像头画面中的对象。尝试此示例以了解在 MATLAB 中使用深度学习有多么简单。
运行以下命令,根据需要获取下载,连接到网络摄像头,并获得预训练的神经网络。
camera = webcam; % Connect to the camera net = squeezenet; % Load the neural network
如果您需要安装
webcam
附加功能,对于函数都会显示一条带链接的消息,帮助您使用附加功能资源管理器下载免费的附加功能。或者,参阅 MATLAB Support Package for USB Webcams 相关内容。SqueezeNet 是预训练的卷积神经网络 (CNN),已基于超过一百万个图像进行训练,可以将图像分为 1000 个对象类别(例如键盘、鼠标、咖啡杯、铅笔和多种动物)。
运行以下代码来显示和分类实时图像。将网络摄像头对准一个对象,神经网络会报告它认为网络摄像头正在显示哪类对象。网络会持续进行图像分类,直到您按下 Ctrl+C 为止。该代码使用
imresize
针对网络调整图像的大小。while true im = snapshot(camera); % Take a picture image(im); % Show the picture im = imresize(im,[227 227]); % Resize the picture for squeezenet label = classify(net,im); % Classify the picture title(char(label)); % Show the class label drawnow end
在此示例中,网络对咖啡杯进行了正确分类。用您周围的物体进行试验,看看该网络的准确度如何。
要观看此示例的视频,请参阅使用 11 行 MATLAB 代码进行深度学习。
要了解如何扩展此示例并显示类的概率分数,请参阅使用深度学习对网络摄像头图像进行分类。
在深度学习的后续步骤中,您可以将预训练网络用于其他任务。通过迁移学习或特征提取解决新的图像数据分类问题。有关示例,请参阅使用迁移学习更快地开始深度学习和使用从预训练网络中提取的特征训练分类器。要尝试其他预训练网络,请参阅预训练的深度神经网络。
另请参阅
imagePretrainedNetwork
| dlnetwork
| trainingOptions
| trainnet