用MATLAB进行深度学习:11行MATLAB代码中的深度学习
从系列中:基于MATLAB的深度学习
观看如何使用MATLAB的快速演示®一个简单的网络摄像头,以及一个深度神经网络来识别你周围的物体。本演示使用AlexNet,一个预先训练过的深度卷积神经网络(CNN或ConvNet),它已经经过了超过一百万张图像的训练。
该示例包含两个部分:设置摄像机和执行对象识别。第一部分展示了如何使用网络摄像头
命令从相机获取图像。使用drawnow
命令,MATLAB能够不断更新和显示相机拍摄的图像。
第二部分说明了如何下载一个预先训练好的深度神经网络AlexNet,并使用MATLAB对相机图像进行连续处理。AlexNet将图像作为输入,并为图像中的对象提供一个标签。你可以用周围的物体做实验,看看AlexNet有多准确。
今天,你可以用MATLAB很容易地做到这一点,但即使在几年前,它也会被认为是科幻小说。
了解更多MATLAB深度学习或下载演示代码.
记录时间:2016年12月6日
你好。我叫乔·希克林。我是MathWorks的高级开发人员。我一直在用MATLAB和神经网络工具箱进行深度学习的实验。我写了一个简单的小程序,做了一些很酷的事情。我现在就给大家展示一下。
我所做的就是把一个网络摄像头连接到一个能识别图像的神经网络上。现在我可以把摄像头对准各种物体,它就能识别出来。开瓶器,或者螺丝刀,或者左轮手枪,口琴,茶壶,铲子,诸如此类的东西。它不是完美的,但它做得相当不错。
让我们看看实现这个的代码。这就是整个程序,对吧?只有11行。我们会讲一遍。但是我们要分三个阶段来做。
我们要清理工作区。我们会让摄像头连接到网络摄像头,用摄像头拍一张照片,最后,把照片显示在屏幕上。当我们运行这个时,我们会得到一个新的图片。这就是我们刚刚拍的照片。
但这是静止图像。我们希望这个视频是连续的。所以我们要再加三行,把它放入一个循环中。
我们将在拍摄照片的代码周围放置一个while循环。我们现在添加一个绘图,这样MATLAB就可以立即绘图。当我运行这个,我们会得到同样的结果。但现在,这是一个直播视频。
最后,我们需要加入神经网络。我用的是一个叫AlexNet的网络。AlexNet是一个大型深度卷积神经网络。他们用超过一百万张图片训练这个网络。它可以识别大约1000种不同的物体。
我已经下载了。现在我们可以用它了。这条线将要求网络对我们刚刚拍摄的照片进行分类。我们将每张图片传递给网络它会返回图片的标签。
在此之前,我们必须将图片大小调整为AlexNet所期望的大小。它是针对特定大小的图像进行训练的。最后,我将在我的图片标题中使用这个标签。我需要用这个命令把它转换成一个字符串。
我们都准备好了。这些是直线。让我们再运行一遍。我们又开始跑了。
我能认出键盘,或者空格键。认出我的鼠标,或者是抹刀。好了。
我希望这个程序的简单性能鼓励你尝试深度学习。下一步自然是尝试迁移学习。迁移学习是指你使用像AlexNet这样的网络,在你自己的特定图像上重新训练最后几层。这将导致一个网络甚至更好的AlexNet为您的特定图像。如果您有兴趣了解更多关于如何将深度学习应用于您的问题,请点击描述中的链接。
下载代码和文件
了解更多
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。