1. 程式人生 > >ApolloStudio高手之路(5):嵌入海康威視VisionMaster機器視覺演算法平臺提供一站式工控設計

ApolloStudio高手之路(5):嵌入海康威視VisionMaster機器視覺演算法平臺提供一站式工控設計

VisionMaster是海康威視近兩年來一直主推的機器視覺演算法平臺,也許在效能和演算法豐富程度上跟市面上的美國康耐視公司的VisionPro以及德國MvTec公司的Halcon還有不小差距,但整體使用體驗也算是國產視覺軟體佼佼者之一。

在ApolloStudio當中,基於VisionMaster 3.0.0版SDK(後續將隨ApolloStudio的版本更迭同步更新)進行了嵌入,我們先來看下ApolloStudio提供了哪些介面:

整個使用流程是:

事先在VisionMaster演算法平臺中將專案案例進行編輯,生成字尾名為.sol的專案檔案,在ApolloStudio中呼叫時,只需要先初始化平臺(這裡需要指定VisionMaster平臺主程式的絕對路徑),載入sol專案檔案,執行,獲取格式化資料即可(這裡需要注意的是在專案編輯的末端,需要將最後需要的資料進行一個格式化操作,以便獲取結果資料

)。

應用示例

在這裡我們舉一個快速匹配操作的流程來舉例說明:

我們以示例程式中的快速特徵匹配(路徑:VisionMaster根目錄\Sample\定位\快速特徵匹配)來解析流程用法,開啟專案檔案後,我們在定位的末端新增一個格式化功能,然後指定匹配點的XY輸出,如下圖所示:

 儲存專案檔案後,我們回到ApolloStudio中,在ApolloStudio裡面我們先編輯組態介面,我們選擇新增2個按鈕,一個用來顯示屬性框,一個用來觸發單次執行操作:

 其中單次執行需設定“繫結按鈕標誌位(需設定數值序號)|Button=0”,開啟屬性框的按鈕則將序號設定為Button=1,影象顯示框則設定控制元件名為"image1"即可。

在主介面的任務列表裡面直接新增組態介面單元和指令碼邏輯單元即可(VisionMaster元件是作為外掛呼叫的,無需配置即可使用),我們編輯指令碼如下:

#-*- coding: UTF-8 -*-
#載入內嵌模組
import clr,sys,time,datetime

#初始化海康視覺平臺
mystr = r"C:\Program Files (x86)\VisionMaster3.0.0\Applications\VisionMaster.exe"
mysol = r"D:\Download\海康視覺測試案例\快速特徵匹配\快速特徵匹配.sol"

AS.Func_HIK_VM_BindingImg("image1")#繫結顯示框
AS.Func_HIK_VM_Init(mystr)#初始化平臺
AS.Func_HIK_VM_LoadSolution(mysol)#載入視覺方案

#迴圈函式體
while True:
	if AS.Func_UI_Button_GetValue(1):#開啟屬性框
		AS.Func_UI_Button_SetValue(1, False)#復位訊號
		AS.Func_HIK_VM_ShowModule(10000,"1")#呼叫編號為10000的流程中的流程編號為1的模組
	if AS.Func_UI_Button_GetValue(0):#單次執行
		AS.Func_UI_Button_SetValue(0, False)#復位訊號
		AS.Func_HIK_VM_ExecuteOnce(10000)#單次執行編號為10000的流程
		myres = AS.Func_HIK_VM_GetFinalData()#獲取格式化結果
		AS.Func_SysInfoAdd("視覺結果:" + myres)#顯示在系統日誌中
	time.sleep(0.1)

指令碼中我們定義了迴圈掃描2個按鈕的觸發標誌位,然後執行對應的操作 ,儲存並在主介面的任務項中指定指令碼路徑,執行即可看到下面的結果:

 

***********************************************************************************************************************************************

ApolloStudio最新版下載地址:

連結:https://pan.baidu.com/s/1UAgivKlM4E9dNT06V9spUw 密碼:a316

歡迎加入Q群:793683827 進行學習交流