一种编程训练系统及方法与流程

文档序号:18401716发布日期:2019-08-09 23:57阅读:201来源:国知局
一种编程训练系统及方法与流程

本发明涉及一种编程训练系统及方法,属于计算机技术领域。



背景技术:

随着科技的不断发展,人工智能逐渐步入了正轨,ai工程师的需求不断增加,更是把各种编程语言和算法推向了高潮。目前,国内的编程教育主要还是停留在本科起步阶段,相对国外的从儿时开始教育来说落后许多。在编程领域,逻辑和算法可以说是决定程序质量高低的关键,而儿童时期的悟性可以让我们养成更好的编程思维和算法逻辑。实体化的编程更可以帮助使用者形成编程逻辑和算法思维,以帮助他们成为大数据时代的创造者,在未来时代占据一席之地。

现有的少儿编程有makeblock和scratch,他们都是通过电脑端控制的,然而少儿大部分对于电脑的了解少之甚少,当前,国家对少儿科技类教育越来越重视。国外开始对少儿开设了“编程教育”的课程。美国麻省理工学院媒体实验室开发了一款专门为8-16岁儿童发布的开源编程软件——scratch,对儿童学习编程的兴趣起到了一定的激发作用。是,scratch也有一定的局限性。它的程序需要借助计算机拖动来完成程序的拼接,从而为编译做准备工作,这对于不懂计算机操作的儿童来说显然也是一个不小的挑战。



技术实现要素:

为解决上述问题,本发明的目的在于提供一种编程训练系统及方法,包括通过可视化编程平台如泡沫板等材料的简易拼接,然后对此泡沫板等材料进行图像采集,把采集的数据进行图像处理和图像分析,数据通过处理分析后,以源程序代码的形式返回,源程序代码可通过电脑端查询观看,达到可视化目的,采用卷积神经网络对其进行训练。在泡沫板等材料正确拼接前提下,确保代码输出无误。最后由电脑端将代码进行编译并下载到目标机器上,完成指定动作。

本发明解决其问题所采用的技术方案一方面是:一种编程训练系统,其特征在于,包括:可视化编程平台,用于根据图形模块拼接逻辑处理流程,得到可视化后的工作流程;图像采集模块,用于采集可视化编程平台生成的图形化工作流程,将模拟图像信号转化为数字信号,提供给后端的处理系统进行图像处理;图像处理算法模块,用于将处理后的图像采用图像算法进行二次处理,然后将二次处理后的图像作为训练素材进行神经网络训练,训练后的神经网络对图像进行转换得到对应代码,其中图像算法包括边缘检测算法和灰度世界算法;显示模块,用于显示图像处理后的结果和图像对应的代码形式。

进一步的,还包括存储控制模块,用于对图像采集模块处理的图像进行存储缓存。

进一步的,所述图形模块包括但不限于延时图形模块、判断图形模块、循环图形模块、运算符图形模块、缩进图形模块以及数值图形模块。

进一步的,所述图像处理算法模块还包括:算法处理单元,用于采用边缘检测算法和灰度世界算法,对图像数据进行处理,完成对图像的形状和颜色的二次处理;神经网络训练单元,用于将边缘检测算法单元处理后的图像作为训练素材,对神经网络进行训练,训练后的神经网络对图像进行转换得到对应代码。

进一步的,所述算法处理单元还包括边缘检测算法子单元和灰度世界算法子单元。

本发明解决其问题所采用的技术方案另一方面是:一种编程训练方法,其特征在于,包括以下步骤:s100、用户根据图形模块拼接逻辑处理流程,得到可视化后的工作流程;s200、图像采集模块采集可视化编程平台生成的图形化工作流程,将模拟图像信号转化为数字信号,提供给后端的处理系统进行图像处理;s300、图像处理算法模块将处理后的图像采用图像算法进行二次处理,然后将二次处理后的图像作为训练素材进行神经网络训练,练后的神经网络对图像进行转换得到对应代码,其中图像算法包括边缘检测算法和灰度世界算法;s400、显示图像处理后的结果和图像对应的代码形式。

进一步的,所述s200还包括对图像采集模块处理的图像进行存储缓存。

进一步的,所述s300还包括使用canny的边缘检测算法对图像进行处理,具体包括:s1、把彩色图像变成灰度图像,进行灰度化;s2、对灰度化后的图像进行高斯滤波处理;s3、计算梯度值和方向,使用四个梯度算子来分别计算水平,垂直和对角线方向的梯度;s4、非极大值抑制,寻找像素点局部最大值,沿着梯度方向,比较它前面和后面的梯度值;s5、使用双阈值,即一个高阈值和一个低阈值来区分边缘像素,若边缘像素点梯度值大于高阈值,则被认为是强边缘点,若边缘梯度值小于高阈值,大于低阈值,则标记为弱边缘点,小于低阈值的点则被抑制掉;s6、滞后边界跟踪,将由于噪声或颜色变化引起的若边缘点去掉,得到边缘处理后的图像。

进一步的,所述s300还包括使用灰度世界算法进行处理,用于在求得图像中场景的估计光源后,对待测图像进行评价,从而完成对图像的色偏检测。

