开发者实战 | 在英特尔独立显卡上加速 HALCON AI 模型推理

2023/12/20 17:00
阅读数 21

点击蓝字

关注我们,让开发变得更有趣

以下文章来源于英特尔物联网

作者:张佳骥  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.batpath

    左滑查看更多


    获取 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 deviceDLDeviceOpen :=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
    文章这么精彩,你有没有“在看”?

    本文分享自微信公众号 - OpenVINO 中文社区(openvinodev)。
    如有侵权,请联系 support@oschina.cn 删除。
    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    展开阅读全文
    加载中
    点击引领话题📣 发布并加入讨论🔥
    打赏
    0 评论
    0 收藏
    0
    分享
    返回顶部
    顶部