HALCON Documentation

Release Notes for HALCON 24.11.1.0 Steady

This document provides the release notes for MVTec HALCON 24.11.1.0 Steady, as released in November 2024.

Major New Features of HALCON 24.11.1.0 Steady

Out of Distribution Detection (OOD) for Classification

This new HALCON feature makes it easy to recognize unexpected behavior caused by incorrect classifications in production. Thus, users can take appropriate measures, such as stopping the machine, in a targeted and efficient manner. When using a deep learning classifier, unknown objects are assigned to one of the classes that the system has learned. This can lead to problems if, for example, the defects or objects themselves are of a type that has never occurred before.
The new deep learning feature “Out of Distribution Detection (OOD)” indicates when an object is classified that was not included in the training data. For example, this could be an object made of metal if the system was only trained on glass bottles. In such cases, OOD provides an “OOD score”, which indicates the degree of deviation from the trained classes.

The OOD score can also be useful when expanding deep learning models with new training images by indicating which of the new images will have the greatest value for the new model. For example, a high OOD score for a new training image indicates a greater deviation from the images already seen by the network – this means a higher information content and, therefore, greater value for the training.

Preview of the new IDE HDevelopEVO

HALCON 24.11 has a special highlight for all users of HALCON's own integrated development environment (IDE) HDevelop: a preview of the new IDE HDevelopEVO.
This is characterized, among other things, by a more modern, intuitive user interface and an improved editor (i.e., the central programming element). The latter enables faster and more efficient programming and prototyping of machine vision applications.
Users can already extensively test the new development environment in HALCON 24.11. The range of functions of HDevelopEVO will be continuously expanded in the coming releases and it will over time become the standard HALCON development environment.

Improved Shape-based Matching

The new HALCON version makes the “Shape-based Matching” feature, used in many applications, more user-friendly. This technology is used to find objects fast, accurately, and precisely. HALCON 24.11 includes the new patent pending “Extended Parameter Estimation” for this purpose. This allows parameters to be estimated with greater granularity, which significantly increases robustness in some applications. “Extended Parameter Estimation” enables this estimation also for users without in-depth machine vision expertise.

Optimized QR Code Reader

The performance of HALCON's QR Code Reader has been significantly increased. This is particularly evident under difficult conditions, for example, when many codes need to be found in the image area or many textures in the image complicate the detection. The recognition rate has been increased and the evaluation time has been significantly reduced in demanding scenarios.

Deep 3D Matching

With this feature, HALCON 24.11 contains a deep-learning-based market innovation for the 3D vision sector, especially for bin-picking and pick-and-place applications. This feature is particularly robust in determining the exact position and rotation of a trained object and is characterized by very low parameterization effort and fast execution time. Depending on the accuracy requirements, one or more cost-efficient standard 2D cameras can be used to determine the position.
Training is performed exclusively on synthetic data generated from a CAD model. Further training data is therefore not required.

Customers can already run this feature in HALCON 24.11 – to train the model and evaluate applications, they can contact MVTec at any time. Training and evaluation within HALCON will follow in the next release.

Deep Counting

With Deep Counting, a feature is available to customers as of HALCON 23.05 that can be used to count a large number of objects quickly and robustly as well as to detect their position. The deep-learning-based technology offers significant advantages over existing machine vision methods: The feature can be deployed very quickly, since only very few objects need to be labeled and trained – both steps can be easily done within HALCON. The technology provides reliable results even for objects of highly reflective and amorphous material. With Deep Counting, large numbers of objects such as glass bottles, tree trunks, or food can be counted.

Training for Deep OCR

Deep OCR reads texts in a very robust way, even regardless of their orientation and font. For this purpose, the technology first detects the relevant text within the image and then reads it. With HALCON 23.05, it’s now also possible to fine-tune the text detection by retraining the pretrained network with application-specific images. This provides even more robust results and opens new application possibilities. For example: the detection of text with arbitrary printing type or unseen character types as well as an improved readability in noisy, low contrast environments.

