999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向計算機視覺的領域特定語言設計與實現

2022-02-15 02:48:34馬方超
信息記錄材料 2022年12期
關鍵詞:語言模型

馬方超

(承德市教育局 河北 承德 067000)

0 引言

在生產和科研過程中,有時需要用到大量計算機視覺算子,比如OpenCV算子、Halco算子還有其他商業算子,這種算子之間的配合調度比較麻煩,也不易集成。例如在對某產品包裝的缺陷進行檢查時,比較好的方法就是首先做A濾波器然后再做亞像素的邊界提取,A濾波算子有OpenCV供給,但亞像素的邊界提取則有某商用算子庫供給,因此必須通過跨算子庫調度兩種算子。盡管這種商用算子庫一般都給出了C++接口,采用C++語言即可實現上述任務,但由于編碼過程較為復雜,再加上部分電腦視覺開發者并不是計算機專業出身,所以他們更喜歡采用一類更抽象、簡潔的編程語言。所以研究人員已經設計并實現了一個DSL,這一DSL降低了解碼時限和解碼量,同時擁有豐富研發經歷的使用者也能夠更改或增加平臺內的元模型,以便于進行對平臺的擴充。本文把面向對象計算機視覺的領域特定語言稱為CVDSL。

1 相關概念闡述

1.1 計算機視覺

計算機視覺(computer vision,CV)是指通過電腦或有關裝置對生物視覺的某種仿真,最終目標是讓電腦可以像人那樣利用視覺觀察進而認識整個世界,擁有主動適應環境的能力。近些年,電腦視覺技術得到了蓬勃發展,大量高效、實用的AI算子被制作出來,同時對傳統CV算子庫也進行了調整和優化。越來越多的機器視覺的程序和模式將被普遍采用。

機器視覺應用模式的特征是在完成一定目標后,按照預設順序進行操作。當運用特定編程語言(如C++)去完成某個計算機視覺的應用模型時,具體程序中通常首先包含對某個算子庫的引入、基本結構句子(如循環句子、分支句子、賦值語句等)和對算子庫的具體算子的運用。因此掌握計算機視覺基本處理過程,對于如何去建立CV領域元模型的CVDSL語言程序非常關鍵。

1.2 領域特定語言

領域特定語言(domain specific language, DSL)是領域工程技術之一,它是在某一專門領域中具有受限制表達特性的一個計算機程序設計語言圈。不同于一般的編程語言,它的使用特定的抽象層次比較高。下面介紹了幾個相對通用的領域特定編程語言:用來描述Web網站的HTML語言,以及用來構建軟件系統的Ant, RAKE,MAKE,用來描述語言的BNF范式,語法分析器的編程語言YACC,Bison,ANTLR,用來數據庫結構化檢查的編程語言SQL,以及用來定義格式表的編程語言CSS,專用的排版系統LaTe等。近些年由于新一代人工智能的迅速發展,有些面向機器教學、深度研究的領域特定編程語言也隨之面世,比如OptiML,DeepDSL等。

2 CVDSL的設計與實現

本文中首次提出了建立CV領域元模型的基本途徑和方法,并通過研究領域內的共性與變性所要求的原始數據種類、所需要的原始數據數量等一系列的關鍵要素,進一步明確了元模型的構建要求,并在此基礎上形成了CV領域元模型[1-2]。

在對CV領域元模型映射和持久化的基礎上,確定了CVDSL方法規范體系。并且使用自描述語法規則庫,還自定義了模型的語法檢查器。語言檢查的主要目的,是用來避免開發者在使用一項特殊的代碼時會出現語法錯誤,進而降低生成程序的質量準確性。

本文通過研發基于模板映射語言的、滿足領域特定要求的應用模板代碼自動生成功能,實現了將CVDSL編碼轉換成相應的C++編程語言的代碼自動生成器,以及實現了領域中特定程序向應用語言的自動轉化。

2.1 構建元領域模型

