HALCON: HALCON 20.11.0.0 Progress主要新特性
HALCON: HALCON 20.11.0.0 Progress主要新特性
改进了基于形状的匹配
在HALCON 20.11中,对基于形状匹配的核心技术进行了改进,尤其是针对低对比度和高噪声的场景。现在可以自动估计更多的参数。这增加了低对比度和高噪声的情况下的可用性、匹配率和鲁棒性在。
DotCode解码
在HALCON 20.11中,数据编码解码器已经扩展为新的编码类型DotCode。这种类型的2D代码基于一个点矩阵。因此,它可以打印的非常快,特别适用于高速应用,如在制药或烟草行业。
深度OCR
通过HALCON 20.11中的深度OCR,MVTec为OCR引入了一种基于深度学习的整体方法。这项新技术使机器视觉距离人类阅读更近了一步。
与现有算法相比,无论字符怎样旋转和字体怎样变化,深度OCR都可以更稳健地对字符进行定位。自动分组字符的能力允许识别整个单词。这极大地提高了识别性能,例如,可以避免对具有相似外观的字符的误解。
改进边缘支持的基于表面的3D匹配
在HALCON 20.11中,边缘支持的基于表面的3D匹配核心技术对于具有许多对象和边缘的3D场景来说速度显著加快。除了这个加速之外,通过消除设置视点的需要,可用性也得到了改进。
HALCON / Python
HALCON 20.11引入了一个新的HALCON/Python接口。这使得使用Python的开发人员能够轻松访问HALCON强大的操作符集。
HDevelop改版
为了增强可用性,HALCON的集成开发环境HDevelop进行了改进。在HALCON 20.11中,为单个配置实现了更多选项,例如,一个新的现代窗口对接概念。此外,主题现在可用来改善视觉人体工程学和适应个人喜好。
深度学习边缘提取
深度学习边缘提取是一种新的、独特的鲁棒提取边缘(如物体边界)的方法,主要有两个用例。
特别是在图像中可以看到各种边缘的情况下,MVTec的深度学习边缘提取可以训练只使用少量图像来可靠地提取所需的边缘。因此,使用MVTec HALCON大大减少了提取特定类型边缘的编程工作量。
此外,预先训练的网络天生就能在低对比度和高噪声的情况下鲁棒检测边缘。这使得提取常规的边缘检测过滤器不能检测的边缘成为可能。
深度学习的修剪
通过网络剪枝,用户可以选择在存储需求和速度方面优化完全训练的深度学习网络。有了这个特性,就有可能控制速度、存储和精度等参数的优先级,从而根据特定应用程序的需求修改网络。
HALCON XL
MVTec HALCON可以在两种模式下使用:标准HALCON为标准大小的图像进行了优化。相比之下,HALCON XL可以处理大于32768 x 32768的图像。
像标准的HALCON一样,HALCON XL可以以两种方式使用:您可以将相应的操作符库集成到您自己的c++、Visual Basic、c#或C程序中,或者您可以使用HDevelop XL (HDevelop的大图像版本)。
HALCON 兼容性
HALCON 库
与HALCON 20.05 Progress相比,HALCON 20.11.0.0 Progress引入了许多扩展。
因此,HALCON 20.11.0.0 Progress库与HALCON 20.05 Progress或早期版本不兼容。
然而,HALCON 20.11.0.0 Progress大部分源代码兼容HALCON 20.05 Progress,除了下面列出的更改:
sort_region: with SortMode \’character\’ previously took the larger one of two overlapping regions for the calculation of the overlap. This can cause an issue in case the two regions greatly differ in their sizes. Now, the smaller region is used to compute the overlap. Hence, in cases with overlapping regions that are very different in their sizes, this change can cause a different behavior of the operator. Also note that the extension of the parameter SortMode with a second optional value affects the compatibility as the operator signature changed for language interfaces. Affected interfaces are C, C++ and .NET. More information.
As edges_object_model_3d is now by default independent of a viewpoint, a \’viewpoint\’ contained in GenParamName is silently ignored. To obtain the old behavior, add \’estimate_viewpose\’ and \’false\’ to GenParamName and GenParamValue, respectively.
To obtain the old behavior in case no manual viewpoint has been set, add [\’estimate_viewpose\’, \’viewpoint\’] and [\’false\’, \’0 0 0\’] to GenParamName and GenParamValue, respectively. More information.
The default value for the new parameter \’max_num_samples\’ in the deep learning procedure determine_dl_model_detection_param has been set to 1500. For datasets with more than 1500 samples, this can lead to different detection parameters determined by the procedure. To reproduce the previous behavior, set \’max_num_samples\’ to \’-1\’. More information.
A set \’viewpoint\’ in GenParamName of find_surface_model, find_surface_model_image, refine_surface_model_pose, and refine_surface_model_pose_image has no effect anymore, except for the calculation of the view-based score if specified by \’use_view_based\’ set to \’true\’. The procedure debug_find_surface_model has been adapted accordingly.
If a surface-based model has been trained for use of edges, and the input point cloud of find_surface_model and find_surface_model_image contains a mapping, scene normals are automatically generated flipped inwards consistently w.r.t. the mapping. Normals contained in the input point cloud are not used anymore. Furthermore, the GenParamName \’scene_invert_normals\’ should not be needed anymore. Typically, \’scene_invert_normals\’ should be set to \’false\’ or be removed from GenParamName.
In rare cases, edge-supported surface-based matching returns slightly different results.
More information.
Using NVIDIA GPUs under Windows 7 is not supported anymore. More information.
Due to the change of the default value for the parameter \’rectif_interpolation\’ when using stereo models, identical results compared to previous HALCON versions can be obtained by calling set_stereo_model_param(StereoModel, \’rectif_interpolation\’, \’none\’) and set_stereo_model_image_pairs before reconstructing the surface using reconstruct_surface_stereo. More information.
The default encoding of 2D data codes has been changed from \’utf8\’ to \’latin1\’. Programs that expect UTF-8 encoded messages must be adapted by setting the parameter \’string_encoding\’ to \’utf8\’ with set_data_code_2d_param. More information.
get_data_code_2d_results now returns the value \’-1\’ for all result-specific parameters if \’CandidateHandle\’ is \’general\’. Applications that expect another value or an empty tuple need to be adapted. More information.
In very rare cases, the results of the operators watersheds, watersheds_threshold, and watersheds_marker might have changed for basins at the boundary of the ROI that are one pixel large. More information.
停止x86-win32平台版本的Windows
在HALCON 20.11中,用于Windows的x86-win32平台版本已经终止。
将任何现有的x86-win32应用程序切换到Windows的x64-win64平台版本,以便能够使用HALCON 20.11。
支持操作系统
Windows
HALCON 20.11.0.0 Progress has been compiled for the x64-win64 platform version for Windows 7/8.1/10 or Windows Server 2008 R2/2012 R2/2016/2019 x64 Edition on Intel 64 or AMD 64 processors.
Linux
HALCON 20.11.0.0 Progress has been compiled for the following Linux platform versions:
- x64 platform version for Linux x86_64, GLIBC_2.17, GLIBCXX_3.4.21, on Intel 64 or AMD 64 processors
- armv7a platform version for Linux armv7a, Kernel with hidraw support, hard-float ABI, GLIBC_2.17, GLIBCXX_3.4.21 on Armv7-A processors with NEON support
- aarch64 platform version for Linux aarch64, Kernel with hidraw support, GLIBC_2.17, GLIBCXX_3.4.21 on AArch64 processors
- Please refer to the Installation Guide for detailed system requirements corresponding to the different Application Binary Interfaces.
macOS
HALCON 20.11.0.0 Progress has been compiled for the x64 platform version of macOS 10.15 on Intel 64.