0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习将教授的白板草图转换为可用的模型

MATLAB 来源:MATLAB 作者:MATLAB 2022-12-15 15:39 次阅读

有些研究课题是为了回答理论问题。有些研究课题是为了解决研究人员自己的问题。伊斯坦布尔理工大学的人工智能智能系统实验室主任、控制和自动化工程教授 Tufan Kumbasar 的研究就属于后一种情况。

控制和自动化工程师经常使用反馈控制架构 (FCA) 来设计闭环控制,目的是管理或调节系统的行为以实现预期的结果。系统会反馈当前状态并将其与期望状态进行比较,然后系统进行调整以保持期望状态。这种类型的控制系统用于设置汽车的巡航控制、调节加热系统和管理工厂。

通常,讲授控制理论的教授会在白板上绘制 FCA。为了展示和分析系统的动态行为(即,它在各种输入下的行为),教授会在模块图旁边绘图。但这需要时间,而且每次更改 FCA 后都要重新绘图。解读这些绘图可能也很困难。

d5f29bd0-7b97-11ed-8abf-dac502259ad0.jpg

d60a49d8-7b97-11ed-8abf-dac502259ad0.jpg

d637401e-7b97-11ed-8abf-dac502259ad0.jpg

FCA 白板绘图示例。(图片所有权:伊斯坦布尔理工大学)“学生面临的主要挑战是识别我的板书和我糟糕的绘图,它们根本不成比例,”Kumbasar说。“他们很难理解这种图。”

一种替代方法是在 MATLABSimulink 等科学计算软件中重新创建FCA,并将计算出的绘图投影到屏幕上。“MATLAB 有很好的可视化能力,”Kumbasar 说。”但在课堂上编码需要花费额外的时间和精力。”

然后,Kumbasar 想到了应用人工智能 (AI) 来帮助控制系统课堂上的教学。

“初衷有点自私,”他说。“当时我担任学院副院长,忙于许多行政工作。我同时承担部分教学工作。有一天,我筋疲力尽,告诉我的研究生,我真的很累。我的教学要么都在计算机上完成,要么都在白板上完成。”

然后,他找到正在积极合作研究深度学习方法的研究生 Dorukhan Erdem 和 AykutBeke。“我说’Dorukhan,既然你们在一起研究新颖的结构。为我创建一个应用程序怎么样?我就当你们的实验小白鼠。’”

Kumbasar教授设想的应用程序是一个深度学习系统,它可以拍摄白板的照片并在 MATLAB 中自动重新创建 FCA。这种想法在 MathWorks 框架内是可行的,其中像Simulink 这样的控制工具与基于学科的工具箱(如 Deep Learning Toolbox 和 Computer VisionToolbox)在相同的环境中工作。

▼使用深度学习将白板转换为模型

甘作实验小白鼠意味着需要绘制很多 FCA。Erdem 对这些绘图进行拍摄并标注,以便计算机基于它们进行学习。五个院系的教师为六种 FCA 中的每一种至少绘制 10 个模块图,总共得到 306 张图像。教师在不同光照条件下绘制草图,使这个挑战更具有现实意义。然后,Erdem 和 Beke 手动标注所有模块和其中的符号。在训练期间,深度学习模型会猜测这些标签,并在不正确时调整其内部参数。

最终的应用程序流程发表在《IEEE Access》期刊上,包括五个步骤。

d65fa392-7b97-11ed-8abf-dac502259ad0.jpg

将白板草图转换为代码的步骤图。(图片所有权:伊斯坦布尔理工大学)

首先是识别草图与六种架构类型中的哪一种最匹配。Kumbasar 的团队使用了一种称为ResNet-50 的预训练深度神经网络,它使用 50 个网络层和一些跳过中间层的长距离连接,从而提高性能。

306张图像对于训练神经网络来说并不算多,尤其是这么大的神经网络,因此团队采用了两个技巧。首先是一种称为迁移学习的做法。他们使用预训练的 ResNet-50网络(该网络基于成千上万张日常物品的照片进行训练)并替换了网络的最终层,从而仅基于他们自己的照片训练该层。第二个技巧是数据增强,该团队通过创建经过稍微旋转或缩放的版本来增加图像的数量。经过训练后,他们的流程的第一个步骤在对手写反馈控制架构进行分类方面达到了89% 的准确度。

流程中的第二个步骤是检测模块。程序将图像转换为二值图像- 在黑色背景上显示白线,没有其他颜色或灰色。然后,它去除了字符和噪声。接下来,它填充封闭的形状,并将模块与由模块之间的反馈回路创建的封闭形状分离开来。

第三个步骤是,流程识别在模块中书写的字符,包括数字和算术运算符。它将图像二值化,围绕每个字符进行裁剪,并应用基于3920 个图像进行训练的另一个神经网络。

