论文部分内容阅读
近些年来,各方面技术的变革推动了计算机视觉(Computer Vision,CV)的高速发展,大量高效的计算机视觉算子被设计出来,基于计算机视觉的软件和系统已被广泛使用。在CV领域相关应用模型的开发过程中,领域专家和开发人员之间的沟通一直存在很大问题。同时,种类繁多的CV算子间的组合调用较为困难,难以集成。C++作为CV领域主要开发语言,其语法复杂性也大大降低了开发人员的工作效率。为解决以上问题,本文基于Xtext框架,采用模型驱动开发的方式,设计实现了面向计算机视觉的领域特定语言CVDSL(Computer Vision Domain Specific Language)。CVDSL整合了常用CV算子,语法规则简单,为CV领域应用模型的开发提供了统一的平台。本文首先进行了领域特征分析,依据CV领域特征提取出了 CV领域元模型,并使用建模工具EMF(Eclipse Modeling Framework)对CV领域元模型进行了构建;然后在领域元模型的基础上,本文通过元模型映射和规则添加,使用Xtext框架定义了 CVDSL语法规则。为提高CVDSL使用者的开发效率,本文设计实现了语法检查器,其可对规定的语法规则检查项进行检查,从而有效避免开发过程中可能遇到的某些语法错误;最后本文设计实现了可将CVDSL代码转换为C++代码的代码生成器,实现了领域特定语言向通用编程语言(General Programming Language,GPL)的转换。本文通过实验,在基础性(功能性、易用性、高效性)和生成的C++代码质量两个技术指标上,对CVDSL和C++进行了对比。实验结果表明:在CV领域,CVDSL相比于C++,更加易学易用;在CV应用模型的开发上,使用CVDSL的开发效率更高且所需编写的代码量更少,CVDSL代码生成器所生成的C++代码也较为规范、精简。本文通过针对性实验,验证了 CVDSL具有良好的可扩展性。本文还基于 DSL 定性评估框架(Framework for Qualitative Assessment of DSLs,FQAD),在功能适用性,可用性,可靠性,可扩展性,可集成性,可维护性,生产力,兼容性,表达性和可重用性上对CVDSL进行了详细评估,并基于以上特性将CVDSL和VisionPro、Halide进行了对比,结果表明CVDSL在某些特性上具有自己的优势。