元模型的構建依據是元對象機制(Meta Object Facility,MOF)。MOF又稱之為MOF標準,具有可擴展性、高度開放性和良好的互操作性。MOF方法的核心內容是具有高度可擴展性的元模型數據管理技術,它所實現的主要方法就是進行元數據分類。它的主要優點在于提供了一個四層建模框架,提供了各種元類型的框架。在需要新添加的元類型數據的地方,它也能夠很簡單地添加新的數據類型。

2.1.1 MOF的層次

MOF的層次分別為M0、M1、M2和M3,且M3∈M2∈M1∈M0。

(1)M3層,即元建模層次是領域元模型的提取或構造過程,所定義的元模型一般這些模塊中包含屬性、類型、關聯關系等,是元模型構造的基石。CVDSL的元建模通常包含單一的算子(如讀取數據的算子)、單一的語言規范(如賦值語句)等。

(2)M2層,元模型層。由最上一級模塊搭建而來,它的基本元素包括了各個元模塊間的相互關聯、元模型的性質等。這一過程產生的成果是領域元模型,同時也是定制應用領域中特定語言語義模式和語言規則的基石。

(3)M1層,模型層。這一級的模式都是直接通過這一級的模塊所建立而成。所以,這層的模式就是元模型層的實例,即是通過CVDSL創建起來的應用模式。而語法檢查就根據這層的輸出結果展開。

(4)M0層,指對象的結果,這一級的結果通常是指真實世界中的人事物對象,由這一級的結果數據可以通過自動產生的方法獲取,包括文件和程序等。

2.1.2 元模型的構建條件

(1)分析領域模型間內在特點上的相似性,對相似特性加以整合;

(2)對于合并之后的領域模型及其內部特性,都必須在相應的單元模型上反映。元結構模型的構建過程如圖1所示。

圖1 元結構模型的構建過程

本文使用了EMF(Eclipse Modeling Framework)來構造元模型的方法。使用EMF構造的元模型通常是Ecore模式。而Ecore模式通常是一個簡單的UML模板。和UML相似,EMF也能夠實現圖形化的架構搭建,其自帶的Existing、Elements、Classifier、Feature、Relation、Dynamic、Package、Class、Datatype、Attribute、SuperType、Referent等使用基本模型對開發者而言,能夠非常簡單地使用拖拽的方法構造CV領域的單元模型。

另外,EMF是一個建模框架,在建模實際更改或增加時,能夠簡單地使用emf中的各種模型對實例進行調整。emf中集成的Class、Data-type、Attribute、SuperType、Reference等模式,也是CV范圍內的元模式中由EMF構造出的模式實例,等同于是CV應用領域的模塊實例,將所有CV應用領域的模塊實例都通過程序自動生成,進而獲得模式目標代碼。這樣MOF的四層架構也就非常簡潔清晰[3-4]。

2.2 CVDSL語法規則定義

2.2.1 元模型映射

在CV領域中,元模型自身被反映成區域特殊編程語言中的結構框架,而每一個元模型都會反映成區域特殊編程語言的每一段基本語言規范的算子概念,而元模型的參數則反映成區域特殊編程語言的每一段基本語言規范概念的形參概念。

2.2.2 規則添加

研究人員可以選用Xtext框架作為CVDSL語法規范定義的工具,由于它主要支持對Ecore元類型的導入。而Xtext則是一個基于Eclipse的公開源代碼框架,配套編程語言也是Xtend,所以它主要進行DSL的編寫和實現。

Xtext工具可以獲取所有元模型語法的關鍵字和特征,并連接它們,從而形成抽象語法樹。通過Xtext的XModelSet()工具可以瀏覽EM F工程中的元Model文本夾,并捕獲所有類名、屬性、特征之間的邏輯關系等。

作為DSL語言來說,本身也是一個不成熟的語言,所以在制定語言模板的時候不要用基于語言模板所生成的代碼,在執行語法檢索時會出現特征性質的不足等現象。但是,要讓應用開發者可以簡單地捕捉到DSL程序中的關鍵數據,從而方便定制代碼中生成的模板。

