使用MVTec HALCON AI加速器接口在Intel独立显卡上加速AI推理

作者:张佳骥  MVTec 售前工程师;张晶 英特尔AI布道策略经理

1.1  什么是HALCON

MVTec HALCON 是一款在全球范围内使用,综合性的机器视觉标准软件。它有一个专门的集成开发环境(HDevelop),专门用于开发图像处理解决方案。使用 MVTec HALCON,您可以:

  • 受益于灵活的软件架构
  • 加快所有可行的机器视觉应用发展 
  • 保证快速进入市场
  • 持续地降低成本 

作为一个综合工具箱,HALCON 涵盖了机器视觉应用的整个工作流程。其核心是灵活而强大的图像处理库,其中有2100多个算子。HALCON 适用于所有行业,并为图像处理提供卓越性能。

官网链接:https://www.mvtec.com/

图片引用自:https://www.mvtec.com/cn/products/HALCON/why-HALCON/compatibility

1.2 什么是OpenVINO

OpenVINO™ 是一个用于优化和部署人工智能(AI)推理的开源工具平台。

  1. 提高计算机视觉、自动语音识别、自然语言处理和其他常见任务的深度学习性能。
  2. 使用经过 TensorFlow、PyTorch 等流行框架训练的模型。
  3. 减少资源需求,并在从边缘到云的一系列英特尔®平台上高效部署

1.3  安装HALCON和OpenVINO

从21.05版本开始,HALCON通过全新 HALCON AI 加速器接口 (AI²),支持OpenVINO™工具套件,从而支持AI模型在英特尔的硬件设备上实现推理计算加速。

当前HALCON的AI模型对英特尔的硬件设备支持,如下表所示

要实现使用HALCON AI 加速器接口在英特尔硬件设备上加速AI推理计算,只需要一次安装HALCON和OpenVINO™,然后编写HALCON AI推理程序即可。

1.3.1  安装HALCON

官网注册

登录MVTec官网HALCON软件下载页面(目前HALCON的最新版本是23.05 Progress)https://www.mvtec.com/downloads/halcon,如果没有注册过MVTec用户账号,需要先进行注册个人或企业账号。(请注意此处需要使用 公司邮箱注册,qq邮箱、163邮箱等私人邮箱会注册失败)

下载并解压

在官网下载完整版的安装包(需要登陆账号), 下载 HALCON: MVTec Software 可以选择产品的版本和操作系统,此处以 Windows平台的23.05 progress版本为例。 点击图中链接会自动开始下载,可自行使用工具加速。

下载完成后,解压缩完成,打开对应的文件夹,点击 som.exe 文件,启动SOM(Software Manager)。

安装设置

SOM 会使用默认浏览器打开安装界面,如果打开界面后未出现可选安装项目,建议重启电脑再次打开 som.exe。

可以 点击“语言” 按钮切换界面语言, 点击“环境” 按钮修改一些设置,如程序和数据安装路径,仓库地址等等,一般使用默认值最好。

然后选择“可获得的“页面,找到安装包,点击“安装”按钮, 上方按钮是为当前用户安装,下方是为所有用户安装(需要系统管理员权限),一般点选上方按钮。

设备空间足够的话(15G以上),建议右侧全选,全部安装;点击后等待安装结束即可。

加载license文件

HALCON软件的运行还需要对应的license加密文件,可以向MVTec官方购买正式版或者申请评估。

然后,可以直接在 SOM界面中加载license文件,点击上图中的红色按钮,可以打开下方界面进行license文件的安装和管理,将license文件直接拖入即可。

最后,在Windows桌面上找到HALCON集成开发环境HDevelop软件图标,即可正常使用HALCON。

1.3.2  安装OpenVINO 2021.4 LTS

请到OpenVINO官网下载并安装OpenVINO 2021.4.2,如下图所示。

安装完毕后,请将OpenVINO™运行时库的路径添加到环境变量path中。

第一步,运行:

C:\Program Files (x86)\Intel\openvino_2021.4.752\bin\setupvars.bat

path

获取OpenVINO™运行时库的路径,如下图所示:

第二步,将OpenVINO™运行时库的路径添加到环境变量path中,如下图所示:

到此,下载并安装OpenVINO™,然后OpenVINO™运行时库的路径添加到环境变量path中的工作全部完成。

1.4  编写HALCON AI 推理程序

1.4.1 HALCON AI 推理程序工作流程

关于HALCON AI推理程序工作流程,以HALCON的深度学习图像分类为例,程序代码为HALCON集成开发环境HDevelop的开发语言。

1. 读取已训练完成的深度学习模型:

* Read in the retrained model.

read_dl_model (RetrainedModelFileName, DLModelHandle)

2. 设置深度学习模型参数:

* Set the batch size.

set_dl_model_param (DLModelHandle, 'batch_size', BatchSizeInference)

* Initialize the model for inference.

set_dl_model_param (DLModelHandle, 'device', DLDevice)

3. 导入数据集预处理的参数:

* Get the parameters used for preprocessing.

read_dict (PreprocessParamFileName, [], [], DLPreprocessParam)

4. 导入推理图像并生成深度学习样本:

* Read the images of the batch.

read_image (ImageBatch, Batch)

* Generate the DLSampleBatch.

gen_dl_samples_from_images (ImageBatch, DLSampleBatch)

5. 对深度学习样本进行预处理以匹配模型:

* Preprocess the DLSampleBatch.

preprocess_dl_samples (DLSampleBatch, DLPreprocessParam)