进一步的,所述s300还包括将边缘检测算法单元处理后的图像作为训练素材,对神经网络进行训练,训练后的神经网络对图像进行转换得到对应代码。

本发明的有益效果是:使繁琐的代码变为浅显易懂的图形,采用泡沫板等材料来达到将编程难度降低的作用,使少儿更加易于接受编程思想,从小培养编程思维,从小加入缔造人工智能时代的行列。

附图说明

图1是根据本发明优选实施例的系统结构示意图;

图2是根据本发明优选实施例的方法流程示意图;

图3a、图3b是根据本发明优选实施例的可视化编程平台应用实施例;

图4是根据本发明优选实施例一。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。

参照图1是根据本发明优选实施例的系统结构示意图,

包括:可视化编程平台,用于根据图形模块拼接逻辑处理流程,得到可视化后的工作流程;图像采集模块,用于采集可视化编程平台生成的图形化工作流程,将模拟图像信号转化为数字信号,提供给后端的处理系统进行图像处理;图像处理算法模块,用于将处理后的图像采用图像算法进行二次处理,然后将二次处理后的图像作为训练素材进行神经网络训练,练后的神经网络对图像进行转换得到对应代码,其中图像算法包括边缘检测算法和灰度世界算法;显示模块,用于显示图像处理后的结果和图像对应的代码形式。

还包括存储控制模块,用于对图像采集模块处理的图像进行存储缓存。

所述图形模块包括但不限于延时图形模块、判断图形模块、循环图形模块、运算符图形模块、缩进图形模块以及数值图形模块。

所述图像处理算法模块还包括:算法处理单元,用于采用边缘检测算法和灰度世界算法,对图像数据进行处理,完成对图像的形状和颜色的二次处理;神经网络训练单元,用于将边缘检测算法单元处理后的图像作为训练素材,对神经网络进行训练,训练后的神经网络对图像进行转换得到对应代码。

所述算法处理单元还包括边缘检测算法子单元和灰度世界算法子单元。

参照图2是根据本发明优选实施例的方法流程示意图,

包括以下步骤:s100、用户根据图形模块拼接逻辑处理流程,得到可视化后的工作流程;

s200、图像采集模块采集可视化编程平台生成的图形化工作流程,将模拟图像信号转化为数字信号,提供给后端的处理系统进行图像处理;

s300、图像处理算法模块将处理后的图像采用图像算法进行二次处理,然后将二次处理后的图像作为训练素材进行神经网络训练,练后的神经网络对图像进行转换得到对应代码,其中图像算法包括边缘检测算法和灰度世界算法;

s400、显示图像处理后的结果和图像对应的代码形式。

s200、还包括对图像采集模块处理的图像进行存储缓存。

s300、还包括使用canny的边缘检测算法对图像进行处理,具体包括:s1、把彩色图像变成灰度图像,进行灰度化;s2、对灰度化后的图像进行高斯滤波处理;s3、计算梯度值和方向,使用四个梯度算子来分别计算水平,垂直和对角线方向的梯度;s4、非极大值抑制,寻找像素点局部最大值,沿着梯度方向,比较它前面和后面的梯度值;s5、使用双阈值,即一个高阈值和一个低阈值来区分边缘像素,若边缘像素点梯度值大于高阈值,则被认为是强边缘点,若边缘梯度值小于高阈值,大于低阈值,则标记为弱边缘点,小于低阈值的点则被抑制掉;s6、滞后边界跟踪,将由于噪声或颜色变化引起的若边缘点去掉,得到边缘处理后的图像。

s300、还包括使用灰度世界算法进行处理,用于在求得图像中场景的估计光源后,对待测图像进行评价,从而完成对图像的色偏检测。

s300、还包括将边缘检测算法单元处理后的图像作为训练素材,对神经网络进行训练,训练后的神经网络对图像进行转换得到对应代码。

参照图3a,图形模板示意图。

假设事件为:小车直行,电机1,2启动;离障碍物10cm时,灯亮,数码管1显示离障碍物距离;小车转向,电机1停止,电机2降低转速,延时2s达到转向;小车继续直行。图形拼接如图3b所示。

在图像处理系统中,基于采用大规模可编程逻辑阵列架构,具有高速图像采集、实时加速图像处理的优势,提出了一种以fpga芯片为核心处理器件的图像传感器数据采集系统的设计方案。采用cycloneiv系列ep4ce10e22c8为核心处理器的硬件平台,通过veriloghdl编程完成摄像头ov7725控制模块、sdram存储控制模块、图像处理算法模块以及vga显示模块的设计,完成对目标图像的采集、边缘信息提取以及图像的显示。图4是根据本发明优选实施例的系统结构图:

摄像头ov7725控制模块,将采取图形拼接后的图像,对其进行ad转换,将模拟图像信号转化为数字信号,提供给后端的处理系统进行图像处理。

sdram存储控制模块,接收摄像头控制模块的数据,将其进行存储缓存。sdram寄存器的存储阵列不断刷新,保证数据不丢失。

