MVTEC Halcon 21.11.0.0a Progress Full Linux x64-linux HALCON21.11.0.0a演进完整版 64位x64-linux版
文件名: halcon-21.11.0.0a-x64-linux.zip
文件大小: 6738176751 字节 (6.28 GB)
修改日期: 2022-02-18 18:12
MD5: c3c9fe56cccad81c45300bd64ef62f84
SHA1: b9fc4aa087d3eb4f22de4fec92dbd5ccfe444260
SHA256: 0a022d3a068e8ba0556fdd74259280407f29a4d237826ca16c2e88dc4e62c0ec
CRC32: 835a90d6
MVTEC官方地址:
www.mvtec.com
百度网盘下载地址:
MVTEC Halcon 21.11.0.0a Progress Full Linux x64-linux HALCON21.11.0.0a演进完整版 64位x64-linux版
http://visionbbs.com/thread-30474-1-1.html?fromuid=9
(出处: 机器视觉论坛)
RELEASE NOTES FOR HALCON 21.11 PROGRESS
This document provides the release notes for MVTec HALCON 21.11.0.0 Progress, as released in November 2021.
CONTENTS
Major New Features of HALCON 21.11.0.0 Progress
Future-Proof Interface for Shape Matching
Improved Dictionary Handling
OpenVINO Toolkit Plugin
Deep Learning Instance Segmentation
Improved Bar Code Reader for Code 128
Compatibility
Licenses
HALCON Library
HALCON Applications
Image Acquisition Interfaces
Digital I/O Interfaces
Extension Packages
Further Compatibility Information
Legacy or No Longer Supported Functionality
Supported Operating Systems
Detailed Description of Changes in HALCON 21.11.0.0 Progress
Speedup
New Functionality
Bug Fixes
Bug Fixes
New Functionality
Bug Fixes
HDevelop Example Programs
HDevelop
HDevEngine
HALCON Library
Procedures
Language Interface Example Programs
Image Acquisition Interfaces
Digital I/O Interfaces
Documentation
Installation
Licensing
Release Notes of Previous HALCON Versions
MAJOR NEW FEATURES OF HALCON 21.11.0.0 PROGRESSFUTURE-PROOF INTERFACE FOR SHAPE MATCHING
With Generic Shape Matching, HALCON offers user-friendly access to MVTec’s industry-proven shape matching technologies. Thanks to the significant reduction in the number of required operators, users can implement solutions more easily and quickly.
With HALCON 21.11, existing functionalities are enhanced to further increase usability. For example, the clutter feature has been integrated, handle inspection has been optimized, and additional parameters have been integrated and included in the automatic parameter estimation.
IMPROVED DICTIONARY HANDLING
Dictionaries make it easy and convenient to manage complex data in HALCON. For example, different data types such as images, ROIs and parameter settings can be bundled in a single dictionary. This allows programs to be structured in a logical way, for example when passing many parameters to a procedure.
HALCON 21.11 includes several improvements that make the handling of dictionaries even easier and faster. For example, dictionaries can now be initialized with a single operator call, and the syntax for adding and retrieving elements has been simplified. In addition, the auto-completion now also suggests the keys contained in the dictionary, which further speeds up and simplifies working with dictionaries.
OPENVINO TOOLKIT PLUGIN
MVTec provides a plug-in for the Intel Distribution of OpenVINO™ toolkit as part of HALCON Progress Edition. It enables HALCON users to benefit from AI accelerator hardware that is compatible with the OpenVINO toolkit.
As a result, significantly faster deep learning inference times can be achieved on Intel processors including CPUs, GPUs, and VPUs. By expanding the range of supported Intel devices, customers now have even more flexibility in their choice of hardware.
This plug-in can also be used with HALCON 21.05 Progress.
DEEP LEARNING INSTANCE SEGMENTATION
With HALCON 21.11, MVTec extends the functional scope of its deep learning features with a new technology called “instance segmentation”. This combines the advantages of semantic segmentation and object detection.
With the help of instance segmentation, objects can be assigned to different classes with pixel accuracy.
This technology is particularly useful in applications where objects are very close to each other, touch or overlap. Typical use cases also include grabbing randomly arranged objects from boxes (bin picking) as well as identifying and measuring naturally grown structures.
IMPROVED BAR CODE READER FOR CODE 128
With HALCON 21.11, HALCON’s bar code reader is improved with respect to robustness in case of blurred Code 128/GS1-128 codes. Now, codes with a larger amount of blur can be read. Blur on such codes can occur due to motion or due to limits by the depth of focus. The Code 128/GS1-128 code is a widely used bar code type that is frequently used in logistics due to its compact size and high data density.
COMPATIBILITYLICENSES
HALCON 21.11.0.0 Progress requires a valid HALCON Progress license and does not run with licenses of HALCON 13 and earlier versions or HALCON Steady.
HALCON LIBRARY
Compared to HALCON 21.05 Progress, many extensions have been introduced. Thus, the HALCON 21.11.0.0 Progress libraries are not binary compatible with HALCON 21.05 Progress or earlier versions. However, HALCON 21.11.0.0 Progress is mostly source-code compatible to HALCON 21.05 Progress except for the changes listed below:
OpenCL support for macOS platforms has been removed. Compute device operators now return the error 9000 ("Function not implemented on this machine").
The OpenGL compatibility mode for macOS platforms has been removed. More information.
The improvements of find_calib_object can lead to slightly different results in rare cases. More information.
The parameter 'pyramid_level_lowest' of set_generic_shape_model_param accepted non-supported values smaller than 1 and reset them to 1 internally. This problem has been fixed. Now, an exception is thrown to inform the user about invalid input values.
Due to the bugfix in trans_to_rgb for the color space 'yiq' and image type 'uint2', the gray values of the images returned by the operator can slightly differ from the previous results. Furthermore, the runtime of the operator for color space 'yiq' and image type 'uint2' has increased. For example, for images of size 750x500, the runtime has increased by roughly 10-15%. More information.
read_dl_model and read_deep_ocr accepted a tuple of filenames as input and only used the first entry for reading in the model. This behavior has been changed such that an error (1401) is raised. More information.
In the procedure determine_dl_model_detection_param, the default of 'image_size_constant' is 'true', i.e., all images are assumed to have the same size. To reproduce the previous behavior, set this parameter to 'false'.
In the procedure determine_dl_model_detection_param, the default of the generic parameter 'split' has been changed to 'train'. To reproduce the previous behavior, set this parameter to 'all'. More information.
The computation of print quality values according to the international standard SEMI T10-0701 has been adapted. Therefore, the 'quality_semi_t10_values' returned by get_data_code_2d_results may differ from previous versions. More information.
Basins returned by watersheds_marker that were found at the border of the image, or markers that were used at the border of an image, can now differ at the image border in rare cases. More information.
For PharmaCode and 2/5 Industrial bar codes, the number of quality grades ('quality_isoiec15416', 'quality_isoiec15416_float_grades') and values ('quality_isoiec15416_values') returned by get_bar_code_result changed from 7 and 8, respectively, to 9. Thereby, 'N/A' is returned for quality grades and values that are not defined. More information.
set_scene_3d_instance_param now returns the error 1302 ("Wrong value of control parameter 2") if indices of non-existent instances are passed. More information.
Functionality relying on the removed low-level errors of threshold will not work anymore. More information.
optimize_dl_model_for_inference could be applied on a model that was already optimized by a previous call of the operator. This is no longer possible. Instead, optimize_dl_model_for_inference returns the error 7917 ("Unsupported operation on converted model") in this case. More information.
HALCON APPLICATIONS
Please re-compile all C, C++, or .NET programs developed with HALCON 21.05 Progress. The incompatibility with HALCON 21.05 Progress or earlier versions mainly concerns the binaries, with only few changes in the language interfaces. If you encounter problems during recompiling your programs, please check the detailed description of changes below.
IMAGE ACQUISITION INTERFACES
In general, the image acquisition interfaces of HALCON 21.11.0.0 Progress, HALCON 21.05 Progress, HALCON 20.11 Steady, and HALCON 18.11 Steady are library compatible.
HALCON 21.11.0.0 Progress includes only a subset of available image acquisition interfaces. Image acquisition interfaces that are included are: DirectFile, DirectShow, File, GenICamTL, GigEVision2, GStreamer, USB3Vision, and Video4Linux2. You can download additional interfaces from our web server.
DIGITAL I/O INTERFACES
In general, the digital I/O interfaces of HALCON 21.11.0.0 Progress, HALCON 21.05 Progress, HALCON 20.11 Steady, and HALCON 18.11 Steady are library compatible.
HALCON 21.11.0.0 Progress includes only a subset of available digital I/O interfaces. Digital I/O interfaces that are included are: Linux-GPIO and OPC_UA. You can download additional interfaces from our web server.
EXTENSION PACKAGES
Please re-generate your own extension packages developed with HALCON 21.05 Progress.
FURTHER COMPATIBILITY INFORMATION
The introduction of the new keyword dict may cause conflicts in existing HDevelop scripts if that name was used as a variable or parameter name (in lowercase). Use the Find/Replace dialog in HDevelop to locate these occurrences by searching for 'Variables' in scope 'All' with enabled 'Case Sensitive' and 'Whole Words' options.
The procedure dev_disp_button has been adapted such that it returns only after the mouse button is released. More information.
LEGACY OR NO LONGER SUPPORTED FUNCTIONALITY
The following functionality may be discontinued in a future major release:
Support of uint2 images in find_bar_code and decode_bar_code_rectangle2 is now legacy. Applications using uint2 images with these operators should convert these images to byte images with a reasonable mapping of gray values.
In the procedure determine_dl_model_detection_param, the generic parameters 'raw_width' and 'raw_height' have been set to legacy. Instead, the generic parameter 'image_size_constant' has been introduced. If all images have the same size, this parameter can be set to 'true' (default) to speed up the procedure.
See the reference manual entries of legacy operators for details on how to replace them.
SUPPORTED OPERATING SYSTEMSWINDOWS
HALCON 21.11.0.0 Progress has been compiled for the x64-win64 platform version for Windows 8.1/10 or Windows Server 2008 R2/2012 R2/2016/2019/2022 x64 Edition on Intel 64 or AMD 64 processors.
LINUX
HALCON 21.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 21.11.0.0 Progress has been compiled for the x64 platform version of macOS 11 and macOS 12 on Intel 64.
Only Intel x64 processors are fully supported. On M1 (Arm) Processors, HALCON x64 executables can be run via Rosetta2 emulator.
DETAILED DESCRIPTION OF CHANGES IN HALCON 21.11.0.0 PROGRESS
The changes in HALCON 21.11.0.0 Progress are described with respect to HALCON 21.05 Progress.
HDEVELOPNew FunctionalityGUI
Opening a variable inspect window interactively now docks it next to the variable window if it is the only inspect widget. Otherwise, the variable inspect is opened as another tab in the existing window.
The usability of the context menu of the graphics window has been improved. The actions for setting the resizing behavior of content displayed in the graphics window have been added to the visualization menu.
HDevelop's canvas now supports zooming. The mouse wheel and shortcuts can be used to zoom in an out of the scene.
The usability of the example browser has been improved. Now, if the example browser is docked, it stays open when selecting an example.
The select dialog for iconic objects has been improved. Now, empty arrays can be displayed.
The usability of the canvas has been improved. Now, it is possible to turn off the automatic update of the viewport.
The option for setting the canvas as the default layout has been removed from the preferences. Instead, now there is an entry in the menu under "Windows" > "Restore Default Layout use" > "Canvas" or "Docked Graphics Window". By selecting the corresponding option, the layout is restored to the default layout either using the canvas or the graphics window.
The positioning of floating windows opened interactively has been improved. Now, windows opened for the first time are opened relative to HDevelop instead of relative to screen coordinates.
The object select dialog is now docked next to the variable window or tabbed to a variable inspect window if the latter is already open.
The following zoom and auto-fit functionality has been added to the canvas, accessible via context menu:
Auto-fit By Zooming Out
If enabled, when a new window is opened far away from the other windows, the canvas is zoomed out to show all windows.
Auto-fit By Zooming In
If enabled, when a window placed far from another is closed, the canvas is automatically zoomed in to show the remaining window.
Fit All Graphics Windows In View
Zooms out the canvas such that all graphic windows are visible.
Working with the canvas has been improved. If "Auto-adapt Viewport" is enabled, now it is ensured that the active graphics window is visible on program stop.
Navigating in the canvas window has been improved. Now, it is possible to move the scene using the wheel button.
The names of the context menu entries "Add To Canvas" and "Float From Canvas" have been changed to "Attach To Canvas" and "Detach From Canvas".
The canvas reference point (0, 0) is now visualized by thicker lines if the Show Grid option is enabled.
Graphics windows opened via menu or via double-clicking an iconic variable are now added to the canvas if the canvas is already open.
The usability of the program window in the dark theme has been improved by adjusting the default colors.
The context menu of the canvas has been reordered. Further, the context menu entries of the contained graphics window have been extended and improved.
The usability of the canvas has been improved. Now, the canvas options are also accessible through the context menu of the graphics window if the graphics window is attached to the canvas.
For docked graphics windows, the default setting of "Behavior on Window Resize" is now "Keep Aspect Ratio" instead of "No Stretch".
Help
The appearance of the help has been improved. Now, the colors of the help window correspond to the selected theme.
The usage of the help has been improved. Now, the language of the operator reference can be selected independently of the language of the user interface.
IDE
The usage of dictionaries inside HDevelop has been greatly improved. A new syntax can be used to easily create and initialize dictionaries. Further, a new syntax with dot notation can be used to set and get values from the dictionary. The new dictionary syntax is supported by the auto-completion in the program editor.
Dictionary handles are now directly visualized in the variable window and in the variable tooltip.
It is now easier to share the user experience with MVTec. An "Accept All" button has been added to the telemetry dialog.
Language
The new operators dev_set_system and dev_get_system allow programmatic control of engine system parameters.
The procedures read_dict_tuple and read_dict_object have been deprecated. Examples now use the new dictionary expressions to interact with dictionaries. The new example hdevelop/Tuple/Data-Containers/dictionary_migration.hdev compares the old and new approaches.
Procedures
When adding tables to the documentation of procedures in Markdown syntax, the text alignment of all cells was set to 'left'. Now, the layout corresponds to the specified Markdown code.
Miscellaneous
The inspection of dictionaries has been improved. Now, if a tuple contains handles only, double-clicking it in the variable window opens a handle inspect widget.
HALCON now officially supports macOS 11 and macOS 12 on Intel® processors. Library and HDevelop IDE are also executable on Apple Silicon processors via the Rosetta 2 emulator. Note that this change affects the compatibility. Read more.
HDevelop has been extended with a feedback functionality. To send feedback to MVTec, click the Submit Feedback icon in the menu bar.
Bug FixesAssistants
A warning sign was displayed in the calibration assistant even though no event had occurred that would warrant a warning. This problem has been fixed.
Deleting individual calibration images in the Calibration Assistant, followed by adding new images could yield incorrect calibration results as not all images were used in the calibration process. This problem has been fixed.
The code generated by the matching assistant for finding DXF models only considered the first (red) channel ('ignore_local_polarity') instead of all channels ('ignore_color_polarity') when using color images. This problem has been fixed.
Code Export
Exporting a constant condition like while (true) to C++ caused a warning with Microsoft compilers. This problem has been fixed for Visual Studio 2017 and newer.
GUI
In rare cases, HDevelop displayed valid code lines in the color used for invalid lines. This problem has been fixed.
The settings dialog of the output console was not restored after an application restart. This problem has been fixed.
For vectors, HDevelop's variable inspect window did not use the 'Values and Parameters' font as expected. This problem has been fixed.
Navigating via Windows shortcuts when opening or saving files in HDevelop did not work. This problem has been fixed.
While a program was running, the mouse cursor did not adapt to possible user actions such as resizing, as it was constantly in a "busy" state. To improve the usability of the GUI, running a program no longer forces the mouse cursor into a busy state. Instead, the execution status is now more prominently indicated in the program window itself (previously it was only indicated in the lower left status bar corner).
Selecting the last changed variable resulted in a visually unreadable value in the variable window. This problem has been fixed.
The keyboard shortcuts for panning an image or moving the mouse pointer did not work for graphics windows located in the canvas while a graphics window was selected. This problem has been fixed.
Resetting a program also closed an opened object select dialog. This problem has been fixed.
dev_open_tool, dev_show_tool, and dev_set_tool_geometry did not work or did not work correctly for HDevelop's help window. This problem has been fixed.
Opening a window on a screen with different desktop scaling than the screen of the main application could lead to unexpected window geometries. Further, opening a window on a screen other than the main screen with scaling different from 100% resulted in increasing window sizes. These problems have been fixed.
When using the dark theme, warning text in HDevelop's operator window sometimes was not readable. This problem has been fixed.
The graphics window was sometimes not updated if the variable window was located in the sidebar. This problem has been fixed.
When hovering the title bar of the graphics window within the canvas, the mouse cursor changed into the hand shape although it is not possible to pan the window. This problem has been fixed. Now, the cursor keeps its standard shape.
Clicking the area displaying the line number could lead to a console warning. This problem has been fixed.
A newly opened zoom window had a different geometry than the previously closed one. This problem has been fixed.
After loading a new program, it could happen that the displayed line number did not fit into the designated space. This problem has been fixed.
For graphics windows attached to the canvas, the pixel info overlay was not working. This problem has been fixed.
The HDevelop assistants opened at unexpected positions and in unexpected sizes. The problem has been fixed. Now, the assistants reappear at the same position as before and with same geometry.
If a graphics window was on top of another in the canvas, scrolling with the mouse was applied to both simultaneously. This problem has been fixed.
When releasing the mouse button on a window in the canvas, this event could have been sent to the wrong window. This problem has been fixed.
IDE
When executing a program line in HDevelop with Ctrl+Return or Ctrl+Enter, some variable inspect widgets were not updated properly. This problem has been fixed.
The auto completion did not work if the text cursor was not visible (e.g., if the code was longer than the editor line). This problem has been fixed.
Language
Negative integer literals in decimal notation did not handle the minimum supported integer value on the platform correctly ("-2147483648" on 32-bit systems, "-9223372036854775808" on 64-bit systems). The assigned value was one too large. This problem has been fixed.
Procedures
If the description text in the HTML documentation of a procedure contains the names of procedure parameters, HDevelop automatically generates links to the corresponding parameter entry. Such links were generated even if the parameter name was only a substring of another word. This problem has been fixed. Note, however, that if a word in the description text exactly matches a parameter name, a link still will be created.
Miscellaneous
Renaming procedure parameters from the Edit Procedure Interfaces dialog sometimes changed the indentation of affected code lines. This problem has been fixed.
In some cases, a security alert appeared during the 'Check for Update' action in HDevelop as a webpage was called with HTTP instead of HTTPS. This problem has been fixed.
Changing the 'Update Windows in Single Step Mode' setting via the preferences dialog required a restart of the application for the settings to take effect. This problem has been fixed.
Calls to HDevelop's inline functions tuple_select and tuple_substr could have been corrupted by HDevelop's command line option reset_free_text. This happened when the first argument of the inline function was an infix operation, e.g., reset_free_text turned six := ([1,2,3] + [1,2,3]) [2:2] into six := [1,2,3] + [1,2,3] [2:2], which has completely different semantics. This problem has been fixed.
HDevelop Example ProgramsNew HDevelop Example Programs
hdevelop/Applications/Measuring-2D/pm_measure_board.hdev
hdevelop/Applications/Position-Recognition-2D/matching_image_border.hdev
hdevelop/Applications/Robot-Vision/pick_and_place_2d.hdev
hdevelop/Calibration/Hand-Eye/calibrate_hand_eye_stationary_cam_approx_sphere.hdev
hdevelop/Deep-Learning/AI2Interfaces/optimize_dl_model_for_inference_classification_openvino.hdev
hdevelop/Deep-Learning/Instance-Segmentation/dl_instance_segmentation_workflow.hdev
hdevelop/Identification/Data-Code/print_quality_reflectance_reference.hdev
hdevelop/Manuals/HDevelop/dictionary_notation.hdev
hdevelop/Matching/Correlation-Based/ncc_matching_workflow.hdev
hdevelop/Matching/Shape-Based/adapt_shape_model_high_noise.hdev
hdevelop/Matching/Shape-Based/alignment_for_ocr_in_semiconductor.hdev
hdevelop/Matching/Shape-Based/create_shape_model_xld.hdev
hdevelop/Matching/Shape-Based/find_aniso_shape_model.hdev
hdevelop/Matching/Shape-Based/find_shape_low_contrast_high_noise.hdev
hdevelop/Tuple/Data-Containers/dictionary_migration.hdev
solution_guide/basics/variation_model_illumination.hdev
solution_guide/basics/variation_model_single.hdev
solution_guide/matching/align_measurements.hdev
solution_guide/matching/create_roi_via_vision.hdev
solution_guide/matching/first_example_shape_matching.hdev
solution_guide/matching/multiple_models.hdev
solution_guide/matching/multiple_objects.hdev
solution_guide/matching/process_shape_model.hdev
solution_guide/matching/rectify_results.hdev
solution_guide/matching/reuse_model.hdev
solution_guide/matching/synthetic_circle.hdev
Bug Fixes
The example hdevelop/Segmentation/Threshold/fast_threshold.hdev has been removed.
The HDevelop example hdevelop/explore_halcon.hdev threw an exception if no Deep Learning license was available. This problem has been fixed by adding a license check to the example.
HDEVENGINEBug Fixes
When executing programs or procedures with par_start subthreads, an uncaught exception in a subthread could cause a crash of the application. This problem has been fixed.
When JIT compiling procedures that contained comparisons of iconic variables using the == operator, the HEngine could crash either during the compilation or when attempting to execute the compiled procedure. This problem has been fixed.
HALCON LIBRARYSpeedup
emphasize is now faster for byte images. In particular, the following speedups can be expected for a 512x512 image:
FILTER SIZE | FACTOR | SPEEDUP |
3x3 | 1.0 | up to 265% |
5x5 | 1.0 | up to 195% |
15x15 | 1.0 | up to 90% |
3x3 | 0.7 | up to 10% |
5x5 | 0.7 | up to 10% |
15x15 | 0.7 | up to 10% |
get_data_code_2d_results is now faster for various print quality inspection standards supported by HALCON including ISO/IEC15415, ISO/IEC TR29158, SEMI T10, and AIM DPM-1-2006. A speedup of up to 250% can be achieved on multi-core systems on images with highly resolved data codes (module size at least 10 pixels). The speedup heavily depends on the resolution and size of the data code. For data codes of medium size and with modules of about 15 pixels in width and height, a speedup of up to 140% can be expected. In addition, for Data Matrix ECC 200 codes a significant speedup can be observed even without parallelization.
inner_rectangle1 is now faster by up to 17000%.
interleave_channels now also supports uint2 image types and is able to make use of the SSE2/SSSE3 instruction sets. This results in speedups of up to 85%.
prepare_object_model_3d is now up to 34% faster.
xyz_to_object_model_3d is up to 70% faster for real images.
zoom_image_factor is up to 11% faster for uint2 images.
sobel_dir for byte image type and 'sum_sqrt' for parameter 'FilterType' is now supported on computers that support the AVX512BW instruction set. The operator is 17% faster than the implementation in AVX2 in this case.
zoom_image_factor is now faster for images of type byte by up to 20% for 'Interpolation' set to 'nearest_neighbor'.
New Functionality3D
vector_to_pose has been extended with the ability to determine the pose for line-scan cameras with perspective (entocentric) lenses. The parameter Method must be set to 'line_scan' for this type of cameras. The documentation has been extended accordingly.
get_stereo_model_param has been extended with the parameters 'from_cam_param_rect N', 'to_cam_param_rect N', 'from_cam_pose_rect N', 'to_cam_pose_rect N', and 'rel_pose_rect N' to get the camera parameters, poses, and relative poses of camera pair N, respectively.
HALCON has been extended with the operator point_pluecker_line_to_hom_mat3d that computes a rigid 3D transformation from point-to-line correspondences. The lines are specified as Plücker coordinates.
HALCON has been extended with the operators points_to_pluecker_line, point_direction_to_pluecker_line, pluecker_line_to_points, and pluecker_line_to_point_direction. They can be used to convert 3D line representations to and from Plücker coordinates. In particular, points_to_pluecker_line convert lines given by two points on the line to Plücker coordinates, while point_direction_to_pluecker_line converts lines given by a point on the line and the line direction to Plücker coordinates. Furthermore, pluecker_line_to_points converts lines given in Plücker coordinates to lines given by two points on the line, while pluecker_line_to_point_direction converts lines given in Plücker coordinates to lines given by a point on the line and the line direction.
HALCON has been extended with the operators distance_point_pluecker_line and distance_point_line. They compute the distance of 3D points from 3D lines. In particular, distance_point_pluecker_line computes the distance for lines represented by Plücker coordinates, while distance_point_line computes the distance for lines represented by two points on the line.
Bar Code
find_bar_code now offers the possibility to specify the maximum allowed barcode width. For this, the new generic parameter 'barcode_width_max' must be set to an appropriate width in pixels via set_bar_code_param.
The print quality inspection of 2D codes according to ISO/IEC15415 and of 1D codes according to ISOIEC15416 has been extended with the parameters 'quality_isoiec15415_reflectance_reference' and 'quality_isoiec15416_reflectance_reference', respectively, to set a calibrated reference gray value for print quality inspection. This reference gray value is used to assess certain grades, e.g., Symbol Contrast.
HALCON now supports all GS1 application identifiers specified in the latest version of the "GS1 General Specifications" (January 2021).
The bar code reader is more robust in regard to blurred Code 128/GS1-128 codes. Now, codes with a larger amount of blur can be read.
The HDevelop example program hdevelop/explore_halcon.hdev as well as the custom HPeek demo have been extended with two new images of blurred Code 128/GS1-128 codes:
images/barcode/code128/code128_blurred.png
images/barcode/gs1_128/gs1_128_blurred.png
Calibration
The new HDevelop example program hdevelop/Calibration/Hand-Eye/calibrate_hand_eye_stationary_cam_approx_sphere.hdev shows how to perform a hand-eye calibration for a robot and a stationary 3D sensor with a calibration sphere held by the robot.
get_calib_data_observ_contours has been extended with a parameter 'marks_with_hole', which allows returning only marks detected as having holes. Further, find_calib_object can now easier detect calibration patterns. Note that this change affects the compatibility. Read more.
Data Code
find_data_code_2d has been enhanced for large images with many Data Matrix ECC 200 codes and/or a highly structured background. For these images, the number of code candidates can become very high, especially with certain parameter settings like 'maximum_recognition'. For performance reasons, the Data Matrix ECC 200 reader always stopped after 10000 processed candidates. Now, the number of considered candidates can be increased by setting the find_data_code_2d parameter 'symbol_search' to 'exhaustive'. Then, all candidates will be taken into account if needed.
The process of locating a Data Matrix ECC 200 code for print quality grading has been improved. As a consequence, print quality grading on Data Matrix ECC 200 codes is now slightly more robust.
The print quality inspection of 2D codes according to ISO/IEC15415 and of 1D codes according to ISOIEC15416 has been extended with the parameters 'quality_isoiec15415_reflectance_reference' and 'quality_isoiec15416_reflectance_reference', respectively, to set a calibrated reference gray value for print quality inspection. This reference gray value is used to assess certain grades, e.g., Symbol Contrast.
For print quality grading of Data Matrix ECC 200 codes, HALCON now supports the additional reflectance check according to ISO/IEC 15415:2011 7.7. The new get_data_code_2d_results parameter 'quality_isoiec15415_additional_reflectance_check' has been added to obtain the result of this check.
HALCON now supports all GS1 application identifiers specified in the latest version of the "GS1 General Specifications" (January 2021).
Deep Learning
HALCON has been extended with deep learning-based instance segmentation to locate and segment objects simultaneously.
Instance segmentation is an extension of object detection, i.e., the location of an instance within the image is given by a rectangular, axis parallel, or oriented bounding box. Additionally, the segmentation of an instance is given by a region.
create_dl_model_detection has been extended with the generic parameter 'instance_segmentation' to create a deep learning model for instance segmentation.
All parameters for object detection apply in the same way to instance segmentation.
The new model parameter 'mask_head_weight' has been introduced to balance the influence of the instance segmentation loss against the detection and classification losses.
For all other purposes besides creation, the general purpose dl_model operator set is used.
The dl_model procedures have been extended to handle instance segmentation in the following way:
For instance segmentation models, the IoU of instances is computed on the predicted object masks. Setting 'evaluate_mask' to 'false' evaluates the model on the predicted bounding boxes, as if it was an object detection model.
The procedure dev_display_dl_data now also displays the ground truth and result masks if they are given in DLSample and DLResult, respectively.
The HDevelop example hdevelop/Deep-Learning/Instance-Segmentation/dl_instance_segmentation_workflow.hdev has been added to show how to use deep learning based instance segmentation in HALCON. This example uses ground truth annotations in hdevelop/Deep-Learning/Instance-Segmentation/pill_bag_instance_segmentation.hdict.
The reference manual chapter "Object Detection" has been extended to describe how to use the new deep learning functionality ("Deep Learning" > "Object Detection / Instance Segmentation").
Please note that this functionality has special system requirements like all other deep learning functionality. Please ensure that the components "Deep Learning Core" and "Deep Learning Data" are selected in the MVTec Software Manager (SOM) for installation. It also contains the images and pretrained models for the example. Please refer to the Installation Guide for more information.
The procedure read_dl_dataset_from_coco is now able to read segmentation masks that are stored in the COCO format. Such masks are stored in the 'mask' field in the samples of the returned DLDataset.
The procedure gen_dl_samples now accepts the generic parameter 'instance_type' set to 'mask'.
The procedure preprocess_dl_samples now accepts the value 'mask' for key 'instance_type' in the input dictionary DLPreprocessParam. If this is the case, also the ground truth mask regions are preprocessed.
In the procedure create_dl_preprocess_param, 'instance_segmentation' has to be set to 'true' for an instance segmentation dataset.
When using the procedure create_dl_preprocess_param_from_model, it is automatically set.
The procedure augment_dl_samples has been extended to handle instance segmentation data.
The procedure evaluate_dl_model has been extended with the generic parameter 'evaluate_mask'.
There is now an OpenVINO AI Accelerator Interface, which can be obtained using SOM. The HDevelop example hdevelop/Deep-Learning/AI2Interfaces/optimize_dl_model_for_inference_classification_openvino.hdev has been added to show how to use the Accelerator Interface. Per default, HALCON OpenVINO AI Accelerator Interface comes with the OpenVINO CPU Plugin. Other OpenVINO plugins require an additional installation of the OpenVINO toolkit.
The deep learning model types 'detection' and 'segmentation' now support the parameter 'class_names'. The output of apply_dl_model for the model type 'detection' now contains the parameter 'bbox_class_name'.
The TensorRT AI² interface now also supports Jetpack 4.6 for aarch64-linux. Moreover, it has been updated to TensorRT version 8.0.3 for x64-windows and x64-linux.
The NVIDIA CUDA Deep Neural Network library (cuDNN) has been updated to version 8.2.0. HALCON ships and supports this library for the two CUDA versions 10.2 and 11.1. The libraries can be found in the cuda10_2 and cuda11_1 subdirectories of the thirdparty library directory.
The NVIDIA CUDA Deep Neural Network library (cuDNN) on Linux aarch64 has been updated to version 8.2.1, which comes from NVIDIA JetPack 4.6.
get_dl_model_param has been extended with the parameter 'layer_names', which returns the name of every layer in the model.
create_dl_layer_activation has been extended to allow the creation of a leaky ReLU layer. Furthermore, read_dl_model can now read ONNX models containing leaky ReLU layers.
The procedure determine_dl_model_detection_param has been extended with the generic parameters 'image_size_constant' and 'compute_max_overlap'. The default of both parameters is 'true'. If 'image_size_constant' is 'true' it is assumed that all images have the same size to speed up the procedure. If 'compute_max_overlap' is 'true', the procedure additionally estimates the values for 'max_overlap' and 'max_overlap_class_agnostic' and adds them to the output dictionary.
Further, the parameters 'class_ids', 'image_width', 'image_height', and 'instance_type' are now part of the output dictionary. Note that this change affects the compatibility. Read more.
The procedure preprocess_dl_dataset has been improved. The option 'overwrite_files' now accepts the value 'auto'. In 'auto' mode, the preprocessed data is only regenerated if necessary. All deep-learning-based examples have been updated to use the new option where possible.
Image
interleave_channels now also supports uint2 image types and is able to make use of the SSE2/SSSE3 instruction sets. This results in speedups of up to 85%.
Matching
set_generic_shape_model_param has been extended with the parameter 'model_identifier', which allows users to set their own string as model name.
get_generic_shape_model_param has been extended with the parameter 'scale_type', which describes the type of scaling of a shape model.
The following operators of the generic shape-based matching interface were extended to enable the clutter feature:
Further, the operator get_generic_shape_model_object has been added.
Moreover, the clutter feature has been extended with the automatic parameter estimation for 'clutter_contrast' and 'clutter_hom_mat_2d' for the image case.
The new HDevelop example program hdevelop/Applications/Robot-Vision/pick_and_place_2d.hdev shows how to use the clutter functionality with the new operator interface.
set_generic_shape_model_object now supports the object 'clutter_region'.
set_generic_shape_model_param now supports the parameters 'clutter_contrast', 'clutter_hom_mat_2d', and 'clutter_border_mode'.
set_generic_shape_model_param now also takes integers as input for certain float type parameters to improve the usability. The affected parameters are:
'angle_end', 'angle_start', 'greediness', 'iso_scale_max', 'iso_scale_min', 'max_clutter', 'origin_column', 'origin_row', 'restrict_iso_scale_max', 'restrict_iso_scale_min', 'restrict_scale_column_max', 'restrict_scale_column_min', 'restrict_scale_row_max', 'restrict_scale_row_min', 'scale_column_max', 'scale_column_min', 'scale_row_max', 'scale_row_min'.
The handle inspect for shape-matching models has been improved. Now, the parameters are clustered according to their logical groups of model, search, and iconic parameters.
Furthermore, the handle inspect now distinguishes between shape models created with the newer operators for shape matching (create_generic_shape_model, train_generic_shape_model), and shape models created with the customary operators (create_shape_model, create_shape_model_xld, create_scaled_shape_model, create_scaled_shape_model_xld, create_aniso_shape_model, create_aniso_shape_model_xld). Thereby, the model parameters are displayed in the same way as the set parameters and only show relevant information.
The shape-based matching examples have been updated to use the generic interface. This concerns the following HDevelop standard examples:
as well as the following documentation examples:The following new example has been added to demonstrate an additional use-cases: hdevelop/Matching/Shape-Based/alignment_for_ocr_in_semiconductor.hdev
The changes made the following examples redundant, which have been removed:
create_model_green_dot.hdev, matching_coins.hdev, matching_green_dot.hdev, multiple_scales.hdev
solution_guide/basics/variation_model_illumination.hdev
solution_guide/basics/variation_model_single.hdev
solution_guide/matching/align_measurements.hdev
solution_guide/matching/create_roi_via_vision.hdev
solution_guide/matching/first_example_shape_matching.hdev
solution_guide/matching/multiple_models.hdev
solution_guide/matching/multiple_objects.hdev
solution_guide/matching/process_shape_model.hdev
solution_guide/matching/rectify_results.hdev
solution_guide/matching/reuse_model.hdev
solution_guide/matching/synthetic_circle.hdev
hdevelop/Applications/Measuring-2D/pm_measure_board.hdev
hdevelop/Applications/Position-Recognition-2D/matching_image_border.hdev
hdevelop/Matching/Shape-Based/create_shape_model_xld.hdev
hdevelop/Matching/Shape-Based/find_aniso_shape_model.hdev
hdevelop/Matching/Shape-Based/find_shape_low_contrast_high_noise.hdev
The new HDevelop example program hdevelop/Matching/Correlation-Based/ncc_matching_workflow.hdev shows the basic workflow for normalized cross correlation (NCC) matching.
Miscellaneous
HALCON now officially supports macOS 11 and macOS 12 on Intel® processors. Library and HDevelop IDE are also executable on Apple Silicon processors via the Rosetta 2 emulator. Note that this change affects the compatibility. Read more.
After having been deprecated for some time, OpenCL support has been removed from the macOS version of HALCON.
System
HALCON now offers operators that convert between JSON strings and dictionaries. The new operator json_to_dict converts a string containing valid JSON into a HALCON dictionary, similar to reading a JSON file with read_dict but without requiring an intermediate file. The new operator dict_to_json transforms a dictionary into a JSON string. Additionally, the operator write_dict can now write JSON files.
HALCON now only attempts to load and initialize X11 support when a HALCON operator is called that uses X11 functionality.
Tuple
The operators get_handle_param, get_dict_param, and get_message_param now no longer raise an error when querying 'key_data_type' or 'key_exists' with an empty tuple as keys. Instead, an empty tuple is returned.
get_dict_tuple now allows obtaining the values of multiple keys if all of those keys map to a tuple with a length of 1.
The new operator set_dict_tuple_at allows modifying tuples in a dictionary. This is more efficient than first reading the tuples from and then writing them back into the dictionary.
Bug Fixes3D
simplify_object_model_3d in rare cases generated meshes that subsequently could not be segmented by segment_object_model_3d but raised an error. This problem has been fixed.
read_object_model_3d sometimes raised an error for .ply files written by write_object_model_3d if the 3D model contained point attributes whose names only differed by a preceding '&'. This problem has been fixed.
read_object_model_3d returned the error 0005 ("Operator failed (FAIL)") if the names of PLY properties were not unique. This problem has been fixed. Now, read_object_model_3d returns the error 9510 ("Invalid 3D file") with the extended error code "PLY: 'PROPERTY' name not unique".
triangulate_object_model_3d with 'Method' set to 'implicit' in rare cases generated meshes that were not watertight, i.e., were not completely closed. This problem has been fixed.
In rare cases, window operations may have crashed or malfunctioned during or after calls to operators using OpenGL. This problem has been fixed.
set_scene_3d_instance_param did not work correctly if (unrelated) instances had been removed from the scene before.
Further, the HDevelop variable inspect did not handle deleted instances, cameras, and lights correctly. These problems have been fixed. Note that this change affects the compatibility. Read more.
find_ncc_model did not find a good match in very rare cases. This problem has been fixed.
Bar Code
In rare cases, the barcode training with find_bar_code failed due to a wrong element_size. This problem has been fixed.
In rare cases, find_bar_code could misread certain GS1 Databar Limited barcodes, resulting in a slightly wrong symbol region and an incorrectly decoded string. This problem has been fixed.
In very rare cases, find_bar_code computed wrong scanlines if the parameter 'merge_scanlines' was set to 'true'. This problem has been fixed.
Trying to access quality grades for uint2 images resulted in a crash as the bar code reader does not support PQI for uint2 images. This problem has been fixed. Now, an error is returned stating that the requested functionality is not implemented.
get_bar_code_result sometimes returned the wrong orientation of decoded codes because the reading direction was ignored. This problem could only occur if the generic parameter 'small_elements_robustness' was set to 'true' and the underlying feature was actually used for the decoding step. This problem has been fixed.
For PharmaCodes with 16 bars, get_bar_code_result always returned the 'Decode' grade 0 ('quality_isoiec15416'). This problem has been fixed.
In some cases, find_bar_code did not return any result if it was aborted or a timeout was set even though results could have been found with a smaller timeout or earlier abort. This problem has been fixed.
For PharmaCode and 2/5 Industrial bar codes, get_bar_code_result returned only 7 or 8 quality grades ('quality_isoiec15416', 'quality_isoiec15416_float_grades') and values ('quality_isoiec15416_values') even though 9 corresponding quality grade names were returned by 'quality_isoiec15416_labels'. For these code types some of the grades are not defined in a corresponding standard and were therefore not returned. This problem has been fixed. Now, in general 'N/A' is returned for quality grades and values that are not defined. Note that this change affects the compatibility. Read more.
Calibration
calibrate_cameras sometimes had issues with purely telecentric camera setups if the first calibration pattern observed by the first camera was not tilted. This problem has been fixed. Now, calibrate_cameras also considers other cameras and calibration patterns until it finds a pair with tilt.
Color Processing
trans_to_rgb with color space 'yiq' could return wrong gray values in rare cases for input images of type 'uint2'. This issue has been fixed. Note that this change affects the compatibility. Read more.
In rare cases, an overflow could occur in the operator trans_from_rgb for the color spaces 'cielchab' and 'cielchuv', leading to wrong results for single pixels. This problem has been fixed.
Data Code
In some cases, get_data_code_2d_results returned inaccurate print quality inspection grades for Data Matrix ECC 200 codes ('quality_isoiec15415', 'quality_aimdpm_1_2006', 'quality_isoiec_tr_29158', 'quality_semi_t10_values') if the data code parameter 'small_modules_robustness' was set to 'high'. This problem has been fixed.
Some internal edge computations in the data code reader were incorrect. This problem has been fixed. As a consequence, some codes that could be decoded in older versions of HALCON cannot be decoded anymore. However, this fix slightly increases the decoding performance of the data code reader in general.
In rare cases, the print quality inspection for Data Matrix ECC 200 code used a wrong estimation for the grid and returned slightly incorrect grades. This problem has been fixed.
get_data_code_2d_results returned inaccurate values for some of the print quality values queried with the parameter 'quality_semi_t10_values'. This problem has been fixed. Note that this change affects the compatibility. Read more.
In rare cases, find_data_code_2d did not return deterministic results for the symbol type Data Matrix ECC 200 if a very tight timeout had been specified by the user. This could have an impact on subsequent calls, e.g., the print quality assessment, and lead to inconsistent grades and values in multiple runs. However, this issue could only occur if 'specific_parallelization' for Data Matrix ECC 200 was enabled. This problem has been fixed.
The grades for Unused Error Correction, Modulation, and Reflectance Margin have been computed incorrectly for M1 MicroQR codes. This problem has been fixed.
In very rare cases, a too strict assumption about the position of the Data Matrix ECC 200 solid pattern could lead to issues during the print quality inspection. This problem has been fixed.
get_data_code_2d_objects leaked memory if the process and/or search image for candidates with a process and/or search image on pyramid level -1 was queried. Additionally, get_data_code_2d_objects leaked memory if the process and/or search
image for DotCode candidates was queried. These problems have been fixed.
find_data_code_2d may have leaked memory for Data Matrix ECC 200 codes if find_data_code_2d returned an error. This problem has been fixed.
The QR code reader crashed in rare cases with very small codes. This problem has been fixed.
Deep Learning
In some deep learning procedures, there were overlaps and other unsightly text representations. These problems have been fixed.
After interrupting the execution of apply_deep_ocr in 'auto' mode, the resulting dictionaries could have contained inconsistent results of the detection and recognition components. This problem has been fixed.
Specifying the parameter 'check_params' as 'true' in a DL preprocessing dictionary raised an error in the procedure preprocess_dl_samples. This problem has been fixed.
After using the operator optimize_dl_model_for_inference it was possible to set the calibrated model to a runtime or device for which it was not calibrated by using the operator set_dl_model_param. This problem has been fixed.
Trying to change the 'recognition_image_height' parameter of a Deep OCR handle did not raise any error. This problem has been fixed. Now, the error 1302 ("Wrong value of control parameter 1") is raised.
The operators gen_dl_model_heatmap, serialize_dl_model, write_dl_model, and optimize_dl_model_for_inference were not reentrant. This could lead to a crash if the model was used by more than one thread. This problem has been fixed.
The procedure train_dl_model did not handle evaluation measures correctly that are not based on the top-k error. The visualization and evaluation summary was incorrect. This problem has been fixed.
read_dl_model and read_deep_ocr crashed when an empty tuple was passed as the file name. This problem has been fixed. Now, the error 1401 ("Wrong number of values of control parameter 1") is raised. Note that this change affects the compatibility. Read more.
In rare cases, the basins returned by watersheds_marker were incorrectly grouped, such that basins at the image or region boundary were assigned to the wrong marker. This problem has been fixed. Note that this change affects the compatibility. Read more.
The inspection of a dl_model handle did not show the entry 'layer_weights' if the model was not initialized on a runtime. Accordingly, the operator get_handle_tuple threw an error for the parameter 'layer_weights'. This problem has been fixed. Now, the 'layer_weights' property of a dl_model handle is available if applicable. Note that some pretrained models do not allow access to the weights.
get_dl_model_layer_activations could not be used to access output activations when using the inference with an AI accelerator interface. This problem has been fixed.
Reading ONNX models with read_dl_model could crash if the model graph contained nodes without inputs. This problem has been fixed.
After setting the model runtime to 'cpu' for deep learning models with very large image dimensions or large batch sizes, a crash could occur. This problem has been fixed.
optimize_dl_model_for_inference could be applied on a model that was already optimized by a previous call of the operator. This problem has been fixed. Now, optimize_dl_model_for_inference returns the error 7917 ("Unsupported operation on converted model") in this case. Note that this change affects the compatibility. Read more.
Feature
shape_histo_point did not return meaningful results for 'AbsoluteHisto' when 'Feature' was set to 'holes'. This problem has been fixed.
File
Using write_image_metadata to write tags into compressed multipage TIFF files could result in corrupted TIFF files. This problem has been fixed.
Writing tags with write_image_metadata in a specific order into a TIFF file of an image with reduced domain in mode 'mask' corrupted the TIFF file. This problem has been fixed.
Filter
The reference manual entry of abs_image did not specify the type of the output image and did not explain what happens in case of overflows or underflows. This problem has been fixed.
scale_image in rare cases handled overflows incorrectly for 'int4' and 'int8' images. This problem has been fixed.
highpass_image returned wrong results for filter matrices of size 1x1 for uint2 images. This problem has been fixed.
edges_sub_pix did not throw an error when the size of the input image was not large enough for the filter masks used by the different edge filters. A similar issue also affected the operator lines_facet. These problems have been fixed. Now, an error message is properly returned in case the input is smaller than the used filter masks.
mirror_image was not parallelized correctly for the mode 'diagonal'. This problem has been fixed.
In rare cases, optical_flow_mg could return nondeterministic results that might include NaNs. This problem has been fixed.
Graphics
create_drawing_object_line and create_drawing_object_xld used a marker for visualization that pointed into the wrong direction. This problem has been fixed.
Complemented regions were displayed incorrectly if the system variable 'clip_region' was set to 'false'. This problem has been fixed.
disp_obj with the '3d_plot' paint mode displaying contour lines crashed in rare cases on Linux systems. This problem has been fixed.
Images
threshold in rare cases did not clip 'MinGray' and 'MaxGray' to the correct bounds for 'int4' images. set_grayval in rare cases did not clip 'Grayval' to the correct bounds for 'int8' images. gen_image_proto, paint_region, and overpaint_region in some cases for large values did not paint the correct 'Grayval' for 'int8' images. These problems have been fixed.
cooc_feature_matrix could crash on non-symmetric input. This problem has been fixed. Now, cooc_feature_matrix returns the error 2106 ("Wrong image width") in case of non-symmetric input.
Matching
An error in the parallelization of shape-based matching resulted in a miss of a potential match in very rare cases. This problem has been fixed.
For find_shape_model, find_shape_models, find_scaled_shape_model, find_scaled_shape_models, find_aniso_shape_model, find_aniso_shape_models, and find_generic_shape_model, least-squares refinement was not executed properly in rare cases if 'max_deformation' was set to a value greater than 0 and the pyramid level on which the refinement was done was greater than 1. This problem has been fixed.
set_shape_model_metric, set_local_deformable_model_metric, set_planar_calib_deformable_model_metric, and set_planar_uncalib_deformable_model_metric crashed in rare cases when the operator was cancelled or when an out of memory error occurred. This problem has been fixed.
get_generic_shape_model_result_object returned incorrect 'contours' and 'clutter_region' if an origin other than 0,0 was set. This problem has been fixed.
find_generic_shape_model did not parallelize internally. Further, the timeout was not supported. These problems have been fixed.
Miscellaneous
run_bg_esti with 'GainMode' set to 'frame' did not apply the adapted Kalman gains properly in rare cases. This problem has been fixed.
OCR
In some cases, find_text returned overlapping or duplicate regions when using text models created with mode 'auto'. This problem has been fixed.
Region
serialize_region failed if 'DefaultChannel' was set to a value different from '0' in reset_obj_db. This problem has been fixed.
Segmentation
threshold does not give a low-level error anymore if for 'real' and 'vector_field' type images the parameters 'MinGray' and 'MaxGray' are provided as 'double' but used as 'float'. The documentation has been updated to describe the behavior of threshold in these cases. Note that this change affects the compatibility. Read more.
Tuple
For certain 'Start'/'End' combinations together with a real-valued 'Step' size, tuple_gen_sequence returned a sequence of unexpected length. For example, [0:0.1:0.3] resulted in [0, 0.1, 0.2] instead of [0, 0.1, 0.2, 0.3]. This problem has been fixed. Now, the length of the sequence as well as the last sequence value are computed more robustly, thus giving the expected result within a wider range of input values.
XLD
Certain excessively large values of 'Lookaround' for get_contour_angle_xld were not detected as invalid, resulting in a crash. This problem has been fixed.
gen_contour_nurbs_xld crashed if an empty tuple was passed to the parameter 'Weights'. This problem has been fixed. Now, if an empty tuple is passed, the default value 'auto' is used.
distance_cc_min_points returned an erroneous point in case of crossing contours. This problem has been fixed.
distance_cc_min_points returned wrong point coordinates in rare cases if the contours intersected. This problem has been fixed.
select_shape_xld crashed for certain features when a contour with exactly one point was passed. This problem has been fixed.
PROCEDURESBug Fixes
The procedure dev_disp_button returned even if the mouse button was still pressed. This problem has been fixed. Now, dev_disp_button returns when the mouse click ends. Note that this change affects the compatibility. Read more.
LANGUAGE INTERFACE EXAMPLE PROGRAMSBug Fixes
The example ia_callback.cpp hung upon closing. This problem has been fixed.
IMAGE ACQUISITION INTERFACES
The latest information about new interface revisions and newly supported image acquisition devices can be found on MVTec's web server. Please refer to the release notes within the documentation of the individual image acquisition interfaces for information about improvements, bugfixes, or whether a new revision of the corresponding device driver is required.
DIGITAL I/O INTERFACES
The latest information about new interface revisions and newly supported digital I/O interfaces can be found on MVTec's web server. Please refer to the release notes within the documentation of the individual digital I/O interfaces for information about improvements, bugfixes, or whether a new revision of the corresponding device driver is required.
DOCUMENTATIONProgrammer's Manuals
The Programmer's Guide has been improved by replacing ASCII diagrams with more pleasing graphical representations in chapter 15.
User Guides
The HDevelop User's Guide now contains a section describing how to work with dictionaries. In particular, the new syntax using dict expressions is explained.
The keyboard shortcut Ctrl+Alt+arrow key has been removed from the documentation. Instead of panning the image by 10 pixels, this shortcut changes the display orientation on most Windows systems.
The Installation Guide now makes clearer that the term "runtime version modules" only refers to licenses.
The Installation Guide now describes the installation via the MVTec Software Manager.
The description of the available shortcuts for autocompletion has been improved.
Solution Guides
The Solution Guides I and II-B have been updated concerning the shape-based matching entries. Now, they refer to the generic interface.
Reference Manual
The reference manual entry for connection_object_model_3d missed to mention select_object_model_3d as possible alternative. This problem has been fixed.
The reference manual entry for dev_open_tool has been restructured to enhance its readability.
The reference manual entry for find_planar_uncalib_deformable_model contained a paragraph that was only available in German. This problem has been fixed. Now, it is included for all languages.
The description of the parameter 'TargetClasses' in the reference manual entry of gen_dl_model_heatmap was misleading. This problem has been fixed.
The reference manual entry of get_deep_ocr_param missed information about the image preprocessing. This problem has been fixed.
The reference manual entry for get_disp_object_model_3d_info erroneously mentioned that the operator would return an error in case of faulty row and column input values. This problem has been fixed.
get_dl_model_param has been extended with the parameter 'layer_names', which returns the name of every layer in the model.
The reference manual entry of measure_pos did not clearly state how to derive useful values for the parameter 'Threshold'. The reference has been adapted accordingly.
The reference manual entry of reconstruct_surface_stereo stated that small base lines instead of long base lines between camera pairs are more suitable for the extraction of depth information. This problem has been fixed.
segment_object_model_3d has been extended with the generic parameter 'surface_check', which can be used to enable or disable internal checks of the surface topology of an object model.
The reference manual entry of set_calib_data has been streamlined by replacing duplicate information with a link to the original information.
The reference manual entries for set_camera_setup_param, query_color, create_planar_uncalib_deformable_model, and query_calib_data_observ_indices contained translation errors. Further, the entry for dev_close_tool showed an erroneous code snippet. These problems have been fixed.
The reference manual entry for the operator try referred to a preference option incorrectly. This problem has been fixed.
tuple_is_number was accidentally mentioned in the chapter "Tuple" > "Conversion" of the reference manual while the correct place is "Tuple" > "Type". This problem has been fixed.
The reference manual entries of the Deep Learning Framework operators were not available in German. The translations have been added.
The reference manual entry regarding calibration was extended with additional hints on taking a set of suitable images.
Miscellaneous
The appearance of the help has been improved. Now, the colors of the help window correspond to the selected theme.
The Solution Guide III-C 3D Vision has been extended with an introduction to Plücker coordinates.
The HTML documentation has been improved. So far, warnings and tips were only marked bold. Now, they are marked with the same symbols that are already used to mark them in the PDF.
The HALCON documentation start page now has an entry linking to the AI² interface overview pages.
INSTALLATION
The folder include/com was part of the discontinued HALCON/COM interface and is no longer needed. Thus it has been removed from the HALCON installation.
The installation script install-linux.sh is no longer needed when installing HALCON via the MVTec Software Manager and thus has been removed from the file set.
LICENSING
When using a license that requires CodeMeter Runtime, HALCON could crash if the CodeMeter Runtime service was not running. This problem has been fixed.
HALCON dongles can now be accessed over the network.
RELEASE NOTES OF PREVIOUS HALCON VERSIONS
Follow this link to read about the changes of previous HALCON versions.