遇到的一个困难是区分“5”和“s”。Kumbasar 说,“我写的 5 和 s太相似了。Dorukhan 总是抱怨我的书写很糟糕。控制工程师凭直觉会认为我不会写 55+1,写的应该是 5s+1。但 AI系统不具备这种直觉。”尽管如此,此阶段的准确率达到了 96%。

第四个步骤是,应用程序将字符组合成 MATLAB函数。如果一个字符位于另一个字符的右上方,系统称之为指数,并插入“^”。如果一条水平线的上下都有字符,系统将其视为除法而不是减法。

d67f4936-7b97-11ed-8abf-dac502259ad0.jpg

用深度学习分割和区分字符。(图片所有权:伊斯坦布尔理工大学)

在第五个步骤中,工作流将这些函数放到正确的模块中,在 MATLAB 中将它们连接成一个完整的FCA。它还基于团队创建的模板创建一个 Simulink 图。

Erdem表示,对于使用 ResNet-50 这样的神经网络进行深度学习来说,MATLAB 是有用的解决方案。Kumbasar 补充说,通过 MATLAB可以方便地进行流程步骤之间的集成。他认为,“在MATLAB 中,将数据数组和图像从一个工具箱发送到另一个工具箱或从同一个工作区中读取数据是很容易的。”

▼从草图开始“当这个 FCA 应用程序实时工作时,我感到很惊讶,”Kumbasar 说。“我们在不同光照条件下测试整个流程,并混合了各人的书写,可以说是尽一切可能增加了难度。

各个单独部分都能良好地工作。Kumbasar 补充说,“但一旦您连接整个流程,如果一个部分出错,另一个也会受到影响。因此,误差始终会在从输入到输出的过程中放大。”在这里,一切都在按部就班进行。“Dorukhan说这是有趣的工程,让他充满动力。他找了很多超高难度的测试图像。”

整个系统的成功程度很难度量,该团队尚未考察学生在实际教学中对该系统的体验,新冠疫情就出现了。他们在YouTube上发布了一段视频,视频中教师在白板上绘制FCA。片刻后,相同的 FCA 出现在白板上方的 Simulink 投影中,随后是展示其行为的绘图。

提供白板绘图的教授之一 İlker Üstoğlu 说,他对此印象深刻。如果该应用程序作为产品推出,他会使用它。“它为教学提供了便利。”

FCA 白板绘图实时转换为 Simulink。(视频所有权:伊斯坦布尔理工大学)▼进入理论领域不管该系统多么出色,仍有部分课堂不准备用 MATLAB 转换白板 FCA。Erdem 对该应用程序进行了优化,例如将 ResNet 限制在 50 层,使其可以仅在一个 GPU 上实时运行,但它仍需要一台高分辨率相机和一台具有GPU的笔记本电脑,而许多课堂并未配备这些设备。

“科学研究或者是出于好奇,或者是出于满足需求。这项研究是满足我的个人需求。”—— Tufan Kumbasar,伊斯坦布尔理工大学人工智能和智能系统实验主任、控制和自动化工程教授

d6a0d52e-7b97-11ed-8abf-dac502259ad0.jpg

d6c71dce-7b97-11ed-8abf-dac502259ad0.jpg

d6e2e540-7b97-11ed-8abf-dac502259ad0.jpg

借助深度学习,应用程序能够将不同风格的书写转换为 MATLAB 函数,并将函数放在正确的模块中。(图片所有权:伊斯坦布尔理工大学)

与此同时,研究人员正在考虑进行几项改进。Erdem 希望该程序能够处理六种以上的架构。当字符接触到周围的框时,系统也会难以识别,因此 Kumbasar 增加了置信水平,使系统能够指示其标签的确定性。

集成模糊逻辑也是一个优先事项。“在模糊逻辑中,您不会说超过一定身高的每个人都是高个子,而其他人都不是,”Kumbasar 解释道。“人们可能会说个子有点高,从而导致后续更微妙的决定。在 MATLAB 中很容易建立模糊层,模糊层将其与神经网络结合使用,或用于组成完整的模糊系统。”

如果该流程真的成为一种产品,其应用范围可能不仅限于课堂上。教授可能会用它将学生的手写试卷或课下作业转换为 MATLAB 模型来评分。学生可能用它将自己的课堂笔记数字化,并在 MATLAB 中使用 FCA。Kumbasar 说他想在研究中做同样的事情。MathWorks 的工程师 Marco Rossi 指出,许多学生和研究人员更喜欢用笔和纸来分析问题,然后将手写内容放入 Simulink 中来生成 C 代码。这种习惯可能源于控制理论的教学方式。但有了类似 Kumbasar 推出的这种工具,可能会促使人们在设计过程中更早地从纸上转移到屏幕上,从而更轻松地使用模块。