Extended Parameter Estimation for Shape Matching

HALCON 24.05 introduces the first iteration of the extended parameter estimation for Shape Matching. With its subpixel accuracy, Shape Matching finds objects robustly and accurately in real-time, even in the most challenging situations. Thanks to the extended parameter estimation, manual parameter adjustments will soon be a thing of the past.
Using multiple annotated images, users can now easily optimize for maximum online speed while keeping robustness through automated parameter tuning. Users thus benefit from a faster implementation of shape matching applications, even without specialized expertise.
Shape Matching has never been easier!

Bar Code Reader Improvements for Stacked Bar Codes

The bar code reader for GS1 DataBar Expanded Stacked codes has been improved in HALCON 24.05. Depending on the application, customers can expect significant improvements to their decoding rates. This will especially benefit industries such as logistics, retail, and manufacturing, where stacked bar codes are an essential means of tracking and tracing goods.

3D Improvements & Enhancements: Importing 3D Object Models From the STEP Format

Starting with version 24.05, HALCON supports the STEP (Standard for the Exchange of Product Data) file format, the industry standard for 3D CAD data. Customers can now seamlessly load STEP CAD data directly into a HALCON 3D object model without any intermediate steps or conversions. The STEP format is supported by most common CAD programs, increasing interoperability and efficiency, because models for 3D matching can be taken directly from the planning data in the CAD software.

New Version of the OpenVINO™ Toolkit AI² Plug-in

Parallel to the HALCON 24.05 release, a new version of the OpenVINO Toolkit AI² plug-in will be released. This update uses the latest LTS version of the Intel® Distribution of OpenVINO™ Toolkit, ensuring compatibility with the latest Intel hardware and boosting the inference performance of deep learning applications.
Notably, the new plug-in version enhances support for Intel’s 13th generation of Core processors, leading to improved inference performance. In addition, customers can now also utilize Intel’s discrete graphics cards for inference, providing greater flexibility in selecting the appropriate hardware for their application.

Speedups and Further Improvements

HALCON 24.05 also includes several performance optimizations for various core technologies. For example, unwarping byte images using a vector field is now up to 285 % faster on AVX2-capable Intel CPUs. The operator map_image is now up to 25% faster as well.
In addition, HALCON 24.05 provides adjustments to many operators to address performance impacts resulting from Intel's resolution of the “Downfall” security vulnerability.

Further Highlights of HALCON 24.11.1.0 Steady

HALCON’s GigE Vision Interface Supports RoCEv2

With this release, HALCON's GigE Vision interface supports the RoCEv2 network protocol, which enables increased performance in image transmission.

Improved HALCON Progress Edition

HALCON Progress is now fully compatible with the HALCON Steady edition. Progress users can now collaborate with Steady users on the same projects. Additionally, HALCON Progress users will receive the same maintenance updates as HALCON Steady users. In the future, switching from Steady to Progress will simply require exchanging the license file.

Training for 3D Gripping Point Detection

3D Gripping Point Detection can be used to robustly detect surfaces on any object that is suitable for gripping with suction. In HALCON 23.05, there is now the possibility to retrain the pretrained model with own application-specific image data. The grippable surfaces are thus recognized even more robustly. The necessary labeling is done easily and efficiently via the MVTec Deep Learning Tool.

Easy Extensions Interface

With the help of HALCON extension packages, the integration of external programming languages is possible. The advantage for customers: Functionalities that go beyond pure image processing can thus be covered by HALCON. In HALCON 23.05, the integration of external code has become much easier with the Easy Extensions Interface. This allows users to make their own functions written in .NET code usable in HDevelop and HDevEngine in just a few steps, while benefiting from the wide range of functionalities offered by the .NET framework. Even the data types and HALCON operators known from the HALCON/.NET language interface can be used. This increases both the flexibility and the application possibilities of HALCON.

Multi-Label Classification

