首页> 中国专利> 图像处理软件开发方法、图像处理软件开发装置和图像处理软件开发程序

图像处理软件开发方法、图像处理软件开发装置和图像处理软件开发程序

摘要

在本发明的图像处理软件开发中,兼顾通过组件图连接进行的基于模型的开发和能够与嵌入式LSI用编程语言库协作的源代码的自动代码生成。对于编程语言用的图像处理库功能和对上述功能的输入输出数据结构,具有输入输出数据内存管理组件图、输入数据值设定组件图、库执行组件图、输出数据值取得组件图这4种组件图,进而具有将上述4种组件图作为下位组件图预先按使用顺序连接而成的上位组件图,组合下位组件图和上位组件图描述、执行算法。此外,根据描述的算法,生成调用图像处理库的编程语言源代码。

著录项

  • 公开/公告号CN103718159A

    专利类型发明专利

  • 公开/公告日2014-04-09

    原文格式PDF

  • 申请/专利权人 株式会社日立制作所;

    申请/专利号CN201180072643.1

  • 发明设计人 崎村茂寿;三好雅则;

    申请日2011-08-03

  • 分类号G06F9/44(20060101);G06T11/80(20060101);

  • 代理机构11322 北京尚诚知识产权代理有限公司;

  • 代理人龙淳

  • 地址 日本东京都

  • 入库时间 2024-02-19 23:32:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-31

    授权

    授权

  • 2014-05-07

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20110803

    实质审查的生效

  • 2014-04-09

    公开

    公开

说明书

技术领域

本发明涉及图像处理软件开发方法、图像处理软件开发装置和图 像处理软件开发程序的技术。

背景技术

因为图像处理系统的处理性能提高,其应用领域从现有的FA (Factory Automation:工厂自动化)领域扩展到了屋内外的人物监视、 数码相机等的面部识别、车载相机进行的外部环境识别等广泛的领域。

另一方面,图像处理系统的开发中,作为处理对象的数据非常多, 所以用通用CPU(Central Processing Unit:中央处理器)进行的处理不 能得到充分的性价比(或者单位电力的性能),所以较多使用内含图像 处理用的硬件加速器的嵌入式LSI(Large Scale Integration:大规模集 成)。其中,嵌入式LSI是嵌入式设备中装载的电路,嵌入式设备使用 嵌入式LSI高速地执行图像处理。

因此,需要使用用于实现通过嵌入式LSI运行的驱动软件的编程 语言库开发识别软件。其中,嵌入式设备用软件的开发中,一般使用C 语言等编程语言,嵌入式LSI用的驱动软件也同样作为编程语言库提 供。因此,识别软件开发者使用的开发方法当然也一般是使用编程语 言编程。

但是,使用编程语言编程的情况下,存在实现工作量较多,实现 中的人工错误较多等问题。

对这些问题的有效的现有技术,是基于模型的开发技术。

基于模型的开发技术与现有的基于编程语言的开发不同,是通过:

(a)按处理顺序列举预先在软件开发环境上定义的处理区块

(b)在图上将同样在软件开发环境上定义的软件组件图连接

等方法描述软件处理流程(以下称为“模型(model)”),使该模 型在计算机上模拟动作进行动作验证,根据情况从模型生成编程语言 源代码的技术。基于模型的开发的一例,有如专利文献1所述的技术。 其中,专利文献1是属于(a)类的例子。

先行技术文献

专利文献

专利文献1:日本特开2009-087144号公报

发明内容

发明要解决的课题

但是,专利文献1中记载的技术中,存在不能够开发与嵌入式LSI 用的编程语言库联动的识别算法(或者即使能够进行PC等开发环境上 的模拟,也不能够生成调用嵌入式LSI用的编程语言库的源代码)的 问题。

此外,基于模型的开发中,为了与使用编程语言的开发相比提高 开发效率,大多将预先定义的软件组件的抽象度设定为比编程语言用 函数更高,难以减少软件组件执行所需的嵌入式设备的计算机资源(计 算量和内存使用量)。

于是,本发明的主要目的在于提供一种基于模型的开发环境,其 能够进行综合了执行图像处理的嵌入式LSI用的编程语言库的基于模 型的开发,具体而言为开发环境上的(不使用编程语言的)组件图连 接型识别算法开发,和减少嵌入式设备的计算机资源使用量的源代码 生成。

用于解决课题的方法

