基于Vision Master开发的环境配置
海康 VM 二次开发环境配置介绍:
VM 版本:VisionMaster_CN_STD_V4.4.0_250516。基础安装包。必须安装,且应首先安装。
Path: C:\Program Files\VisionMaster4.4.0
VMDL 版本:VisionMaster_DeepLearning_CN_STD_V4.4.0_250516。深度学习工具包。
需使用深度学习模块时,应安装。安装该工具包前,需先安装基础安装包。
Path: C:\Program Files\VisionMaster4.4.0\MVDAlgorithmSDK
VM 示例版本:VisionMaster_Sample_CN_STD_V4.4.0_240813。示例方案安装包。
需使用搭建的示例,应安装。
VMT 版本:VisionTrain_CN_STD_V2.3.0_250529。VisionTrain 2.3.0 安装包
Path: C:\Program Files\VisionTrain2.3.0
异常信息收集工具名称为 AbnormalInfoCollectTool.exe,
所在路径为:…\Applications\Tools\AbnormalInfoCollectTool。
环境检测工具名称为:VMCollector.exe,所在路径为:…\Applications\Tools\VMCollector。
第一步:安装
VM 算法开发平台完成安装后,包含软件、软件 SDK、软件所需驱动以及算子包 SDK。具体安装路径如下:
● 软件:…\VisionMaster4.4.0\Applications
● 软件 SDK:…\VisionMaster4.4.0\Development
● 软件所需驱动:…\VisionMaster4.4.0\Drivers
● 算子包 SDK:C:\Program Files\VisionMaster4.4.0\MVDAlgorithmSDK
编译程序使用:
VS2022 — C# WinForms/WPF
新建 C#(为例).NET Framework 框架项目。
点击项目属性界面 —> 点击生成界面,确认项目框架模板为 .NET Framework 4.6.1,同时取消平台目标下的勾选“32 位首选”。
然后点击菜单工具 —> “保存”。
第二步:添加程序引用项
(Properties 下的引用选项),打开你的 VisionMaster 安装路径,下面为教程和本机示例:
D:/VisionMater4.2.0/Development/V4.x/ComControls/Tool/ImportRef.exe 教程文件夹路径
点击此处文件夹下,C:\Program Files…\V4.x\ComControls\Tool\ImportRef
此工具内容点击引用,加载项目路径 —> 加载引用进去。
此时返回 VS 工程文件中,点击“全部重新加载”。
第三步:加载页面 Form 控件,
VS 工程中点击 Form1.cs
进入“工具箱” —> 所有 Windows 窗体(全部显示) —> 之后选择“添加项” —> 选择对应框架 .NET Framework 此时这里会加载稍微几秒钟。
之后点击“浏览”,选择路径:
Program Files\VisionMaster4.4.0\Development\V4.x\ComControls\Assembly\
确认成功:
点击工具栏,搜索 vm**,出现以下控件内容。
动态链接库 DLL 介绍及添加说明:
注意事项:
支持 .NET Framework,要求 4.6.1 版本及以上,不支持 .NET Core。
在项目属性中的平台目标选择【Any CPU】,需去除勾选【首选 32 位】。
手动添加 VM 相关动态库引用后,需设置库属性中的复制本地为【False】。
程序退出前,可调用接口释放 VM 相关资源,避免在析构函数中调用接口。
参数控件和参数渲染控件暂不支持记忆参数订阅框显示的默认方式。
独立 Group 控件暂不支持执行和耗时显示功能。
另外一种方式,为将动态链接库,复制到一个文件夹,方便后续软件打包。
海康的方案显示界面需要使用“VmProcedureConfigControl 接口”。
同时在 Form.cs 页面中需要添加两个引用控件:
usingVM.Core;usingVM.PlatformSDKCS;加载方案时需要额外的 API 接口函数。
保存函数 Save() 替换原方案保存,SaveAs() 另存文件在自定义路径中。
切记运行时要关闭 VM 和 Server,不关闭可能报错。
结果显示与渲染,
在进行结果获取之前需要在 VM 中先对流程进行结果配置,对应关系输出点击“扳手”图标进行设置。
结果显示输出在图片上的信息。
数据结果在输出设置。
选择数据类型 int,参数名称 out0,订阅关系:绑定对应类型的模块中的程序参数(设置一个参数名称,选择对应类型,配置得到结果)。
配置好后,关闭 VM 软件,打开二次开发程序:
渲染结果输出,使用组件为 vmRenderControl 控件。
Dock:Fill,在执行一次中编辑:
// 获取结果,分为渲染结果和数据结果 加载(render panel 为 null)// 首先定义并初始化一个流程对象,并与在 VM 中配置好的方案下流程做绑定// 将渲染控件的显示源 ModuleSource 绑定流程对象。// 然后格式化输出(变量)第一个程序:1.4 模块参数设置
工具箱中提供了两个参数配置控件,VmParamsConfigControl 是不带渲染的参数配置控件,VmParamsConfigControlWithRenderControl 是带渲染的参数配置控件。
出现报错波浪线的时候,IMVSOcrModuTool__error。
然后将带渲染界面的参数配置控件的 ModuleSource 属性与字符识别工具对象做绑定。// 特别注意,需要对应流程中的模块内容,有深度学习的,要选择Dl。
注意看帮助文档:C:\Program Files\VisionMaster4.4.0\Development\V4.x\Documentations。
1.5 小技巧
先添加对应需求的命名空间,加引用。
例如圆查找空间为 IMVSCircleFindModuCS,定义对象,实例化,其他模块同样如此。
捕获异常:每个函数都需要捕获异常,使用 try — catch。
2.1 流程列表获取:(方案(流程(模块))),拖动 ComboBox(事件 DropDown)。
以列表的方式获取当前方案下的所有流程名。
每次获取流程名时,都需要更新 Items,需要获取前做 clear 清空操作。
循环遍历流程列表后,使用 Add() 接口依次添加到 comboBox1 的 Items 下。
流程绑定单个流程:
使用 BindSingleProcedure() 将 ComboBox 的文本对应的流程绑定到流程配置控件上。
流程绑定多个流程:BindMultiProcedure()。
通过 1.3 获取结果,同样可以获取流程的渲染结果和数据结果。使用回调事件函数获取方案中流程的结果并输出。
在构造函数中创建回调事件函数:
VmSolution.OnWorkStatusEvent+=VmSolution.OnWorkStatusEvent;实现函数,以 OCR 模块为例,以 IMVSocrModuTool 类,将流程 OCRDemo 实例化,然后将结果转化为 string 类型。
通过通讯触发模块tcp/udp客户端,服务端来进行数据首发等。