In the new HALCON version, customers now have access to multi-label classification, a new deep learning method that enables the detection of several different classes within a single image. Such classes can include different defects, objects as well as properties such as structure or color. In practice, this method can, for example, detect the presence of different types of defects in an image and provide a more detailed classification of the different possible defect types. Compared to object detection or instance segmentation, this deep learning method is faster in processing and the labeling effort is much lower.

Further Improvements

In HALCON 23.11, a number of improvements for existing methods and technologies were implemented:

For Global Context Anomaly Detection, a method for detecting complex anomalies, the underlying neural network has been further optimized. This improves the accuracy of anomaly detection without increasing hardware requirements or execution time.

In addition, HALCON now utilizes the latest NVIDIA® CUDA® toolkit. This provides users with the opportunity to choose from an even greater range of AI accelerators. For example, the new NVIDIA Jetson OrinTM modules are now supported as well.

Finally, several performance optimizations of HALCON’s core technologies have been implemented in HALCON 23.11. For example, template matching operators (NCC Matching for large templates) now run up to 80% faster on Arm-based systems.

  • Global Context Anomaly Detection (GC-AD) models could not be optimized correctly to HAILO-8 AI² Plugin and hardware. This hardware only allows int8 calibration precision. The calibration result showed faulty anomaly images, which led to very poor segmentation results and incorrect classification results. This problem has been fixed. Now, optimize_dl_model_for_inference converts the GC-AD models so that the quantitative results are very similar to full precision float32 models.
    It is necessary to calibrate GC-AD models with the new version again using optimize_dl_model_for_inference. It is also necessary to adjust the classification/segmentation thresholds for best results after calibration.

Compatibility

Licenses

All HALCON 24.05 Progress licenses or licenses of earlier versions must be replaced or upgraded. Please contact your local distributor. HALCON 24.11.1.0 Steady licenses will be downwards compatible to HALCON 24.05 Progress.

HALCON Library

