Release Notes: Zebra Aurora Vision Studio™ 5.4

2024.02.12

Deep Learning
New and improved filters
WebHMI


AVL.NET
Linux & Android
Interoperability
Hardware Support
New Aurora Deep Learning™ Examples
New Aurora Vision Studio™ Examples

Release Notes: Zebra Aurora Vision Studio™ 5.3

2023.03.22

Deep Learning
  • New: A completely new tool is available, DL_LocateText. It does not require any training and automatically detects text (words) in images. Use it to find the ROI (region of interest) for DL_ReadCharacters whenever text location cannot be determined with simpler means. DL_LocateText detects text at any orientation in the range of ±90 degrees, and handles font sizes between 20 and 50 pixels.
  • Improved: The DL_ReadCharacters tool has been re-trained on an even larger database of images, now including significant amount of currency symbols ($, €, £, ¥, ¢), special characters (+, =, % etc.) and new industrial fonts (most notably the OCR A).
  • Improved: The DL_ReadCharacters tool now comes with re-designed character scoring function, yielding significantly less False Negatives for confusing characters (like 0 vs O or I vs l).
  • Improved: The DL_ReadCharacters (Fast) tool has been further optimized, giving ~10% lower inference time.
  • Improved: The DL_ReadCharacters tool now comes with a new model, "Scalable", that is based on "Balanced", but supports a wide range of character height (20-100 px).
  • Improved: The architecture of the neural network behind the DL_DetectFeatures tool has been re-optimized. We used a set of 15 industrial and non-industrial use cases as a benchmark, and performed both manual and automatic (ProxylessNAS) architecture optimization. As a result, the tools is much faster (~20% faster on GPU, twice as fast on CPU) while accuracy is preserved or better (depending on the use case).
  • Improved: The neural network behind the DL_DetectFeatures tool is now pre-trained with a large database of images. This makes training much faster - it is now enough to train for 10-15 iterations to get a good model. Another benefit is that training is more stable for small datasets.
New and improved filters
  • New: Data Matrix code reader received a new detection algorithm that may handle codes with mixed polarity modules (some modules are darker, some are brighter than the background). It works especially well with DPM with direct illumination (direct print marking).
  • Improved: Our 1D code reading tool has been thoroughly revised, significantly improving both speed and accuracy. The filter's interface has been simplified.
  • New: There is a new code reading tool, based on a very different algorithm, that can read many types of codes at one time.
  • Improved: We have improved speed and accuracy of the GoldenTemplate3D tool.
  • Fixed: PolygonIntersectionArea was returning 0 when the same non-empty polygon was put to both inputs.
  • Fixed: ImageLocalMaxima.inMinValue was off 3 times for RGB images.
  • Improved: ResizeImage_Area has been better optimized for 1-channel images, including for NEON instruction set, and for 3-channels images, SSE/AVX only.
  • New: A few new auxiliary filters have been added: ReorientRectangle, AlignShapeRegion, ReadEnvironmentVariable_OrNil, AppendImageChannel, EllipseArea, RegionBoundingEllipse(_OrNil), PointsBoundingEllipse.
  • Improved: Gray-based Template Matching has been significantly improved (as Edge-base had been in 5.2), including:
    • highly reduced model size
    • much faster model creation
    • slightly faster search
    • more consistent object scores
  • Improved: "Execute" filter (for running system scripts) was reimplemented; many issues were resolved.
    • Additionally, when executing it, Windows' console window is no longer shown.
    • The Execute_WaitForExit filter has a new inEncoding input, to specify what encoding to use when reading program output. The user can also specify "RAW" encoding and use bytes from new outRawResult output directly.
    • The Execute_WaitForExit filter now also reads standard error stream on Windows.
IDE
  • New: We changed the way filters without set inputs work - instead of interrupting the program execution, we mark them as "Not Ready". If the user decides to execute a program containing "Not Ready" filters, these filters work as if they were disabled.
  • Improved: The auto-connect feature has been optimized, yielding much less false positive connections now.
  • Improved: The Filmstrip control now watches file changes and can update its content automatically.
  • Fixed: Status bar layout has been fixed - its space is better used, call stacks can be fully displayed.
Linux & Android
  • Experimental: Deep Learning Add-on (both training and inference) is now available for Linux. OEM packages only, please contact our support for details as it is not included in the publicly available distribution packages.
  • Experimental: Aurora Vision Library™ and Deep Learning Add-on (inference only) can now execute on Android operating system. OEM packages only, please contact our support for details as it is not included in the publicly available distribution packages.
Hardware Support
  • New: Added support for Zebra Scanner SDK, making it possible to have Aurora Vision Studio receiving images from Zebra's scan engines and hand-held devices.
  • New: Added support for Matrox® 4Sight EV6 and EV7 industrial computers. It is now possible to control their digital I/Os, timer, generate software trigger, get values from the encoder counter and configure the timer. Important note: in the next step, support for industrial protocols (Profinet, EtherNet/IP and Modbus RTU) will be added.
  • New: Added support for HIKROBOT industrial computers. It is now possible to control their digital I/Os, light ports (brightness, state after triggering, trigger edge, duration time) and reboot a device.
  • New: Added support for Nodka industrial computers (NKDIO SDK). It is now possible to control their digital I/Os, built-in light controller, and set general parameters of the device. The implementation of all SDK functionalities is done in the Nodka_Server.exe that can be found in the Aurora Vision installation path.
  • Update: Updated support for Vimba SDK to version 6.0.
  • Update: Updated support for SmartRay SDK to version 5.5.1.41.
  • Update: Updated support for FlyCapture SDK to version 2.13.3.61.
  • Update: Updated support for Spinnaker SDK to version 2.7.0.128.
  • Update: Updated support for SynView SDK to version 1.03.014.
Other
  • New: Our products are now build with Visual Studio 2022, gaining a few percent performance gain for some tools.

Release Notes: Zebra Aurora™ Vision Studio 5.2

2022.06.30

Adaptive Vision is now Zebra Aurora™ Vision

Last May, Zebra Technologies shared the news of its acquisition of Adaptive Vision. Since then we have been busy integrating the expert team at Adaptive Vision, and the software products you’re used to, into Zebra. While the name may change, customers will continue to receive the same focus on product improvement, service and support that has led them to put their trust in Adaptive Vision.

As of 25 May, 2022 the name of Adaptive Vision Studio has changed to Zebra Aurora™ Vision Studio.

If you have any questions about the rebranding or new product names, please contact us at av-office@zebra.com

Offline Mode
  • New: A new button was added to the main command bar for switching between "Online" and "Offline" modes of program execution. The new Offline mode disables I/O filters from the ACQUIRE section and enables using data from the Filmstrip control instead.
    • NOTE: The EnumerateImages filter, which was often used to load images one by one from disk, is now becoming obsolete.
  • New: There is a new Filmstrip control that contains snapshots of acquired data - usually images, but any other type of data is possible. This control has several purposes:
    • Filmstrip provides snapshots of data for use in the Offline Mode, replacing the need to execute the I/O filters in the ACQUIRE section.
    • Filmstrip provides an easy access to image datasets stored on disk, replacing the need to use EnumerateImages tool.
    • Filmstrip provides an easy way to manage test cases for your application, facilitating Test Driven Development.
    • Note: When you add images (or any other data) to Filmstrip, no files are copied, but only file paths are stored. This is the responsibility of the user to manage directories with images on disk.
    • Note: Filmstrip data is organized into "Workspaces", which then divide into "Datasets", which in turn divide into "Channels". Channels are useful e.g. in multi-camera systems or when there is any other data associated with the acquired images (e.g. timestamps).
    • Note: Filmstrip data, including Workspaces and Datasets, do not belong to any project. They may be shared by multiple projects. On the other hand, in any project configuration it is remembered which Workspace it requires. When you open a project, Studio will attempt to switch to its required Workspace.
    • Note: Data can be read from the Filmstrip control in two ways: (1) with "ReadFilmstrip:<channel-name>" filter (will work only in the Offline mode), or (2) by binding an output of an I/O filter with a Filmstrip channel (will work differently in Online and Offline modes).
Deep Learning
  • New: New filters were added for unloading deep learning models. This is useful when your application allows for using multiple models interchangeably.
  • New: It is now possible to use multiple GPU cards for inference. Deployment parameters now not only allow for choosing between CPU and GPU, but also include a device index. This may be especially useful in multi-threaded applications when different threads may use different GPU cards to significantly improve overall inference performance.
  • New: Anomaly Detection tools now come with a much more accurate test metrics. Up to the version 5.1 we only supported per-image classification metrics, which tends to be quite inaccurate. Now, it is possible to mark regions of anomalies and calculate metrics per-region. More specifically, we measure Recall per-region, while Precision is measured per-pixel (on GOOD images only) and normalized to deal with unbalanced Good vs Bad classes.
  • New: Deep Learning: Locate Rectangles algorithm has been added.
  • New: The DL_DetectAnomalies2 tool received a new operation mode, "Texture", which is good for these projects, where the applied anomaly model is the same at every image location.
  • New: New tools were added to Anomaly Detection plugins which allows to apply new statistics based on heatmap quality.
  • New: Deep Learning now allows to version models. Models now can be compared and restored.
  • New: Deep learning inference tools can now be interrupted with the "Work Cancelation" mechanism from Studio. This way, if a tool takes dosens of seconds to complete, the user may force its completion by simply pressing the "Stop" button on the main toolbar.
  • Changed: The output of DL_LocateObjects was changed. It now uses the same type of data as the traditional LocateObjects tools. This simplifies experimentation when you are trying to compare deep learning and traditional object location methods.
  • Changed: The DL_DetectAnomalies1 tool does not have the "Approach" setting anymore. After extensive testing we found that the improved "Denoising" approach was overperforming other methods in vast majority of cases, so there was no point to keep the option to change to the legacy methods.
  • Changed: Underperforming Detect Anomalies algorithms were removed from the Deep Learning Editor but all existing models can still be used.
  • Improved: Several tweaks in network architectures result in ~15% lower execution time and improved accuracy of DL_DetectFeatures and DL_LocatePoints.
  • Improved: Improved: Folders with models no longer contain copies of images.
  • Fixed: Deep Learning: Fixed a problem, which could occur after training when using relative paths.
  • Fixed: Fixed problem with mixed Train and Test sets values in ROC graph.
Deep Learning - OCR
  • New: A new "Fast" variant of the DL-OCR tool has been added. It works 3 times faster with only a minor drop in overall accuracy. However, it works with a limited range of character sizes (±15%).
  • Improved: The accuracy of the standard OCR model has increased from 95.1 to 98.8% on our internal test set of 572 test images (including very difficult ones).
  • Improved: The standard OCR model has been significantly improved for recognition of mixed small and capital letters (kerning).
  • New: The OCR tool has a new input, inContrastThreshold, that allows for effective removal of False Positives that have low or opposite contrast.
  • New: The OCR tools is now available and well optimized for ARM.
  • New: Deep Learning: ReadCharacters model can now be loaded from the file.
  • Changed: The DL_ReadCharacters.outMasks output type has been changed from ImageArray to RegionArray.
  • Improved: The postprocessing tool, MergeCharactersIntoLines, has been improved in terms of its accuracy. Also, it now sorts the output lines better.
