点击蓝字
关注我们,让开发变得更有趣
以下文章来源于英特尔物联网
作者:张佳骥 MVTec 售前工程师
张 晶 英特尔 AI 开发者市场部经理
01
什么是HALCON
MVTec HALCON 是一款在全球范围内使用,综合性的机器视觉标准软件。它有一个专门的集成开发环境(HDevelop),专门用于开发图像处理解决方案。使用 MVTec HALCON,您可以:
受益于灵活的软件架构
加快所有可行的机器视觉应用发展
保证快速进入市场
持续地降低成本
作为一个综合工具箱,HALCON 涵盖了机器视觉应用的整个工作流程。其核心是灵活而强大的图像处理库,其中有 2100 多个算子。HALCON 适用于所有行业,并为图像处理提供卓越性能。
官网链接:https://www.mvtec.com/
图片引用自:
https://www.mvtec.com/cn/products/HALCON/why-HALCON/compatibility
02
什么是 OpenVINO™ 工具套件
OpenVINO™ 工具套件:一款可轻松实现 “一次开发,任意部署” 的,用于AI模型优化和部署的开源工具套件。
提高计算机视觉、自动语音识别、自然语言处理和其他常见任务的深度学习性能
使用经过 TensorFlow、PyTorch、PaddlePaddle 等流行框架训练的模型
减少资源需求,并在从边缘到云的一系列英特尔® 平台上高效部署
03
安装 HALCON 和 OpenVINO™
从 21.05 版本开始,HALCON 通过全新 HALCON AI 加速器接口 (AI²),支持 OpenVINO™ 工具套件,从而支持 AI 模型在英特尔的硬件设备上实现推理计算加速。
HALCON通过全新 HALCON AI 加速器接口 (AI²):
https://mp.weixin.qq.com/s/4UA_0L0wyKNMIy3lQf2dFw
当前 HALCON 的 AI 模型对英特尔的硬件设备支持,如下表所示:
要实现使用 HALCON AI 加速器接口在英特尔硬件设备上加速 AI 推理计算,只需要一次安装 HALCON 和 OpenVINO™,然后编写 HALCON AI 推理程序即可。
3.1
安装 HALCON
官网注册
登录 MVTec 官网 HALCON 软件下载页面(目前 HALCON 的最新版本是 23.11 Progress),如果没有注册过 MVTec 用户账号,需要先进行注册个人或企业账号。(请注意此处需要使用公司邮箱注册,其他私人邮箱会注册失败)。也可以查看下面的网页,了解最新版本的更新信息:HALCON 23.11 新功能: MVTec Software。
MVTec 官网 HALCON 软件下载页面:
https://www.mvtec.com/downloads/halcon
HALCON 23.11 新功能: MVTec Software:
https://www.mvtec.com/cn/products/halcon/new-features/halcon-2311
下载并解压
在官网下载完整版的安装包(需要登陆账号), 下载 HALCON: MVTec Software。 可以选择产品的版本和操作系统,此处以 Windows 平台的最新版本 23.11 progress 为例。点击图中链接会自动开始下载,可自行使用工具加速。
下载 HALCON: MVTec Software::
https://login.mvtec.com/identity/login?requestId=e10f838f-3acb-4ff4-951b-49399d0bd84a&view_type=login&approval_prompt=auto
下载完成后,解压缩完成,打开对应的文件夹,点击 som.exe 文件,启动 SOM(Software Manager)。
安装设置
SOM 会使用默认浏览器打开安装界面,如果打开界面后未出现可选安装项目,建议重启电脑再次打开 som.exe。
可以点击“语言” 按钮切换界面语言, 点击“环境” 按钮修改一些设置,如程序和数据安装路径,仓库地址等等,一般使用默认值最好。
然后选择“可获得的”页面,找到安装包,点击“安装”按钮, 上方按钮是为当前用户安装,下方是为所有用户安装(需要系统管理员权限),一般点选上方按钮。
设备空间足够的话(15G 以上),建议右侧全选,全部安装;点击后等待安装结束即可。
加载 license 文件
HALCON 软件的运行还需要对应的 license 加密文件,可以向 MVTec 官方购买正式版或者申请试用版。
然后,可以直接在 SOM 界面中加载 license 文件,点击上图中的红色按钮,可以打开下方界面进行 license 文件的安装和管理,将 license 文件直接拖入即可。
最后,在 Windows 桌面上找到 HALCON 集成开发环境 HDevelop 软件图标,即可正常使用 HALCON。
3.2
安装 OpenVINO™ 2021.4 LTS
请到 OpenVINO™ 官网下载并安装 OpenVINO™ 2021.4.2,如下图所示。
OpenVINO™ 官网:
https://www.intel.cn/content/www/cn/zh/developer/tools/openvino-toolkit/download.html?VERSION=v_2023_2_0&OP_SYSTEM=MACOS&DISTRIBUTION=ARCHIVE
安装完毕后,请将 OpenVINO™ 运行时库的路径添加到 Windows 的环境变量 path 中。
第一步,运行:
C:\Program Files (x86)\Intel\openvino_2021.4.752\bin\setupvars.bat
path
左滑查看更多
获取 OpenVINO™ 运行时库的路径,如下图所示:
第二步,将 OpenVINO™ 运行时库的路径添加到环境变量 path 中,如下图所示:
到此,下载并安装 OpenVINO™,然后将 OpenVINO™ 运行时库的路径添加到 Windows 环境变量 path 中的工作全部完成。
注意:若您电脑所使用的 CPU 包含了集成显卡,请在 BIOS 中把集成显卡禁用掉。
04
编写 HALCON AI 推理程序
4.1
HALCON AI 推理程序工作流程
关于 HALCON AI 推理程序工作流程,以 HALCON 的深度学习图像分类为例,程序代码为 HALCON 集成开发环境 HDevelop 的开发语言。
1. 读取已训练完成的深度学习模型和预处理参数:
* Read in the model and Param.
read_dl_model (RetrainedModelFileName, DLModelHandle)
read_dict (PreprocessParamFileName, [], [], DLPreprocessParam)
左滑查看更多
2. 导入推理图像并生成深度学习样本:
* Read the images of the batch.
read_image (ImageBatch, Batch)
* Generate the DLSampleBatch.
gen_dl_samples_from_images (ImageBatch, DLSampleB atch)
左滑查看更多
3. 对深度学习样本进行预处理以匹配模型:
* Preprocess the DLSampleBatch.
preprocess_dl_samples (DLSampleBatch, DLPreprocessParam)
左滑查看更多
4. 执行深度学习推理:
* Apply the DL model on the DLSampleBatch.
apply_dl_model (DLModelHandle, DLSampleBatch, [], DLResultBatch)
左滑查看更多
5. 处理结果数据:
get_dict_tuple (DLResult, 'bbox_length2', BboxLength2)
get_dict_tuple (DLResult, 'bbox_phi', BboxPhi)
get_dict_tuple (DLResult, 'bbox_class_id', BboxClasses)
左滑查看更多
6. 显示结果
dev_display (RectangleSelected)
dev_disp_text (TextResults, 'window', 'top', 'left', BboxColorsResults, 'box', 'false')
左滑查看更多
4.2
HALCON AI 加速器接口 (AI²)
MVTec 的 OpenVINO™工具套件插件基于全新 HALCON AI 加速器接口 (AI²)。通过这一通用接口,客户可以快速方便地将支持的 AI 加速器硬件用于深度学习应用的推理环节。
这些特殊设备不仅在嵌入式环境中得到广泛应用,也越来越多地出现在 PC 环境中。AI 加速器接口从特定硬件中抽象出深度学习模型,因而特别能够适应未来发展。
MVTec 作为机器视觉软件的技术领导者,其软件可以在工业物联网环境中,通过使用 3D 视觉、深度学习和嵌入式视觉等现代技术,实现新的自动化解决方案。
除 MVTec 提供的插件外,还可以集成客户特定的 AI 加速器硬件。此外,不仅典型深度学习应用可以通过 AI² 加速,所有集成深度学习功能的“经典”机器视觉方法,例如 HALCON 的 Deep OCR,也能从中受益。
4.3
使用 DLT 工具
进行深度学习模型的数据标注和训练
DeepLearningTool(DLT)是 MVTec 推出的一款用于深度学习标注和训练的免费工具。使用深度学习工具,您可以凭借直观的用户界面轻松地标记数据,而无需任何编程知识。可以将这些数据无缝集成到 HALCON 中,以执行基于深度学习的物体检测,分类,语义分割,实力分割,异常值检测以及 Deep OCR。
以下是我们使用DLT进行例程中模型标注和训练的视频:
使用 DLT 标注并训练实例分割模型:
https://www.bilibili.com/video/BV1VG4y1s7jc/?spm_id_from=333.999.0.0&vd_source=c13b8c73b857c15ee023d89807943e11
4.4
HALCON 基于 OpenVINO™ 的 AI 推理范例程序
本文中,我们使用的是基于 HALCON 的深度学习对象检测的官方范例程序。
本文中所使用的基于 OpenVINO™ 的 HALCON 范例代码已分享到 MVTec 官网,网址为:
MVTec 官网:
https://www.mvtec.com/cn/technologies/deep-learning/ai-accelerator-interface
下载后将该程序保存至任意路径下。
如果推理需要加载重新训练的深度学习模型和预训练参数,需要使用 HALCON 的开发环境 Hdevelop 先运行官方路径
%HALCONEXAMPLES%/hdevelop/Deep-Learning/Detection/
的范例程序,从而可以完成训练并保存模型:
dl_detection_with_orientation_workflow.hdev
等待训练和测试程序运行完成后,会在相应路径下保存训练好的模型(model_best.hdl)和图片预处理的参数(DLPreParam.hdict),可以去替换范例程序里的文件。
打开下载好的示例程序,本地路径下对应的模型和预处理参数,如以下代码所示:
RetrainedModelFileName:='model_best.hdl'
PreprocessParamFileName:='DLPreParam.hdict'
左滑查看更多
例程中用到的演示图片是 HALCON 数据集中的screws 文件夹,如果 HALCON 安装正确的话,是在 HALCONEXAMPLES 路径中的,直接使用下面代码可以找到。
list_image_files ('screws', 'default', [], ImageFiles)
左滑查看更多
接着运行范例(或按 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™ 设备信息,包括本文所需使用的英特尔® Arc™ A770 独立显卡,这里我们看到支持的推理精度有 FP32 和 FP16,如下所示。
然后,需要选择 OpenVINO™ 设备,目前 HALCON AI²接口所支持的 OpenVINO™ 设备包括英特尔的CPU,GPU,HDDL 以及 MYRIAD。在安装 HALCON 时,只内置安装了 CPU 插件,需要额外安装 OpenVINO™ 工具套件来支持 GPU 等其他设备,具体安装参考章节 1.3.2。这里我们指定 OpenVINO™ 运行设备为“GPU”,即英特尔的独立显卡,如果要选择其他 OpenVINO™ 设备,可以修改设备序号以选择对不同的设备通道。
* Choose a OpenVINO device
DLDeviceOpen :=DLDeviceHandlesOpenVINO[3]
set_dl_model_param (DLModelHandle, 'device', DLDeviceOpen)
左滑查看更多
此处程序,会针对设备做推理优化,得到经过 OpenVINO™ 加速优化的推理模型。如果没有额外设置,精度上使用的是默认的 float32。
本次例程没有使用 C# 或者 C++ 来联合编程和编写界面,全部在 HALCON 中完成;需要按照例程中的说明文字调节下 HDevelop 中调节下窗口显示;确认调节完成后再次按下 F5,例程循环运行至结束。
得到的显示界面和结果如下图所示:
图片中可以看到算法准确地找到了 背景上物体地位置和方向,也标注了对应地类别。在结果显示地部分可以看到检测地数据结果,比如每个类别的得分,种类,详细的坐标和角度。同事在图片的右上角中,可以看到使用 OpenVINO™ 加速后的算法运行速度,每张图片的算法运行时间在 15~19ms 左右;基本能够满足高节拍生成的需求。
此外,例程中为了增强演示效果,在某些图片处理结果后增加了等待延时,主要是用于显示。
推理的工作流程可以参考 4.1 章节,在执行推理的同时,可以打开任务管理器,观察英特尔® 独立显卡的运行状态。范例中,默认使用 FP32 精度加速推理,也可以根据具体需要切换成 FP16 精度进行对比测试。
在英特尔® A380显卡上,也有明显的加速性能
05
总结
MVTec HALCON AI 加速器接口(AI²)可帮助 MVTec 软件产品用户充分利用与 OpenVINO™ 工具套件兼容的 AI 加速器硬件。如此一来,对于关键工作负载,可以在英特尔计算设备上明显缩短深度学习推理时间。
由于支持硬件范围得到扩展,用户现在可以充分利用各种英特尔设备的性能来加速深度学习应用,不再局限于少数特定设备。同时,这种集成可以无缝进行,不受特定硬件细节约束。现在只需更改参数,即可在 OpenVINO™ 工具套件支持的设备上执行现有深度学习应用的推理过程。
OpenVINO™
--END--
你也许想了解(点击蓝字查看)⬇️➡️ OpenVINO™ 2023.2 发布:让生成式 AI 在实际场景中更易用➡️ 开发者实战 | 介绍OpenVINO™ 2023.1:在边缘端赋能生成式AI➡️ 基于 ChatGLM2 和 OpenVINO™ 打造中文聊天助手➡️ 基于 Llama2 和 OpenVINO™ 打造聊天机器人➡️ OpenVINO™ DevCon 2023重磅回归!英特尔以创新产品激发开发者无限潜能➡️ 5周年更新 | OpenVINO™ 2023.0,让AI部署和加速更容易➡️ OpenVINO™5周年重头戏!2023.0版本持续升级AI部署和加速性能➡️ OpenVINO™2023.0实战 | 在 LabVIEW 中部署 YOLOv8 目标检测模型➡️ 开发者实战系列资源包来啦!➡️ 以AI作画,祝她节日快乐;简单三步,OpenVINO™ 助你轻松体验AIGC
➡️ 还不知道如何用OpenVINO™作画?点击了解教程。
扫描下方二维码立即体验
OpenVINO™ 工具套件 2023.2
点击 阅读原文 立即体验OpenVINO 2023.2
文章这么精彩,你有没有“在看”?