Compared to HALCON 24.05 Progress, many extensions have been introduced. Thus, the HALCON 24.11.1.0 Steady libraries are not binary compatible with HALCON 24.05 Progress or earlier versions. However, HALCON 24.11.1.0 Steady is mostly source-code compatible to HALCON 24.05 Progress except for the changes listed below:

  • For sample_object_model_3d, the parameter 'SampleDistance' has been renamed to 'SamplingParam'. When using named parameters in HALCON/Python or HALCON/.NET, the parameter has to be renamed.

    More information.
  • For read_object_model_3d, the output parameter 'ObjectModel3D' is now of type ObjectModel3D array instead of the single valued type ObjectModel3D. This influences the object-oriented signatures of read_object_model_3d in the language interfaces HALCON/C++ and HALCON/.NET, both the HObjectModel3D constructor and its member function HObjectModel3D::ReadObjectModel3D. Undocumented single valued signatures are still provided for backwards compatibility but cannot be used with the new parameter 'split_level'. For fully supported signatures, see the operator reference.

    More information.
  • The operators area_intersection_rectangle2, distance_pr, distance_lr, distance_sr, distance_sc, distance_lc, distance_cc_min, distance_cc_min_points, and distance_cc now accept inputs that previously threw an exception. Additionally, the HALCON/C++ and HALCON/.NET interfaces of the operators distance_cc, distance_cc_min and distance_cc_min_points now support additional overloads, which can cause compatibility issues in rare cases.

    More information.
  • convex_hull_object_model_3d, triangulate_object_model_3d, intersect_plane_object_model_3d, register_object_model_3d_pair, and register_object_model_3d_global now return error 9526 ("Primitive in 3D object model has no extended data") instead of one of the errors 9203, 9511, 9514, 9515, 9517, or incorrect results for infinite primitives of type cylinder or plane.

    More information.
  • The HTuple::GetHctuple() member function has been changed to take a reference to an Hctuple structure to copy the data to instead of returning an Hctuple.

  • The undocumented at_i, at_d, at_h, and at_s macros have been removed from HalconCDefs.h.

  • The signature of the HGetPPar function has changed so that the third parameter now takes a Hcpar const* H_RESTRICT* parameter instead of a Hcpar* H_RESTRICT* parameter. Any code calling HGetPPar directly or indirectly will need to be changed.
    Note that this is not a semantic change, as the documentation for HGetPPar states that the Hcpar values returned by HGetPPar must not be modified. This change makes this restriction explicit to the compiler.

    More information.
  • find_shape_model, find_scaled_shape_model, and find_aniso_shape_model expected integers for the parameters 'NumLevels' and 'NumMatches', but accepted also doubles. As these values should be integers, setting a double value will now result in an error in order to inform the user.

    More information.
  • In the inference of object detection models, predicted boxes are now kept during non-maximum suppression if they have an intersection over union (IoU) with another predicted box equal to the set thresholds 'max_overlap' or 'max_overlap_class_agnostic', respectively.

    More information.
  • The GPU runtime initialization of a deep learning model has been improved. The performance should be more stable than before, and it should take much less time to initialize the model. As a side effect, the runtime performance and GPU memory usage of apply_dl_model and train_dl_model_batch can vary with respect to previous versions of HALCON. This only applies to GPU runtime devices. Note that for optimal inference performance on a GPU, an AI² Interfaces like Tensor RT should be used (see query_available_dl_devices).

    More information.
  • The color of the display of 'gripping_map', in the procedure 'dev_display_dl_data', could be changed using the parameter 'heatmap_color_scheme'. This behavior has been changed. Now, the parameter 'heatmap_color_scheme' has no influence on the color of the displayed gripping map anymore. Instead, the parameters 'gripping_point_map_color' and 'gripping_point_background_color' can be used to change the colors of the gripping map.

    More information.
  • If the augmentation method 'saturation_variation' was already used as input of augment_dl_samples in a training script for Deep-OCR recognition models, then the script will fail in a newer HALCON version. In order to make the script work, the key 'saturation_variation' has to be removed from the input dictionary.

    More information.
  • get_calib_data for ItemType='calib_obj_pose' sometimes did not raise an error when the calib_obj_pose was missing from the data, or returned the error 8458 ("Invalid calibration object index"). get_calib_data now returns the error 8459 ("Invalid calibration object pose index").

    More information.
  • The pretrained Deep OCR detection model has been improved and changed. apply_deep_ocr may now produce different results for the modes 'detection' and 'auto' for certain images. Existing applications should test the parameter settings based on the new model. In a new version of HALCON the old Deep Learning models are backward compatible for reading.

    More information.
  • Applications using the Hpar f union member can safely be modified to use the binary compatible d member. Any usage of the macro FLOAT_PAR can safely be replaced with the identical macro DOUBLE_PAR.

    More information.
  • The minimum system requirements for HALCON library on armv7a-linux, x64-linux platform, and armv8-linux platforms have been increased to gcc 7 and glibc 2.27.

    More information.
  • Trainings using the 'pretrained_dl_classifier_resnet18.hdl' model may have slightly different results compared to previous releases.

    More information.
  • The procedures procedures/general/structured_light_camera_screen_sync.hdvp and procedures/general/structured_light_inspect_segmentation.hdvp have been moved to the new procedure library procedures/general/structured_light.hdpl.

    More information.
  • affine_trans_object_model_3d does not copy primitives anymore. affine_trans_object_model_3d and rigid_trans_object_model_3d do not copy precomputed data structures for 3D distance computation anymore.

    More information.
  • To optimize the performance on x64-linux and x64-win64 architectures, cuDNN now performs online selection of the used convolution algorithms. As a consequence, the runtime initialization is more time-consuming than in the previous HALCON version, and the results are not always reproducible.
    To reproduce the same results on the same GPU, the system setting 'cudnn_deterministic' can be set to 'true', sacrificing performance, or the TensorRT AI² interface can be used to optimize the model, if applicable.
    The new cuDNN version creates an initial GPU memory cache after its first use, which remains present until the process is terminated. The size of this initial cache can vary depending on the used GPU hardware and its actual usage.

    More information.
  • The handling of memory blocks has been extended to support empty memory blocks as well. Any application that uses a memory block of size zero to indicate an error should be adapted accordingly.

    More information.
  • The values retrieved by get_generic_shape_model_param of user-set parameters, i.e., the parameters queried with suffix '_param', may be different for HALCON versions after and including 22.11. Additionally, resulting shape models of train_generic_shape_model may be different.
    To retain consistent behavior of get_generic_shape_model_param and train_generic_shape_model after reading shape models written with HALCON versions before 21.05, users have to set affected parameters to the values written in the shape model. For example, the parameter num_levels has to be queried first using get_generic_shape_model_param(ModelID, 'num_levels', NumLevels), and then set by set_generic_shape_model_param(ModelID, 'num_levels', NumLevels) to achieve that NumLevelsParam from get_generic_shape_model_param(ModelID, 'num_levels_param', NumLevelsParam) results in the same value as NumLevels.

    More information.
  • The behavior of train_generic_shape_model_param with a shape model created by create_shape_model, create_shape_model_xld, create_scaled_shape_model, create_scaled_shape_model_xld, create_aniso_shape_model, or create_aniso_shape_model_xld can differ regarding its treatment of 'min_contrast' and 'contrast'.

    More information.