2.3 定制語法檢查器

語言檢測系統應以范圍內特定語言的句法模式為基準,并定制模型化語言檢測器。模型語言檢測器經過用戶對模型的篩選,并找出與其相關的目標根節點,進而找出應用模塊所相對的語言CV領域元模型。例如模塊名字是由不正確的字符所構成,或是將不同類別的數據加以對比等。無論錯誤或者提醒,語言檢測器都需要實現快速定位,并使語言檢測的結果直接反映到用戶上。

語法檢查器的開發過程也是采用Xtext。Xtext的機制中有兩個文件:CVDSL Validator。Xtend和CVDSL Quick fix Proviler。Xtend。這兩種文件,前者主要是使用檢查方式,對存在問題的程序進行標注解釋,后者主要是根據不同的程序問題給出快速修改的方式。具體的流程如下:

(1)經由編輯器中的監視器,通知CVDSL Validator Xtend,用戶已經更改了模型。

(2)由typeof()接口,以確定模型的類型。

(3)再次使用typeof()接口確定了檢查的屬性和調用方法的名稱。

(4)確定相關特征類別,屬性參數及信息是否符合規范要求。

(5)如果滿足標準,該次檢測完成。如果違反標準,確定違反標準的代碼位置,執行步驟(6)。

(6)可以按照具體要求的差異,提出error()或是warning)連接。這兩種連接均必須給出編碼的正確位置以及標記,并且出于讀者編輯的便利,也必須給出適當的提示語句。若該類出錯安全性很好,可對該出錯用一串數字串為特征,調用CVDSL Quick fix Provider。Xtend相應快速修復方法。

(7)CVDSL Quick fix Provider。Xtend中的相應程序可以得到錯誤的相關數據,在提示框中有幫助地進行快速恢復按鈕。

(8)用戶在點擊快速修復后,模型會出現一定改變,故系統將重新啟動步驟(1)。

2.4 定制代碼自動生成器

因為電腦視覺領域軟件的規模巨大、功能繁雜、迭代更新速度快等原因,再加上對人工代碼的撰寫習慣不同和良莠不齊的不確定性,所以指望人工通過領域語言代碼寫出通用代碼是不現實的。選擇代碼自主生產是必然結果。

應用模型代碼生成技術,可以讓系統設計者獲得更多的設計知識,并促使程序員把更多的知識用在系統架構設計上,能夠增強系統健壯度、可擴展性以及可維護性。所以,為CV領域而開發的非領域語言代碼生成器,必須建立在已研究的領域語言規范基礎上和其他領域語言規范基礎上,與研究進程中不同階段的語言模型整合,便于生成內容一致且遵循規范準則的持久化模型文件,然后再把模型文件利用語言代碼生成器,制作為完全遵循已有規范的通用編程語言。

3 可擴展性評估

CVDSL的開發過程是采用標準模型驅動結構的,所以它擁有相當好的可延伸性。而CVDSL的可延伸性主要體現在可對CVDSL的語法規范進行調整、可對底層的算符庫進行擴展、可對代碼生成器的映射規范進行調整,等等。對一個擁有領域內特定語言開發經歷的人而言,對CVDSL的功能加以擴充是相當容易的,因此可見CVDSL擁有良好的可擴展性。而用戶也只需要按照自身的實際需要,逐一進行具體的使用即可[5]。

本文對擴展CVDSL功能的過程進行了總結,主要分為以下六步:(1)了解CVDSL的源碼(僅需掌握與需求相關的部分源碼即可);(2)修改CV領域元模型;(3)修改或添加CVDSL語法規則項;(4)修改或添加語法檢查器的功能(非必須);(5)修改或添加代碼生成器映射規則;(6)測試。由此也可看出,CVDSL的功能是可擴展的,而且也是易擴展的,使用者只需依據自己的需求,逐步完成相應的操作即可。

