基于语言分析的视觉算法包开发方法

文档序号:1860826 发布日期:2021-11-19 浏览:15次 >En<

阅读说明:本技术 基于语言分析的视觉算法包开发方法 (Visual algorithm package development method based on language analysis ) 是由 都卫东 方志斌 顾艺光 蒋建清 于 2021-08-26 设计创作,主要内容包括:本发明涉及一种基于语言分析的视觉算法包开发方法,包括使用图像算法框架和语言完成图像处理逻辑的编写和仿真测试,生成特有语言源码;根据特有语言的种类,生成的特有语言源码翻译并保存为一种自定义的通用代码格式文件;对源码中使用扩展模块的语句进行有效性校验,提取出其中的算法参数信息并写为算法参数Xml文件生成可编译源码;将可编译源码与源码语言类型匹配的用于编译成dll的源码解决方案模板进行合并,形成一个完整的、可使用编译器编译的源码解决方案生成算法DLL后形成一个算法包。本发明降低算法开发人员的技能要求和培养难度。提升算法项目开发效率,降低项目维护成本。降低企业人力成本,提升人力招聘效率。(The invention relates to a visual algorithm package development method based on language analysis, which comprises the steps of completing the compiling and simulation test of image processing logic by using an image algorithm frame and a language, and generating a specific language source code; according to the type of the specific language, the generated specific language source code is translated and stored as a self-defined universal code format file; carrying out validity check on statements using an extension module in a source code, extracting algorithm parameter information in the source code, and writing the algorithm parameter information into an algorithm parameter Xml file to generate a compiled source code; and combining the source code solution templates which are matched with the source code language types and used for compiling into DLL, forming a complete source code solution which can be compiled by using a compiler to generate an algorithm DLL, and forming an algorithm packet. The invention reduces the skill requirement and the cultivation difficulty of the algorithm developer. The algorithm project development efficiency is improved, and the project maintenance cost is reduced. The labor cost of enterprises is reduced, and the labor recruitment efficiency is improved.)

基于语言分析的视觉算法包开发方法

技术领域

本发明涉及视觉算法技术领域,尤其是一种基于语言分析的视觉算法包开发方法。

背景技术

目前,现有技术涉及技术种类过多,对开发人员提出较高要求,需要开发人员精通C++(或C#),精通Windows开发原理,精通视觉算子使用,很少有算法人员能同时满足上述要求。视觉算法开发存在开发时间长,对开发人员知识面、开发能力、调试能力、经验要求高,同时对光学等专业有要求,培养一个达标的开发人员需要较长的时间周期。非标定制项目多,算法源码维护困难视觉行业的非标项目比较较大,在传统开发模式下每个项目都会产生非常多的算法源码,由于开发人员编码能力参差不齐等原因,会导致大量代码在人员更替后就难以维护,因为源码质量、说明文档缺失等问题导致只能重新开发的情况经常出现。源码质量参差不齐导致无法公司无法进行标准化技术积累难以阅读、无人能维护的源码导致标准化工作无法开展。

发明内容

本发明要解决的技术问题是:提供一种基于语言分析的视觉算法包开发方法,将第三方图像算法和其特有语言装为符合特定图像算法接口的算法包,解决算法使用一致性问题,降低算法开发难度,提升开发效率。

本发明解决其技术问题所采用的技术方案是:一种基于语言分析的视觉算法包开发方法,包括以下步骤,

1)使用图像算法框架和语言完成图像处理逻辑的编写和仿真测试,生成语言源码;

2)在步骤1)的语言源码中,使用为该语言定制的扩展模块完成对算法参数的输入输出声明和使用;

3)根据语言的种类,用语言翻译模块将步骤2)生成的语言源码翻译并保存为一种自定义的通用代码格式文件;

4)使用解析模块分析步骤3)生成的通用代码格式文件,对源码中使用扩展模块的语句进行有效性校验,提取出其中的算法参数信息并写为算法参数Xml文件;

5)对步骤1)的语言源码使用代码转换功能,生成可编译源码;

6)将步骤5)生成的可编译源码与源码语言类型匹配的用于编译成dll的源码解决方案模板进行合并,形成一个完整的、可使用编译器编译的源码解决方案;

7)将步骤6)生成的源码解决方案编译生成算法DLL;

8)将步骤4)生成的算法参数XML文件和步骤7)生成的算法DLL按照约定的目录结构存放,形成一个算法包。

进一步的说,本发明所述的步骤1)中的语言包括halcon或vision pro。

再进一步的说,本发明所述的步骤5)中,可编译源码为C++或C#。

本发明的有益效果是,解决了背景技术中存在的缺陷,降低了算法开发人员的技能要求和培养难度;提升了算法项目开发效率,降低了项目维护成本;降低了企业人力成本,提升了人力招聘效率。

附图说明

图1是本发明的流程示意图。

具体实施方式

现在结合附图和优选实施例对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

如图1所示的一种基于语言分析的视觉算法包开发方法,通过制定视觉算法包规范,标准化开发流程和使用的技术栈,提供开发工具提升开发人员的工作效率。

本发明的视觉算法包开发工作包括:图像处理源码的编写,与算法框架接口对接源码的编写,将图像处理源码与算法框架接口对接源码转为同类型源码合并称为一个视觉算法源码包,将视觉算法源码包编译为dll,根据算法中参数的使用情况为算法dll编写符合算法框架规范的配置文件这几个组成部分。