为了解决上述课题,本发明是一种图像处理软件开发方法,对使 用图像处理装置用编程语言库的软件开发进行辅助,在图像处理软件 开发装置上执行,其特征在于:

上述图像处理软件开发装置包括存储装置和用于构成模型图编辑 部的控制装置,

上述存储装置中,作为用于描述软件的模型图的构成元素的4种 下位组件图,在组件图定义部中分别存储有输入输出数据内存管理组 件图、输入数据值设定组件图、库执行组件图和输出数据值取得组件 图,

上述下位组件图具有上述编程语言库的函数和用于指定执行该函 数时的输入输出数据的接口,

将通过上述接口连接的4种上述下位组件图组合而得的上位组件 图,也存储在上述存储装置中,

上述模型图编辑部,

在接受了向模型图中追加上述下位组件图或上述上位组件图的追 加操作时,将所接受的上述下位组件图或上述上位组件图追加到上述 模型图,并且在接受了对于多个上述下位组件图的上述接口的连接操 作时,用有向链接将所接受的上述接口之间连接,由此生成模型图。

其他方法在后文中记载。

发明效果

根据本发明,能够提供一种基于模型的开发环境,其能够进行综 合了执行图像处理的嵌入式LSI用的编程语言库的基于模型的开发, 具体而言为开发环境上的(不使用编程语言的)组件图连接型识别算 法开发,和减少嵌入式设备的计算机资源使用量的源代码生成。

附图说明

图1是表示本发明的一个实施方式的图像处理软件开发系统的结 构图。

图2是表示本发明的一个实施方式的组件图定义部中定义的组件 图的说明图。

图3是表示边缘角度量化函数的例子作为本发明的一个实施方式 的组件图定义部中定义的上位组件图和下位组件图的其他例子的说明 图。

图4是表示在模型图编辑部的模型图画面上配置和连接本发明的 一个实施方式的图2、图3中说明的各上位组件图的例子的说明图。

图5是表示一并使用上位组件图和下位组件图构建与本发明的一 个实施方式的图4相同的处理流程的例子的说明图。

图6是表示本发明的一个实施方式的模型执行部的处理的流程图。

图7是表示本发明的一个实施方式的代码生成部的处理的流程图。

图8是表示对图4的处理流程进行代码生成的结果作为本发明的 一个实施方式的编程语言源代码的一例的说明图。

具体实施方式

以下参考各附图详细说明本发明的一个实施方式。

图1是表示图像处理软件开发系统的结构图。图像处理软件开发 系统包括图像处理软件开发装置1和嵌入式设备70。

图像处理软件开发装置1构成为具有作为控制装置的CPU、内存、 硬盘(存储单元)和网络接口的计算机,该计算机中,CPU通过执行 内存中读取的程序,使各处理部工作。

嵌入式设备70是装载了执行图像处理等的嵌入式LSI的计算机, 与图像处理软件开发装置1相比,计算机资源(CPU的处理能力、内 存的存储容量)等大多较少。

图像处理软件开发装置1包括组件图定义部10、模型图编辑部20、 模型执行部30、代码生成部40、编程语言库50和编程语言源代码60。

组件图定义部10中,用预先规定的结构定义与编程语言库50的 各函数和数据结构对应的组件图。该结构在后文中叙述。以下将编程 语言库50的函数简称为“库函数”。

模型图编辑部20使用组件图定义部10中定义的各组件图,描述 图像处理流程。该流程在后文中叙述。

模型执行部30基于用模型图编辑部20创建的模型图,执行图像 处理流程(详情参考图6)。具体而言,模型执行部30在图像处理软件 开发装置1上模拟进行嵌入式设备70的动作(以下也称为模拟)。

模拟动作的一例是将嵌入式设备70构建为图像处理软件开发装置 1内的虚拟计算机,对该虚拟计算机的硬件资源和OS上的进程 (process)进行模拟,由此模拟图像处理算法的动作的方式。

模拟动作的另外一例是在图像处理软件开发装置1的硬件资源和 OS上模拟图像处理算法的动作的方式。

代码生成部40基于用模型图编辑部20创建的模型图,生成编程 语言源代码60(详情参考图7)。然后,生成的编程语言源代码60通 过用嵌入式设备70用的编译器进行编译(compile)和连接(link),创 建二进制文件。嵌入式设备70接收创建的二进制文件(图1的虚线箭 头),用嵌入式LSI使该二进制文件运行。

