学生休息室

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

阅读房间 - 虚拟教室的黑客

过去的一年里,教育的传授方式发生了一些根本性的变化——视频电话、在线小组项目、时髦的虚拟背景,以及因为前一天晚上在YouTube上看了猫咪视频而无法补上额外的睡眠,等等。在今天的文章中,我很高兴地介绍了所有的获奖者多伦多大学的NewHacks 2020。newhacks是一名官方大联盟黑客(MLH)活动针对与众不同或没有黑客体验的参与者。今年哈克松的主题是数字教育和生活方便。我们的客人博主 -马克哈拉艾米丽陈Minnie Menezes., 和alaa hatoum将谈论他们的数字教育黑客,旨在帮助教育工作者和学生改善他们在2020/2021年虚拟的、远离社交的课堂上的体验。
-
在线教育在Covid-19之后成为一个越来越重要的话题。我们团队的使命是帮助解决这一新转变对在线学习的关键问题。

灵感

你有没有参加在线讲座,并变得迷失或混淆了教师所说的?传统上,教练可以环顾教室,并衡量课程如何对所提出的材料感觉。例如,教师可能会注意到学生在飞行中困惑和改变他们的演示文稿,也许在更详细的细节中解释一个概念,或者如果他们注意到大多数人理解,那么也许不是解释概念。这个过程被称为“阅读房间”,这是我们旨在进入在线教育的概念。问题很清楚,教授根本不能看出超过50个小的屏幕(例如,在缩放呼叫上)以认为他们的班级如何以与现实课堂在一起的方式相同的方式感受到这些材料。

分解问题

我们的想法是使用计算机视觉和机器学习技术来弄清楚每个学生如何对材料感觉,然后以易于理解的教师格式传达该​​信息。我们通过首先将每个学生的视频馈送传递到计算机视觉算法来识别面,然后将提取的特征与机器学习算法一起使用,这可以使用它们的面部表情来弄清它们。然后,它计算参与的类的百分比,并呈现各种易于理解教师的信息。

我们是如何实施的?