IDE
  • New: The style of drawing ROI, scan paths and fitting fields have been changed - as these elements are not really computed, but defined by the user, their visualization should not interfere with inspection results. Thus, we are now drawing these without colors and fill, but with gray dotted lines.
  • New: User Types counter was added to Project Explorer Tree.
  • New: It is now possible to iterate program in Worker Tasks and HMI Event macrofilters.
  • New: It is now easier to start only one Worker. Added a 'Program Run Mode' button on the top bar to help you work with a multi - threaded program.
  • Improved: Images in the data preview windows can now be moved away from the windows edges. This improves usability when you want to zoom in and focus on pixels that are at the boundaries of the image.
  • Improved: Time Program Statistics are now calculated from all Workers.
  • Improved: Slightly dimmed non-main worker name in macrofilters navigator.
  • Improved: Better handling error messages in multi - worker programs.
  • Fixed: Fixed missing "Move to..." option in Project Explorer.
  • Fixed: Fixed problem with showing invalid scale in Profile preview.
  • Fixed: Fixed the problem with a deadlock occurring while executing application in "Update each filter" mode.
  • Fixed: Solved issue that lead to "startup application" list being displayed below the main window in Zebra Aurora™ Vision Studio Runtime, when WindowMode was set to FullScreenCenter/FullScreenStretch.
  • New: User now can generate a basic WebHMI while exporting application to AVEXE. After that a simple HMI can be accessed trough HTTP page.
HMI
  • New: Video2DBox HMI control can now show Heatmap type.
  • New: Added HMI editor for EdgeModel2.
  • New: Added HMI editor for Golden Template 2.
  • New: A search tool has been added for HMI controls.
  • New: HMI: New AccessLevel input of controls is showed when ProgressPanel is added to form.
  • Improved: Performance of the HMI for large projects has been greatly improved.
  • Fixed: Fixed problem with HMI Golden Template Editor updating Alignment too often when set dynamically.
New and improved filters
  • New: Then interface of the ExtractBlobs tools has been significantly revised.
  • New: Three additional rotation-invariant region features were added: RegionThickness, RegionComplexity and RegionDispersion.
  • New: Some directional region features were also added: RegionSkewness, RegionSymmetricity, ...
  • New: Two new filters were added: BottomHat and TopHat for images and for regions.
  • New: Added a new filter: FitSegmentToRegion.
  • New: Added a new variant of the TrimSegment filter: ToPolygon.
  • New: A new GoldenTemplate3D tool is ready for applications of simultaneous 3D object detection (one) and comparison against a template. Differences are considered defects.
  • New: For those who want to analyse 3D points clouds in a more advanced way, a set of new auxiliary filters was also added: AdjustPointGrids3DGlobal, Points3DGridDistance, Point3DGridRMSE, RemoveOutliersFromPoint3DGrid, VoxelizePoint3DGrid.
  • New: Two new filters: AccessVector3D and MakeVector3D, were added.
  • New: Rotate3D filters have a new _AroundSegment variant added.
  • New: Loading hyperspectral TIFF images is now possible with LoadMultiplePagesTiffImage filter.
  • Improved: New output outTransform was added to filters: RotatePoint3DGrid, RotatePoint3D, RotatePoint3DArray.
  • Improved: Data Matrix code reader has been improved in several details, based on experience from Zebra Technologies, especially when working with very low contrast codes.
  • Improved: Data Matrix code reader can now read codes with module size as low as 1.25 px (previously the minimum was 2.5 px).
  • Improved: Some TCP/IP filters got new input inSendWithoutDelay which disables Nagle's algorithm which could lead to unnecessary delay.
  • Improved: The execution time for the RescalePath and RotatePath filters has been significantly reduced.
  • Improved: ImageHistogram works much faster now for images with constant color.
  • Improved: Improved performance of ResizeImage_Flex.
  • Improved: Filter JoinImageTiles can now joint tiles with the different sizes
  • Improved: Execute filter now has option to WaitForExit or not (StartOnly).
  • Improved: Edge-based Template Matching has been significantly improved, including:
    • Much faster model creation, especially when template scaling is enabled.
    • Optimized model searching for the case of very large templates (like 500x500 px) - when used together with scaling, the speed up can be huge.
    • Improved match score calculation that results in overall higher scores and faster execution.
    • Instead of one "Ignore" mode for edge polarity, there are now two "IgnoreLocally" and "IgnoreGlobally". The latter comes with significant speed improvement.
    • The "diagEdges" output was promoted from diagnostic to normal ("outEdges"), so that it can be used in runtime too (e.g. for visualization).
  • Improved: Similar optimization techniques were also applied to Gray-based Template Matching. New filter LocateSingleObject_NCC2 is available.
  • Fixed: Fixed ScanEdges3D outputs while using alignment.
Zebra Aurora™ Vision Studio for Linux and ARM
  • New: Zebra Aurora™ Vision Studio Runtime now works on Linux and embedded systems. This means that programs created in the well-known graphical environment of Zebra Aurora™ Vision Studio can now be run on smart cameras based on ARM processors.
  • New: The GigE Vision and GenICam functions are now also available also under Linux (should work on ARM too, but for now comes with no guarantee).
SMART Edition
  • New: The content of Toolbox has been reduced to ready-made tools and basic other filters which do not require in-depth understanding of computer vision.
  • New: Auto-previews became default for the SMART edition. With this, it is no longer necessary to drag and drop data to previews manually, but - instead - the previews are automatically populated with all important data from the current macrofilter.
  • New: When a new "Auto-connect" mode is turned on, every time you add a new filter to the program, its main inputs get automatically connected with the nearest suitable data source (usually an image or a coordinate system).
  • New: It is now possible to connect property outputs (e.g. outPoint.X) directly through the Properties Control, without the need to expose the property on the source filter. This simplifies the view in the Program Editor as the filters now have significantly fewer output ports exposed.
  • New: Some frequently used property outputs, like outBlobs.Size, are now always available in the Results Control, so that the user can set appropriate Limits without the need to expose that output on the filter in the Program Editor.
  • Improved: The "out" prefix is now hidden in the Minimal program view. Thanks to that, the filters become a bit more compact, improving readability.
Formulas
  • New: The formula engine now supports matrix and vector arithmetics:
    • Matrices can be created in formulas directly.
    • It is possible to add, subtract and multiply matrices.
    • It is possible to multiply a matrix by a scalar, Vector2D, Point2D, Vector3D or Point3D.
AVL
  • Changed: AVL.NET now supports only .NET Framework 4.8 which can be downloaded here.
GenICam / GigE Vision
  • New: Support for GenTL has been updated to version 1.6.
  • New: [EXPERIMENTAL] GenICam File Access Control is now supported.
  • New: Support for GigEVision 2.1 Multi-part Payload has been added (available with GigEVision_GrabImage:MultiPart filter).
  • New: Support for GigEVision stream multicasting has been added (available to set up in the GigEVision Application Transport Settings).
  • Improved: Added support for the "Not Yet Available" stream packet status (for line-scal cameras; when supported by the camera, allows for the acquisition process to slow down or stop mid-image).
  • Improved: Added automatic stream network packet size negotiation (in accordance with GigEVision 2.1 guidelines).
  • New: [EXPERIMENTAL] Added support for "All-In" network transmission mode (requires to be enabled in the GigEVision Application Transport Settings).
  • New: [EXPERIMENTAL] Added support for JPEG image compression in the video stream.
  • New: The GigE Vision and GenICam functions are now available also under Linux (should work on ARM too, but for now comes with no guarantee).
Other
  • New: Euresys - added support for pixel format: Y10P.
  • New: Added new OpenCV filters: cvReprojectImageTo3D, cvCalibrateHandEye, cvCalibrateRobotWorldHandEye, cvProjectPoints.
  • Improved: Improved error messages in the Studio for OpenCV edition.
  • Improved: Added inRepeat input to Enumerate filters.
  • Improved: BMP image files are now loaded up to 5 times faster.
  • Improved: New image/pixel formats available in the WebCamera_GrabImage filter.
  • Improved: Support for Vimba SDK has been updated to version 4.2.
  • Fixed: C++ Code Generator was omitting calculation of filter's property outputs which were used only in the FINALIZE section.
  • Fixed: Library was crashing when run with processors with more than 32 cores.

Release Notes: Adaptive Vision Studio 5.1

2021.05.20

Deep Learning
  • Changed: Folders with models no longer contain copies of images. As more and more of our customers started creating multiple versions of the same model (especially with the powerful Automatic Training feature), having each of them contain its own set of images caused excessive disk space usage. For this reason, since version 5.1, models will only hold paths to images stored elsewhere on your disk drive.
  • New: There is a brand new tool, DL_ReadCharacters, for highly demanding OCR applications.
    • New: An additional filter MergeCharactersIntoLines can be used to join individual characters into strings.
    • New: A new type of data, OcrResult {Box, Value Score}, is now used to represent results; be it individual characters or entire lines of text.
    • NOTE: The new OCR tool achieves ~98% accuracy out of the box, without any prior training, on a broad dataset of industrial and "text in the wild" cases. To achieve 100% accuracy in real-world projects we provide you with fine-tuned models for conditions of your choice.
  • New: A new generation of the DL_DetectAnomalies2 tool (based on One-Class Classification) comes with highly improved accuracy.
    • Changed: The training interface of the DL_DetectAnomalies2 tools needed to be adjusted.
  • Improved: There have been further improvements in the Automatic Training functionality:
    • New: Model training parameters can be easily imported from the main editor.
    • New: New statistics were added to the Automatic Training window.
  • New: DL_DetectFeatures is the first tool that comes with detailed statistics for fully professional comparison of various models' respective accuracies.
    • New: The Deep Learning editors can now handle multiple model versions. It allows for switching between different versions of a trained model.
    • New: New window for comparing models was created. It facilitates selecting the most optimal version of the model.
    • Improved: More information has been added to Deep Learning training reports.
  • Improved: GPU memory management has been significantly improved. This includes more transparent error messages and more effective memory use when multiple models are executed at the same time (*).
  • New: GPU memory pre-allocation in the "Deploy" filters was extended to assure for the main loop to, upon initialization, proceed with full speed from the very first iteration, whereas prior to version 5.1, some processing delay in the first iteration could still be occasionally experienced. This change made it necessary to ask for image dimensions in the "Deploy" tools, so that it knows how much memory to pre-allocate. You can still go with the value "Auto", but this may once again increase the execution time of the first iteration.
  • New: nVidia RTX 30xx cards became supported.
  • Improved: DL_DetectAnomalies1/Denoising execution has been significantly accelerated. (*)
  • Improved: Image file filtering options have been extended in the editors.
  • Improved: You can now display or hide heatmaps in the Deep Learning Editor with a single click.
  • New: There is a new tool, DL_LocateObjects, for simple object detection based on oriented rectangles. It constitutes a compromise between DL_SegmentInstances (which requires laborious annotation and does not support rotations) and DL_LocatePoints (which is easy, but takes into account neither rotations nor scales). It is also much more similar to the traditional Template Matching tools and can be used in almost the same way; you simply need more than one template sample.

  • Improved: The DL_DetectFeatures and DL_LocatePoints tools have been significantly optimized by simplifying their internal architectures. This results in better execution times while retaining the original result accuracy.
  • Improved: DL_LocatePoints no longer requires that images have the same dimensions across all iterations.
  • Improved: Loading times of large data sets have been improved. Thumbnails are now loaded in a background thread.
  • New: Information about the GPU card was added to main editor window.
  • Improved: The ClassifyObject editor's left panel can now be resized.
  • Improved: Computing scores in the LocatePoints tool was accelerated for large point sets.
