学生休息室

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

签了我!——在MATLAB手语解释

在今日的帖子里, Harshita沙玛 和我们谈论了她如何用MATLAB和转移学习来构建一个应用程序,这个应用程序可以帮助残疾的孩子解释手语字母!她砍她赢得了最佳使用MATLAB的奖 HackMerced七世 !非常酷!Harshita,交给你了…
mypic.jpg
我的名字叫Harshita沙玛,我来自印度。我是一个大三学生,Mesra主修计算机科学。科技爱好者,我总是能找到一个学习的机会,发展和让自己适合科技行业。我喜欢学习新技术和实现我的知识来解决实际问题。的一个主要原因为什么我追求学位计算机科学是使技术更容易对那些科技产业的一部分,不像我的祖父母的人,小商人、农民、等残疾的和可访问的!我喜欢使用代码来开发应用程序,是一个开源软件爱好者!我也工作在我的数据结构和解决问题的能力。Kathak跳舞和听音乐帮助我放松。我喜欢的地方旅行,体验他们的文化和美食。你可以跟我来,我的工作在我的社交媒体链接如下。

灵感:

手语是必要的对残疾的人来说,尤其是聋人因为它是他们的沟通方式。据估计,有7000万聋人用手语和大约有100万人使用美国手语作为他们的主要的交流语言。这是一个最古老的和最自然的形式的语言沟通,但是由于大多数人不知道手语和口译员很难获得,我想出了一个实时的方法使用神经网络进行基于美国手语的手语。
我建立这个失聪儿童尤其是和周围的人,这样他们可以学习使用一个互动的平台。
alphabets.jpg

分解问题:

又聋又哑的人使用他们的手来表达与他人不同的手势来表达自己的想法。手势用非语言的方式是交换信息和这些手势理解与愿景。这种非语言沟通的又聋又哑的人叫做手语。手语是一种视觉语言,由三个主要组件
这个问题分为三部分:

1。创建一个数据集

我创建了自己的数据集的原因之后,首先,我无法找到一个数据集大小一样的alexnet的输入层,其次通过创建自己的数据集和工作在其他数据集让我意识到,在自己的工作建立数据集增加准确性。我每封信为此拍摄300张照片。同时使数据集一件事我牢记这是背景和照明条件。

2。训练模型

在深度学习应用程序转移学习是常用的。pretrained网络,可以使用它作为一个起点,学习一个新任务。微调网络转移学习通常是更快和需要较少的数据比训练一个网络随机初始化权重从零开始。可以使用层从网络大数据集上训练和调整一个新的数据集来确定新类的对象。

我是怎么实现它?

创建数据集:

创建数据集,我使用了MATLAB为金宝appUSB摄像头支持包如果您正在使用MATLAB在线不需要额外的安装,看这个视频要学习更多的知识。首先创建一个加工区和临时宣布变量。然后一个while循环将创建数据集文件夹,这样循环运行,直到300年被点击照片。循环,图像存储在BMP和图像缩放和裁剪AlexNet作为它的输入层需要的图像的大小227 * 227。清理相机对象c将关闭连接网络摄像头吗
c =摄像头;%创建相机对象
%处理区域
x = 0;
y = 0;
身高= 300;
宽度= 300;
bboxes = (x y高度宽度);
temp = 0;
%循环为每个字母点击300张照片
临时< = 300
e = c.snapshot;
ifac = 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层深。你可以加载的pre-trained版本AlexNet训练从ImageNet数据库超过一百万张照片。pretrained网络可以分类图像到1000年对象类别,如键盘,鼠标,铅笔,和许多动物。因此,网络学习丰富广泛的图像特征表示。的网络图像输入大小227 - 227。下载AlexNet我使用了深度学习AlexNet工具箱模型文件交换提交。
g = alexnet;
层= g.Layers;%提取层
层(23)= fullyConnectedLayer (10);% 10表示输出尺寸
层(25)= classificationLayer;
allImages = imageDatastore (“测试”,“IncludeSubfolders”,真的,“LabelSource”,“foldernames”);
选择= trainingOptions (“个”,“InitialLearnRate”,0.001,“MaxEpochs”,20岁,“MiniBatchSize”,64);
myNet1 = trainNetwork (allImages层,选择);
保存myNet1;

测试网络:

测试我的训练网络,我首先加载网络,然后做一个摄像头连接在实时图像流。然后我突然发生刺加工区和调整,以适应AlexNet的输入层的需求。
负载myNet1;%负荷训练网络
c =摄像头;%创建相机对象
x = 0;
y = 0;
身高= 300;
宽度= 300;
bboxes = (x y高度宽度);
%循环
真正的
e = c.snapshot;
ifac = insertObjectAnnotation (e,“矩形”bboxes,加工区的);
es = imcrop (e, bboxes);
es = imresize (es (227 227));
标签=分类(myNet1, es);
imshow (ifac);
标题(char(标签));
drawnow;
结束

结果

可以看到在下面的图片中,我训练的网络是能够识别字母a,在实时。我能够得到这个启动并运行引起黑客的一个周末,你也可以!我的代码是可用的GitHub库你可以看这个YouTube视频我提交给马拉松”。

为什么MATLAB ?

我的MATLAB旅程开始在我2年工程学院当我教授introducedus MATLAB。我真的很喜欢我们如何通过MATLAB可以计算矩阵乘法在几秒钟内时在现实生活中或编码需要分钟解决。MATLAB的似乎是一个谜,一个谜,吸引了我。所以,我做了MATLAB斜坡弯道更加关注我的MATLAB类。最终,我的MATLAB越来越感兴趣。我仍然在学习,希望总有一天是MathWorks的一部分!

我如何参与HackMerced吗?

我喜欢活动,为什么不呢,当你参加一个单独的去认识新朋友,学习新事物,最重要的是建立一个项目!如果你赢了马拉松”更好。所以,相信同样的概念我决定参加一个马拉松。我是滚动黑客大联盟的网站上一个晚上,遇到一个GitHub库在那里我看到一些MLH黑客马拉松,MATLAB是一个合作伙伴,就在那一刻,我决定参加这个。是的,有趣的,但事实就是我参与HackMerced Hackathon和MATLAB建立了一个项目,赢得了“最佳使用MATLAB”类别奖耶。这是我收到的赢得赃物。

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。