vm演算法
❶ 海康vm演算法平台是否收費
收費的。
海康VM演算法平台V4、0版本推出時,針對二次開發介面,進行了面向對象封裝,提供方案,流程,Group和模塊的4級封裝概念,並提供了各自的參數配置控制項,參數類,結果類,以便二次開發客戶能更簡單的使用視覺能力做業務開發。
❷ 如何將自己的演算法嵌入到海康的VM程序中
有開發實力的視覺集成商和設備商,可以藉助VM現有的流程框架,將自己的獨特演算法和設備配置功能封裝成VM模塊,放置於流程中,以便輕松調用VM中的圖像和各模塊的處理結果,並觸發自身模塊的運行。
盡管提供了VM模塊生成工具,可以方便地創建一個帶有輸入輸出和配置界面的空模塊,但許多人仍不清楚模塊的原理,即使獲得了自動生成的模塊工程,也不知道如何將其改造成具有獨特業務功能的模塊。
第一部分將講解模塊的組成結構原理,以便後續的模塊開發更加順利,便於排查錯誤。
一、VM模塊的基本概念
一個VM模塊由輸入、輸出、配置、顯示和模塊本身構成。輸入和輸出由最基本的5種數據類型組成:int、float、string、image和PointSet,其中前四種最為常用。由基本類型組成更復雜的組合類型,如IMAGE和ROIBOX,分別代表圖像和ROI框。在AAAMo.xml中。
配置是調節模塊運行參數的面板,例如圓查找模塊的半徑。配置由多個基本類型構成,如Integer和Enumeration等,這些基本類型都對應一個可見的配置控制項。通過XML定義配置界面的內容。在AAAMoAlgorithmTab.xml中。顯示是定義模塊運行後需要在渲染窗口上顯示的內容,由一些基本的圖像和圖形組成,如image、circle、point、rect等。在AAAMoDisplay.xml中。
模塊本身是可被調用執行的邏輯塊,以動態庫的形式存在於磁碟上。由底層運行部分和界面運行部分組成。底層運行部分名為AAAMo.dll,界面部分為MoCs.dll,如果界面部分還有較復雜的建模過程,無法僅靠配置XML定義,則還會有一個配置控制項,名為AAAMoControl.dll。
二、模塊運行機制
了解模塊的基本概念後,仍需了解這幾部分是如何協同工作的。接下來以模塊運行為例,將整個過程串聯起來。(以平移旋轉功能為例)模塊運行時,首先從輸入中獲取各Input的值,然後獲取配置參數,根據編寫好的邏輯將輸入與參數一起參與運算,將計算結果賦值到輸出上。顯示配置的圖形與輸出關聯,顯示出具體的圖形。
三、實例:圓查找
圓查找功能定義:在圖像的某個位置查找圓形並輸出,查找圓的參數可調。
輸入:從圓查找的功能定義可知,圓查找的輸入包括圖像和查找框。打開IMVSCircleFindMo.xml,找到Input,可見如下定義:
從XML中可見,輸入圖像為IMAGE組合類型,由image、width、height、format 4個基本類型組成,類型分別為image、int、int、int。
輸入ROI有框(InputROI類型為ROIBOX)和圓弧(InputROIAnnulus類型為ROIANNULUS)兩種。
輸入還包括位置修正信息Position Correction Info類型為FIXTURE。
配置:圓查找需要設置查找圓的半徑大小范圍、設置明暗變化閾值等。查看IMVSCircleFindMoAlgorithmTab.xml,可見
圓查找的參與與XML中的定義一一對應。例如EdgeThresh對應邊緣閾值,默認值為0xf,即界面上顯示的15。如果自定義模塊開發過程中需要某個配置控制項,但不知道具體的控制項類型及用法,可以去查看其他已有模塊,看看是否有相同的控制項。可以把該模塊的配置XML打開,找到需要的控制項,了解其使用邏輯,復制過來,並修改參數的名稱。
配置中還有一個重要的工作,是將需要輸入數據與配置控制項關聯起來,讓人可以在界面上配置輸入數據從哪來。圓查找的輸入數據是圖像和ROI,幾乎所有的模塊都需要這兩個數據,因此把這兩個數據的配置控制項做成了基本界面庫。在配置XML中如下:
運算:在圓查找模塊中,需要獲取圖像,找到ROI區域,並嘗試找出符合參數的半徑和邊緣閾值的圓。具體的獲取輸入數據、參數數據在第二部分文檔中講解。並將搜索到的圓賦值到輸出數據中。
輸出:從圓查找定義可知,至少會輸出一個圓形。查看IMVSCircleFindMo.xml的Output,如下:
有MoStatus模塊運行狀態,類型為int。
有OutputCircle輸出圓形,類型為CIRCLE的復合類型,由Radius半徑、CenterX圓心點X、CenterY圓心點Y等組成,類型都為float。
還有一些其他輸出。
顯示:圓查找至少要顯示搜索到的圓形,還需要顯示底圖。查看IMVSCircleFindMoDisplay.xml可見:
在Display里定義了要顯示的圖像,名稱為InputImage,類型為image。圖像數據、長、寬、格式分別對應(Mapping)到輸入輸出中的InImage、InImageHeight、InImageWidth、InImagePixelFormat。
定義了要顯示的圓形,名稱為Circle Result,類型為circle。圖形的中心點X、Y、內徑、外徑分別對應(Mapping)到輸入輸出中的CenterX、CenterY、Radius、Radius。