IDE
  • New: There is a new data preview mode called "Macro Preview". It will automatically populate the data preview panels with key outputs from the current macrofilter, without the need to manually drag & drop individual outputs to selected panels. It is especially useful for those who create simple programs with the SMART edition.

  • Improved: Tooltips in the program editor have been re-designed. Now, they are more informative and no longer obstruct the view (especially at formulas).
  • Improved: The Undo/Redo functionality for formulas has been made more fine-grained. In the previous versions Undo at times removed all the changes made during one edit. Now it removes a smaller chunk of changes.
  • New: We now display by default the labels instead of the output names on data previews. (*)
  • New: Profile data previews now can also display the ProfileSection, ProfileStripe and Extremum1D types of data. (*)
  • New: The default data editor can be quickly opened by double-clicking on the filter directly in the program editor. The filters which enable this are now distinguished by a dot-contour around the icon, e.g.:

  • Removed: "Global Rerun" option has been removed from the main toolbar as a feature found confusing by some beginners. For advanced users it is still available in the application settings.
  • Improved: There have been many improvements in the layout of filter blocks in the Minimal program view. The newest version makes even very big programs with large macrofilters and highly complex formulas will look legible.
    • Output port arrangement has been improved; with multiple ports, line breaks appear neat.
    • Macrofilter input and output blocks are now visualized as lists of ports instead of as single blocks.
    • Formulas are more precisely indented from the right.
  • Improved: Selecting a global parameter for a Read/WriteParameter filter has been simplified in the program editor.
  • Improved: Global parameters and queues can now be filtered directly in selection drop down lists.
  • New: The values of global parameters can be directly accessed in formulas. To avoid possible name clashes, prefix the names of global parameters with "::".

  • New: Breakpoints; you can now set segments of your application, upon reaching which the execution will pause. This may be very useful when debugging large programs. You can use the F9 shortcut—just like in Microsoft Visual Studio.

  • New: .NET Macrofilter Interfaces can now be invoked from multiple threads.
  • Fixed: Some GDI resource leaks have been fixed in data editors. They were likely to crash if an editor (e.g. for a template matching model) was repeatedly closed and opened multiple times.
  • Fixed: In some cases the Statistics window would report negative time for the GUI.
  • Improved: Display of 3D point clouds in data previews has been improved:

    • Arrow heads in 3D segments are automatically scaled so that they never become larger than 25% of the segment's length.
    • Colorization of scale has been changed; now it is possible to have a single color scale for multiple point clouds.
    • The display of 3D points is automatically scaled for very big magnifications.
  • Improved: The limit of image size in data previews has been raised from 42 to 100 MPx.
  • New: There is a new option to reduce memory consumption in Studio, especially useful when working with very high resolution images (like ones coming from line-scan cameras). You can check the "Optimize memory" box in a Task's properties. This will release the memory of all output data when the task has finished its loop. On the other hand this will of course make it impossible to see the results of the last iteration on the data preview panels.

  • New: We have implemented the possibility to easily debug multi-threaded applications (Parallel Tasks). The user can now switch between different worker tasks (threads) when executing the program step by step. Whenever the program is paused, we can use the Step Over / Step Into commands to commence execution of one worker. We call it the tracked worker. If one worker is executed step by step, the other workers remain paused. However, the user can switch the tracked worker through the combo box on the main toolbar, or through the Project Explorer window. They may also use "Iterate Current Macro" or "Run until Here" at any place in the program (except for event handlers) to switch the tracked worker and immediately proceed with the execution until this point. One important thing does not change, however—the worker that is initially selected in the combo box is called the primary worker; it has a special meaning: when this worker is finished, the entire application gets closed.
HMI
  • New: The ProfileBox HMI control has been re-implemented. It now supports up to 8 charts, can display profiles, numerical arrays, geometrical primitives, as well as horizontal lines denoting limits or reference levels. Each data element can be displayed with user-defined color.

  • New: It has become possible to display data of the Heatmap type in HMI controls.
More powerful formulas
  • New: New formula functions have been added for affine point transformations: "translate", "towards", "rotate", "scale". This is helpful when you need to perform a simple transformation and do not want to use separate filters.
  • New: There are some new properties available in formulas: Segment.Direction, Segment.Center, Path.Length, Path.Segments, Line.Orientation, Vector2D.Direction, Vector2D.Length. (*)
  • New: There are some new formula functions for creating geometric objects: createSegment, createLine, createVector.
  • New: It is now possible to create arrays directly inside formulas using array literals. This can be of great benefit, especially in connection with array mode expressions (NOTE: for advanced users only!). Here are some examples:

  • New: There have been added typed NIL value constructors, e.g. "Integer(Nil)" creates a Nil value of the type "Integer?".
  • New: There are several new functions for arrays:
    • "array": creates an array of a given size, containing all elements equal to a given value,
    • "createArray": creates an array from a given list of elements. It may seem redundant to array literals, but it has an added value of possible explicit type instantiation, e.g. "createArray<Integer?>(1, 2, 3)" creates an array of conditional integer numbers.
    • "join": joins two or more arrays together,
    • "sequence": creates an arithmetic sequence of real or integer numbers,
    • "trimStart", "trimEnd": removes a specified number of elements at the beginning or at the end of an array (these can be used instead of the SlideArray filter),
    • "rotate": removes some elements from one end of an array and appends them at the opposite end,
    • "pick": selects every n'th element from an array, starting from a specified index,
    • "withoutNils": consumes an array with conditional elements and produces a conditional array without Nils.
  • New: Paths can now be constructed directly inside formulas and there are more properties to them.
New and improved filters
  • New: There are new geometric types of data, Ellipse2D and Ring2D.
  • New: There are alternative geometric types for representing arcs and bent rectangles, FlexSegment2D and FlexRectangle2D.
  • New: All the image processing functions now use Intel's OpenMP implementation for parallel computations which gives us much more control and possibilities than Microsoft's old OpenMP version. Also a small percentage's performance gain has been reported in several tools.
  • Improved: The outlines of Data Matrix codes are now normalized, i.e. an outline always starts at the same point in relation to the code position.
  • New: Support for BigTiff has been added.
  • Improved: The AnnotateGridPoints tool has been re-implemented based on a much more robust algorithm. The tool's interface has also been changed and your programs may thus need adjusting.
  • Improved: Edge-based Template Matching has been significantly improved by adding dynamically computed pyramid levels within a model. This results in much faster model creation and far smaller memory consumption by the model.
    • EXPLANATION: If you want your model to be created quickly and consume little memory, set inMinPyramidLevel to 1 or 2 when creating the model (instead of the default 0) . This skips pre-computing the lowest pyramid levels (those of the highest resolution). If you then use lower inMinPyramidLevel in the matching tool, these low pyramid levels are then computed dynamically. The improvement in model size and preparation time will be huge without any significant additional execution time during matching. Matching results may also be a bit different, because dynamic matching is a bit less reliable for higher pyramid levels.
    • In Adaptive Vision Library, you can also use the ControlEdgeModelLimits function to set a memory limit that will be applied automatically. If, during model creation, the size becomes bigger, lower pyramid levels will be automatically cut off.
Support for OpenCV
  • New: We have released a completely free, new edition of Adaptive Vision Studio aimed at hobbyists and students, which wraps OpenCV library functions inside the user-friendly Adaptive Vision block-based interface. Have fun!
  • Improved: Supported version of the OpenCV library has been increased to 4.5.1.
  • New: Support for many more functions from the OpenCV library has been added, e.g. warpPolar, blendLinear, drawMarker, ellipse2Poly, equalizeHist, calcBackProjec, shape matching, cvConnectedComponentsWithStats, cvPhaseCorrelate, optical flow, cvCamShift, cvCheckChessboard, cvSolvePnP, fisheye calibration, SIFT, BRISK, FREAK, KAZE, cvDetailEnhance.
AVL for Linux and ARM
  • New: We have gone a long way manually optimizing image processing functions for NEON instruction set. Here is a couple of examples benchmarked on a Xilinx UltraZed board:
    • ThresholdToRegion: 1.30 ms → 0.50 ms
    • BayerToRgb: 4.36 ms → 0.80 ms
    • SmoothImage_Gauss: 1.11 ms → 0.91 ms
    • GradientImage_Mask: 1.83 ms → 1.51 ms
    • RemapImage: 17.32 ms → 11.56 ms
    • DetectEdges_AsRegion: 14.25 ms → 13.77 ms
Hardware support
  • New: Adaptive Vision Library now supports "iam" smart cameras from NET GmbH.
  • New: EthernetIP protocol is now supported through I/O cards from Hilscher.
  • New: Also supported is the "SUSI" API from Advantech, allowing for direct cooperation with industrial Advantech computers (including I/O ports and watchdogs).

Release Notes: Adaptive Vision Studio 5.0 FINAL

2020.10.05

(This document summarizes changes that are coming with the final release 5.0, which were not available in 5.0 BETA + GAMMA)

Simplified IDE
  • Improved: A horizontal cursor has been added to the Program Editor. It enable easy insertion of new elements, like filters or formulas, at a specified place.
  • Improved: Items in the Minimal Program View are now more clearly numbered.
  • Improved: Formulas can be created in an "inline" style in the Minimal Program View (see item no 2 above).
  • Here is how it looks now on the Tablets example:
  • Improved: Tool-related errors are now better signaled in the Minimal Program View.
  • New: Results control now supports limits for String-typed data.
Deep Learning Add-on
  • Changed: Minimum required version of nVidia drivers is now 436.02. Older drivers will not work.
  • Improved: New version of Detect Anomalies 1 tool makes significant progress in quality of detecting unknown defects.
  • Improved: Heatmaps in Detect Features, Detect Anomalies 1 Local and Detect Anomalies 2 should be less blocky.
  • New: Finally, Segment Instances tools has been implemented with WEAVER. This finished moving all our tools to the high performance inference engine.
  • New: It is now possible to perform automatic labeling with partially trained neural networks. You first train a model with a limited number of images and then you use auto-marking to quickly prepare more training data. WARNING: Automatically prepared training data must be carefully checked and corrected as any mistakes in the training set may lead to poor quality models.
  • Improved: The article on Deep Learning in the Machine Vision Guide has been significantly revised. See:
    https://docs.adaptive-vision.com/current/avl/machine_vision_guide/DeepLearning.html
  • Improved: Several details in the editor for Locate Points tool have been refined for better UX.
  • Improved: A "class stripe" was added - it is an easier way to change classes while editing deep learning data. Affected tool: Detect Features, Segment Instances, Locate Points.

  • New: Our internal Grid Search functionality has been published (as-is). After pressing Alt+F2 you get a window for controlling possible ranges of training parameters. Then, your model will be training with all different combinations, looking for the most effective solution. This is useful when you can leave you training process running for entire night, or better... entire weekend.

AVL.NET
  • New: Method overloads were simplified.
Hardware support
  • New: Support X-SIGHT smart cameras has been added.
  • Improved: Support for Spinnaker SDK from FLIR has been updated.
  • Improved: Support for GoSDK from LMI Technologies has been updated to version 6.0.
  • Improved: Support for Basler Pylon SKD has been updated to version 6.1.0.
New and improved tools
  • Improved: Several important improvements were added to our Data Matrix reader. Our tests show that we outperform key competitor's solution now with both performance and detection rate.
  • Improved: Reliability of QR Code reading has been further improved.
  • Changed: The way the GetMultipleArrayElements tool works with inInvert=True was changed to a more intuitive one.
  • Improved: The SmoothProfile_Gauss_Mask filters has been optimized with SSE and AVX.
  • Improved: Shape Fitting tools got more outlier suppression methods: TheilSen and Siegel. These methods had been previously only available in FitLineToPoints.
  • New: A new tool, SmoothImage_DirAndPresence, introduces possibility to smooth results of the GradientDirAndPresence tool. It was quite tricky as the range of possible values is cyclic.
  • New: Some new advanced 5x5-based methods were implemented in BayerToRgb leading to less artifacts.
  • Fixed: Several potential memory issues have been fixed after running an address sanitizer.
  • Changed: LoadImage and similar functions are no longer marked as "I/O". This makes it possible to change the inFile parameter and have the object instantly re-loaded when running a program in interactive way. This will also enable running these filters in OFFLINE mode which is coming in version 5.1.
Other
Formulas:
  • New: A log2 function has been added (logarithm with base 2).
  • New: There are several new functions and properties in formulas:
    • sequence - for generating arrays of integer or real numbers
    • crop - for limiting arrays to a given range
    • pick - for selecting every n'th element in an array
    • Path constructor taking a PointArray as an input
    • Path[] - for accessing individual points
    • Path.Segments - returns an array of segments from a path
  • New: Geometrical functions in formulas are now available also for 3D types of data.

Release Notes: Adaptive Vision Studio 5.0 GAMMA

2020.08.06