6. 执行深度学习推理:

* Apply the DL model on the DLSampleBatch.

apply_dl_model (DLModelHandle, DLSampleBatch, [], DLResultBatch)

1.4.2  HALCON AI加速器接口 (AI²)

MVTec 的 OpenVINO™工具套件插件基于全新 HALCON AI 加速器接口 (AI²)。通过这一通用接口,客户可以快速方便地将支持的 AI 加速器硬件用于深度学习应用的推理环节。

这些特殊设备不仅在嵌入式环境中得到广泛应用,也越来越多地出现在 PC 环境中。AI 加速器接口从特定硬件中抽象出深度学习模型,因而特别能够适应未来发展。

MVTec 作为机器视觉软件的技术领导者,其软件可以在工业物联网环境中,通过使用3D视觉、深度学习和嵌入式视觉等现代技术,实现新的自动化解决方案。

除 MVTec 提供的插件外,还可以集成客户特定的 AI 加速器硬件。此外,不仅典型深度学习应用可以通过 AI² 加速,所有集成深度学习功能的“经典”机器视觉方法,例如 HALCON 的 Deep OCR,也能从中受益。

1.4.3  HALCON 基于OPenVINO的AI推理范例程序

本文中,我们使用的是基于HALCON的深度学习图像分类的官方范例程序。

本文中所使用的基于OpenVINO™HALCON范例代码已分享到MVTec官网,网址为:https://www.mvtec.com/cn/technologies/deep-learning/ai-accelerator-interface

————————————————————————————–

下载后将该程序保存至HALCON范例程序指定的文件路径中:%HALCONEXAMPLES%/hdevelop/Deep-Learning/Classification/。

默认情况下,由于推理需要加载已经过训练的深度学习模型,所以需要使用HALCON的开发环境Hdevelop依次先运行该路径下的范例程序,从而可以完成训练并保存模型:

  1. classify_pill_defects_deep_learning_1_preprocess.hdev
  2. classify_pill_defects_deep_learning_2_train.hdev

接着打开下载的范例并运行(或按F5),首先需要查询HALCON所支持的OpenVINO™设备:

* This example needs the HALCON AI²-interface for the Intel® Distribution of the OpenVINO™ Toolkit * and a installed version of the Intel® Distribution of the OpenVINO™ Toolkit.

query_available_dl_devices ('ai_accelerator_interface', 'openvino', DLDeviceHandlesOpenVINO)

之后,继续执行程序,在可视化界面会依次显示所有查询到的OpenVINO™设备信息,包括本文所需使用的Intel Arc A770独立显卡,这里我们看到支持的推理精度有FP32和FP16,如下所示。

然后,需要选择OpenVINO™设备,目前HALCON AI²接口所支持的OpenVINO™设备包括Intel的CPU,GPU,HDDL以及MYRIAD。在安装HALCON时,只内置安装了CPU插件,需要额外安装OpenVINO™工具套件来支持GPU等其他设备,具体安装参考章节1.3.2。这里我们指定OpenVINO™运行设备为“GPU”,即Intel的独立显卡。

* The device parameter 'type' can be used for further selection.

* It states the OpenVINO™ plugin responsible for handling the

* device. Depending on your OpenVINO™ installation, possible values

* are e.g. 'CPU', 'GPU', 'HDDL', and 'MYRIAD'. If you did not install

* OpenVINO™, HALCON will install the 'CPU' plugin.

OpenVINODeviceType := 'GPU'

继续运行程序,会针对GPU的不同浮点精度做推理优化,得到经过OpenVINO™加速优化的推理模型。

* To convert the model to 'float16'/'float32' precision, no samples have to be provided to

* optimize_dl_model_for_inference.

* No additional conversion parameters are required, so use the default parameters.

get_dl_device_param (DLDeviceHandleOpenVINO, 'optimize_for_inference_params', OptimizeForInferenceParams)

optimize_dl_model_for_inference (DLModelHandle, DLDeviceHandleOpenVINO, 'float32', [], OptimizeForInferenceParams, DLModelHandleOpenVINO, ConversionReport)

在可视化窗口会展示CPU和GPU分别在FP32和FP16下的性能比对,包括推理时间和Top-1错误率。

至此,OpenVINO™的配置测试已基本完成,接着就是执行深度学习的推理,在可视化窗口里可以看到对于推理步骤的图示和文字解释,其中会再次展示所使用的推理设备,即Intel的独立显卡信息。

推理的工作流程可以参考1.4.1章节,在执行推理的同时,可以打开任务管理器,观察Intel独立显卡的运行状态。范例中,默认使用FP16精度加速推理,也可以根据具体需要切换成FP32精度进行对比测试。

1.5  总结

MVTec HALCON AI加速器接口(AI²)可帮助 MVTec 软件产品用户充分利用与OpenVINO™工具套件兼容的 AI 加速器硬件。如此一来,对于关键工作负载,可以在 Intel计算设备(包括 CPU、GPU 和 VPU)上明显缩短深度学习推理时间。

由于支持硬件范围得到扩展,用户现在可以充分利用各种 Intel 设备的性能来加速深度学习应用,不再局限于少数特定设备。同时,这种集成可以无缝进行,不受特定硬件细节约束。现在只需更改参数,即可在 OpenVINO™工具套件支持的设备上执行现有深度学习应用的推理过程。

MVTec 近日举办机器视觉研讨会,欢迎大家报名前往,和HALCON专家面对面交流!

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年12月20日
下一篇 2023年12月20日

相关推荐