编程语言库50是用于实现嵌入式设备70上装载的嵌入式LSI上 运行的驱动软件的库。本实施方式中,举例表示了用C语言描述的用 于执行图像处理(特别是图像处理中的边缘角度提取处理等图像识别 处理)的库作为编程语言库50的一例。另一方面,能够应用各种编程 语言库。例如,能够应用不是图像而是声音识别的库等,并且使用库 的编程语言也不限定于C语言。

编程语言源代码60是用代码生成部40生成的、调用编程语言库 50的应用程序源代码。

接着,说明图像处理软件开发装置1的处理概要。

首先,用户110在模型图编辑部20的模型图画面上配置组件图定 义部10中预先定义的组件图,使这些组件图之间的输入输出接口连接, 由此描述表示图像处理流程的模型图。

接着,用户110对模型执行部30指示执行模型图时,模型执行部 30从用模型图编辑部20创建的模型图中描述的图像处理流程的开头 起依次执行处理流程。此时,通过依次调用与构成图像处理流程的各 组件图关联的编程语言库50内的功能,执行图像处理算法的模拟。

接着,用户110对代码生成部40指示代码生成时,代码生成部40 基于用模型图编辑部20创建的模型图中描述的图像处理流程,输出编 程语言源代码60。

图2是表示组件图定义部10中定义的组件图的说明图。

图2(a)表示与图2(b)的下位组件图对应的编程语言库50的 函数和结构体。首先,库函数“边缘角度提取函数(ExtractEdgeAngle)” 对于与用参数指定的图像ID(IMGID)对应的图像内的各像素,输出 每个像素(x,y)的边缘强度和角度(rho,theta)。此外,边缘角度提取 控制结构体(EDGE_CTL类型),是边缘角度提取处理的控制所需的控 制参数,具有边缘强度下限阈值和最大边缘数量。

基于该控制参数,计算比指定的阈值更强的边缘强度的相对于像 素的边缘强度和角度,对边缘角度提取结果结构体(EDGE_TBL)数 组输出。此时,边缘角度提取结果结构体数组预先分配充分的个数(例 如相当于画面内的所有像素数的量),该个数需要在边缘角度提取控制 结构体成员maxEdge中设定。此外,边缘角度提取函数的返回值是实 际提取的边缘数量。

图2(b)表示库函数之一“边缘角度提取函数”和与该库函数对 应的组件图组。组件图由每个库函数4种的下位组件图和将其整合(也 称分组或分层)的上位组件图构成。

关于各下位组件图的外观,组件图内部的标签字符串中上部的字 符串(例如“ExtractEdgeAngle”)表示下位组件图的名称,左侧的字 符串(例如“IMGID”)表示输入接口,右侧的字符串(例如“edgeCount”) 表示输出接口,左右中央的字符串(例如“pEdgeTbl”)表示输入输出 共用接口。

由此,图2中,按使用顺序从左向右配置下位组件图,以各输入 输出接口的类型一致的方式连接,由此构成上位组件图270内的处理 流程。此时,下位组件图内的输入输出接口中,下划线的接口(例如 GetEdgeTbl250内的“EDGE_TBL”)是上位组件图的输入输出接口。

下位组件图如下所示,分类为输入输出数据内存管理组件图、输 入数据值设定组件图、库执行组件图和输出数据值取得组件图4种。

(a)输入输出数据内存管理组件图是用于对库函数中输入输出的 数据结构分别分配、释放数据结构内存的下位组件图,例如进行 EDGE_CTL结构体的内存管理(分配、释放)的AllocEdgeCtl220,和 进行EDGE_TBL结构体的内存管理的AllocEdgeTbl230。

(b)输入数据值设定组件图是用于对分配的数据结构设定值的下 位组件图,例如对边缘角度提取函数的控制结构体即EDGE_CTL结构 体设定值的SetEdgeCtl240。

(c)库执行组件图是用于调用库函数的下位组件图,例如与边缘 角度提取函数对应的ExtractEdgeAngle210。ExtractEdgeAngle210内的 edgeCount对应于边缘角度提取函数的返回值。此外,对每1个库函数 定义一个库执行组件图。

(d)输出数据值取得组件图是用于从保存了库函数的执行结果的 数据结构取得值的下位组件图,例如从保存了边缘角度提取处理结果 的EDGE_TBL结构体取得值的GetEdgeTbl250,和从EDGE_CTL结构 体取得值的GetEdgeCtl260。