(This document summarizes changes that are coming with 5.0 GAMMA, which were not available in 5.0 BETA)

Simplified IDE
  • Improved: In the Minimal program view, data sources that are used somewhere are now marked with a dark outline. This improves the clarity of the program and makes it easier to notice some filter outputs that were disconnected accidentally.
  • Improved: Information contained in the Program Statistics window has been extended to take program sections into account.
  • Improved: Checking of so called "array synchronization" has been disabled for the connections outgoing from formulas because they often caused False Positive warnings.
Deep Learning Add-on
  • New: It is now possible to select the required target device (CPU or CUDA) directly in the tools' parameters.
  • New: Deep learning editors now have an option to import annotation data created in the Zillin.io service.
  • New: Adaptive Vision Library now includes functions for parsing Well-known Text representation of geometry (WKT). This may be useful when working with data exported from Zillin.
  • Changed: Names of deep learning tools have been simplified using the following pattern:
    • DeepLearning_DetectFeatures → DL_DetectFeatures
    • DeepLearning_DetectAnomalies → DL_DetectAnomalies
    • ...
  • Improved: Due to performance reasons we now clearly separate two phases of deep learning tools:
    • Deployment - firstly, the DL_DetectFeatures_Deploy (etc.) filter should be placed in the INITIALIZE section. This filter loads a model from disk and places it on the target device in a form that is dynamically optimized for that specific device. Execution of this filter may take up to several seconds.
    • Inference - next, the DL_DetectFeatures (etc.) filter, which quickly calculates results for a given input image, has to be placed in the PROCESS section.
    • NOTE: It is still possible to use the inference filter only, but then deployment will be done in the first iteration causing a significant lag.
AVL.NET
  • New: A new designer control for the Golden Template method has been added.
  • Improved: View2DBox control has been extended with a more natural way of working with geometric primitives.
Hardware support
  • New: I/O ports of X-SIGHT industrial computers are now supported.
New and improved tools
  • New: We have added a new article to the documentation containing a comprehensive summary of corresponding functions between OpenCV, Halcon and AVL. This summary may be very helpful when porting a project from one library to another:
    https://docs.adaptive-vision.com/avl/technical_issues/LibrariesComparison.html
  • New: For the tools in which there was an option to normalize angles to 0-180 or 0-360 degrees, now also 0-90 degrees is possible.
  • New: A new filter has been added, CreatePathRegion.
  • New: Added new advanced methods for Image Inpainting.
  • New: Added new camera calibration options, which are more suitable for line-scan cameras.
  • Changed: 1D Edge Detection and Shape Fitting filters' performance characteristics have been significantly adjusted. In the previous versions, these filters were precomputing pixel sampling maps in the first iteration. Now, they directly scan pixels in each iteration. This is faster when we use local coordinate systems but ~20% slower when the scan path or the fitting field does not change between iterations. On the C++ level the functions did not change, but a new set of functions has been added: ScanSingleEdge_Direct, FitSegmentToEdges_Direct etc.
  • Improved: Speed of reading QR Codes from high-resolution images has been significantly increased.
  • Improved: Reliability of QR Code reading has been improved and further improvements are coming...
  • Improved: CreatePathBorderRegion filter has been improved - the resulting regions are now guaranteed to be continuous and fixed width.
  • Improved: Additional improvements have been implemented in image downsampling filters, giving slightly lower pixel value rounding errors.
Other
  • Fixed: Input frames queue in GigEVision image acquisition filters was actually 1 frame larger than set by the inInputQueueSize parameter. Existing applications requiring reliable video acquisition might need adjustment of the inInputQueueSize parameter.
  • Improved: Selecting of filters in the Minimal view has been improved, especially when they contain diagnostic outputs.
  • Fixed: Numerous issues in the new formula editor have been fixed.

Release Notes: Adaptive Vision Studio 5.0

2020.05.04

HMI Events
  • New: It is now possible to create separate sub-programs that will be executed when a specific event occurs in the HMI. These sub-programs are called "event handlers". Full details are included in the documentation, below are the quick notes only:
    • Event handlers run in parallel with the main program loop.
    • Communication between event handlers and the main program loop can be performed through Global Parameters or Global Queues.
    • Typical events are: ImpulseButton.Click, VideoBox.MouseMove, TrackBar.ValueChanged.
  • New: There is a new button in the Properties window that switches it from properties to event configuration:

  • Deprecated: Outputs of HMI controls that indicated events with boolean or conditional data are no longer recommended. Use real events instead.
    4.12 5.0


Parallel Tasks
  • New: It is now possible to create multiple sub-programs that run in parallel. These sub-programs are called "Worker Tasks".
    • "Main" is the default Worker Task.
    • When you have multiple enabled Worker Tasks, they will start running in parallel when you click the "Run (F5)" button (). To run only one selected task click the "Run Single Worker (Ctrl+F6)" button ().
    • It is not possible to create new parallel tasks dynamically. All parallel tasks are create when the program starts.
  • New: The combo-box in the main toolbar now selects one Worker Task, which execution we will be controlling and debugging. The other workers will run in parallel, but cannot be paused or executed step-by-step.


  • Improved: The TCP/IP toolset has been adapted for possible multi-threaded work.
  • Improved: The "Third Party" image acquisition toolset was marked as single-thread only. For multiple-thread image acquisition we recommend GigE Vision and GenICam tools which are fully thread-safe.
  • New: It is now possible to use GigEVision_GrabImage filter in one Parallel Task and invoke GigeVision_ExecuteCommand in an event handler to issue a software trigger. This style of programming opens up many new options and broadens the scope of potential applications.
  • New: Besides Global Parameters, Queues are also available for use now. A queue extends a global parameter by buffering multiple elements between a producer and a consumer threads. You can put elements to a queue in one worker task and remove them in another worker task. For example, in one task you may generate candidate objects for inspection and in another task you may process these candidates one by one. These two things will run in parallel (as a pipeline).
  • Note: You will need a multi-threaded runtime license to use multiple Worker Tasks with data analysis tools. In order to run an unlimited number of threads, you will need to purchase a license for 4,8 or 10 core CPU. If you only use other Worker Tasks for HMI Events or for I/O communication, a basic runtime license should be sufficient.

BETA VERSION: Exception handling in multiple Worker Tasks is not functional yet.

Program Sections
  • New: The Program Editor may be now divided into four sections for any Task macrofilter:
    • INITIALIZE - intended for filters, which will be executed only once, before the main loop.
    • ACQUIRE - this is a place for image (data) acquisition filters; loop generators.
    • PROCESS - intended for the data processing tools, more typically ones that take an image and calculate the inspection result.
    • FINALIZE - this section is executed once, after the main loop is finished; most typically we close network connections or save settings to a file here.
  • Deprecated: There is no more need to create separate macrofilters for Initialize and MainLoop (as was earlier a recommended idiom).
  • New: Step and Variant Step macrofilters can also have sections, but these are limited to INITIALIZE and PROCESS. The INITIALIZE section defined here will be executed right after initialization of the containing Task macrofilter.
  • Improved: Thanks to sections, many applications that required macrofilters in the past now can be streamlined into a one-screen program.
  • Improved: Thanks to sections, we can preserve outputs of filters after the last iteration. No more disappearing results when the program is finished.
  • New: When loading an old program, Studio will ask the user to choose or reject automatic conversion to sections. Note that this will often give only partial results.
  • Improved: With the sections feature simplifying the application structure, the notion of a "program iteration" has been refined. Now, an iteration of the program is always the iteration of its top-level task. This impacts:
    • the behavior of the "Iterate (F6)" button.
    • the calculation of "iterations per second" on the status bar.
    • the way the Pause button works in the runtime application (now it pauses after a full iteration is completed and not in a random place).
  • Coming in 5.1: "Offline mode", in which the outputs of the ACQUIRE section will be replaced with an Image List / Filmstrip window. This will simplify working with the same project on the production site and during development/testing. Currently, we still recommend having two different programs for this purpose, which use the same inspection sub-programs.
Simplified IDE
  • New: Minimal View. We have completely re-designed the program editor for easy use in basic applications. Connections are hidden, but many programs can be created in a single view, without macrofilters. This simplifies application development, especially directly on the production and by the end users.
    • Note: We do not recommend Minimal View for large or complicated projects. The Compact view is still preferable for advanced users.
    • Changed: To allow switching between Minimal and Compact views, we have changed the way output labels are displayed in the Compact view. Now they are directly in the place of the filter's output (in 4.12 they were displayed as an additional element on a side of the filter).
  • Improved: The "Results" window has been re-defined. In version 4.12 it was highly hierarchical. Now it displays a more flat list of filter outputs for easier operation. In short, the elements of the Result control correspond closely to visible outputs of the selected filter, including labeled outputs. (*)
  • Changed: Adaptive Vision Studio Smart is now intended to be used in Minimal Program View and with the Results control for setting Pass/Fail limits.
  • Improved: In the previous versions we had two controls for selecting filters: Filter Catalog and Toolbox. This was sometimes misleading. We have merged the two controls into a single one. If you want to get back the old Filter Catalog view, click this icon:

  • Improved: All message boxes in the application have been thoroughly revised for clarity and consistency.
  • Improved: Many data types can be displayed in both textual and graphical way. If the choice it not obvious the user is now asked to decide.
  • Improved: All example programs were revised. In many cases we got rid of subprograms for the sake of simplicity that is now possible with sections.
  • Improved: The Search tool (for finding filters in a program) has been re-implemented. Now you can easily find multiple instances and browse though them using a "Find Results" window.

Powerful formulas
  • New: The new text editor for formulas brings the formulas editing experience much closer to editing code:
    • To create a new expression just press Enter and type "outName = ..." instead of clicking "Add output...".
    • You can define the type of an output within the text editor using the following syntax: "outValue : Integer = ...".
    • You can even define data labels this way. Just skip the "out" prefix.
  • New: There is a new powerful mechanism for suggesting function and parameter names.
  • Changed: From now on, pressing Enter will always create a new line in a formula. Use Ctrl+Enter or Esc to finish editing.
  • New: When using labels, you can directly refer to them in your expressions. There is no need to create a formula input for them anymore.
  • New: It is now possible to use array expressions in formulas (this is sometimes also referred to as broadcasting). It makes it possible to use simple operators to perform operations on entire arrays, element by element. You can optionally add "[]" to arrays to resolve any ambiguities. For example:
    • inValues + 1 // adds one to each element of the array inValue
    • count(inValues == 5) // finds the number of elements equal to five
    • all(inValues1[] < inValues2[]) // checks if all corresponding elements in inValue1 are lower than in inValue2
  • New: A lot of new functions are available:
    • min, max for 3 and 4 arguments
    • flatten - transforms a two-dimensional array into a flat, one-dimensional one (concatenates the elements one after another)
    • removeNils - removes all Nil elements from an array
    • select - creates a sub-array from elements fulfilling some condition (use it instead of Classify... filters)
    • findFirst, findLast, findAll - for searching in arrays
    • indexOfMin, indexOfMax - returning the index of the smallest or the biggest element
    • minElement, maxElement - returning the smallest or the biggest element
  • New: It is also possible to perform basic geometrical calculations inside a formula now:
    • distance - measures the distance between points or between a point and a line
    • angleNorm, angleDiff, angleTurn - for easy operations on angles (modulo arithmetic)
    • project - point on line projection
    • area - returns the area of different geometrical primitives
    • normalize - returns a vector with the same direction but with length equal to one
    • dot - calculates the dot product of two vectors
  • New: There are also several new data properties: Segment.Direction, Segment.Length, Segment.Center, Line2D.Orientation, Vector2D.Length, Vector2D.Direction.
  • New: There is a new "if-then-elif-else" syntax for conditional expressions. It may be more preferable than the C-style "?:" operator.
  • Changed: .Length property for arrays has been changed to .Count. Manual update will be required. This was necessary to avoid ambiguity with a new property Segment2D.Length.