4 結語

研究人員采用了CV領域元模型,并通過建模驅動研究的方法,設計實現了一個面向對象計算機可視化的領域特殊編程語言——CVDSL。文章中首先研究了CV領域元模型的構成和建立方式,進而在領域元模型的基礎上,確立了CVDSL的語言規范,并根據語法規則還定制了語法檢查器,以降低在進行CVDSL代碼進程中產生的句法問題。最后研究人員還根據模板映射規則,設計并完成了將CVDSL轉化為C++的代碼自動生成器,從而提高了其通用性與安全性。經過實驗和FQAD框架,對CVDSL做出了評價,并分析了CVDSL所具備的優點和特點,在未來的工作,可以采用自定義CVDSL級調試程序來提高其安全性,并可以采用把CVDSL語言框架包裝為Eclipse插件的方法來提升其可集成性。

猜你喜歡
語言模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
多向度交往對語言磨蝕的補正之道
累積動態分析下的同聲傳譯語言壓縮
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
我有我語言
主站蜘蛛池模板: 色综合久久久久8天国| 国产91麻豆免费观看| 国产交换配偶在线视频| 亚洲视频四区| 精品丝袜美腿国产一区| 色哟哟精品无码网站在线播放视频| 欧美日韩国产成人高清视频| 视频二区中文无码| 小说 亚洲 无码 精品| 色有码无码视频| 5555国产在线观看| 极品尤物av美乳在线观看| 最新无码专区超级碰碰碰| 国产免费久久精品99re丫丫一| 波多野结衣一区二区三区四区视频 | 91破解版在线亚洲| 香蕉综合在线视频91| 2022精品国偷自产免费观看| 无码福利日韩神码福利片| 国产福利一区视频| 激情无码字幕综合| 国产国拍精品视频免费看| 国产精品无码久久久久久| 亚洲人成日本在线观看| 伊人色婷婷| 国产女人18水真多毛片18精品| 免费国产好深啊好涨好硬视频| 一区二区三区高清视频国产女人| 国产女人在线视频| 亚洲毛片在线看| 欧美天堂在线| AV无码国产在线看岛国岛| 成人另类稀缺在线观看| 全免费a级毛片免费看不卡| 欧美专区日韩专区| 狠狠做深爱婷婷久久一区| 成人精品免费视频| 久青草国产高清在线视频| 性做久久久久久久免费看| 亚洲国产成人无码AV在线影院L| 中文字幕调教一区二区视频| 亚洲精品爱草草视频在线| 亚洲国产成人久久77| 一级毛片免费观看不卡视频| 中国一级毛片免费观看| 国产精品林美惠子在线观看| 婷婷六月激情综合一区| 久久久黄色片| 亚洲日本中文字幕乱码中文| 亚洲第一成年网| 精品人妻无码中字系列| 成人一区在线| 噜噜噜综合亚洲| 亚洲中文精品人人永久免费| 大学生久久香蕉国产线观看| 国产91蝌蚪窝| 欧美色视频日本| 狠狠干综合| 91麻豆精品国产91久久久久| 亚洲精品无码不卡在线播放| 国产欧美日韩在线一区| 亚洲婷婷丁香| 日韩高清在线观看不卡一区二区 | 99在线观看免费视频| 波多野结衣无码AV在线| 成人在线观看不卡| 91蜜芽尤物福利在线观看| 蜜臀AV在线播放| 日本高清有码人妻| m男亚洲一区中文字幕| 国产欧美日韩另类| 日本精品视频一区二区| 又大又硬又爽免费视频| 午夜毛片免费观看视频 | 亚洲人成网站在线播放2019| 国产成人超碰无码| 国产性生大片免费观看性欧美| 无码一区18禁| 国产日韩精品欧美一区喷| 国产一级特黄aa级特黄裸毛片| 亚洲精品视频免费看| av在线5g无码天天|