与数据内存相关的下位组件图220~260基本上对于1个数据类型 定义(a)输入输出数据内存管理组件图、(b)输入数据值设定组件图、 (d)输出数据值取得组件图这3种为一组。例如,对于EDGE_CTL 结构体,下位组件图220、240、260成一组。

但是,例外是在数据结构是识别结果输出专用而不需要设定值的 情况下,也可以不定义输入数据值设定组件图。例如,EDGE_TBL结 构仅用于接收边缘角度提取函数的输出的用途(即用户110不设定值), 所以也可以不定义输入数据值设定组件图。

上位组件图270按使用顺序预先使下位组件图210~260连接而合 并为一组。此外,本实施方式中,上位组件图的命名规则按“(下位组 件图的)库执行组件图名+pkg”说明。“pkg”是包(package)的简称。

此外,本实施方式中说明了与库函数及其数据结构相关的组件图, 但下位组件图也可以追加条件分支、循环等处理流程控制组件图。由 此能够描述更复杂的算法。

接着,用图3~图5说明在模型图编辑部20中配置的处理流程图。

图3是表示边缘角度量化函数的例子作为组件图定义部10内定义 的上位组件图和下位组件图的其他例子的说明图。

图3(a)表示与图3(b)的下位组件图对应的库函数即边缘角度 量化函数(ResampleEdgeAngle)。其中,边缘角度量化指的是将通过 边缘角度提取处理按1度刻度、360度的分辨率对EDGE_TBL结构体 输出的边缘角度信息,转换为指定的角度分辨率(例如,如果是8方 向符号则将360度转换为45度刻度8方向的分辨率)的处理。该处理 在基于边缘角度信息的图像识别特征量的提取等中使用。

边缘角度量化函数(ResampleEdgeAngle)从第一参数pInEdgeTbl 输入由上一级处理边缘角度提取函数输出的边缘角度提取结果结构体 (EDGE_TBL)数组,进而分别将EDGE_TBL结构体数组的数量输入 到第三参数edgeCount、将量化后的分辨率输入到第四参数resolution 作为控制用的输入信息,进行边缘角度量化处理,将处理结果输入到 作为从第二参数输出用而接受的另一个边缘角度提取结果结构体 (EDGE_TBL)数组并输出。此外,函数的返回值是量化后的边缘角 度量化表数量。

图3(b)中,与边缘角度量化函数对应的ResampleEdgeAngle310 对应于库执行组件图,其他输入输出数据类型与图2相同,所以下位 组件图230、250能够沿用组件图定义部10中已定义的组件图。进而, 上位组件图320按使用顺序预先使下位组件图230、310、250连接而 合并为一组。

图4是表示在模型图编辑部20的模型图画面上配置和连接图2、 图3中说明的各上位组件图的例子的说明图。

本实施方式中,用户110描述算法的方法,是从图4(a)的组件 图定义部10中定义的组件图组中选择图像处理算法处理流程中使用的 组件图,在图4(b)的模型图编辑部20上配置,使各组件图的接口按 使用顺序(相当于后述的图6、图7中的“处理顺序”)且类型匹配地 连接的流程。

首先,用户110选择组件图定义部10中已定义的图像内存分配 (AssignImg)410(例如鼠标的拖动(drug)操作),在模型图编辑部 20上配置为下位组件图440(例如鼠标的放置(drop)操作)。即,组 件图定义部10中定义的组件图只是“组件的定义信息”,只有在模型 图编辑部20上配置才起到“组件图的实体”的作用。

接着,用户110同样地配置其余的组件图。即,在分配的图像内 存中取得图像(从组件图420到组件图445),设定最大取得边缘数量 “maxEdge=1024”、边缘强度阈值“minThr=30”的控制参数常数值(从 组件图430到组件图450、455),输入这些参数进行边缘角度提取 (ExtractEdgeAnglePkg)(从组件图270到组件图460)。

进而,用户110配置设定角度分辨率“resolution=8”的控制参数 常数值(从组件图430到组件图465)、对边缘角度提取结果进行量化 (ResampleEdgeAngle)(从组件图320到组件图470)的组件图。进而, 使各组件图的输入输出接口之间连接,构建图像处理流程。