Library for modern C++
  • Improved: We now use C++14 in public headers, thus dropping support for Microsoft Visual Studio 2013. Versions 2015 and later are supported.
  • Improved: The new version of our library is based on modern C++. We use the following features:
    • noexcept / override / final - for our class methods, where appropriate
    • move semantics in all our containers
    • std::thread for implementation of Parallel Tasks
    • Note: We use non-standard atl::Array (instead of std::vector), atl::String (instead of std::wstring) and atl::Optional/Conditional (instead of std::optional) classes due to the follwing reasons: (a) binary compatibility between platforms as well as between C++ and C# code, including serialization to files, (b) custom memory management with optimization of raw memory buffer re-use, (c) std::optional cannot hold references, (d) std::wstring does not have a fixed character type.
Deep Learning Add-on
  • New: We added a Heatmap type which makes visualization much easier. Before we used Images for that, but now the Heatmap type also remembers its key thresholds making the visualzation very straigthforward. You do not need to use the VisualizeHeatmap filter anymore.
  • New: All anomaly detection tools are now supported on the WEAVER inference engine. Speed-up factors as compared to version 4.12 are:
    • CPU
      • DA1/global: 6.5x
      • DA1/featurewise: 5.2x
      • DA2: 20x
    • GPU
      • DA1/global: 3.1x
      • DA1/featureswise: 11x
      • DA2: 14x
  • New: Instance segmentation tools are now supported on the WEAVER inference engine (NOT AVAILBLE IN BETA VERSION).
  • Improved: We optimized the WEAVER more on the RTX series of nVidia GPU. Typical speed-up factor on this platform is 1.2x as compared to version 4.12.
  • Improved: We finished optimizeation of the CPU back-end of WEAVER. Comparing to the version 4.12 (the first release of WEAVER), the speed-up factors are:
    • Feature Detection: 1.7x
    • Point Location: 1.7x
    • Object Classification: 1.5x
  • Changed: Model editors are now being installed with Deep Learning Add-on only (before they were also installed with Studio and Library installers).
  • Changed: The list of images is now displayed on the left side of the editor window. This follow the general UX principle that GUI elements should be put in order from left to right and from top to bottom in accordance to how they are typically used.
  • Changed: Set Minimum Feature Size in Detect Anomalies 2 to 32. Executing Detect Anomalies 2 models with lower Feature Size is not supported.
New and improved tools
  • New: It is now possible to compensate for the thickness of a calibration target in Camera Calibration.
  • New: The image drawing tools were revised: now, there are three variants: _SingleColor, _TwoColors, _MultiColor. The new multi-color variant is especially useful for drawing results of detection of multiple classes of objects.
  • New: A new filter, DrawCrosshairs, is good for drawing the results of Point Location tools.
  • New: For subpixel-precise template matching there is now a set of revised tools, EnhanceObjectMatch.
  • New: Sharr operator has been added to gradient computing filters.
  • New: New filters: CreatePathRegion, CropImageToQuadrangle and CropRegionToQuadrangle.
  • New: More advanced image in-painting methods were added. See a new filter: InpaintImage_Telea.
  • Improved: Many filters were further optimized, e.g. RegionUnion_OfArray, SmoothProfile_Gauss.
  • Improved: The Golden Template 2 filter is now the default for comparing images against a predefined template.
Improved code reading
  • Improved: We are releasing new highly optimized reader for Data Matrix codes. Its performance and reliability puts it among the top players on the market.
  • Improved: QR Code readers have been optimized, giving typically 2-3 times better execution times.
ShapeRegion
  • Changed: ShapeRegion type has been re-designed. In 4.12 it could be a rectangle or a circle. Now it is a union of Rectangle, Circle, Polygon or (any) Region.
  • Changed: CheckPresence filters now use the new ShapeRegion type on the inRoi input.
  • Changed: Filters that use the new ShapeRegion type instead of Region are: ExtractBlobs, LocateObjects (for inSearchRegion), InpaintImage.
    -- This highly improves user-experience, especially when a ROI needs to be adjusted at production.
    -- One can now use the new ShapeRegion type everywhere by adding CreateShapeRegionRegion.
  • Changed: If you were using ShapeRegionEditor as an HMI Control, you need to manually replace it with ShapeRegionDeprecated.
  • Changed: To avoid possible confusion we also renamed filters working with closed paths like ShapeArea, ShapeElongation etc.. Now these are PolygonArea, PolygonElongation etc.
Histograms
  • Changed: Histograms are now represented with 64-bit floating point numbers (WAS: integers). Therefore, it is possible to use histograms also as general probability density distributions, which was not possible in previous versions. Each histogram is represented by DomainStart (Real) + BinSize (Real) + BinCount (Integer) + the bins (DoubleArray).
  • Improved: Histograms now support cyclic domains, e.g. when considering a histogram of directions (0..360 degrees), the value 0 and the value 360 are considered the same. This is important, for example, when smoothing a histogram.
Other
  • New: Modules of macrofilters (.AVLIB) can now be encrypted. Thanks to this, you can implement subprograms and share them with other people (usually the customers) without being afraid of revealing your know-how.
Licensing
  • New: At quantities of 25+, runtime licenses for both Studio and Library are now modular. If you need 1 or 2 modules only, you can get a better price.
  • New: The list of modules actually used in the current project can be found in the Statistics window.
  • New: The module of each tool is now clearly displayed in documentation, and also when selecting a tool from the Toolbox:

  • New: Now both Studio and Library Runtime are licensed by default for one process and according to the number of physical processor cores (hyper-threading does not count).

Release Notes: Adaptive Vision Studio 4.12

2020.08.07

Adaptive Vision Studio 4.12.13.79719 GigEVision Input Frame Queue Fix
Deep Learning
Deep Learning - UX
IDE
New and Improved Filters
Data Matrix codes
Hardware Support
Licensing
AVL.NET
Linux - AVL
Other

Release Notes: Adaptive Vision Studio 4.11

2019.01.22

New and improved filters
Deep learning
AVL.NET (REDESIGNED)
.NET Macrofilter Interfaces
Writable global parameters
Profinet support
Other

Release Notes: Adaptive Vision Studio 4.10

2018.09.19

Deep learning
New and improved tools
HMI and Adaptive Vision Executor
Avl.Net
Other
(*) These features were also added to latest revision of version 4.9.

Release Notes: Adaptive Vision Studio 4.9

2018.04.24

HMI Controls in Studio and in AVL.NET
3D Machine Vision
Results window and inspection status
Regions of interest
New and improved tools
GigE Vision 2.0
Other
Licensing
Hardware support
Embedded
Deep Learning Add-on

(*) These features were also added to latest revision of version 4.8.

Release Notes: Adaptive Vision Studio 4.8

2017.07.14

Internals and Distribution
Program Editor, Previews and HMI
Properties Window
New and improved filters
Point Clouds 3D
Other
Deep Learning [COMING SOON...]

Release Notes: Adaptive Vision Studio 4.7

2016.12.08

Adaptive Vision Library for ARM
Point Clouds 3D
New HMI Controls
New Filters
Template Matching
Local Cloud Licensing
Improved Touch Screen Support
Camera Calibration
.NET Interoperability
Program Model
Easier Editing of a Program
Other

Release Notes: Adaptive Vision Studio 4.5

2016.05.12

Revised TcpIp Communication
  • Improved: All the filters for TcpIp communication have been revised for more straightforward error handling.
  • Changed: Filters TcpIp_ReadAllText and TcpIp_ReadAllBuffer do not automatically close the connection. TcpIp_Close has to be added.
  • Changed: Filter TcpIp_ReadBuffer now has a conditional output with Nil value signaling time-out as in the other reading filters.
New and Improved HMI Controls
  • New: Shape Editor controls now store the reference image for which the shape was created. This can be useful for example for creating some object models with the right input image.
  • New: There are many new "Changed" outputs in HMI controls that inform about moments when the user modified some value in the HMI.
New and Improved Filters
  • Changed: The "TwoColors" version of drawing filters has new behavior for Nil objects - instead of using "fail" color, now it skips drawing the element. This is coherent with the general treatment of Nil values in drawing.
  • Improved: Now all ThresholdToRegion filters have inHysteresis parameter.
  • New: Filters DilateProfile and ErodeProfile have been added.
  • New: Added outError output to FitLineToPoints.
  • Changed: CreateShortArray filter's name has been changed to more simple CreateArray.
  • Improved: New robust methods of line fitting and linear regression have been implemented: LTE, Theil-Sen, Siegel.
More User-Friendly Data Previews
  • New: Geometrical primitives displayed in image preview windows became interactive - one can select them with a click.
  • New: There is a new command for saving a displayed image to a file with its original resolution.
More User-Friendly Program Editor & Formulas
  • New: There is a new command in the Program Editor's toolbar for locating the currently edited macrofilter in the Project Explorer.
  • Improved: Port names in Project Editor can be displayed with a bigger font. Several options are available in the application settings window.
  • New: When the name of a formula input is changed, all its occurrences in existing expression can be automatically updated.
  • New: Some statistical functions have been added to formulas: median, nthValue, quantile, lerp, variance and stdDev.
  • New: Double-click can be used on a formula's port to open its edit dialog.
  • New: Filters and formulas can be inserted to the program from the keyboard only - by pressing Ctrl+Space and then typing a name.
  • Changed: The windows on the main screen of Adaptive Vision Studio cannot be undocked with double clicks anymore. There is an "Undock" command in the context menu instead.
Reduced Connections in the Program Editor
  • Improved: Labelling connections have been made more user-friendly.
  • New: It is now possible to create a connection from a named data source by choosing it from a drop-down list in the Properties control.
  • New: Names of newly created labels are suggested on the basis of the output's name instead of "label1", "label2"...
Improved Access to Remote Executor
  • Improved: The window for accessing Remote Executor have been simplified. Now there is one single page instead of three.
  • New: Two pane file transfer interface have been added for uploading files to Remote Executor.
  • Improved: When there is no graphical session on Remote Executor and the user wants to get a screenshot or a stream, we display an appropriate message instead of empty windows.
Other
  • New: Complete translation to Chinese (Simplified) has been added.
  • New: New users can choose "preferred supplier" during registration in the User Area.
  • New: Changed made outside of Adaptive Vision Studio to the currently loaded project's files are detected and a re-load option is presented to the user.
  • New: 64-bit integer and floating-point numeric types are now available.
  • Improved: Switching diagnostic mode on and off does not require stopping program execution.
  • Improved: There are more options for displaying the "Show/Hide Ports" labels on the filters in Project Explorer.
  • Improved: Undefined mandatory inputs are now marked with a nice question mark instead of an overused warning icon.
  • New: BinaryData buffers can be displayed in data previews in the hexadecimal way.
  • Improved: The application installer verifies presence of the .NET Framework. This should remove the fatal error that appeared when opening HMI when .NET framework was not installed.
  • New: There are new example programs with user filters for database access and for fast drawing of multiple primitives on a single image.
  • Improved: Error handling in .NET Macrofilter Interfaces has been revised.
Adaptive Vision Library
  • Fixed: Array-related functions have been moved from "atl" to "avl" namespace.
  • Changed: Recommended configuration for Adaptive Vision Library has been changed from Multi-byte characters to Unicode.
  • Changed: Revised has been the way of using functions that pre-compute look-up tables: PowerImage, GammaImage, LogarithmImage.
  • Changed: CreateEdgeModel filter has a conditional output now signalling lack of detectable edges with the Nil value.
  • Removed: Automatic conversion from Location to Point2D worked differently in the Library than in Studio. It has been removed to avoid confusion.

Release Notes: Adaptive Vision Studio 4.3

2015.12.17