HALCON Applications

Please re-compile all C, C++, or .NET programs developed with HALCON 24.05 Progress. The incompatibility with HALCON 24.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, HALCON 24.11.1.0 Steady, HALCON 24.05 Progress, and HALCON 20.11 Steady image acquisition interfaces are library compatible.

HALCON 24.11.1.0 Steady includes only a subset of available image acquisition interfaces. For more information, see the reference documentation of the Image Acquisition Interfaces. You can download additional interfaces from our web server.

Digital I/O Interfaces

In general, HALCON 24.11.1.0 Steady, HALCON 24.05 Progress, and HALCON 20.11 Steady digital I/O interfaces are library compatible.

HALCON 24.11.1.0 Steady includes only a subset of available digital I/O interfaces. For more information, see the reference documentation of the I/O Interfaces. You can download additional interfaces from our web server.

Extension Packages

Please re-generate your own extension packages developed with HALCON 24.05 Progress.

Further Compatibility Information

Legacy or No Longer Supported Functionality

The following functionality may be discontinued in a future major release:

See the reference manual entries of legacy operators for details on how to replace them.

  • As announced in previous releases, MVTec has discontinued the support of macOS systems with the release of HALCON 23.05. We recommend switching to Windows or Linux platforms for future applications.

  • Programs using the procedure dev_display_dl_data for 3D visualization of 3D gripping point data with the value 'point_cloud' as KeysForDisplay parameter will no longer work. Instead of dev_display_dl_data, the procedure dev_display_dl_3d_data has to be called. Moreover, the parameter value has been renamed to 'gripping_point_cloud'.

    More information.
  • Exported code using dictionaries, that was exported with HDevelop 22.11 or earlier, is not source code compatible with later versions of the language interfaces, and must be reexported.

    More information.
  • Since the release of HALCON 23.05, MVTec has discontinued support for the Windows 8.1 and Windows Server 2012 R2 operating system. This means that as of version 23.05, HALCON will no longer be tested on this platform and operating system. Specific issues with this platform will no longer be handled by the support channel.

Supported Operating Systems

Windows

HALCON 24.11.1.0 Steady has been compiled for the x64-win64 platform version for Windows 10 (x64 editions), 11, Windows Server 2016, 2019, 2022 on Intel 64 or AMD 64 with SSE2 (AVX2 dispatch) processors.

Linux