除了解决他自己的问题和推进到理论研究之外,Kumbasar 还提到此项目的另一个好处。“这项研究也能很好地激励本科生,”他说。让他们认识到工程灵感可以来自每天面对的难题。“科学研究或者是出于好奇,或者是出于满足需求。”Kumbasar 说。“这项研究满足了我的个人需求。”

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    5966

    浏览量

    108756
  • 深度学习
    +关注

    关注

    73

    文章

    5240

    浏览量

    119936
  • FCA
    FCA
    +关注

    关注

    1

    文章

    24

    浏览量

    5170

原文标题:教学前沿 | 深度学习将教授的白板草图转换为可用的模型

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA在深度学习应用中或取代GPU

    对神经网络进行任何更改,也不需要学习任何新工具。不过你可以保留你的 GPU 用于训练。” Zebra 提供了深度学习代码转换为 FPGA
    发表于 03-21 15:19

    深度学习如何训练出好的模型

    算法工程、数据派THU深度学习在近年来得到了广泛的应用,从图像识别、语音识别到自然语言处理等领域都有了卓越的表现。但是,要训练出一个高效准确的深度学习
    的头像 发表于 12-07 12:38 665次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>如何训练出好的<b class='flag-5'>模型</b>

    深度学习的由来 深度学习的经典算法有哪些

    深度学习作为机器学习的一个分支,其学习方法可以分为监督学习和无监督学习。两种方法都具有其独特的
    发表于 10-09 10:23 365次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>的由来 <b class='flag-5'>深度</b><b class='flag-5'>学习</b>的经典算法有哪些

    K210是否可以模型分层实现?

    请问各位 是否可以模型分层实现,实现的思路大概如何。是先训练好模型,分层转换为kmodel,依次实现各层kmodel,还是导出整体kmodel后,可以获得各层输出。
    发表于 09-15 06:17

    深度学习的定义和特点 深度学习典型模型介绍

    深度学习(Deep Learning)是一种基于人工神经网络的机器学习算法,其主要特点是模型由多个隐层组成,可以自动地学习特征,并进行预测或
    发表于 08-21 18:22 1295次阅读

    深度学习框架和深度学习算法教程

    了基于神经网络的机器学习方法。 深度学习算法可以分为两大类:监督学习和无监督学习。监督学习的基本
    的头像 发表于 08-17 16:11 727次阅读

    深度学习框架tensorflow介绍

    深度学习框架tensorflow介绍 深度学习框架TensorFlow简介 深度学习框架Tens
    的头像 发表于 08-17 16:11 1499次阅读

    深度学习框架是什么?深度学习框架有哪些?

    深度学习框架是什么?深度学习框架有哪些?  深度学习框架是一种软件工具,它可以帮助开发者轻松快速
    的头像 发表于 08-17 16:03 1792次阅读

    什么是深度学习算法?深度学习算法的应用

    什么是深度学习算法?深度学习算法的应用 深度学习算法被认为是人工智能的核心,它是一种模仿人类大脑
    的头像 发表于 08-17 16:03 1492次阅读

    ONNX模型转换为中间表示(IR)后,精度下降了怎么解决?

    ONNX 模型转换为 IR。 与使用 PyTorch 运行 ONNX 模型相比,Ran IR 采用 基准 C++ 工具,其性能准确率降低了 20%。 无法确定如何对图像进行预处理
    发表于 08-15 08:28

    YOLOv5 ONNX模型转换为中间表示(IR)格式时,收到与节点相关的错误怎么解决

    YOLOv5 ONNX 模型转换为 IR 格式:python /opt/intel/openvino_2021/deployment_tools/model_optimizer/mo.py
    发表于 08-15 08:14

    如何Detectron2和Layout-LM模型转换为OpenVINO中间表示(IR)和使用CPU插件进行推断?

    无法确定如何 Detectron2* 和 Layout-LM* 模型转换为OpenVINO™中间表示 (IR) 和使用 CPU 插件进行推断。
    发表于 08-15 06:23

    Pytorch模型转换为DeepViewRT模型时出错怎么解决?

    我最终可以在 i.MX 8M Plus 处理器上部署 .rtm 模型。 我遵循了 本指南,我 Pytorch 模型转换为 ONNX 模型
    发表于 06-09 06:42

    飞凌嵌入式RK3588开发板推理模型转换及测试

    RKNN(Rockchip Neural Network)是一种用于嵌入式设备的深度学习推理框架,它提供了一个端到端的解决方案,用于将训练好的深度学习
    的头像 发表于 06-05 16:11 784次阅读
    飞凌嵌入式RK3588开发板推理<b class='flag-5'>模型</b><b class='flag-5'>转换</b>及测试

    如何电阻转换为颜色?

    我创建了一个电阻程序来计算颜色的电阻,但我不确定如何电阻转换为颜色。你能帮我把这个放在一起吗? 例如,如果我输入 100 欧姆和 5% 的公差,则会出现棕色、黑色、棕色和金色。
    发表于 05-12 08:57