Help and Documentation
  • New: There is a new window, Hint Box, displaying context-sensitive hints about using selected filters. It is handy and quickly available know-how you have always needed.
  • Improved: We have made sure, that all machine vision tools have a usage example in the documentation. Many existing examples have been refreshed.
  • New: It is now possible to add separate "comment" blocks to the program. Earlier it was only possible to add a short comment to a filter, but now you can comment on entire program sections.
  • Improved: Finding filters through the search box in Filter Catalog have been re-implemented. Now it is easier to find by guessing alternative names.
  • New: There are new and revised examples for data classification, TcpIp communication, MFC and AVL Lite.
  • New: Featured articles:
  • Improved: Revised and extended documentation about HMI Designer:
User-Friendly Data Previews
  • New: A completely new way of analysing program execution is now possible. In an optional "Auto Preview" mode, you do not explicitely define the previews, but they are automatically created in a way specific to the filter selected in the Program Editor. This makes it easier to analyse, what happens step by step in the program, especially if it is larger.
  • New: Data preview settings, such as zoom and translation, are now stored when the project is saved.
  • Improved: Data previews are now removed when the related filters are moved into an extracted macrofilter. We hope this removes the confusion, that often arose then.
  • New: Instead of just one layout of data previews, now possible are three user-defined layouts. This makes it possible to create additional or temporary layouts without destroying the primary one.
  • Improved: The way structures are displayed in textual view has been changed.
  • And a lot of small usability improvements...
OpenCV 3.0
  • New: The support for OpenCV filters has been upgraded to the new version 3.0 GOLD.
  • Improved: The OpenCV filters are now built with multi-threading optimizations.
Byte Buffers
  • New: A new data type ByteBuffer has been added for easier handling of binary data streams.
  • Improved: TcpIp, SerialPort and ModbusTcp filters now use byte buffers for exchanging binary data.
Property Ports
  • New: Nested property ports are now possible - i.e. you can create property ports also for property ports (e.g. outCircle.Center.X).
  • New: Property ports can be quickly added directly through the "Show/Hide Ports" menu.
  • New: New properties have been added: Histogram/Profile/Path.Size, String.Length.
User Types
  • New: It is now possible to define custom types (structures) by manually putting appropriate textual definitions into AVCODE files.
Improved Template Matching
  • Improved: inAnglePrecision can now be set above 1.0, which may (or may not) improve angular accuracy of template matching results.
  • New: It is now possible to display template object edges aligned with the results of template matching. This makes it easier to verify sub-pixel precision of the matching process.
  • New: It is now possible to reduce number of edge points that are used for matching. This improves speed at the cost of some precision.
New and Improved HMI Controls
  • New: There is a new group of HMI controls - Shape Editors - which contains graphical editors of geometrical primitives, which are known from the IDE of Adaptive Vision Studio. Now they are available also for use at runtime.
  • New: It is now possible to create user's controls for HMI with C# programming language. Documentation has been added.
  • New: HMI controls ZoomingVideoBox and SelectingVideoBox have been added to allow creating more powerful image previews in the end users' interfaces.
  • Removed: There is no "Stop" button anymore in the ProgramControlBox control. It was not appropriate for end user interfaces as it was stopping the entire application and not only inspection process as could have been expected.
New and Improved Filters
  • Changed: Input names of CreateRectangleRegion filter have been changed from inRegionWidth/Height to inFrameWidth/Height. The old names often caused confusion with inRectangle.Width/Height. Accordingly, we have also changed the structure field names to Region::FrameWidth/Height in Adaptive Vision Library.
  • New: A new filter has been added for visualization of thermal images, ColorizeImage.
  • Improved: Shape fitting filters are now equipped with a more reliable method of scan segment construction. Sharp turns of the axis path and long lengths of the scan segments are not a problem anymore.
  • New: Pharmacodes are now supported in the barcode reading filters.
  • Improved: The filters belonging to the "Measure Distance" group in Toolbox have got a new input, inResolution, which allows for getting measurement results in the real-world coordinates.
  • Improved: GigE Vision and GenICam image acquisition filters can now have the input queue as long as 200 elements (was: 14). This is important for applications, where we acquire thin image stripes and then join them into a complete image.
  • New: Support for IDS cameras has been added in the form of open-source user filters.
  • New: The set of GigE Vision and GenICam filters have been extended with tools for diagnostics of missing frames.
  • Improved: Support for Pylon API (from Basler) has been updated to version 5.0.
Postprocessing in 2D Edge Detection
  • New: Disjoint paths that appear in 2D Edge Detection filters can now be automatically joined, if only distance and turn-angle criteria are met.
  • New: Short paths that appear in 2D Edge Detection filters due to noise can be automatically dismissed.
New Data Matrix Code Reader
  • New: Data Matrix Code reader has been re-implemented. Now it efficiently reads also dot-printed and significantly distorted codes.
  • New: The old ECC 000-140 formats of Data Matrix codes has been added.
OCR Tools
More User-Friendly Program Editor
  • New: It is now easier to add formulas, comments and macrofilters directly in the Program Editor - with commands "Add New Formula/Comment/Step/Variant Step/Task Here".
  • New: It is now easier to create subprograms, especially for if/switch/loop-like programming constructs - with commands "Extract Step/Variant Step (if)/Variant Step(switch)/Task (loop)...".
  • New: Mandatory filter inputs which have not yet been set have a warning icon displayed in the Program Editor.
  • New: Singleton connections (object to a single-element array) have been significantly constrained, because most of them made no sense and were only misleading the users.
Other
  • New: Microsoft Visual Studio 2015 is now supported.
  • New: Drawing rectangular, elliptical and polygonal regions have been improved - it is now possible to modify the shape before commiting it.

Release Notes: Adaptive Vision Studio 4.2

2015.03.20

Adaptive Vision Library
  • New: Basic functionality of Adaptive Vision Library, comparable with OpenCV/imgproc, is now available for free, also for commercial applications.
  • New: Adaptive Vision Library, both Lite and Professional, can be directly used in User Filters. Thus, it became possible to simply move time-critical operations from Studio to User Filters.
  • New: Graphical data editors that appear in Adaptive Vision Studio (e.g. for rectangles or regions) can now be also used by programmers in AVL.NET.
Higher Performance and GPGPU
  • Improved: Edge-base Template Matching has been improved. It is among the most efficient implementation on the market, if not actually the most efficient.
  • Improved: Execution time of Edge-base Template Matching has been reduced by 0.5 - 2.0 ms, when used in Studio. The overhead was caused by inefficient way of passing model data.
  • New: A special pool-based image memory allocator has been added, which can improve performance of some filters (e.g. DetectEdges).
  • Improved: Time of very first execution of any filter or function has been improved by separating library initialization.
  • New: Several filters, for which it makes any sense, have been implemented with OpenCL technology. These are:
    • Color space conversions: HsiToRgb, RgbToHsi, HslToRgb, RgbToHsl, HsvToRgb, RgbToHsv, XyzToRgb, RgbToXyz
    • Dilate/ErodeImage_AnyKernel
    • ImageCorrelationImage
More Readable Program Editor
  • New: Filter ports, which are rarely connected, have been hidden by default in the Program Editor.
  • Improved: Filter ports can be shown or hidden with more convenient "Show/Hide Ports" link-menu appearing after cursor move over the filter.
  • New: There are now two possible views: Compact (default) and Full. The latter shows all filter ports and constant input values.
New Filters
  • New: Two ready-made tools have been added: CompareGoldenTemplate: Intensity and Edges.
  • New: There are ready-made tools for translating image coordinates to world coordinates: CalibrateWorldCoordinates, PointToWorldCoordinates etc.
  • New: Perspective undistortion can now be performed with precomputed spatial map - with CreatePerspectiveMap + RemapImage.
Password-protected HMI
  • New: It is now possible to restrict access to some elements of the end user's GUI only to authorized users.
Graphical Editors
  • New: There is a new graphical tool for interactive creation of image undistortion maps.
  • New: There are new graphical tools for interactive creation of OCR applications.
User Interface Improvements
  • New: Data can be removed from data previews one-by-one using "X" buttons on the preview overlay.
  • Improved: The set of tools available for data previews has been redesigned.
Integration with Smart Cameras
  • New: It is now possible to detect smart cameras available in the local network, connect to them, control their state, download and upload programs. All of this is possible from a laptop computer connected to the local network.
  • New: There are new filters: Smart_GrabImage and Smart_SetDigitalOutputs, which work differently on a smart camera and on a laptop computer connected to it. On the smart camera, such as CORSIGHT or NEON, it acquires images directly from the device. On the laptop, it communicates with the smart camera and acquires images remotely from it.
  • Improved: Responsiveness of the user interface in Adaptive Vision Studio has been improved on Atom-based smart cameras, while executing a cpu-intensive programs.
  • New: There is a new command in Adaptive Vision Studio for quickly lunching the current program with Adaptive Vision Executor.



Release Notes: Adaptive Vision Studio 4.1

2014.12.15

Adaptive Vision Library for Linux
  • New: Adaptive Vision Library is now available as an .SO binary for Linux, compiled with GCC 4.6.
Adaptive Vision Library
  • New: There are new examples with HMI created with the MFC library (screen).
  • Improved: Function reference is now also available as a single PDF document.
  • Improved: Machine Vision Guide is now also included in documentation of Adaptive Vision Library (was: only in Studio).
Undo/Redo
  • New: All actions related to Program Editor and Project Explorer can be undone with undo/redo commands (Ctrl-Z, Ctrl-Y).
Lite+ Edition
  • New: The free Student and Lite editions have been replaced with a single Lite+ edition, which has much more features enabled. It is free only for non-commercial use.
Redesigned Data Previews
  • New: The collapsible tool menu that was available in each data preview has been replaced with a dynamic global toolbar. Thanks to this the data previews are not occluded.
Two-stage Template Matching GUI
  • New: There are now to pages in the GUI for Template Matching. In the first one the user defines the template region. In the second the entire expected object is selected as a rectangle.
New Types of Data for Intuitive Configuration of Filters
  • Improved: ShapeFitting filters now work with "fitting field" data types, which combine the expected object (axis) and the length of scan segments. This allows for more intuitive graphical configuration of the filters.
  • Improved: The MeasureObjectWidth filter now works with "scan field" data type, which clearly signals the scan direction (in contrast to Rectangle2D which was used previously).
  • New: ShapeRegion is a new type of data for representing rectangular or elliptical regions-of-interest. It is used in CheckPresence filters.
New and Improved Filters
  • New: There are new ready-made tools for path classification: ChooseMinimum/MaximumPath, ClassifyPaths, SortPaths.
  • Improved: 2D Edge Detection filters have been significantly improved to assure best edge continuity and coherence among all machine vision libraries.
  • Improved: Parameters of Shape Fitting and 1D Edge Detection filters have been put in logical, not random, order.
  • New: Fitting filters for ridges have been extended with new ridge operators: Minimum (the basic one), GeometricMean, ArithmeticMean, HarmonicMean.
  • Improved: The outputs of Shape Fitting filters that represent detected points are now non-diagnostic and can be used in production-ready algorithms.
  • New: Drawing filters have new input inForceRgb, which allows for drawing color shapes on monochromatic input images. (Earlier the user had to use the ConvertToMultichannel filter).
  • Improved: SplitRegionIntoComponents filter has been significantly optimized. It is useful for OCR applications.
  • New: ImageSharpness filters has been added, which is useful for setting the optimum lens focus.
  • New: Filters for sending files through FTP has been added.
  • New: Conditional connections are now allowed at the outputs of Task macrofilters. The last non-Nil value will be returned.
HMI: Saving the State
  • New: It is possible to save the state of an HMI to a configuration file, from which the state can be later restored.
Other
  • New: Filter icon size is now configurable - can be 24x24, 32x32 or 48x48 px (was: only 48x48).
  • New: Current FPS value (frames per second) is displayed on the status bar.
  • Improved: GigE Vision and GenICam cameras, which are incorrectly configured, are detected, but a warning message appears.
  • New: Conditional connections are now possible at macrofilter outputs. Nil value does not change the previously written value.
  • New: Structure ports now be expanded into individual fields on the inputs of macrofilters (in 4.0 it was only possible on normal filters).
  • New: We have some new video tutorials created with version 4.1: Adaptive Vision Studio 4 - Basic Tutorial and Adaptive Vision Studio 4 - Video Examples.
  • Improved: Some problems with GUI responsiveness during fast display of large images have been fixed.