HALCON 24.11.1.0 Steady has been compiled for the following Linux platform versions:

  • x64-linux platform version for Linux x86_64xspace, GLIBC_2.27, GLIBCXX_3.4.24 on Intel 64 or AMD 64 with SSE2 (AVX2 dispatch) processors
  • armv7a-linux platform version for Linux armv7axspace, Kernel with hidraw support, hard-float ABI, GLIBCXX_3.4.24, GLIBCXX_3.4.24 on Armv7-A with NEON support
  • aarch64-linux platform version for Linux aarch64xspace, Kernel with hidraw support, GLIBC_2.27, GLIBCXX_3.4.24 on Armv8-A with AArch64 support

Please refer to the Installation Guide for detailed system requirements corresponding to the different Application Binary Interfaces.

Detailed Description of Changes in HALCON 24.11.1.0 Steady

The changes in HALCON 24.11.1.0 Steady are described with respect to HALCON 24.05.

HDevelop

New Functionality

GUI
  • The MVTec Academy can now be reached via the Start dialog of HDevelop.

  • Working with more than one HDevelop has been improved. Instead of storing the coordinates and size properties of a widget each time it was closed in the HDevelop.ini, it is now stored only after HDevelop is closed.

  • The program window combo box of HDevelop has been improved. The grouping of procedures has been changed further it is now possible to search for procedures.

  • By consenting to sharing anonymous data with us you may receive additional information on our latest or upcoming products.

  • CTRL + W did close the whole program window, regardless if there were any open tabs. Now, the current tab gets closed, and if no other tab is open, CTRL + W closes the program window.

  • The usability of the Window menu has been improved. The option 'Open Canvas' now has a dedicated icon.

  • The usability of HDevelop has been improved. Now, it is possible to hide the docking drop indicators by pressing the Ctrl key. Thus, it is possible to move windows and prevent them from being docked.

  • It is now possible to show white spaces in the program editor by using the option provided under Preferences > User Interface > Program Window.

Assistants
  • In HDevelop, the usability of some parameter types on the parameters tab of the image acquisition assistant has been improved. IP and MAC addresses as well as hexadecimal numbers are now displayed as human-readable strings.

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:

    • One implementation is based upon system operations. It has no effects on performance and is regarded as the preferred implementation.
    • For those rare cases where that implementation is not sufficient (e.g., because the operating system is not able to hold enough file handles open simultaneously), a timer-based implementation is provided. This implementation affects performance and responsiveness of the HDevelop application, and, therefore, is merely intended as a fallback solution.

    Which implementation is used is stored persistently, and can be selected, in HDevelop's General Options. It is also possible to deactivate file tracking completely.

  • dev_get_system now also supports the parameter 'call_stack', which can be used to return the current call stack.

Language
  • Dictionary lookup expressions now support multiple keys (0-N). For more information, see the HDevelop User's Guide.

    Note that this change affects the compatibility. Read more.

Bug Fixes

Assistants
  • In the Calibration Assistant, user-defined calibration did not reactivate previously excluded parameters. This problem has been fixed.

  • In the HDevelop Matching Assistant, 'Display Image Pyramid Level' for the correlation-based, descriptor-based, and deformable matching was disabled. This problem has been fixed.

Code Export
  • Using HDevelop via command line, e.g., for hdevelop -convert operations, did not properly return floating licenses. This problem has been fixed.

  • The C export of dev_open_window did not work when the background color was not a constant value literal. This problem has been fixed.