这样,在组件图定义部10内以预先整理了下位组件图的连接关系 的形式定义了上位组件图,所以用户110对于模型图编辑部20上的上 位组件图460、470,只要连接由下位组件图组构成的处理流程整体的 输入信息和输出信息即可,能够减少要连接的组件图。由此,在试制 算法等时,可以迅速地构建多个算法,在比较评价等时是有效的。

图5是表示一并使用上位组件图和下位组件图构建与图4相同的 处理流程的例子的说明图。图5的例子中,首先,用户110用图4和 上位组件图描述同样的处理流程。接着,用户110使上位组件图中包 括的下位组件图成为显示状态。其中,显示状态的切换方法可以是公 知的方法。例如,可以从组件图编辑用的菜单等切换下位组件图的显 示/不显示,也可以通过双击上位组件图而弹出其他画面等。

用户110在使下位组件图成为显示状态之后,能够编辑下位组件 图之间的连接关系。从而,用户110能够在多个上位组件图中包括的 下位组件图之间,删除不需要处理或者重复的组件图(或者修正连接 关系而跳过处理),或使其重新连接。

为此,模型图编辑部20接受从模型图内的第一上位组件图内的输 入输出数据内存管理组件图的接口、到模型图内的第二上位组件图内 的库执行组件图的接口的连接操作时,按照接受的连接操作,在模型 图中追加从输入输出数据内存管理组件图的接口到库执行组件图的接 口的有向链接。

例如,图2内上位组件图270中包括的下位组件图230(AllocEdge Tbl)与图3内上位组件图320中包括的下位组件图230(AllocEdgeTbl) 重复,如图4所示仅使上位组件图460、470之间连接的状态下,会双 重地分配EDGE_TBL结构体内存。从而,图5的例子中,用户110以 在后一级的上位组件图470内直接使用上位组件图460内的下位组件 图230分配的EDGE_TBL结构体内存的方式修改连接关系。

进而,位于上位组件图460内的处理流程的最后一级的 EDGE_CTL结构体值取得组件图260(GetEdgeCtl)和EDGE_TBL结 构体值取得组件图250(GetEdgeTbl)是不需要的处理,所以用户110 修改连接关系以将边缘角度提取函数执行组件图210 (ExtractEdgeAngle)的输出结构直接输入到边缘角度量化函数执行组 件图310(ResampleEdgeAngle)。

这样,用户110能够通过模型图编辑部20进行对上位组件图的内 部定义的下位组件图的显示和编辑,所以能够改善通过模拟确定的算 法运行的嵌入式设备70的计算机资源使用效率(具体而言为削减嵌入 式设备70的内存分配量、削减嵌入式设备70的内存分配处理的处理 时间)。

图6是表示模型执行部30的处理的流程图。

模型执行部30基本上从开头向末尾顺序处理模型图编辑部20内 构建的处理流程内的各组件图(S610、S615、S650、S655)。此时,首 先检查连接上位组件图组构成的上层的处理流程(相当于图4的例子), 从其开头向末尾决定组件图的处理顺序。接着,检查连接各上位组件 图的内部定义的下位组件图组构成的下层的处理流程(相当于图5的 例子),从其开头向末尾决定组件图的处理顺序。

以下说明图4的处理流程的例子作为具体例。

首先,决定上位组件图的处理顺序。从开头起顺序追踪处理流程 时,在图4的例子中,成为以下顺序:

第一组件图集合<组件图440→组件图445→组件图450→组件图 455→组件图460→组件图465→组件图470>。其中,组件图450、455 等处于并列关系的组件图的处理顺序,在其后一级的处理即组件图465 之前,但组件图450和组件图455之间的顺序关系是任意的。例如, 可以用在模型图编辑部20中配置组件图的顺序决定。

接着,决定下位组件图的处理顺序。首先,上位组件图465根据 图2的处理流程,成为以下顺序(处于并列关系的组件图的处理顺序 同样):

第二组件图集合<组件图220→组件图230→组件图240→组件图 210→组件图250→组件图260>。

接着,上位组件图470根据图3的处理流程,成为以下顺序(处 于并列关系的组件图的处理顺序同样):

第三组件图集合<组件图230→组件图310→组件图250>。

对以上进行整理,则各组件图的处理顺序成为以下所述。此处,“整 理”指的是将第一组件图集合内的上位组件图465、470分别置换为上 述下位组件图的集合(第二组件图集合、第三组件图集合):