图像处理算法模块,包括sobel边缘检测算法和卷积神经网络两部分。首先采用sobel边缘检测算法,对sdram存储控制模块存储的数据进行处理。边缘是图像灰度值不连续导致的,可以利用求导的方法快速检测到这种不连续性。sobel算子进行边缘检测,sobel算子属于一阶导数的边缘检测。完成图形的边缘提取。最后,把生成的图像作为训练素材,对神经网络进行训练,从而确保又图像转换为代码的正确性。

vga显示模块,显示图像处理后的结果和图像对应的代码形式。

图形编程主要涉及的技术是图像识别处理和编译器,由于简易图形的拼接有两个特征:形状和颜色。我们团队针对此特征,在图像识别与处理技术方面采用基于canny的边缘检测算法和greyworld算法。

1.基于canny的边缘检测算法

边缘作为图像最基本的特征,能在保留物体形状信息的前提下,大大减少图像所要处理的信息,因此,边缘检测是图像处理领域最重要的关键技术之一。在众多图像边缘检测方法中,canny算法由于其优良的边缘检测特性——高准确度和高信噪比,得到了广泛应用。

canny算子求边缘点具体算法步骤如下:

(1)灰度化

把彩色图像变成灰度图像,该部分是按照canny算法通常处理的图像为灰度图,图形编程获取的思路彩色图像,那首先就得进行灰度化。

(2)高斯滤波

对图像高斯滤波,图像高斯滤波的实现可以用两个一维高斯核分别两次加权实现,也就是先一维x方向卷积,得到的结果再一维y方向卷积。

首先,一维高斯函数:

二维高斯函数:

模板中每一个点的高斯系数可以由上面的公式计算,需要归一化,也即是每一个点的系数要除以所有系数之和,这样才是最终的二维高斯模板。

(3)计算梯度值和方向

图形编程的实物设计的边缘可以指向不同方向,因此canny算法用了四个梯度算子来分别计算水平,垂直和对角线方向的梯度。但是通常都不用四个梯度算子来分别计算四个方向。常用的边缘差分算子(如rober,prewitt,sobel)计算水平和垂直方向的差分gx和gy。这样就可以如下计算梯度模和方向:

θ=atan2(gy,gx)

梯度角度θ范围从弧度-π到π,然后把它近似到四个方向,分别代表水平,垂直和两个对角线方向(0°,45°,90°,135°)。可以以±iπ/8(i=1,3,5,7)分割,落在每个区域的梯度角给一个特定值,代表四个方向之一。

这里选择sobel算子计算梯度,相对于其他边缘算子,sobel算子得出来的边缘粗大明亮。

(4)非极大值抑制

非极大值抑制是进行边缘检测的一个重要步骤,通俗意义上是指寻找像素点局部最大值。沿着梯度方向,比较它前面和后面的梯度值进行。

(5)双阈值的选取

一般的边缘检测算法用一个阈值来滤除噪声或颜色变化引起的小的梯度值,而保留大的梯度值。canny算法应用双阈值,即一个高阈值和一个低阈值来区分边缘像素。如果边缘像素点梯度值大于高阈值,则被认为是强边缘点。如果边缘梯度值小于高阈值,大于低阈值,则标记为弱边缘点。小于低阈值的点则被抑制掉。

(6)滞后边界跟踪

强边缘点可以认为是真的边缘。弱边缘点则可能是真的边缘,也可能是噪声或颜色变化引起的。为得到精确的结果,后者引起的弱边缘点应该去掉。通常认为真实边缘引起的弱边缘点和强边缘点是连通的,而又噪声引起的弱边缘点则不会。所谓的滞后边界跟踪算法检查一个弱边缘点的8连通领域像素,只要有强边缘点存在,那么这个弱边缘点被认为是真是边缘保留下来。最后,处理后的图像边缘更清晰完整。

2.greyworld算法

greyworld算法是一个受广泛使用的颜色恒常性算法。图像中的颜色信息足够丰富,并且场景中的所有表面的反射都是无色差的,图像的三个颜色通道的平均反射率是相同的。数值上表现为图像的r、g、b三个通道的像素平均值相等。该假设用数学语言表示如下:

其中s是场景中点对每一个光照波长的反射率,k为常数,表示无色差的概念。图像的估计光照情况可通过对图像的三个颜色通道进行求平均值操作得到。即在greyworld算法中,是将整幅图像的平均颜色作为图像场景中的光源的颜色的,其离散型如式:

在求得图像中场景的估计光源后,即可对待测图像进行评价,从而达到色偏检测的目的。由于图形编程中的颜色选择是很明显的,使用greyworld算法是最合适的。

3.编译器

python是一种面向对象、解释型计算机程序设计语言,arduino是一款便捷灵活、方便上手的开源电子原型平台,基于arduino的项目,可以只包含arduino,也可以包含arduino和其他一些在pc上运行的软件,如processing、vb、python等。当我们使用python语言通过串口控制arduino读取设备状况并实施控制的时候,就构成了上位机下位机系统。

我们通过python的pip下载pyserial的包,通过基本函数serial.serial(a,b,c)来设置一个串口,从而完成python控制arduino。最后通过bat脚本,再配合arduino提供的编译原理,对相关代码进行编译。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1