GUI
  • Adding a new tuple element in HDevelop's Variable Inspect Window was not possible anymore. This problem has been fixed.

  • The Gray Histogram of HDevelop did not display the correct histogram data if there were more than one graphics windows. This problem has been fixed.

  • In some cases, HDevelop notified that a new software update is available even if the version was up-to-date. This problem has been fixed.

  • dev_open_tool, did not consider the origin of coordinates while opening the tool. The tool was always opened with respect to the primary screen. This problem has been fixed. dev_open_tool now considers the selected origin while opening the tools.

  • HDevelop showed the autocompletion suggestion list too often, making editing less convenient. If the cursor was inside an operator and the user typed something, the suggestion list was displayed. This problem has been fixed.

  • Custom colors set in HDevelop were reset after restart of the application. This problem has been fixed.

  • HDevelop News may not have worked if the package Development > Third-party libraries libcrypto and libssl were not installed. This problem has been fixed. Now, the package is per default installed when HDevelop is selected.

  • Information about variables with multiple tuple elements could appear garbled in the variable window tooltip or status bar when the GUI language did not correspond to the OS system language. This problem has been fixed.

  • The graphics windows appeared to be pushed to the top left corner within the canvas upon maximizing and restoring. This problem has been fixed.

  • The last column header of the tabs in the Quick Navigation window showed a white space upon resizing the window. This problem has been fixed.

  • The labels of the x- and y-axis of the Function Inspect window were not visible in the dark theme. This problem has been fixed.

  • The function inspect windows title was not properly updated after removing functions. This problem has been fixed.

  • When displaying a small image, it did not fit correctly to the window while resizing. It either was displayed too large, and parts were clipped, or too small, causing black borders to appear. This problem has been fixed.

  • The tooltip color of the autocompletion was not correct after a theme change. This problem has been fixed.

  • Zoom out via the '-' button did not work, if the zoom factor was at the maximum value. This problem has been fixed.

  • The multiple values for "Center" and "Bounding Box" were not properly displayed in the object model 3d inspect window. This problem has been fixed.

  • Autocompletion in the program editor was slow. This problem has been fixed.

  • The autocompletion was hidden after pressing the left or right arrow keys. This problem has been fixed.

  • An updated iconic variable within a dict was not immediately displayed in the graphics window. This problem has been fixed. The graphics window is now updated, once the user clicks on the iconic variable in the Handle Inspect Widget.

  • When connecting to Linux from Windows, it was possible that HDevelop lost its focus in some rare cases. This could cause unwanted shortcuts to be triggered or characters to be lost when editing an HDevelop program. This problem has been fixed.

  • The dev_open_tool operator did not set the correct tool geometry when using default parameters. This problem has been fixed.

  • In rare cases, it took very long until the dialog Attach To Process was shown. This problem has been fixed.

  • If the display was set to a scaling other than 100%, lines in the Object Model 3D Inspect Window were cut off in rare cases. This problem has been fixed.

IDE
  • When (temporarily) losing the connection to the file system in combination with HDevelop's application file tracking, HDevelop could become unresponsive. This problem has been fixed. Now, HDevelop reports the problem and offers to stop the application file tracking.

  • In some cases, HDevelop's file tracking mechanism could lead to a crash. The crash occurred when an unloaded procedure (e.g., due to an invalid file name) was modified and HDevelop subsequently tried to reload it. This problem has been fixed.

  • When copying code that contains a call to a local procedure, the user could have been asked if the local procedure should also be pasted. This problem has been fixed.

  • HDevelop file tracking did not sync signature changes. This problem has been fixed.

  • Dragging and dropping HDVP and HDPL files on HDevelop did not work. This problem has been fixed.

  • Editing a running program could lead to a false positive warning about program corruption when interrupting a long-running operator. This problem has been fixed.

  • The autocompletion for dev_get_system did not offer the 'call_stack' parameter. This problem has been fixed.

  • A find&replace operation in HDevelops program window led to a wrong highlighting, in some cases. This problem has been fixed.

Procedures
  • The augmentation 'rotate_range' of the Deep OCR recognition training raised an exception in augment_dl_samples. This problem has been fixed.

  • For procedures without short description, the title of the corresponding (empty) section in the HTML documentation of the procedure always appeared in English, regardless of the selected language. This problem has been fixed.

  • Reusing an existing parameter name, in the procedure interface dialog, caused an invalid renaming. This problem has been fixed.

  • Creating a procedure, using dictionary or vector access expressions from selection, did not always determine the proper input parameters for code. This problem has been fixed.

  • The procedure read_dl_dataset_ocr_recognition did not use additional text classes that can be defined in a Deep OCR project of the Deep Learning Tool (DLT). This problem has been fixed.