<组件图440→组件图445→组件图450→组件图455→组件图460 →组件图220→组件图230→组件图240→组件图210→组件图250→组 件图260→组件图230→组件图310→组件图250>。

接着,按照处理顺序处理各组件图。各组件图的处理中,首先检 查组件图的种类(S620),按组件图种类使处理分支。

组件图种类是“输入输出数据内存管理组件图”的情况下,根据 执行时刻是处理流程的开始时刻还是结束时刻使处理分支。在是开始 时刻的情况下分配数据结构的内存(S625),在是结束时刻的情况下释 放数据结构的内存(S630)。

在组件图种类是“输入数据值设定组件图”的情况下,对相应的 数据结构设定指定的值(S635)。其中,数据结构和设定值使用从组件 图的输入接口指定的值。

组件图种类是“库执行组件图”的情况下,调用相应的库函数, 接受执行结果(S640)。其中,对库函数传递的参数(输入用参数和输 出用参数)使用从组件图的输入接口指定的值,从输出接口输出保持 库函数的执行结果的数据结构和返回值。

在组件图种类是“输出数据值取得组件图”的情况下,从相应的 数据结构取得值(S645)。其中,取得来源数据结构、取得的数据元素、 取得结果的保存目标数据结构,使用从组件图的输入接口指定的值, 从输出接口输出保存目标数据结构。

此外,本实施方式中输入输出数据内存管理组件图对垃圾回收 (Garbage collector)(已使用内存的回收)功能进行模拟。但是,这不 是本实施方式的必需要素。例如,没有垃圾回收功能的情况下,将输 入输出数据内存管理组件图分为“输入输出数据内存分配组件图”、“输 入输出数据内存释放组件图”这2种,在模型图编辑部20内构建的处 理流程的适当场所(一般而言为处理流程末端)连接输入输出数据内 存释放组件图即可。

此外,本实施方式中说明了与库函数及其数据结构相关的组件图, 但追加了条件分支、循环等处理流程控制组件图作为下位组件图的情 况下,S620的处理分支目标按每个组件图种类增加。分支目标中的组 件图执行可以是公知的方法。例如,如果组件图种类是处理分支组件 图则进行条件判定和与判定结果相应的处理。

图7是表示代码生成部40的处理的流程图。

代码生成部40基本上从开头向末尾依次处理模型图编辑部20内 构建的处理流程内的各组件图(S710、S715、S750、S755)。此时,首 先检查连接上位组件图组构成的上层的处理流程(相当于图4的例子), 从其开头向末尾决定组件图的处理顺序。接着,检查连接各上位组件 图的内部定义的下位组件图组构成的下层的处理流程(相当于图5的 例子),从其开头向末尾决定组件图的处理顺序。之后,按照处理顺序 处理各组件图。

各组件图的处理中,首先检查组件图的种类(S720),按组件图种 类使处理分支。

组件图种类是“输入输出数据内存管理组件图”的情况下,根据 执行时刻是处理流程的开始时刻还是结束时刻使处理分支。在是开始 时刻的情况下生成分配数据结构的内存的源代码(例如,如果是C语 言则为malloc语句)(S725),在是结束时刻的情况下生成释放数据结 构的内存的源代码(例如,如果是C语言则为free语句)(S730)。

在组件图种类是“输入数据值设定组件图”的情况下,生成对相 应的数据结构设定指定的值的源代码(例如,如果是C语言则为对结 构体成员变量的代入语句)(S735)。其中,数据结构和设定值使用从 组件图的输入接口指定的值。

在组件图种类是“库执行组件图”的情况下,生成调用相应的库 函数、接收执行结果的源代码(S740)。其中,对库函数传递的参数(输 入用参数和输出用参数)使用从组件图的输入接口指定的值,从输出 接口输出保持库函数的执行结果的数据结构和返回值。

在组件图种类是“输出数据值取得组件图”的情况下,生成从相 应的数据结构取得值的源代码(例如,对与取得来源数据结构体不同 的其他变量的代入)(S745)。但是,在输出数据值取得组件图的输出 接口未连接的情况下,视为没有保存取得的值的目标,不生成与该接 口相关的源代码。其中,取得来源数据结构、取得的数据元素、取得 结果的保存目标数据结构,使用从组件图的输入接口指定的值,从输 出接口输出保存目标数据结构。

