CN113672239B - 基于语言分析的视觉算法包开发方法 - Google Patents
基于语言分析的视觉算法包开发方法 Download PDFInfo
- Publication number
- CN113672239B CN113672239B CN202110989891.8A CN202110989891A CN113672239B CN 113672239 B CN113672239 B CN 113672239B CN 202110989891 A CN202110989891 A CN 202110989891A CN 113672239 B CN113672239 B CN 113672239B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- language
- source code
- generated
- dll
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011161 development Methods 0.000 title claims abstract description 51
- 230000000007 visual effect Effects 0.000 title claims abstract description 33
- 238000004458 analytical method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000004088 simulation Methods 0.000 claims abstract description 10
- 238000012360 testing method Methods 0.000 claims abstract description 5
- 230000006870 function Effects 0.000 claims description 5
- 238000013519 translation Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 229920004449 Halon® Polymers 0.000 claims description 2
- PXBRQCKWGAHEHS-UHFFFAOYSA-N dichlorodifluoromethane Chemical compound FC(F)(Cl)Cl PXBRQCKWGAHEHS-UHFFFAOYSA-N 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 5
- 230000007115 recruitment Effects 0.000 abstract description 2
- 241001292396 Cirrhitidae Species 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于语言分析的视觉算法包开发方法,包括使用图像算法框架和语言完成图像处理逻辑的编写和仿真测试,生成特有语言源码;根据特有语言的种类,生成的特有语言源码翻译并保存为一种自定义的通用代码格式文件;对源码中使用扩展模块的语句进行有效性校验,提取出其中的算法参数信息并写为算法参数Xml文件生成可编译源码;将可编译源码与源码语言类型匹配的用于编译成dll的源码解决方案模板进行合并,形成一个完整的、可使用编译器编译的源码解决方案生成算法DLL后形成一个算法包。本发明降低算法开发人员的技能要求和培养难度。提升算法项目开发效率,降低项目维护成本。降低企业人力成本,提升人力招聘效率。
Description
技术领域
本发明涉及视觉算法技术领域,尤其是一种基于语言分析的视觉算法包开发方法。
背景技术
目前,现有技术涉及技术种类过多,对开发人员提出较高要求,需要开发人员精通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)统一算法开发流程
使用统一的开发语言,借助开发工具完成视觉算法包的开发和仿真工作。
以上说明书中描述的只是本发明的具体实施方式,各种举例说明不对本发明的实质内容构成限制,所属技术领域的普通技术人员在阅读了说明书后可以对以前所述的具体实施方式做修改或变形,而不背离发明的实质和范围。
Claims (3)
1.一种基于语言分析的视觉算法包开发方法,其特征在于:包括以下步骤,
1)使用图像算法框架和语言完成图像处理逻辑的编写和仿真测试,生成语言源码;
2)在步骤1)的语言源码中,使用为该语言定制的扩展模块完成对算法参数的输入输出声明和使用;
3)根据语言的种类,用语言翻译模块将步骤2)生成的语言源码翻译并保存为一种自定义的通用代码格式文件;
4)使用解析模块分析步骤3)生成的通用代码格式文件,对源码中使用扩展模块的语句进行有效性校验,提取出其中的算法参数信息并写为算法参数Xml文件;
5)对步骤1)的语言源码使用代码转换功能,生成可编译源码;
6)将步骤5)生成的可编译源码与源码语言类型匹配的用于编译成dll的源码解决方案模板进行合并,形成一个完整的、可使用编译器编译的源码解决方案;
7)将步骤6)生成的源码解决方案编译生成算法DLL;
8)将步骤4)生成的算法参数XML文件和步骤7)生成的算法DLL按照约定的目录结构存放,形成一个算法包。
2.如权利要求1所述的基于语言分析的视觉算法包开发方法,其特征在于:所述的步骤1)中的语言包括halcon或vision pro。
3.如权利要求1所述的基于语言分析的视觉算法包开发方法,其特征在于:所述的步骤5)中,可编译源码为C++或C#。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110989891.8A CN113672239B (zh) | 2021-08-26 | 2021-08-26 | 基于语言分析的视觉算法包开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110989891.8A CN113672239B (zh) | 2021-08-26 | 2021-08-26 | 基于语言分析的视觉算法包开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672239A CN113672239A (zh) | 2021-11-19 |
CN113672239B true CN113672239B (zh) | 2024-02-09 |
Family
ID=78546664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110989891.8A Active CN113672239B (zh) | 2021-08-26 | 2021-08-26 | 基于语言分析的视觉算法包开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672239B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246420A (zh) * | 2007-12-29 | 2008-08-20 | 中国建设银行股份有限公司 | 多语言系统实现统一开发的方法及系统 |
CN101706753A (zh) * | 2009-12-11 | 2010-05-12 | 武汉虹信通信技术有限责任公司 | 一种基于Perl的单元测试框架及方法 |
CN105187117A (zh) * | 2015-08-12 | 2015-12-23 | 莱诺斯科技(北京)有限公司 | 一种卫星遥测解码系统 |
CN108399318A (zh) * | 2018-01-31 | 2018-08-14 | 北京顶象技术有限公司 | 可执行文件的生成方法、执行方法及电子设备 |
CN108762732A (zh) * | 2018-05-30 | 2018-11-06 | 南京焦点领动云计算技术有限公司 | 一种HTML内联CSS和内联JavaScript合并方法 |
CN110929234A (zh) * | 2019-11-28 | 2020-03-27 | 施羊梦燊 | 一种基于代码虚拟化的Python程序加密保护系统与方法 |
-
2021
- 2021-08-26 CN CN202110989891.8A patent/CN113672239B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246420A (zh) * | 2007-12-29 | 2008-08-20 | 中国建设银行股份有限公司 | 多语言系统实现统一开发的方法及系统 |
CN101706753A (zh) * | 2009-12-11 | 2010-05-12 | 武汉虹信通信技术有限责任公司 | 一种基于Perl的单元测试框架及方法 |
CN105187117A (zh) * | 2015-08-12 | 2015-12-23 | 莱诺斯科技(北京)有限公司 | 一种卫星遥测解码系统 |
CN108399318A (zh) * | 2018-01-31 | 2018-08-14 | 北京顶象技术有限公司 | 可执行文件的生成方法、执行方法及电子设备 |
CN108762732A (zh) * | 2018-05-30 | 2018-11-06 | 南京焦点领动云计算技术有限公司 | 一种HTML内联CSS和内联JavaScript合并方法 |
CN110929234A (zh) * | 2019-11-28 | 2020-03-27 | 施羊梦燊 | 一种基于代码虚拟化的Python程序加密保护系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113672239A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101739339B (zh) | 一种基于程序动态依赖关系的软件故障定位方法 | |
CN104516818B (zh) | 一种适用于逻辑组态软件中编译器的自动化测试系统及其方法 | |
Alvarez et al. | A methodological approach to model-driven design and development of automation systems | |
US9122540B2 (en) | Transformation of computer programs and eliminating errors | |
JPS6195458A (ja) | 図式プログラム・テスト方法 | |
CA2548334A1 (en) | An apparatus for migration and conversion of software code from any source platform to any target platform | |
CN108228173A (zh) | 一种可视化的数据接口开发系统和方法 | |
CN115357289A (zh) | 寄存器应用信息生成方法、装置、电子设备和存储介质 | |
CN107622017A (zh) | 一种通用自动化软件测试的解析方法 | |
CN113672239B (zh) | 基于语言分析的视觉算法包开发方法 | |
Gammaitoni et al. | Verifying modelling languages using lightning: a case study | |
CN109471637A (zh) | 电路图的审查脚本调试方法 | |
CN113239016B (zh) | 数据库设计辅助装置和方法 | |
CN115268918A (zh) | 一种基于规则模板的c++代码向c代码的自动转化方法 | |
De Vos et al. | Epispin: An eclipse plug-in for promela/spin using spoofax | |
CN114036055A (zh) | 一种xmind测试用例与jmeter脚本互转的系统 | |
CN113986210A (zh) | 一种支持脚本自定义的脚本引擎执行方法及系统 | |
JP5539921B2 (ja) | プログラム開発ツール | |
CN109359055B (zh) | 一种数据测试的方法和设备 | |
CN106815146A (zh) | 一种基于VBScript的软件自动化测试系统 | |
Saad Missen | How ChatGPT Can Help Improve Quality of Code | |
CN118113292A (zh) | 一种信创技术的智能转码适配方法、系统及应用平台 | |
Khoroshilov et al. | Automated formal testing of C API using T2C framework | |
JP2006079484A (ja) | システム移行に伴うソースプログラム変換プログラム | |
Mammad | OVERVIEW OF TOOLS USED IN SOFTWARE AND SYSTEMS LIFE CYCLE AUTOMATION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |