HALCON 24.11.1.0 Steady 发行说明

本文件提供 2024 年 11 月发布的 MVTec HALCON 24.11.1.0 Steady 的发行说明。

目录

HALCON 24.11.1.0 Steady 的主要新功能

用于分类的分布外检测 (OOD)

HALCON 的这一新功能可以轻松识别生产过程中因错误分类而导致的意外行为。因此,用户可以采取适当的措施,例如有针对性地、高效地停止机器。使用深度学习分类器时,未知物体会被分配到系统学习到的类别中。例如,如果缺陷或物体本身属于从未出现过的类型,这就会导致问题。
新的深度学习功能 "分布外检测(OOD)" 指出了何时对训练数据中未包含的物体进行分类。例如,如果系统只针对玻璃瓶进行过训练,那么这可能是一个金属制造的物体。在这种情况下,OOD 会提供一个 "OOD 分数",表示偏离训练类别的程度。

在使用新的训练图像扩展深度学习模型时,OOD 分数也很有用,它能说明哪些新图像对新模型的价值最大。例如,新训练图像的 OOD 得分越高,表明与网络已见图像的偏差越大——这意味着信息含量越高,因此训练价值越大。

新集成开发环境 HDevelopEVO 预览

HALCON 24.11 为所有 HALCON 集成开发环境 (IDE) HDevelop 的用户提供了一个特别亮点:新 IDE HDevelopEVO 的预览。
除其他外,它还具有更现代、更直观的用户界面和经过改进的编辑器(即中央编程元件)。后者可以更快、更高效地进行机器视觉应用的编程和原型设计。
用户已经可以在 HALCON 24.11 中广泛测试新的开发环境。HDevelopEVO 的功能范围将在今后的版本中不断扩大,并逐渐成为标准的 HALCON 开发环境。

改进的基于形状的匹配

新版 HALCON 使许多应用中使用的 "基于形状的匹配" 功能更加方便用户使用。这项技术用于快速、准确、精确地查找物体。为此,HALCON 24.11 新增了正在申请专利的 "扩展参数估计 "功能。这使得参数估计的粒度更大,从而大大提高了某些应用中的鲁棒性。"扩展参数估计" 使没有深入机器视觉专业知识的用户也能进行参数估计。

优化的 QR 码阅读器

HALCON QR 码阅读器的性能得到了显著提高。这在困难条件下尤为明显,例如,需要在图像区域找到多个码,或者图像中的许多纹理使检测变得复杂。在要求较高的情况下,识别率得到了提高,评估时间也大大缩短。

深度三维匹配

凭借这一功能,HALCON 24.11 为三维视觉领域带来了基于深度学习的市场创新,尤其适用于拣选和拾放应用。该功能在确定训练物体的准确位置和旋转方面特别强大,而且参数设置工作量极小,执行时间极短。根据精度要求,可使用一个或多个经济高效的标准 2D 机来确定位置。
训练完全在 CAD 模型生成的合成数据上进行。因此不需要进一步的训练数据。

客户已可在 HALCON 24.11 中运行该功能——若要训练模型和评估应用,可随时联系 MVTec。下一个版本将在 HALCON 中进行训练和评估。

深度计数

HALCON 23.05 为客户提供的深度计数功能可用于快速、稳健地计数大量物体并检测其位置。与现有的机器视觉方法相比,基于深度学习的技术具有显著优势: 由于只需对极少数物体进行标注和训练--这两个步骤都可以在 HALCON 中轻松完成,因此可以非常快速地部署该功能。即使是高反射和无定形材料的物体,该技术也能提供可靠的结果。利用深度计数功能,可以对玻璃瓶、树干或食物等大量物体进行计数。

深度 OCR 训练

深度 OCR 能以非常稳健的方式读取文本,甚至不受文本方向和字体的影响。为此,该技术首先检测图像中的相关文本,然后进行读取。有了 HALCON 23.05,现在还可以通过使用特定应用图像重新训练预训练网络来微调文本检测。这将提供更强大的结果,并开辟新的应用可能性。例如:检测任意印刷类型或未知字符类型的文本,以及在嘈杂、对比度低的环境中提高可读性。

形状匹配的扩展参数估计

HALCON 24.05 引入了形状匹配扩展参数估计的首次迭代。凭借亚像素精度,即使在最具挑战性的情况下,"形状匹配" 也能稳健、准确地实时找到目标。有了扩展参数估计,手动参数调整很快就会成为过去。
现在,用户可以使用多张注释图像,通过自动参数调整,在保持稳健性的同时,轻松优化最高在线速度。因此,即使没有专业知识,用户也能更快地实现形状匹配应用。
形状匹配从未如此简单!

条形码阅读器对堆叠条形码的改进

HALCON 24.05 对 GS1 DataBar Expanded Stacked 条码阅读器进行了改进。根据不同的应用,客户可以期待解码率的显著提高。这将特别有利于物流、零售和制造等行业,因为堆叠条形码是跟踪和追踪货物的重要手段。

三维改进与增强: 从 STEP 格式导入三维对象模型

从 24.05 版开始,HALCON 支持 STEP(产品数据交换标准)文件格式,这是三维 CAD 数据的行业标准。客户现在可以将 STEP CAD 数据直接无缝加载到 HALCON 三维对象模型中,而无需任何中间步骤或转换。STEP 格式受大多数常见 CAD 程序的支持,提高了互操作性和效率,因为用于三维匹配的模型可以直接从 CAD 软件中的规划数据中提取。

新版 OpenVINO™ 工具包 AI² 插件

在发布 HALCON 24.05 的同时,还将发布新版 OpenVINO 工具包 AI² 插件。该更新使用最新的英特尔® OpenVINO™ 工具包 LTS 版本,确保与最新的英特尔硬件兼容,并提高深度学习应用的推理性能。
值得一提的是,新版插件增强了对英特尔第 13 代酷睿处理器的支持,从而提高了推理性能。此外,客户现在还可以利用英特尔的独立显卡进行推理,在为其应用选择合适的硬件方面提供了更大的灵活性。

速度提升和进一步改进

HALCON 24.05 还针对各种核心技术进行了多项性能优化。例如,在支持 AVX2 的英特尔 CPU 上,使用向量字段对字节图像进行解压缩的速度提高了 285%。算子 map_image 的速度也提高了 25%。
此外,HALCON 24.05 还对许多算子进行了调整,以解决英特尔解决 "Downfall "安全漏洞后对性能造成的影响。

HALCON 24.11.1.0 Steady 的更多亮点

HALCON 的千兆以太网视觉接口支持 RoCEv2

随着该版本的发布,HALCON 的 GigE Vision 接口支持 RoCEv2 网络协议,从而提高了图像传输性能。

改进的 HALCON Progress 版

HALCON Progress 现在与 HALCON Steady 版本完全兼容。Progress 用户现在可以与 Steady 用户在同一项目上进行协作。此外,HALCON Progress 用户将获得与 HALCON Steady 用户相同的维护更新。今后,从 Steady 切换到 Progress 只需交换许可证文件即可。

三维抓取点检测训练

三维抓取点检测可用于稳健地检测任何物体上适合用吸力抓取的表面。在 HALCON 23.05 中,现在可以使用特定应用的图像数据重新训练预训练模型。因此,可抓取表面的识别能力更强。必要的标记可通过 MVTec 深度学习工具轻松高效地完成。

简易扩展接口

在 HALCON 扩展包的帮助下,可以集成外部编程语言。客户的优势:因此,HALCON 可以涵盖纯图像处理以外的功能。在 HALCON 23.05 中,通过简易扩展接口,外部代码的集成变得更加容易。这使得用户只需几步就能在 HDevelop 和 HDevEngine 中使用自己用 .NET 代码编写的函数,同时受益于 .NET 框架提供的广泛功能。甚至可以使用 HALCON/.NET 语言接口中已知的数据类型和 HALCON 算子。这增加了 HALCON 的灵活性和应用可能性。

多标签分类

在新版 HALCON 中,客户现在可以使用多标签分类,这是一种新的深度学习方法,可以在单张图像中检测出多个不同的类别。这些类别可以包括不同的缺陷、物体以及结构或颜色等属性。例如,在实践中,这种方法可以检测图像中是否存在不同类型的缺陷,并对不同的可能缺陷类型进行更详细的分类。与对象检测或实例分割相比,这种深度学习方法的处理速度更快,标注工作量也小得多。

进一步改进

在 HALCON 23.11 中,对现有方法和技术进行了多项改进:

全局上下文异常检测是一种用于检测复杂异常的方法,其底层神经网络已得到进一步优化。这在不增加硬件要求或执行时间的情况下提高了异常检测的准确性。

此外,HALCON 现在还采用了最新的 NVIDIA® CUDA® 工具包。这为用户提供了从更多人工智能加速器中进行选择的机会。例如,现在还支持新的英伟达™(NVIDIA®)Jetson OrinTM 模块。

最后,HALCON 23.11 对 HALCON 核心技术进行了多项性能优化。例如,模板匹配算子(大型模板的 NCC 匹配)在基于 Arm 的系统上的运行速度提高了 80%。

兼容性

许可证

所有 HALCON 24.05 Progress 许可证或早期版本的许可证都必须更换或升级。请联系当地经销商。HALCON 24.11.1.0 Progress-Steady 许可证将向下兼容 HALCON 24.05 Progress。

HALCON 库

与 HALCON 24.05 Progress 相比,引入了许多扩展。因此,HALCON 24.11.1.0 Progress-Steady 库与 HALCON 24.05 Progress 或更早版本的二进制不兼容。不过,除以下更改外,HALCON 24.11.1.0 Progress-Steady 与 HALCON 24.05 Progress 的源代码基本兼容:

  • 对于 sample_object_model_3d,参数 "SampleDistance"已更名为 "SamplingParam"。在 HALCON/Python 或 HALCON/.NET 中使用命名参数时,必须重新命名参数。

    更多信息。
  • 对于 read_object_model_3d,输出参数 "ObjectModel3D" 现在是 ObjectModel3D 数组类型,而不是单值类型 ObjectModel3D。这影响了 HALCON/C++ 和 HALCON/.NET 语言接口中 read_object_model_3d 的面向对象签名,包括 HObjectModel3D 构造函数及其成员函数 HObjectModel3D::ReadObjectModel3D。为实现向后兼容,仍提供未注明的单值签名,但不能与新参数 "split_level" 一起使用。有关完全支持的签名,参见算子参考。

    更多信息。
  • 算子 area_intersection_rectangle2distance_prdistance_lrdistance_srdistance_scdistance_lcdistance_cc_mindistance_cc_min_pointsdistance_cc 现在可接受以前会产生异常的输入。此外,算子 distance_ccdistance_cc_mindistance_cc_min_points 的 HALCON/C++ 和 HALCON/.NET 接口现在支持额外的重载,这在极少数情况下会导致兼容性问题。

    更多信息。
  • convex_hull_object_model_3dtriangulate_object_model_3dintersect_plane_object_model_3dregister_object_model_3d_pairregister_object_model_3d_global 现在会返回错误 9526("三维对象模型中的基元没有扩展数据"),而不是错误 9203、9511、9514、9515、9517 或对圆柱体或平面类型的无限基元的错误结果。

    更多信息。
  • HTuple::GetHctuple() 成员函数已更改为接收 Hctuple 结构的引用,以便将数据复制到该结构,而不是返回一个 Hctuple。

  • HalconCDefs.h 中移除了未注明的 at_iat_dat_hat_s 宏。

  • HGetPPar 函数的签名已更改,因此第三个参数现在使用 Hcpar const* H_RESTRICT* 参数,而不是 Hcpar* H_RESTRICT* 参数。任何直接或间接调用 HGetPPar 的代码都需要进行修改。
    请注意,这不是语义上的更改,因为 HGetPPar 的文档规定,不得修改 HGetPPar 返回的 Hcpar 值。这一修改向编译器明确说明了这一限制。 更多信息。
  • find_shape_modelfind_scaled_shape_modelfind_aniso_shape_model 预计参数 "NumLevels" 和 "NumMatch"为整数,但也接受双精度。由于这些值应该是整数,因此现在设置双精度会导致错误,以便通知用户。

    更多信息。
  • 在对象检测模型的推理中,如果预测方框与另一个预测方框的交并比(IoU)分别等于阈值 "max_overlap" 或 "max_overlap_class_agnostic",则在非最大压制期间保留预测方框。

    更多信息。
  • 深度学习模型的 GPU 运行时初始化已得到改进。性能应该会比以前更稳定,初始化模型所需的时间也会大大减少。作为副作用,apply_dl_modeltrain_dl_model_batch 的运行时性能和 GPU 内存使用量可能与之前版本的 HALCON 有所不同。这仅适用于 GPU 运行时设备。请注意,要在 GPU 上获得最佳推理性能,应使用像 Tensor RT 这样的 AI² 接口(参见 query_available_dl_devices )。

    更多信息。
  • 函数 "dev_display_dl_data" 中 "gripping_map" 的显示颜色可通过参数 "heatmap_color_scheme" 进行更改。这一行为已被更改。现在,参数 "heatmap_color_scheme" 不再影响显示的抓取图的颜色。相反,可以使用参数 "gripping_point_map_color" 和 "gripping_point_background_color"来更改抓取图的颜色。

    更多信息。
  • 如果 "saturation_variation" 增强方法已被用作 Deep-OCR 识别模型训练脚本中 augment_dl_samples 的输入,那么该脚本将在更新的 HALCON 版本中失效。为了使脚本正常工作,必须从输入字典中移除 "saturation_variation" 键。

    更多信息。
  • 当数据中缺少 calib_obj_pose 时,ItemType='calib_obj_pose'的 get_calib_data 有时不会引发错误,或返回错误 8458("无效校准对象索引")。get_calib_data 现在会返回错误 8459("校准对象姿态索引无效")。

    更多信息。
  • 预训练的深度 OCR 检测模型已得到改进和更改。对于某些图像,apply_deep_ocr 现在可能会在 "检测" 和 "自动" 模式下产生不同的结果。现有应用程序应根据新模型测试参数设置。在新版 HALCON 中,旧版深度学习模型向后兼容阅读。 

    更多信息。
  • 使用 Hpar f 联合成员的应用程序可以安全地修改为使用二进制兼容的 d 成员。任何使用 FLOAT_PAR 宏的程序都可以安全地替换为相同的 DOUBLE_PAR 宏。

    更多信息。
  • armv7a-linux、x64-linux 平台和 armv8-linux 平台上 HALCON 库的最低系统要求已提高到 gcc 7 和 glibc 2.27。

    更多信息。
  • 使用 "pretrained_dl_classifier_resnet18.hdl "模型进行的训练结果可能与之前的版本略有不同。

    更多信息。
  • 函数/general/structured_light_camera_screen_sync.hdvpprocedures/general/structured_light_inspect_segmentation.hdvp 已移至新程序库 procedures/general/structured_light.hdpl

    更多信息。
  • affine_trans_object_model_3d 不再复制基元。 affine_trans_object_model_3drigid_trans_object_model_3d 不再复制用于三维距离计算的预计算数据结构。

    更多信息。
  • 为了优化在 x64-linux 和 x64-win64 架构上的性能,cuDNN 现在可以在线选择所使用的卷积算法。因此,与之前的 HALCON 版本相比,运行时初始化更加耗时,而且结果并不总是可重复的。
    要在相同的 GPU 上重现相同的结果,可以将系统设置 "cudnn_deterministic" 设为 "true",以牺牲性能,或者使用 TensorRT AI² 接口来优化模型(如适用)。
    新版 cuDNN 会在首次使用后创建初始 GPU 内存缓存,该缓存会一直存在,直到进程结束。初始缓存的大小会根据所使用的 GPU 硬件及其实际使用情况而变化。

    更多信息。
  • 内存块的处理也已扩展到支持空内存块。任何使用大小为零的内存块来表示错误的应用程序都应进行相应调整。

    更多信息。
  • 对于 22.11 之后(包括 22.11)的 HALCON 版本,通过 get_generic_shape_model_param 获取的用户设置参数值(即以后缀"_param" 查询的参数)可能有所不同。此外,train_generic_shape_model 得出的形状模型也可能不同。
    为使 get_generic_shape_model_paramtrain_generic_shape_model 在读取用 21.05 之前版本的 HALCON 编写的形状模型后保持一致的行为,用户必须将受影响的参数设置为形状模型中编写的值。例如,必须首先使用 get_generic_shape_model_param(ModelID, 'num_levels', NumLevels) 查询参数 num_levels,然后使用 set_generic_shape_model_param(ModelID, 'num_levels', NumLevels) 设置参数NumLevelsParam,以实现从 get_generic_shape_model_param(ModelID, 'num_levels_param', NumLevelsParam)得到与 NumLevels 相同的值。

    更多信息。
  • 对于通过 create_shape_modelcreate_shape_model_xldcreate_scaled_shape_modelcreate_scaled_shape_model_xldcreate_aniso_shape_modelcreate_aniso_shape_model_xld 创建的形状模型,train_generic_shape_model_param 的行为在处理 "min_contrast" 和 "contrast" 时可能会有所不同。

    更多信息。

HALCON 应用

请重新编译所有使用 HALCON 24.05 Progress 开发的 C、C++ 或 .NET 程序。与 HALCON 24.05 Progress 或更早版本的不兼容性主要涉及二进制文件,仅在语言接口方面有少量更改。如果您在重新编译程序时遇到问题,请查看以下更改的详细说明。

图像采集接口

一般来说,HALCON 24.11.1.0 Steady、HALCON 24.05 Progress 和 HALCON 20.11 Steady 图像采集接口与库兼容。

HALCON 24.11.1.0 Steady 仅包含可用图像采集接口的子集。更多信息,参见 图像采集接口的参考文档 。您可以从我们的 网络服务器 下载其他接口。

数字输入/输出接口

一般来说,HALCON 24.11.1.0 Steady、HALCON 24.05 Progress 和 HALCON 20.11 Steady 数字输入/输出接口与库兼容。

HALCON 24.11.1.0 Steady 仅包含可用数字输入/输出接口的子集。更多信息,参见 输入/输出接口参考文档 。您可以从我们的 网络服务器 下载其他接口。

扩展包

请重新生成使用 HALCON 24.05 Progress 开发的扩展包。

更多兼容性信息

遗留或不再支持的功能

以下功能可能会在未来的主要版本中停止使用:

有关如何替换遗留算子的详细信息,请参见参考手册条目。

支持的操作系统

Windows

HALCON 24.11.1.0 Steady 已针对 x64-win64 平台版本进行了编译,适用于 Windows 10(x64 版本)、11、Windows Server 2016、2019、2022(英特尔 64 或 AMD 64,带 SSE2(AVX2 调度)处理器)。

Linux

HALCON 24.11.1.0 Progress-Steady 已针对以下 Linux 平台版本进行了编译:

有关不同应用二进制接口的详细系统要求,请参阅安装指南。

HALCON 24.11.1.0 Steady 中更改的详细说明

HALCON 24.11.1.0 Steady 中的更改与 HALCON 24.05 有关。

HDevelop

新功能

GUI
  • 现在可以通过 HDevelop 的开始对话框访问 MVTec 学院。

  • 改进了与多个 HDevelop 的协同工作。在 HDevelop.ini 中不再每次关闭时都存储部件的坐标和尺寸属性,现在只有在关闭 HDevelop 后才会存储。

  • 改进了 HDevelop 的程序窗口组合框。函数的分组方式有了进一步的改变,现在可以搜索函数了。

  • 如果您同意与我们共享匿名数据,您可能会收到有关我们最新或即将推出的产品的更多信息。

  • CTRL + W 会关闭整个程序窗口,无论是否有打开的标签页。现在,当前标签页会被关闭,如果没有其他标签页打开,CTRL + W 就会关闭程序窗口。

  • 改进了窗口菜单的可用性。"打开画布" 选项现在有了专用图标。

  • 改进了 HDevelop 的可用性。现在,按下 Ctrl 键即可隐藏停靠下拉指示器。这样,就可以移动窗口并防止其停靠。

  • 现在可以使用 "参数设置" > "用户接口" > "程序窗口 "下提供的选项,在程序编辑器中显示空白。

助手
  • 在 HDevelop 中,图像采集助手参数选项卡上某些参数类型的可用性得到了改进。IP 和 MAC 地址以及十六进制数字现在都显示为人类可读的字符串。
IDE
  • The usability of HDevelop has been improved by a mechanism that informs the user about modified program, procedure, or procedure library files, and offers to reload the modified files. This mechanism is implemented twofold:HDevelop 的可用性已通过一种机制得到改善,该机制会通知用户已修改的程序、函数或函数库文件,并提供重新加载已修改文件的服务。这种机制有两个方面:

    • 其中一种实施方法基于系统操作。它对性能没有影响,被视为首选实施方案。
    • 在极少数情况下,这种实现方式是不够的(例如,由于操作系统无法同时打开足够多的文件句柄),我们提供了一种基于定时器的实现方式。这种实现方式会影响 HDevelop 应用程序的性能和响应速度,因此只是一种备用解决方案。

    使用哪种实现方式将被持久保存,并可在 HDevelop 的常规选项中进行选择。也可以完全停用文件跟踪功能。

  • dev_get_system 现在还支持参数 "call_stack",可用于返回当前的调用栈。

语言

错误修复

助手
代码导出
GUI
IDE
函数
杂项

HDevelop 示例程序

新的 HDevelop 示例程序
新功能
错误修复

HDevEngine

功能

  • "导出程序"不再导出 MacOS/Apple (C/C++) 专用代码。

错误修复

  • 在某些情况下,调用返回图标值的算子可能会导致 JIT 编译程序出现内存泄漏。该问题已得到修复。

  • 当 .NET 运行时已在运行中,在 adapter_dotnet 中加载 .NET 程序集会导致错误。该问题已得到修复。

  • 卸载单个库函数不是定义明确的操作,可能导致崩溃。该问题已得到修复。现在,对库函数调用 UnloadProcedure 会隐式地卸载整个库。以后尝试从库函数中创建 HDevProcedure 时,将重新加载库。

HALCON 库

提速

新功能

3D
条形码
校准
分类
数据码
深度学习
文件
图形
图像
匹配
杂项
OCR
并行化
区域
系统
工具
元组
XLD

错误修复

三维
条形码
校准
分类
颜色处理
数据码
深度学习
代码导出
GUI
文件
滤波器
图形
检查
图像
身份验证
匹配
矩阵
测量
内存
杂项
形态学
OCR
并行化
区域
分割
系统
工具
变换
元组
XLD

函数

功能

错误修复

HALCON/C

错误修复

HALCON/C++

错误修复

HALCON/.NET

错误修复

HALCON/PYTHON

功能

错误修复

功能

错误修复

扩展包

错误修复

语言接口示例程序

错误修复

HALCON 变量检查

功能

错误修复

图像采集接口

有关新接口版本和新支持的图像采集设备的最新信息可在 MVTec 的网络服务器 上找到。请参阅各个 图像采集接口 文档中的发行说明,了解有关改进、错误修复或是否需要相应设备驱动程序新版本的信息。

数字输入/输出接口

有关新接口版本和新支持的 数字输入/输出接口 的最新信息,可在 MVTec 的网络服务器 上找到。有关改进、错误修复或是否需要相应设备驱动程序新版本的信息,请参阅各数字 I/O 接口文档中的发行说明。

文件

程序员手册

用户指南

解决方案指南

参考手册

杂项

安装

许可

扩展包

错误修复

杂项

第三方库

请点击 此链接 了解 HALCON 以前版本的变化。