学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#学生成功#金宝app

帮我报名吧!- MATLAB手语翻译

在今天的帖子中, Harshita沙玛 加入我们,谈谈她如何使用MATLAB和迁移学习来构建一个应用程序,帮助不同能力的孩子解释手语字母!她的破解为她赢得了MATLAB最佳使用奖 HackMerced七世 !非常酷!哈什塔,交给你了……
mypic.jpg
我叫哈希塔·夏尔马,来自印度。我是BIT, Mesra的大三学生,主修计算机科学。我是一个科技爱好者,总是找机会学习,发展,让自己适合科技行业。我喜欢学习新技术,并运用我的知识来解决现实问题。我攻读计算机科学学位的主要原因之一是让技术更容易为非科技行业的人所接受,比如我的祖父母、小商人、农民等,以及不同能力的人所接受!我喜欢用代码开发应用程序,也是一个开源软件爱好者!我也在努力提高我的数据结构和解决问题的能力。跳卡萨克舞和听音乐有助于我放松。我喜欢到各地旅游,体验他们的文化和美食。你可以在我的社交媒体链接下面关注我和我的工作。

灵感

手语对于不同能力的人来说是必要的,尤其是聋哑人,因为这是他们交流的方式。据估计,有7000万聋哑人使用手语,大约有100万人使用美国手语作为他们的主要交流语言。它是最古老、最自然的交流语言形式之一,但由于大多数人不懂手语,而且很难找到口译员,我提出了一种基于美国手语的实时手指拼写方法,使用神经网络。
我为聋哑儿童,特别是他们周围的人建造了这个平台,这样他们就可以使用一个互动平台来学习。
alphabets.jpg

分解问题

聋哑人用他们的手来表达不同的手势来表达他们的想法。手势是非语言交换的信息,这些手势是通过视觉来理解的。聋哑人的这种非语言交流被称为手语。手语是一种视觉语言,由三个主要部分组成
问题分为三个部分:

1.创建数据集

我创建了自己的数据集,原因如下,首先,我找不到一个数据集的大小与alexnet的输入层相同,其次,通过创建我自己的数据集,并在其他数据集上工作,让我意识到在自己的构建数据集上工作可以提高准确性。为了这个目的,我为每一封信拍了300张照片。在制作数据集时,我还记得背景和光照条件。

2.训练模型

迁移学习是深度学习应用中常用的一种方法。你可以使用预先训练好的网络,并将其作为学习新任务的起点。用迁移学习对网络进行微调通常比用随机初始化权重从头训练网络更快,需要的数据更少。您可以使用经过大型数据集训练的网络中的层,并对新数据集进行微调,以识别新的对象类。

我是如何实现它的?

创建数据集

为了创建数据集,我使用了USB网络摄像金宝app头的MATLAB支持包,如果你正在使用MATLAB在线,无需额外安装,观看这个视频了解更多。首先创建一个处理区域并声明变量temp,然后设置一个while循环来创建数据集文件夹,因此循环将一直运行,直到点击了300张照片。在循环中,图像被存储在“BMP”中,图像被调整大小并裁剪为AlexNet,因为它的输入层需要大小的图像227 * 227.清除相机对象c会断开网络摄像头的连接吗
C =网络摄像头;创建相机对象
%处理区域
X = 0;
Y = 0;
高度= 300;
宽度= 300;
Bboxes =[x y高度宽度];
temp = 0;
循环为每个字母点击300张照片
临时< = 300
e = c.snapshot;
IFaces = insertObjectAnnotation(e,“矩形”bboxes,加工区的);
imshow (ifac);
文件名= strcat (num2str(临时)bmp格式的);图像文件名
es = imcrop (e, bboxes);
es = imresize (es (227 227));调整大小以满足AlexNet的规格
imwrite (es、文件名);
temp = temp + 1;
drawnow;
结束
清晰的c

培训网络

对于这个应用程序,如上所述,我使用了AlexNet,这是一个8层深的卷积神经网络。的预训练版本AlexNet对来自ImageNet数据库的100多万张图像进行训练。预训练的网络可以将图像分类为1000个对象类别,例如键盘、鼠标、铅笔和许多动物。因此,该网络已经学习了广泛图像的丰富特征表示。网络的图像输入大小为227 * 227。下载AlexNet我使用AlexNet的深度学习工具箱模型文件交换提交。
G = alexnet;
图层= g.图层;%提取图层
layers(23) = fullyConnectedLayer(10);% 10表示输出大小
layers(25) = classificationLayer;
allImages = imageDatastore(“测试”“IncludeSubfolders”,真的,“LabelSource”“foldernames”);
opts = trainingOptions(“个”“InitialLearnRate”, 0.001,“MaxEpochs”, 20岁,“MiniBatchSize”, 64);
myNet1 = trainNetwork(allImages,layers,opts);
保存myNet1

测试网络

为了测试我训练过的网络,我首先加载网络,然后连接到网络摄像头以实时传输图像。然后,我裁剪出处理区域并调整大小以适应AlexNet的输入层要求。
负载myNet1加载经过训练的网络
C =网络摄像头;%创建相机对象
x = 0;
y = 0;
身高= 300;
宽度= 300;
Bboxes =[x y高度宽度];
%循环
真正的
e = c.snapshot;
IFaces = insertObjectAnnotation(e,“矩形”bboxes,加工区的);
es = imcrop (e, bboxes);
es = imresize (es (227 227));
标签=分类(myNet1, es);
imshow (ifac);
标题(char(标签));
drawnow;
结束

结果

正如你在下面的照片中看到的,我训练的网络能够实时识别字母a。我能够得到这个运行在一个周末的黑客和你也可以!我的代码在这里可用GitHub库你可以看这个YouTube视频我参加了黑客马拉松。

为什么MATLAB ?

我的MATLAB之旅始于我在工程学院的第二年,当时我的教授向我介绍了MATLAB。我真的很喜欢通过MATLAB,我们可以在几秒钟内计算矩阵乘法,而在现实生活中,或者在编码时,它需要几分钟才能解决。MATLAB似乎是一个谜,一个吸引我的谜。所以,我做了MATLAB斜坡弯道并且更加关注我的MATLAB课程。最终,我对MATLAB的兴趣越来越浓厚。我还在学习,希望有一天能成为MathWorks的一员!

我是如何参与HackMerced的?

我是黑客马拉松的忠实粉丝,为什么不呢,当你参加黑客马拉松时,你可以认识新朋友,学习新东西,最重要的是建立一个项目!如果你赢了黑客马拉松就更好了。所以,怀着同样的想法,我决定参加黑客马拉松。一天晚上,我在浏览黑客联盟的网站时,发现了一个GitHub库在那里我看到了一些MLH黑客松,MATLAB是其中的合作伙伴,那就是我决定参加这个项目的时刻。所以,是的,很有趣,但这是真的,这就是我如何参加HackMerced黑客马拉松,并建立了一个MATLAB项目,并赢得了“最佳使用MATLAB”类别奖。这是我收到的奖品。

|
  • 打印
  • 发送电子邮件

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。