图8是表示对于图4的处理流程进行代码生成的结果作为编程语 言源代码60的一例的说明图。“sizeX=640,sizeY=480”作为从模型的 外部给出的参数的例子记载。

此外,本实施方式中,变量名的确定方法使用以各组件图的输入 输出接口名为基准设定的方法,但也可以是其他方法。例如,也可以 对组件图之间的连接线命名,用该名称作为变量名。

此外,本实施方式中说明了与库函数及其数据结构相关的组件图, 但在追加条件分支、循环等处理流程控制组件图作为下位组件图的情 况下,S720的处理分支目标按每种组件图增加。分支目标中的代码生 成处理可以是公知的方法。例如,如果组件图种类是处理分支组件图, 则进行条件判定语句和与判定结果相应的处理的代码生成(如果是C 语言则生成if~else语句)。

以上说明的本实施方式涉及不是用编程语言、而是通过组件图连 接描述软件处理的基于模型的开发技术,特别涉及通过图像传感器进 行的识别软件的基于模型的开发技术。

本实施方式的图像处理软件开发装置1,特征在于对于编程语言用 的图像处理库功能和对上述库功能的输入输出数据结构,具有输入输 出数据内存管理组件图、输入数据值设定组件图、库执行组件图、输 出数据值取得组件图这4中组件图,进而,具有将上述4中组件图作 为下位组件图合并为一组的上位组件图,组合下位组件图和上位组件 图描述软件。

本实施方式的图像处理软件开发装置1中,上述组件图具有与图 像处理库功能的输入输出参数对应的组件图接口,上述接口用图像处 理库功能的输入输出变量名或数据类型名作为接口名。进而,具有根 据用图像处理软件开发装置1描述的软件处理流程图用编程语言输出 调用与构成上述处理流程图的组件图对应的图像处理库功能的源代码 的功能。

本实施方式的图像处理软件开发装置1,具有能够使通过某个上述 上位组件图的下层中包括的输入输出数据内存管理组件图分配的内存 区域与其他上位组件图的下层中包括的库执行组件图连接的结构。

本实施方式的图像处理软件开发装置1,在上述输入输出数据结构 是图像数据的情况下,将图像数据的管理信息输入到上述组件图接口 和从上述组件图接口输出,图像数据内包含的像素数据在编程语言库 50的内部进行管理。

即,在输入到库函数和从库函数输出的数据结构是图像数据的情 况下,在其接口上连接用于输入输出图像数据的管理信息的下位组件 图的接口,并且图像数据内包含的像素数据在图像处理库内部进行管 理。

本实施方式中,通过对计算机的存储装置的空间分配处理和释放 处理实现数据的内存管理方法,通过对计算机的存储装置的输入输出 处理实现数据的输入输出方法,通过计算机的运算处理实现数据的处 理,由这样的图像处理软件开发程序和使该计算机程序在计算机上执 行的软件开发装置构成。

根据本实施方式,图像处理软件开发者不进行使用编程语言的编 程,而是能够通过组件图连接设计、实现图像处理算法。进而,能够 根据设计、实现的模型图使用自动代码生成功能生成调用嵌入式LSI 用的编程语言库50的代码。此时,通过组合使用上位组件图和下位组 件图,能够生成减少计算机资源使用量的源代码。

在算法试制时通过用上位组件图连接进行基于模型的开发,能够 通过比编程语言抽象度更高(即要实现的内容更少)的组件图连接进 行算法开发。此外,在算法确定后通过改善下位组件图的连接关系, 能够进行嵌入式设备70的处理效率和内存使用效率较高的实现。

进而,在自动生成代码时,在进行对各数据结构的内存分配(和 释放)、值的代入、值的取得的代码之外,还能够生成嵌入式LSI用的 预先规定的库函数的调用代码,能够不使用编程语言进行编程地进行 图像处理软件的开发。即,能够实现综合了编程语言库50的基于模型 的开发。

此外,本实施方式中,在执行本实施方式的处理的计算机环境中, 可以将本实施方式中的任意一个处理单元分割为两个以上的处理单元 实现,也可以将两个以上的任意的处理单元合并为一个处理单元实现, 只要不损害本实施方式提供的功能,对其实现方式就没有制约。

附图符号说明

1   图像处理软件开发装置

10  组件图定义部

20  模型图编辑部

30  模型执行部

40  代码生成部

50  编程语言库

60  编程语言源代码

70  嵌入式设备

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号