我们决定使用MATLAB实现机器学习算法,并在UNITY中创建前端。我们团队的所有成员,包括实施机器学习算法的Emily,与Matlab有很少的经验。但是,我们发现MATLAB工具箱非常容易理解和使用。在几个小时内,我们已经完成了完全工作的原型。工具箱允许我们在更高级别的问题上思考问题,而不是担心每种机器学习算法的Nitty-griTy。下面我们介绍了我们在算法中使用的一些关键代码线,以及我们使用的工具箱应该有人希望与它们一起进行实验。
使用深度学习工具箱,我们选择了一个预先训练的模型,称为挤压网,并修改了它的层和参数,以适合我们的数据的需求。然后,我们向网络输入我们的数据集——大量标记为“分心”或“专注”的面部图像——然后网络教会自己如何区分两者。一旦网络完成了训练,我们将它导出为ONNX文件/网络,以便它可以重用,我们使用下面所示的第一行代码将它导入到主脚本中。
%从深层学习工具箱导入预先训练的网络是那么容易!
TRAINARNETWORK_1 = IMPORTONNXNETWORK(“trainedNetwork_1.onnx”......
'outputlayertype''分类'“课程”,[“分心”“专注”]);
%创建面部探测器对象。
FaceDetector = Vision.cascadeObjectDetector();
在这里,我们省略了查找和检测人脸的代码,但我们附加了链接
%帮助我们实施此功能
网('//www.tatmou.com/help/vision/ug/face-detection-and-tracking-using-the-klt-algorithm.html');
我们在视频帧中捕捉脸部
我= Videoframe;
i = imresize(i,[227 227]);
%我们使用培训的网络进行简单的分类
[ypred,probs] =分类(troutahynetwork_1,i);
标签= YPred;
成为一个虚拟的Hackathon,协调和团队合作可能更重要,而且比以往任何时候都更困难。虽然Emily正忙于将最终触摸添加到机器学习算法,但Mark正在统一的前端工作,并且Alaa和Minnie正在为最终演示创建幻灯片,脚本和视频。然而,这只是Hackathon的最后一部分。一天的第一部分涉及通过所有团队成员通过MATLAB的图像处理的不同方法以及我们所处理的工具箱的探索。值得庆幸的是,Emily能够找到工具箱 - 深度学习工具箱和计算机视觉工具箱,这适合我们的情况。
但是,有问题的问题是培训代码的正确数据集。Alaa和Minnie将自己拿到自己以找到适合我们局势的数据集。经过几个小时的研究和达到有权访问不同方向的面孔数据集的研究机构,他们能够找到我们用于训练系统的极其有效和有用的数据集。我们有我们的讨论团队聊天,我们不断沟通和帮助彼此解决问题。我们要处理的最重要问题之一是如何将Matlab算法与Unity Frontent连接。值得庆幸的是,由于Matlab的仪器控制工具箱,这是一个简单而无痛的过程。下面我们展示了如何实现这一目标。
首先,我们从MATLAB代码开始:
我们首先为MATLAB程序建立一个TCP客户端
clc
tcpipClient = tcpip ('127.0.0.1', 55001,'networkrole''客户');
set(tcpipclient,'超时', 30);
%在这里,我们省略了我们捕获视频帧的部分
%并预测学生是否集中在一起
在这里,我们将预测发送到统一的服务器
Fopen(TCPIPClient);
一个=标题;
fwrite(tcpipclient,a);
fclose(tcpipclient);
在Unity Side上,我们创建一个读取MATLAB的消息的服务器
//首先创建TCP服务器
new TcpListener(55001); / /新建TcpListener
listener.Start ();
// Update方法多次运行一秒钟,并侦听来自MATLAB的新邮件
空白Update ()
{
//我们检查是否有一个新的消息来自MATLAB
如果!listener.pending()
{
}
其他的
{
//如果有一条消息,我们会阅读它
TcpClient client = listener.AcceptTcpClient();
ns = client.GetStream();
StreamReader Reader = New StreamReader(NS);
味精= reader.ReadToEnd ();
}
//我们检查信息是否表明学生心不在焉
如果(味精。包含(“分心”))
{
//在这里我们做一些额外的逻辑和处理,并更新的图形教授。
}
完成后,所有这些都留下了测试,这里有一些改进,然后提交(以及一些急需的睡眠)。

结果

让我们快速查看用户如何使用我们的应用程序。首先,他们会登录。
接下来,他们可以选择观看过去录制的讲座。这允许用户了解如何提高他们的课程。例如,如果教授通知所有课程,他们在对某种概念的解释中变得混淆,他可以修改他解释的概念,或更详细地解释未来的课程。例如,如果他通知他的班级在大约2个小时后变得无聊,他可能会选择缩短他的讲座。
否则,他可以开始新的演讲了。首先,他打开zoom或任何其他视频消息应用程序。然后,他启动我们的应用程序。然后,我们的应用程序将分析每个学生的脸,并将这些信息可视化地展示给教授,例如下面的图表。
我们发现我们的MATLAB模型的准确性非常高,它可以准确地判断一个学生是否投入。MATLAB和Unity之间的TCP接口也能完美运行,允许应用程序每秒更新多次,提供即时反馈。

关键的外卖

总的来说,体验非常有趣。令人惊讶地易于使用并使用Matlab进行深度学习目的。尽管我们直接使用Python,但Matlab被证明就像有能力和易于学习。奖金是他们的工具箱集合,这使我们能够轻松地只添加我们想要的功能。以下是未来改进和功能的一些想法:
  • 添加检测以获得更多面部特征(例如混淆,无聊或兴奋)。
    • 这可以通过培训更大的数据集中的模型来完成,其中包含所有这些标签的情感。
  • 每隔几秒钟就保存课堂上的当前信息,这样教授就可以重新观看他们的课程,并确定学生在什么时候感到困惑,以便在以后的课程中提高。
    • 这可以通过简单地保存当前百分比的分散注意力或与CSV文件(或任何其他格式)的时间戳一起进行分散注意力或参与的学生。
  • 增加了跟踪每个学生在多节课上分心程度的功能,允许教授接触到需要帮助的特定学生。
    • 这可以通过添加面部识别算法来完成,该识别算法为每个学生创建一个单独的文件,并跟踪每节课期间的分散注意力/订婚程度。
    • 这也可用于为每个讲座创建一次出席列表。
我们希望你喜欢我们的博客,如果你有任何问题或意见,请随时联系我们!你也可以查看我们的devpost提交这里
|

评论

要留下评论,请点击这里登录到您的MathWorks帐户或创建一个新帐户。