Release Notes: Adaptive Vision Studio 4.0

2014.07.30

Adaptive Vision Library for C++ Programmers
  • New: An article has been added about Processing Images in Worker Thread.
  • Improved: Up to version 3.2 there was a separate build of the library for each version of Microsoft Visual Studio. Now there is one set of binary files that work with all of them (2008-2013).
  • Improved: Functions that can be used for in-place data processing, like NegateImage, have been clearly documented.
  • New: A project creation wizard and data visualizers have been added for VS2013.
  • Improved: More function parameters (both input and output) have been grouped into structures for easier use.
  • New: More examples have been ported from Studio.
  • New: New examples have been added demonstrating interoperability with MFC, WinAPI and Euresys.
Interoperability with C++ and .NET
  • New: Adaptive Vision Library is now available also as a native library for the .NET Framework (for C# or Visual Basic programming).
  • New: Users Filters now support also Microsoft Visual Studio 2012 and 2013.
  • New: .NET Macrofilter Interfaces can be used also with Express Editions of Microsoft Visual Studio.
Adaptive Vision Library .NET
  • New: .NET Macrofilter Wrappers now support Microsoft Visual Studio versions from 2010 to 2013.
Filter Grouping
  • New: Groups of filters performing the same task, but with different methods, have been merged in the Filter Catalog. This makes the catalog much easier to browse.
    • E.g. SmoothImage... groups filters: SmoothImage_Mean, SmoothImage_Gauss, SmoothImage_Median etc.
    • E.g. Classify... groups filters: ClassifyByRange, ClassifyByPredicate, ClassifyByCase.
    • E.g. ScanEdges... groups fiters: ScanSingleEdge, ScanExactlyNEdges, ScanMultipleEdges.
  • New: Individual filter can be chosen from a group in a dialog window that provides additional illustration and information about the filter's applications.
  • New: A filter already placed in the Program Editor can have its variant (e.g. "Gauss" to "Mean"), as well as instantiation type, changed dynamically. Common parameters and connections are preserved.
Toolbox
  • New: There is a completely new way of browsing and selecting filters, the Toolbox window. This is a task-oriented and much more visual alternative to the old Filter Catalog.
Ready-made Tools

Up to version 3.2 we were providing a set of filters from which both simple and highly complex image analysis algorithms could be created. Flexibility (adaptiveness) was one of the primary design goals. From version 3.3 we are introducing additional tools created on top of the filters, which replace some common sequences of several filters with just one tool. These are called ready-made tools and allow for creating algorithms much faster in 90% of typical industrial applications.

  • New: "CheckPresence: Intensity / PixelAmount / EdgeAmount" tool has been added for quick and easy presence or absence verification.
  • New: "MeasureObjectWidth" tool has been added for high precision measurement of distances between two parallel edges.
  • New: "ClassifyRegions", "SortRegions" and "ChooseRegions" tools have been added for quick and easy analysis of regions (or blobs) on the basis of some feature.
  • New: "EnumerateImages" filter replaces the standard pair of "EnumerateFiles" + "LoadImage".
  • New: "Statistics_OfLoop/OfArray" filters now provide a quick way to computer mean, standard deviation, minimum, maximum and spread with just one block.
  • New: "ReadBarcodes", "ReadDataMatrices" and "ReadQRCodes" tools now replace pairs of "DetectBarcodes" + "RecognizeBarcode" etc. (The old filters still can be used in advanced applications).
  • New: "MatchObjectTemplate" tool has been added for defect detection with simple image difference analysis.
  • New: "CreateUndistortionMap_FromChessboards"
User Proficiency Levels
  • New: There are three User Proficiency Levels: Basic, Advanced, Expert. At lower proficiency levels some rarely used filters and features are hidden.
Structure Field Expansion
  • New: Filters in the Program Editor can have additional ports created for fields of structures, e.g. "X" and "Y" for a port of type "Point2D".
  • New: Some existing filter outputs, e.g. RegionBoundingBox.outBoxWidth, have been replaced with expanded fields, e.g. RegionBoundingBox.outBox.Width.
  • Improved: Several closely related filter ports have been grouped into structures - e.g. there is one "Object2D" structure on the outputs of Template Matching filters instead of separate Match, Alignment, Point, Angle and Score outputs.
Local Coordinate Systems
  • Changed: Transform2D type has been renamed to CoordinateSystem2D.
  • New: It is possible to select local coordinate systems when editing geometrical primitives.
  • New: Local coordinate systems can be created at any computed location, not only as results of Template Matching filters.
  • New: Geometrical primitives can be edited in the context of any input image to be automatically aligned with the results of Template Matching (was: only in the context of a single reference image).
  • New: Article in the Machine Vision Guide: Using Local Coordinate Systems.
New and Improved Filters
  • New: DifferenceOfGaussians filter.
  • Improved: Test and Assertion filters have been revised and grouped appropriately.
  • New: Filters for XML parsing and creation (read: Working with XML Trees).
  • Improved: The Transform2D type has been renamed to CoordinateSystem2D and its use on inAlignment ports of tools has been revised for better ease of use.
  • New: ThresholdImage_Color and ThresholdToRegion_Color filters were added for more straightforward color analysis.
  • New: ImageInfo structure have been added for consistent use in filter that precompute data for specific image formats.
  • Improved: Drawing filters now accept conditional objects, so that drawing a Nil objects is now results in an unchanged image and not in a Nil image.
  • Improved: Drawing filters now have three variants for easier use: SingleColor (the simplest), TwoColors (for drawing ok/nok) and Palette (for multi-color).
  • Improved: Drawing filters now accept geometrical primitives belonging to local coordinate systems.
  • Removed: Automatic conversions from geometrical primitives to regions (e.g. Rectangle2DToRegion) have been removed, because they were a common source of programming errors (explicit filters, like CreateRectangleRegion, should be used instead).
User Experience Improvements
  • New: The software automatically verifies whether pairs of arrays connected to a filter like ClassifyByRange or GetMaximumElement are guaranteed to have the same size.
  • New: Ports containing synchronized arrays (whose elements correspond to each other) are decorated with colorful markers for better understanding of the dependencies.
  • New: Changing parameters in a paused program causes re-execution of the entire macrofilter (was: only the single filter that is modified).
  • Improved: It is more straightforward to copy a color value from a preview to a parameter in Properties.
  • New: It is possible to create formulas from the context menu in Program Editor.
  • New: It is possible to choose between graphical and textual data display (drag-and-drop with the right mouse button).
  • New: It is possible to expose additional ports of HMI controls, e.g. the background color, and control their values from the program.
Error Handling
  • New: Task macrofilters can have Error Handlers added. These are special sub-macrofilters that get executed when an error occurs (e.g. the camera get unconnected).
  • Improved: Error messages are now displayed directly in the alert message boxes, not only in the console window.
  • New: It is possible to configure assertion filters so that the program execution can be continued after an assertion is raised.
  • New: An article has been added about Error Handling.
Optimizations
  • New: VideoBox HMI control has been added for very fast image display (>100 fps).
  • Improved: Array execution of small filters have been optimized by an order of magnitude.
  • Improved: NCC Template Matching have been further optimized.
Hardware Support
  • Improved: Extended support for CORSIGHT smart cameras from NET GmbH.
  • Improved: Extended support for all cameras supported by the SynView API.
  • New: Filters have been added for direct support of the Modbus IP protocol.
Examples
  • Improved: All existing examples have been revised and in some cases significantly simplified by using new features of version 3.3.
  • New: New official examples have been added: "Badge Measurement", "Blister Inspection (NET GmbH)", "Calibration from Custom Grid", "Dynamic Template Matching", "Fertilizer Granulation", "Gasket Inspection", "Globe Flattening", "Inset Distance", "Molybdenum Foil" and "Plate Measurement".
Other
  • New: User Manual is available also in the form of PDF files.
  • New: A new HMI control, SelectingVideoBox, have been added for easy implementation of applications that include selection of a rectangular region by the end-user.

Release Notes: Adaptive Vision Studio 3.2

2014.02.08

Adaptive Vision Library for C++ Programmers

Up to version 3.1, Adaptive Vision Library assumed one-to-one correspondence between filters (Studio) and functions (Library). Although providing sound relationship between the two products, it was also making some parts of the library strange-to-use for programmers writing code manually. We have changed this by introducing functions in the library that do not correspond strictly to filters, but are much more convenient to use in C++. The old functions corresponding to filters are still available, but they were renamed by adding "AvsFilter_" prefix. As a result we were able to finally implement all the most crucial feature requests from the users of Adaptive Vision Library.

  • Improved: Some functions that in Studio are well represented by a single filter have been split into pairs of functions in the Library. These new functions are much more convenient to use when writing C++ code. For example, instead of single ReadVideo, there are now two separate functions: OpenInputVideoStream and ReadVideoStream.
  • Improved: 1D Edge Detection and Shape Fitting functions have been split into pairs of functions to allow preprocessing before the first iteration. For example, to perform the most simple 1D edge detection one should call two functions: CreateScanMap and ScanSingleEdge.
  • Improved: Functions for GigE Vision have been integrated with machine vision in a single library.
  • New: Functions for GenICam camera interface have been added.
  • New: Functions converting the Image type between different libraries (OpenCV, MFC, Qt etc.) are now available as part of the library.
  • Improved: Several output parameters of functions became optional. For example, there is no need now to provide 'alpha channel' parameter to the LoadImage function.
  • New: There are new functions for drawing single geometrical primitives beside the old functions that draw entire arrays.
  • Improved: Many functions that returned several arrays (e.g. LocateMultipleObjects, ScanMultipleEdges), now return an array of structures, which is much more convenient.
  • New: Default (suggested) values of function input parameters are now specified in the documentation and in structured comments for Microsoft Visual Studio.
  • New: There is a standard project template for Microsoft Visual Studio. This makes it much easier to create a project with properly selected project settings.
  • Improved: Some common sets of function parameters have been grouped into structures. For example, parameters: inProfileInterpolation, inSmoothingStdDev, inMinMagnitude and inEdgeTransition, which appear in all 1D edge detection functions and in related shape fitting functions, have been grouped into EdgeScanParams structure.
  • Improved: Some hack have been introduced as a workaround for conflicts between avl::LoadImage and the function from MFC of the same name.
  • Improved: The installer for library runtime has been reorganized to include only the things that are needed at production environment.
  • Improved: The editors of regions, geometrical primitives and template matching models have been redesigned.
  • New: The lists of possible background images in the editors are now displayed as thumbnails.
.NET Macrofilter Interface
  • New: It is possible to generate .NET assemblies (dll) automatically from macrofilters in Studio. Interfacing with .NET languages, like C# or VB, is now straightforward.
More HMI Events and Multi-Screen Applications
  • New: The TabControl control can now be used with hidden tabs to create multi-screen applications.
  • New: The ImageBox control has now outputs corresponding to mouse events. It makes it possible to program advanced behaviors like selecting shapes.
Redesigned Editors and Data Previews
  • Improved: Textual display of data has been redesigned.
  • New: Textual data are now displayed with labels corresponding to the names of filter outputs.
  • New: Geometrical objects displayed with images (e.g. blobs) can be labelled with their array indices for understanding which feature values correspond to them.
  • Improved: "No data" and "Nil" values displayed on the previews now clearly separate the cases of filters: (1) not yet executed, and (2) skipped due to a condition.
Possibility to Navigate and View Data from All Instances of Macrofilters
  • New: When two or more instances of a single macrofilter exist in a program, then it is now possible to enter each of them separately (up to version 3.1 it was only possible to enter the one which was executed the latest).
  • Improved: The tree nodes of macrofilters displayed in Macrofilter Navigator can be collapsed.
Other
  • Improved: Performance of the execution engine has been significantly improved.
  • New: It is possible to set macrofilter outputs to constant values (not only connections).
  • Improved: The user manual has been revised and extended.
  • New: Articles:
  • New: USB Dongles can now be managed in the User Area.
  • New: The support period can now be managed in the User Area.
  • New: It is possible to display in the Project Explorer how many time each of the macrofilter is used.
  • Improved: The Position2D type has been replaced with two separate types: Rectangle2D and Transform2D.
  • Improved: Some filter inputs are marked as compulsory. A warning will be signaled on the console if they are not set.
  • New: Analog framegrabbers from Euresys are now supported.
  • New: Cameras from NET GmbH are now supported also through the SynView api.
  • New: "ADAM" family of Advantech's i/o devices has been supported.
  • Improved: There are new algorithms for DataMatrix recognition.
  • New: Filters for easier joining of images: JoinImages, JoinImages_OfArray, JoinImages_OfSeries.
  • Improved: Image Local Transforms for box and arbitrary-shaped kernels have been optimized.
  • Improved: Names of NotEmptyXxx_OrNil filters have been changed to more user-friendly SkipEmptyXxx.
  • Improved: Drawing filters, like DrawSegments, can now draw each primitive with a different color.

Release Notes: Adaptive Vision Studio 3.1

2013.09.03

Adaptive Vision Library and Code Generation
  • New: C++ code for Adaptive Vision Library can be automatically generated from programs created with Adaptive Vision Studio.
  • New: Microsoft Visual Studio 2012 is supported.
  • Improved: Development and runtime licenses have been more clearly separated.
  • New: An example of using Adaptive Vision Library with an application written in C#.
  • New: Documentation about how to interface AVL and other C++ libraries, including MFC.
  • New: Missing documentation of enumeration files has been added.
  • New: 1D Edge Detection filters can have the preprocessing phase separated (for speed) when used in AVL/C++.
Extended Capabilities of the IDE
  • New: Models for both edge-based and gray-based template matching can be created with a graphical tool. Separate tasks for creating models are not required anymore.
  • New: Incorrect instances of filters and incorrect connections are now marked, not removed. This allows much easier refactoring of big projects.
  • New: Project Attachements is a feature that allows adding various files related to the project, e.g. documentation.
  • Improved: A green bar indicates the current location of program execution.
  • Improved: An animated bar at the top of the program editor indicates the state of program execution.
  • Improved: It is not needed to choose background images each time when editing geometrical primitives. The previous selection is retained.
  • Improved: Global Parameters can be edited in the Properties window.
Formulas
  • New: It is now possible to create formulas accumulating information from many iterations. "Prev" operator is used for this purpose.
  • New: There are formulas for strings.
  • New: There are aggregating functions on numeric arrays: min, max, product, sum, avg.
Improved Template Matching
  • Improved: Template Matching on high-resolution images can be speeded up by limiting the piramid height from the bottom (new parameter: inMinPyramidLevel).
  • Improved: The Position2D type has been divided into two separate types: Rectangle2D and Transform2D. This makes use of Template Matching more intuitive and less error-prone.
  • Improved: There are now two versions of Template Matching filters - one for locating a single object, one for locating many objects. This improves program understanding.
Improved 1D Edge Detection & Shape Fitting
  • New: It is now possible to select not only the best edge, but also the first or the last in 1D Edge Detection filters.
  • New: Shape Fitting filters got outlier suppression methods same as 1D Edge Detection filters: "Huber" and "Tukey".
USB License Dongles
  • New: With USB License Dongles it is now possible to bind a license to a person, not to a computer.
Other
  • New: New article in the Machine Vision Guide: OCR.
  • New: Framegrabbers from Euresys are now supported.

Release Notes: Adaptive Vision Studio 3.0

2013.02.28

Astonishingly Powerful Visual Programming Paradigm
  • New: Three different types of macrofilters are now available: Steps, Variant Steps and Tasks.
  • New: Step macrofilters can now generate loops and store information between invocations.
  • New: Task macrofilters can create nested pipelines and can be used to create several programs within a single project.
  • New: Variant Step macrofilters provide a powerful means to manage conditional execution paths.
  • New: With Variant Steps and registers it is possible to program Finite State Machines in a very convenient way. Thus, it is much easier to create programs that work is several modes of operation (e.g. "Model Definition", "Inspection On", "Inspection Off", "Result Analysis").
Little Spreadsheets Embedded in Data Flow
  • New: Special Formula Filters can be added to programs for convenient work with arithmetic and other low level computations.
  • New: Formula editor features syntax highlighting and tips.
Better Management of User Filters
  • New: User filters now appear in the Project Explorer; can be added, removed and even edited from this control.
  • Improved: User filters can now be stored in any location on the disk; also in relative locations.
Machine Learning and OCR
  • New: There is a set of new filters for Multi-layer Perceptron artificial neural networks.
  • New: Support for Optical Character Recognition with artificial neural networks is provided.
Template Matching and Relative Coordinate Systems
  • Improved: Shape fitting and measurements can now be performed in relation to objects located with template matching. There is no more need to align the tools as this is now done automatically.
  • Improved: It is now possible and recommended to use global parameters of type Image for providing a context for defining templates and measurements.
  • Improved: It is now possible to load or link data from files directly to filter inputs. The LoadObject<T> filter doesn't need to be used for things like template matching models.
GenICam / GenTL Support
  • New: The software can now receive images from GenTL Producers. Tested with hardware from XIMEA, BitFlow and Allied Vision Technologies.
Usability
  • Improved: The "Ribbon" toolbar has been replaced with standard application toolbar and menu.
  • New: The user is now able to hide long connections between filters that have been obscuring the view. The connections are then replaced with named labels.
Better Documentation
  • Improved: The entire User Manual has been rewritten and extended.
  • New: All Domain Errors are now listed in the documentation for each related filter.
New and Improved Filters
  • New: Two new methods for fast and automatic image segmentation.
  • New: QRCode detection and recognition.
  • New: More filters for creating and manipulating strings.
  • New: New filters for corner / feature point detection with Foerstner, Harris and Kanade-Tomasi methods.
  • New: Object specifications can be loaded from DXF files.
  • Improved: The data files created with Adaptive Vision Studio now contain information about the format version and the type to assure correctness and backward compatibility.
  • Improved: The Gray-based Template Matching algorithm has been significantly optimized.
  • Improved: New methods of subpixel-precise edge detection have been added that work with accuracy of at least 1/23 px for ideal gaussian edges.

Release Notes: Adaptive Vision Studio 2.5

2012.09.15

More Efficient Work with Large Projects
  • New: Project Explorer is a new window for managing the list of macrofilters contained in a project. It serves as a replacement of "This Program" category of Adaptive Vision Studio 2.4.
  • New: A project may now consist of multiple files (called Modules). This permits to create libraries of macrofilters that can be shared across different projects, and helps to organize large applications.
  • New: It is now possible to create constant Global Parameters that can be used in different places of a program without the necessity of creating cascading connections. They are useful for specifying application-level settings such as defect tolerance levels, that can be adjusted during maintenance, but do not change during program execution.
  • Improved: Although it looks very similar, the Program Editor window has actually been rewritten from scratch to optimize it performance and reliability.
  • New: There is a search function for filter instances.
  • New: The user can jump to a filter that caused an error by double clicking on the error message in the console.
  • New: The combo-box with current macrofilter in the Program Editor now shows the hierarchical structure after expansion, not only a plain list.
More Control and Usability
  • New: There are new commands for more precise program execution: Step Over, Step Into, Step Out.
  • Improved: The Filter Catalog control has been optimized - application startup and reloading the filter repository (e.g. after recompiling a user filter) take now much less time.
  • Improved: Filter search results are order by their rankings with better fitting results at the top of the list.
  • New: There is an automatic backup of the project being edited. If the computer gets shut down accidentaly, the program will be restored.
  • New: The position of the HMI panel is remembered when it is hidden. It helps to work with undocked HMI if the user has only a single computer screen.
  • New: One can save the content of Image Data Preview to a .png, .jpg or .bmp file.
  • New: One can save the content of Textual Data Preview to a .csv file.
  • Improved: The user can now adjust more precisely the frequency of updating the data previews.
Improved Template Matching
  • Improved: The Edge-based Template Maching now uses a new unique match scoring function that yields much better results in presence of high background clutter.
  • Improved: The Edge-based Template matching has been significantly optimized for speed.
  • Improved: The CreateEdgeModel filter has outModelPosition output, which helps to perform measurements in a local coordinate system of a detected object.
  • New: The pyramid height can be now adjusted also in the matching filters (was: only when creating a model).
  • Improved: The potentially time consuming process of model training can be interrupted if needed.
Extended Image Analysis Toolsets
  • Improved: The 1D Edge Detection algorithms have been revised and reorganized into 3 subcategories: for edges, ridges and stripes.
  • New: There is a brand new set of filters for fitting geometrical primitives to image edges or ridges. The new filters are based on 1D Edge Detection methods and are very useful in measurements applications.
  • New: Arc2D type has been added for geometrical measurements.
  • New: There is a new set of image processing filters - Image Spatial Transforms Map - providing highly optimized support for polar transform, distortion correction and other transforms which operate by moving pixels from one location to another. The basic idea of these new filters it to precompute the transform before the main program loop.
  • Improved: The behavior of some filters that may fail in a way which is difficult to predict has been changed. They now return conditional data instead of raising a Domain Error. This applies mainly to geometrical combinators such as LineLineIntersection (line may be parallel) or CircleThroughPoints (the 3 points may be colinear).
Extended Barcode Recognition
  • New: A range of additional barcode format is supported: EAN13-Addon2, EAN13-Addon5, EAN8-Addon2, EAN8-Addon5, UPC, UPC-Addon2, UPC-Addon5, UPCE, UPCE-Addon2, UPCE-Addon5, CODE128, CODE39.
  • New: More parameters have been exposed to allow the user to adjust the algorithm for varying barcode resolutions.
Extended Programming Model
  • New: Conditional data (Nil) can now be stored in arrays. This is very useful for example when a single detection algorithm is to be applied to a predefined number of regions within an image. Earlier, if some of the inspections failed, the resulting array had a smaller size. Now, the correspondence of the elements of different arrays is preserved.
Technical
  • New: Dedicated 64-bit version is available. Our tests indicate about 5% better performance on 64-bit machines.
  • New: Multiple versions 2.x can be installed simultaneously. This allows running old programs without any modyfications.
  • New: The installers are signed so that the identity of the publisher (Future Processing Sp. z o. o.) can be verified before installation.
  • Improved: The documentation is provided as standard html files instead of the old fashioned CHM files.
  • New: The user interface of Adaptive Vision Studio has been translated to German.
Hardware Support
  • New: Blocking i/o operations such as triggered image acquisition or ethernet communication can now be interrupted manually (e.g. with Pause Program command) or can have a timeout set, after which they return Nil value. This makes it possible to create responsive HMI even if the i/o operations are blocking.
  • New: Adaptive Vision Studio now support BitFlow framegrabbers.
  • New: GigE Vision cameras from Allied Vision are now supported also through the vendor's sdk (besides of the generic GigE Vision support).
  • New: All cameras from Matrix Vision that are supported through the mvIMPACT Acquire sdk, are also supported in Adaptive Vision Studio.
  • New: Also added is a support for digital I/O devices from Advantech.
  • Removed: DSP-based smart cameras are no longer supported.
Other
  • New: Default values of macrofilter inputs, outputs and registers can now be edited in the same way as filter inputs.
  • Improved: Execution of simple filters, such as AddIntegers, has been optimized. They are twice as fast than they were.
  • Improved: The Profile Data Preview window has been revised. Profiles are now treated in a more general way - not only as 1D image sections, but as general real sequences.
  • Improved: The application is now much better protected against errors in the user filters. Mistakes such as wrong port names in the code are now handled more smoothly.