Miscellaneous
  • Compute devices were not deactivated when resetting the program in HDevelop (e.g., when pressing F2). This problem has been fixed.

  • HDevelop crashed during the attempt to auto complete an inactive line with the TAB key. This problem has been fixed.

  • HDevelop could crash when canceling the loading of a program, while the start dialog was open. This problem has been fixed.

  • Using HDevelop via command line, e.g., for hdevelop -convert operations, did not properly return floating licenses. This problem has been fixed.

  • The program window crashed when the tooltip for autocompletion was shown between two monitors, one scaled with 125% and the other with 150%. This problem has been fixed.

  • The autocompletion sometimes suggested the framegrabber interface where it was not applicable. This problem has been fixed.

  • Opening the read image dialog after checking the option to show low-level errors (Preference > General Options > Experienced User) led to an error. Further, opening HDevelop with an image as parameter from a Linux shell threw a low-level error. These problems have been fixed.

  • It was possible to write code that opened a very large window. This could lead to a crash. This problem has been fixed. Now, the maximum width and height of a window is limited to 2^15.

  • HDevelop in some rare cases crashed while an inspection widget to select a specific iconic object was opened, and the displayed variable was modified by the running program. This problem has been fixed.

  • When using an HDevelop.ini file where the JSON-based entry 'MainWndDockingLayout_Canvas' has many children objects in the layout section, HDevelop took a long time to load this layout. This problem has been fixed.

  • In rare cases, the program window could enter an inconsistent state causing erratic behavior and coloring as well as corruption of the currently edited procedure body in the HDEV/HDVP/HDPL file. While the root cause of this issue has not yet been identified with certainty, several mitigating fixes have been implemented that reduce both the probability and the impact of such an event. In particular, one potential problem involving typing with an open handle inspect widget has been fixed. Also, there is now defensive early detection of an internal inconsistent state in the editor, which allows to save a plain text backup copy of the current editor contents prior to potential corruption.

HDevelop Example Programs

New HDevelop Example Programs
New Functionality
Bug Fixes

HDevEngine

Functionality

  • 'Export Program' does not export MacOS/Apple (C/C++) specific code anymore.

Bug Fixes

  • In some cases, calling operators that return iconic values could lead to a memory leak in JIT-compiled procedures. This problem has been fixed.

  • Loading the .NET assembly in the adapter_dotnet when the .NET runtime was already running led to an error. This problem has been fixed.

  • Unloading an individual library procedure was not a well-defined operation and could cause a crash. This problem has been fixed. Now, calling UnloadProcedure on a library procedure implicitly unloads the entire library. Later attempts to create an HDevProcedure from one of the library procedures will reload the library.

HALCON Library

Speedup

New Functionality

3D
Bar Code
Calibration
Classification
Data Code
Deep Learning
File
Graphics
Image
Matching
Miscellaneous
OCR
Parallelization
Region
System
Tools
Tuple
XLD

Bug Fixes

3D
Bar Code
Calibration
Classification
Color Processing
Data Code
Deep Learning
Code Export
GUI
File
Filter
Graphics
Inspection
Images
Identification
Matching
Matrix
Measure
Memory
Miscellaneous
Morphology
OCR
Parallelization
Region
Segmentation
System
Tools
Transformation
Tuple
XLD

Procedures

Functionality

Bug Fixes

HALCON/C

Bug Fixes

HALCON/C++

Bug Fixes

HALCON/.NET

Bug Fixes

HALCON/PYTHON

Functionality

Bug Fixes

Functionality

Bug Fixes

Extension Packages

Bug Fixes

Language Interface Example Programs

Bug Fixes

HALCON Variable Inspect

Functionality

Bug Fixes

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.

Documentation

Programmer's Manuals

User Guides

Solution Guides

Reference Manual

Miscellaneous

Installation

Licensing

Extension Packages

Bug Fixes

Miscellaneous

Third-Party Libraries

Follow this link to read about the changes of previous HALCON versions.

MVTec Software