图像处理源码一般会使用第三方视觉图像算法供应商提供的开发工具开发,其特点是供应商提供比较完备、专业的图像处理算子,专业的开发商还会提供简单易用的专业编程语言和基成了仿真调试功能的IDE,开发人员使用开发工具指定的编程语言和IDE用图像处理算子实现完整的图像处理逻辑,开发人员在开发过程中使用便捷的图像处理算法开发仿真调试功能对图像处理逻辑进行验证和排查错误。

与算法框架对接一般使用微软的VS系列开发工具,常见用与算法开发的有C++和C#两种开发语言,开发人员使用该编程语言+算法框架提供的标准接口规范编写符合视觉算法包DLL要求的解决方案项目。在该解决方案中,涉及图像处理逻辑的代码部分由上述图像处理源码转换得到(开发商会提供转换工具),开发人员用C++或C#将算法框架提供的标准接口规范和图像处理源码按照接口要求进行对接,最终编译生成视觉算法DLL。

一个视觉算法包由视觉算法DLL和描述其视觉参数、输入输出数据的XML组成,开发人员需要根据算法框架中的算法XML规范,结合视觉算法DLL中的参数使情况手工编写出该XML集合。

最后按照算法框架中的视觉算法包规范,将视觉算法DLL和算法XML集合按照特定的文件名、特定的目录结构组织存放,形成一个完整的视觉算法包。

本发明的技术方案为:

1)、用户用特定的图像算法框架和其特有语言(比如halcon、vision pro等)完成图像处理逻辑的编写和仿真测试,生成特有语言源码;

2)、在步骤1)的特有语言源码中,用户使用为该语言定制的扩展模块完成对算法参数的输入输出声明和使用;

3)、根据特有语言的种类,用专用语言翻译模块将步骤2)生成的特有语言源码翻译并保存为一种自定义的通用代码格式文件;

4)、使用解析模块分析步骤3)生成的通用代码格式文件,对源码中使用扩展模块的语句进行有效性校验,提取出其中的算法参数信息并写为算法参数Xml文件;

5)、对步骤1)的特有语言源码使用代码转换功能,生成可编译源码(比如C++、C#);

6)、将步骤5)生成的可编译源码与源码语言类型匹配的用于编译成dll的源码解决方案模板进行合并,形成一个完整的、可使用编译器编译的源码解决方案;

7)、将步骤6)生成的源码解决方案编译生成算法DLL;

8)、将步骤4)生成的算法参数XML文件和步骤7)生成的算法DLL按照约定的目录结构存放,形成一个算法包。

本发明针对涉及技术种类过多,对开发人员提出较高要求的问题,借助开发工具的帮助,让开发人员只需要掌握专业的图像处理系统(比如halcon、vision pro)算子使用及其提供的开发语言,就可以快速进行算法包开发。

本发明针对视觉算法包开发开发时间长的问题,同样借助开发工具的帮助,开发人员只需要专注于基于专业图像处理系统(比如halcon、vision pro)提供的开发语言开发图像处理逻辑源码,验证、仿真测试等其他所有工作都由工具辅助完成。

本发明针对非标定制项目多,算法源码维护困难的问题,采用每个视觉算法包只需要维护一个用图像处理系统(比如halcon、vision pro)提供的开发语言开发的图像处理逻辑源码,这些专业图像处理系统提供了丰富的帮助系统、强大的仿真调试工具,极大降低了源码维护的范围和难度。

本发明针对源码质量参差不齐导致无法公司无法进行标准化技术积累的问题,通过图像处理系统(比如halcon、vision pro)提供的开发语言都比较简单易读,借助帮助系统和源码中的注释,标准化人员可以快速对该算法的标准化质量做出判断。同时结合公司项目经验,将通用性较高的部分提升为公司的标准算法包供其他项目共享使用。

本发明图像源码开发包由第三方提供,主要组成部分为图像处理算子、算法源码编辑器、仿真工具。

本发明图像源码开发包扩展包是根据第三方提供的接口,开发的用于完成参数声明和使用的辅助算子。

本发明图像源码开发包语言翻译模块用于将第三方算法源码语言语法转换为统一的通用中间语言。

本发明算法参数分析模块对通用中间语言进行语法分析,验证语法有效性,并提取出算法参数声明和使用信息。

本发明算法XML生成模块用于将算法参数声明和使用信息保存为算法XML。

本发明图像源码开发包算法解决方案模板用于嵌入算法源码,生成一个可编译的完整算法VS解决方案。

本发明算法DLL编译模块用于将算法VS解决方案编译生成DLL。

本发明算法包生成模块用于将算法DLL和算法XML按照标准目录结构生成算法包。

本发明基于语言分析和翻译技术,自动生成标准的算法包文件,避免了开发人员在进行算法开发和配置文件编写过程中可能会出现的错误问题,同时大大缩短了算法包开发时间,降低了对开发人员c++能力的要求。

具有以下优点:

1)统一视觉算法包标准

一个完整的视觉算法包由一个符合特定算法包DLL标准编译得到的DLL和一组描述该算法DLL中所涉及算法参数描述信息的XML文件集按照特定文件组织。

2)统一算法开发语言

使用专业的图像处理系统(比如halcon、vision pro)提供的开发语言作为标准算法开发语言。

3)提供专业开发工具

专业的开发工具帮助开发人员从2)中的开发语言源码中分析算法参数使用情况以及校验参数使用的合法性。

4)统一算法开发流程

使用统一的开发语言,借助开发工具完成视觉算法包的开发和仿真工作。

以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围。

7页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于容器的多机房批量自动化部署应用的方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!