Release Notes: Zebra Aurora Vision Studio™ 5.6
2025.10.14
OCR
- Improved: DL-OCR models have been re-trained on larger training set and with extended augmentations, producing another systematic improvement of accuracy.
- Improved: OCV applications are now officially supported with .Quality output from DL_ReadCharacters filter achieving accuracy of results significantly higher than in 5.5.
- New: OCR candidate characters can now be displayed in a data preview window.
- Improved: "OCR-A" model now supports much wider range of possible character sizes.
Deep Learning
- Improved: DL_LocateObjects tool is now based on completely new architecture, producing significantly higher accuracy.
- Improved: Accuracy of DL_LocatePoints has been fixed, now matching or exceeding the best results so far achieved in previous software releases.
- New: All Deep Learning tools can now be trained without a validation set, however, it is still strongly recommended to use one whenever possible (as even one validation image could be significant).
- Fixed: Missing package enabling use of GPU in Deep Learning model inference via AVL.Net has been reintroduced.
- Changed: DL_DetectFeatures architectures for NetworkDepth 0 and 3 have been modified, leading to faster training, but breaking backward compatibility with version 5.5 (we recommend retraining older models).
- New: Masking functionality and ability to set multiple regions of interest in Deep Learning Anomaly Detection tool.
- New: Deep Learning toolset is once again available through proper API (Feature Detection and Anomaly Detection tools only).
- Improved: For sake of user convenience, Deep Learning installer file no longer contains all application examples, some were moved to another location from which they can be downloaded separately.
- Improved: DL Editor model selector is now more intuitive.
- Improved: DL training engine now supports CUDA version 12.8. to support RTX 50xx GPUs.
WebHMI
- New: Added WebHMI controls (Progress and PieChart) as well as introduced multiple improvements, such as image zooming ability.
- New: WebHMI now uses HTTP over SSL, enabling secure use also in non-private networks.
- New: It is now possible to use "Enabled" property in container controls.
- Fixed: WebHMI slider control now works with fractional values.
- Fixed: WebHMI code now remains accessible even in undocked windows.
- Fixed: It is now possible to connect property output ports to WebHMI.
- Fixed: WebHMI is now displayed even when regular HMI is visible as well.
- Fixed: WebHMI can now be displayed again without problems after it has been closed.
- Fixed: Main application's keyboard shortcuts now work when focus is on WebHMI.
New and Improved Filters
- New: New barcode reading tool, ReadBarcodes_Z, reads Code128 and PDF417 at very high speed.
- Fixed: Elastic Template Matching no longer produces duplicate instances, issue encountered especially when used alongside scaling.
- New: Added SerializeToJson and DeserializeFromJson filters as tools to pack data structures into JSON format and to unpack JSON format into data structures respectively.
- Fixed: Extended inFormatParameters in Json filters with LineBreakType parameter to make it possible to properly display line breaks on HMI.
- Improved: Various fixes in Auto-tune GUI.
- Improved: Reading of datacodes drawn with dot print.
- Improved: Aside from 2D codes, ReadDatacodes tool can now read 1D codes as well.
- Improved: Increased flexibility of parameter setup in ReadDatacodes filter for better reading of DataMatrix codes.
Hardware
- New: Added support forZebra Rapixo CXP card (through Aurora Imaging Library Lite SDK).
- New: Added support for RealSense SDK.
- Improved: Added multiple improvements to GigE Vision and GenICam GenTL interfaces to better handle errors and error reporting.
- New: Added new parameters DisplayID and ModelName to JAI_FindDevices filter for better displaying purposes.
- Improved: Extended Indio I/O support.
Other
- New: You can now generate C++ code as well as Runtime executable files using command line tool.
- New: Visual editors provided with AVL.NET are now based on .NET Standard.
- Fixed: .NET Macrofilter Interfaces can now be generated also in presence of nested user types.
- Fixed: .NET Macrofilter Interfaces no longer crash when trying to run Deep Learning tools.
- Fixed: Filters that used to be greyed out in Offline mode despite being perfectly executable even in that mode, no longer display this misleading indication.
- Fixed: NuGet packages now contain native dependencies in AVL.NET for Linux.
- Fixed: SplitPathToParts function no longer fails to reset output at every iteration.
- Fixed: It is now again possible to change UI theme.
- Fixed: inFlatten and inMinScore parameters of MergeCharactersIntoLines no longer yield empty output upon being set to particular values.
- Fixed: ALT+F4 now closes main Studio window instead of undocked window.
- Changed: Version mismatch between Professional and Runtime detected at third position in version number no longer returns execution error, but mere warning that can be skipped.
- Changed: Various updates to CropSurface filter documentation as well as Toolbox documentation links.
Release Notes: Zebra Aurora Vision Studio™ 5.5
2024.11.29
OCR
- Improved: DL-OCR models have been re-trained on even larger training set, producing another systematic improvement of accuracy.
- Improved: DL-OCR models now handle narrow characters (1/i/l/I/j/J) much more reliably.
- New: Due to the very unusual character design in the OCR-A font, we decided to strictly separate our models for the OCR-A cases, and for everything else. The standard models now do not (officially) support OCR-A. Use a dedicated model, "OCR-A", instead.
- Changed: Custom DL-OCR models trained for version 5.3 and 5.4 will no longer work in 5.5 (applies to "Fast" and "FastWide"). Please contact our support for re-training a new custom model, if needed
- New: The DL-OCR tool can now produce not only detected characters, but also alternative candidate classifications. This makes it possible to match string patterns even if the highest scoring class is not always correct.
- New: We added "grammar rules" for OCR - you can specify the format of data you expect to read, and the tool will use it match the right string and to improve classification accuracy, using a convenient editor for pattern testing.
- New: We added an option to remove detected characters that touch or cross the boundaries of the region of interest. This removes some false positive detections and misclassifications due to the network "seeing" incomplete characters.
- Improved: DL-OCR Fast model inference has been optimized for Qualcomm-based platforms running with Android (for OEM use). The speed-up is by an order of magnitude.
- New: Text Location tool can now be set to filter out text areas below and above user-defined thresholds.
Deep Learning
- New: Deep Learning examples were added: Rope Inspection (for Anomaly Detection) and Fish Detection (for Object Location).
- New: Runtime score adjustment/scaling in DL_DetectAnomalies
- New: Anomaly Detection (SimilarityBased) training times have been significantly reduced.
- New: Complexity parameter available in Deep Learning Editor for Anomaly Detection tool's SimilarityBased network type.
- New: DL_LocateObjects tool is now available in the new training engine.
- Change: In anomaly detection, the approach "SingleClass" is no longer available (we found that it is always outperformed with "SimilarityBased" approach).
- New: DL_DetectFeatures and DL_LocatePoints tools may now work with very high resolution images. We internally split them into tiles to fit the current memory constraints.
- New: Inspection results from models trained using Auto-Training feature can now be saved into CSV file (as opposed to parameters only as was case until now).
- Fixed: Tooltips in Deep Learning Editor image list were extensive and popped out too frequently.
- New: Training parameters are now listed at top of reports generated via Auto-Training functionality.
- New: Linux-based Deep Learning applications on x86_64 architecture can now leverage Nvidia GPUs for inference.
- New: Linux-based Deep Learning applications on ARM64 architecture (e.g. Nvidia SOMs) can now leverage Nvidia GPUs for inference.
- New: The ReadDataMatrixCodes can now also read QR Codes. Thus, it has also been renamed to ReadDataCodes.
- New: The ReadDataCodes tool may now output confidence scores, informing the user how far it was from failing to read.
- NOTE: Confidence scoring takes additional time (up to 2x more). Use it only when needed (controlled with inComputeScores = true).
- NOTE: Confidence scoring should not be confused the ISO-based quality metrics. Confidence scoring is used to predict reliability of our code reading tool. ISO-based quality metrics are used to objectively evaluate print quality.
- New: Optimal code reading parameters may be found automatically with auto-tuning - using a graphical editor available through the Properties window.
New and Improved Filters
- New: You can now execute Python scripts from within Aurora Vision Studio with new special filter, Python_CallFunction (Windows-only).
- New: We introduced Elastic Template Matching tool that is similar to Edge-based Template Matching, but much better handles deformations, perspective distortions and aspect variations.
- New: A new basic filter, SubtractImages_Signed, can be used to subtract images without saturation at zero.
- Improved: The ImageAlongPath/Arc and ImageProfileAlongPath filters have been significantly optimized for speed.
- Improved: All 1D edge detection filters have been better optimized for SSE/AVX/Neon instruction sets.
- New: We enabled two, more accurate profile interpolation methods: Cubic and Quadratic5.
- New: ImageSum and similar functions were optimized using SSE/AVX/Neon instruction sets.
- Improved: AVL for Linux is now compiled with SSE4 support (previously it was SSE3).
- New: GenerateDataMatrix filter enables user to create their own DataMatrix code for testing purposes.
- Change: GenerateFileName filter has been enhanced with inReset input to enable restarting file counter from 0.
- New: File-loading filters now indicate a warning when source path is absolute, making it easier to notice prior to sending application to other systems (where absolute path would no longer work).
- New: WebCamera_ListDevices filter makes it possible to look up device IDs of individual web cameras connected to systems, which comes in handy when user needs to indicate individual camera to read feed out of in case multiple are accessible in WebCamera_GrabImage filter.
- Change: Support for Hikvision Machine Vision Software has been updated to version 4.4.0 (DLL version 4.4.1.3).
- New: Strings encoded in base64 can now be converted to byte buffer using DecodeBase64 filter.
IDE
- New: Studio is now available in French, Korean and Spanish.
- New: .NET Macrofilter Interfaces are now based on AVL.NET for Standard (as opposed to AVL.NET for .NET Framework, now being discontinued by Microsoft).
- New: Avl.NET installation directory can now be selected as nuget source in Visual Studio package manager.
- New: The HMI editors available in AVL.NET now are also implemented with AVL.NET Standard.
- New: Image preview panels can now display pixel values - this happens when you zoom-in 8000% or more.
- New: Support for WebSocket protocol.
- New: Filters and groups of filters (with their port connections and values intact) can now be saved into snippets, readable by other Studio instances, which will facilitate sharing of pieces of algorithm between partners. This functionality is accessible by right-clicking selected filter(s).
- New: Events in Studio now link to those HMI controls that use them.
- New: Values returned by Ruler tool in preview window are now rounded to two decimal places when below 10 pixels and three decimal places when below 1 pixel.
- New: In Studio preview window, when dropping port that was already dropped there before, that port will now become selected (and visible if it was previously masked).
- New: Both Examples and Tutorials in Studio can now be opened (and their documentation entries accessed) using convenient offline browser.
- New: Brush size in Region and Shape Designer controls can now be preset by means of parameter value.
- Change: Undocked Program Editor window can now be navigated into and out of macrofilters (it used to be fixed on that macro it was undocked for to begin with).
- Change: Color Picker now displayes HSV values of mouse-pointed pixels, alongside RGB values.
- Change: Filters, documentation entries and Studio example related to Instance Segmentation tool have been marked as deprecated due to this tool not being available for training using releases above v5.3 (inference performed on formerly trained models will still work though).
WebHMI
- Fixed: WebHMI output was occasionally unsynchronized with data previews in Studio (when debugging).
- New: WebHMI in Aurora Vision Studio Runtime
- Fixed: Fixed: WebHMI color picker no longer returns transparent colors when not specifically instructed to do so.
Hardware
- New: Support for 4Sight EV7 computers IO ports.
Release Notes: Zebra Aurora Vision Studio™ 5.4
2024.02.12
Deep Learning
New: Aurora Vision deep learning tool-chain has been switched to a brand new training engine (re-implemented from scratch). The interfaces will look as before, but under the hood there is wholly new thing.
- It is now based on a client-server architecture; it may be run both locally and the cloud (coming later).
- It has improved memory management and batch size moderation, fixing some "out of memory" errors on nVidia GPUs.
- It supports new, better mechanisms for training data balancing, leading to better training results, especially on low quality datasets.
- It supports nVidia RTX 40-series GPU devices.
- Training is faster.
- Training is more repeatable (same results each time we re-train from scratch).
- New Python-based training API (coming soon). The C++-based training API is no longer available.
- Password locked API access.
New: Most deep learning tools now work not only with "Train" and "Test" images, but also with "Validate" images.
- NOTE 1: "Validate" images are used to prevent overfitting in the training process. They are evaluated after each iteration of training and show (the orange line) whether accuracy of the model is getting better in general, and not just excessively biased toward the training set. For tools such as Detect Features, it is usually enough to use 2-3 validation images. If you have a very small dataset, you may use just 1. If you have a very large dataset, you may use 5-10.
- NOTE 2: In the version 5.3 (and earlier) there was also a "Validate" set, but it was selected randomly from the "Train" set. The main drawback of that approach was that with each training a different validation set was selected, leading to less predictable training results.
Improved: The DL_ReadCharacters tool has been re-trained with a series of little but important improvements.
- Now including two more special characters (\<, >).
- We significantly reduced false negative errors (no detections) on narrow characters (I/J/i/l/1) and on confusing characters (e.g. O letter vs zero).
Improved: The DL_ReadCharacters tool now comes with a new model, "FastWide". It is based on "Fast", but supports a wider range of character height (same as "Balanced").
Improved: The DL_ReadCharacters have a new model, "OcrA".
Improved: The DL_LocateText tool now comes with a new model, "Scalable", that is based on "Balanced", but supports a wider range of character height (20-100 px). It is much better suited for free-hand text scanners where the character height may vary a lot.
New: A new Anomaly Detection approach has been added to DL_DetectAnomalies2, codenamed "SimilarityBased". It is both faster and more accurate.
- NOTE: It may be not the fastest on GPU. If you run on GPU, we recommend staying with the previous architecture for now.
New: (OEM) WEAVER can use quantized DL-OCR model for ARM platform which runs twice as fast and consumes four times less memory. Ask for more details.
Improved: DetectAnomalies filters now returns also ROI.** **
Removed: Two tools are temporarily not available - DL_LocateObjects and DL_SegmentInstances. We are still working on porting them to the new training service. DL_LocateObjects will be coming first.
New and improved filters
New: Data Matrix code reader has been significantly optimized for very high-speed applications.
- Use "SuperFast" setting when codes are easy to read, but time constraints are very tight.
- Set "UseSuperRes" (use super resolution) to False to prevent costly image up-scaling for low PPM.
- Set "ParallelFinderEdges" to enable detection with the FinderEdges method on multiple processor cores.
New: Data Matrix code reader has been improved for handling deformed codes and with noise in the code's Quiet Zone.
Changed: We changed Data Matrix "AllowPerspective" parameter from True/False to None/Low/High. The "High" setting is new and it handles perspective much better than ever before.
Changed: ReadSingleDataMatrixCodes and ReadMultipleDataMatrixCodes are now stateful filters. Adding state made it possible to efficiently re-use memory buffers between consecutive calls. If you use these as AVL functions, you will need to add a state object. Make sure this state object is created before the main loop, so that you can get the performance benefit from it.
New: Data Matrix code reader has another new parameter, EdgeTracker, with settings ranging from VeryWeak to VeryStrong. This controls how strongly the FinderEdges detection tries to preserve continuity of the edges it is tracking. The default value, Strong, makes it possible to read difficult codes, but it also tends to find a lot of false edges in the background noise. Reduce it to achieve lower execution times.
Changed: The mechanism for aborting long-running AVL function calls (a.k.a. time-out) has been revised. Before, when you called avl::CancelCurrentWork() from one thread, an AVL function running in another thread would stop, returning empty data on outputs. Now, it throws an exception, atl::CancellationError. This way it is easier to handle it, especially when the cancelled call is deeply nested in your code.
Improved: Data Matrix code reader now respects Work Cancelation more tightly (the delay between the moment avl::CancelCurrentWork() is called and when the work actually stops, has been reduced).
New: Aurora Vision Studio has been integrated with AIL (Aurora Imaging Library, formerly known as MIL) - if you install both Studio and AIL on the same computer, some functions from AIL will become available in Studio as filters. First available filters are for Code Grading applications.
New: Added filters for removing files: RemoveFile_Single and RemoveFile_Multiple.
New: New filters were added for color space conversions: RgbToYCoCgR and YcoCgRToRgb and AverageChannels_251.
New: Eye-in-hand calibration can be performed using *CalibrateEyeInHand *filter.
New: The ReadCodes_IK tool now supports also GS1-128 standard.
- Changed: The interface of the new ReadCodes_IK breaks backward compatibility. You may need to adjust that tool in programs created in version 5.3.
New: Morphological functions for shapes: DilatePolygon, ErodePolygon
WebHMI
-
New: A new Web-based HMI is available, now based on XAML UI description language.

-
WebHMI can be used to display program results and set parameters through a user-designed web site. There are several basic web controls that can be arranged freely both with our new designer and with an XAML-like syntax. Any input control change can be handled through Event Handlers, similar to the way it is done in the classic Aurora Vision Studio HMI system.
- WebHMI can be used on both Windows and Linux platform.
New: List of available WebHMI controls, in the first version:
- Path
- PictureBox
- StatusIndicator
- TextBlock
- Button
- CheckBox
- ComboBox
- RadioGroup
- Slider
- Switch
- NumericUpDown
- Border
- Divider
- StackPanel
- TablePanel
- TabControl
Note: This WebHMI communicates over the HTTP protocol. AVS Runtime becomes a web server. It is up to you to implement appropriate IT security measures - in particular, we advise not to use WebHMI outside of your local network as images and other data are transferred without encryption.
AVL.NET
New: Aurora Vision Library is now available for .NET Standard 2.0. It makes it possible to run not only with .NET Framework 4.8.3, but also:
- .NET Core
- .NET version 5, 6, 7, 8
- .NET on Linux
- NOTE: The build is currently available as a nugget - contact our support to get access.
Linux & Android
- New: 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.
- New: 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.
Interoperability
- New: Added support for OPCUA client.
- New: Added filters for communication with Microsoft SQL databases and SQL Lite.
- New: Added new filters variants for Http_SendRequest: GET, PUT, POST, PATCH, DELETE
- New: Added filters for handling JSON files.
- New: All HTTP and FTP filters now supports secure SSL connections.
Hardware Support
- New: Added support for LMI GoPxL Beta SDK, version 1.0.109.203.
- New: Added support for Omron STC cameras.
- New: Extended support for Matrox 4Sight computers with industrial networks support.
- New: JAI camera are now supported also on the Linux platform.
- New: Axis cameras are now supported also on the Linux platform.
- Update: Updated support for DAQmx to version 23.3.
- Update: Updated support for HiK Vision cameras to version 4.0.1.
- Update: Updated support for Ximea cameras to version 4.26.
- Update: Updated support for Ensenso SDK to version 3.5.
- Update: Updated support for uEye SDK to version 4.96.
- Update: Updated support for Pylon SDK to version 7.4.0.
- Update: Updated support for Advantech UNO-1372G.
- Update: Updated support for Photoneo to version 1.11.1.
New Aurora Deep Learning™ Examples
- New: Deep Learning - Cosmetic Composition Reading (Read Characters)
- New: Deep Learning - Egg Inspection (Detect Anomalies)
- New: Deep Learning - Locating Text of Varying Sizes (Locate Text)
New Aurora Vision Studio™ Examples
- New: OPCUA Client To Server Communication
- New: Database Microsoft SQL Server
- New: HMI Logging Changes
- New: ImageKit Read Codes
- New: Working with JSON format example
- New: WebHMI - Capsules (based on old Capsules)
- New: WebHMI - Handling Events
- New: WebHMI and HMI - Bottle Inspection (based on old Bottle Inspection)
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.
- 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.
- 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.
- 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
- New: C++ Code Generation has been implemented for programs that include sections (new in 5.0).
- Improved: Tables of Content and tool tables have been re-designed for easier browsing. See:
-
- New: Additional properties have been added for filter outputs:
-
- Segment2D.Direction
- Segment2D.Center
- Line2D.Orientation
- Vector2D.Direction
- Path.Length
- 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: 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.

- 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: 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
- 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.
Deep Learning
- New: Here comes the WEAVERTM inference engine. Our deep neural networks have been completely re-written using cuDNN (GPU) and low-level C++ (Intel CPU). No general purpose frameworks or Python code is being used for executing your models on production anymore. In this version changes apply to three tools: Feature Detection, Point Location and Object Classification:
-
- Improved: The three main tools run approx. three times faster, both in GPU and CPU modes!
- Improved: Running these tools does not require working Deep Learning Service anymore.
- Warning: Models trained in pre-4.10 versions are no longer supported. You need to re-train them.
- Changed: Removed the first parameter of type DeepLearningConnectionState from DeepLearning_DetectFeatures/LocatePoints/ClassifyObject functions and from avl::DeepLearning::FeatureDetection/ObjectClassification/PointLocation::SolveTrainingSamples in the C++ training API.
- Changed: Deep learning tools, libraries, examples etc. are now installed by the deep learning installation package (up to version 4.11 they were installed already by the installation package of Studio). If one installs only Adaptive Vision Studio, will get filter placeholders only.
- In Object Classification:
-
- New: It is possible to select multiple objects on a single image in the Object Classification tool.
- Improved: The Object Classification tool now works with rectangular regions-of-interest of any orientation. This makes it possible to recognize object orientation first and then normalize it before the actual classification. For example, previously we were locating bees with a bounding box only and classification between the healthy and the ill bees had to deal with different rotations. Currently we can locate a bee's head and abdomen, and fix the orientation so that the classification tool will always get the bees with heads on the right and abdomens on the left. This reduces the task's complexity and thus improves the results.
- New: Another improvement in the Object Classification tools is display of a heatmap which demonstrates which regions of the input image were considered more important by the neural network. This is very useful for diagnostic purposes.
- New: There is a new parameter in the Object Classification tool: Detail Level. It makes it possible to perform effective classification also on high-resolution images where little defects may influence the classification result.
- Improved: A parameter name was changed in the Feature Detection tool from "Feature Size" to "Patch Size". The previous name was misleading, because it had a different meaning than in other tools and our users have frequently used values which were too small. You may be interested in re-evaluating your projects with a higher value of this parameter.
- Improved: The default value of the "Downsample" parameter in the Point Location tool was changed from 0 to 2. We identified the value 2 as the median of the best performing values from many different projects. Using this tool with the default value 0 in version 4.11 was resulting with highly sub-optimal execution speed.
- Improved: If one uses the Point Location tool with a small value of Downsample and a big value of Feature Size, (s)he will get a warning message with suggestion to increase downsampling. This was another common reason for sub-optimal use of the tool among our users.
- New: A new Anomaly Detection method has been added, codenamed "Featurewise". It improves the results of our auto-encoding neural network by replacing the pixel-wise image comparison with direct analysis of the feature space. In many applications (but not all!) this results in superior accuracy to that of the older methods codenamed "Denoising" and "Contextual".
- New: Pre-processing parameters were added to the Instance Segmentation tool.
- New: nVidia RTX GPU cards are now supported.
- Changed: Instead of a single DeepLearning_LoadModel filter there are now separate filters like DeepLearning_LoadModel_FeatureDetection.
- New: It is now possible to mark images as training, testing or validation manually in the deep learning editor.
- Improved: Speed-ed up loading multiple models.
Deep Learning - UX
- Improved: When starting Deep Learning Service, its window remains visible until the service is fully loaded (was: hidden without visible clues for the user that it is still starting).
- New: The path to the model being edited in a deep learning editor is now clearly displayed at the bottom of the screen, together with Train and Resume buttons. This path should remind the user that he is editing a model on disk. This model is external to the current project and may be used in other projects too.
- Changed: The OK/Cancel/Apply buttons in deep learning editors have been changed to BIOS-like Save / Save & Exit / Exit Without Saving. This reflects the fact that a deep learning editor is not actually a simple modal window, but almost a stand-alone application that works with a model saved on disk.
- Improved: Options and commands available in individual steps of the Workflow have been made more unambiguous.
- Improved: The OK/NOK buttons that appear in the Image Set are now more interactive to indicate that they are clickable. These buttons now also appear in the central image view.
- Improved: When a model is not trained yet, the "Training Results" step displays an information that results are not available. This is meant to remove confusion when the user might think that the results are empty.
- Improved: Descriptions of augmentations have been improved and extended.
IDE
- New: Minimal Program View has been re-designed for greater usability and even greater compactness. Each tool in this view is now more like a command than like a data-flow tool. Outputs are clearly exposed while inputs should be configured only through the Properties Window. The general idea is that using this view does not reveal the structure of connections, but compensates that by making it possible to add much more tools without loosing readability. Basic applications can now be done within one macrofilter. See: picture.
- New: Formulas can be directly edited in the Minimal view like it was possible in the Compact view.
- Improved: Calculation of numerical statistics in the Results Windows has been optimized.
- New: The statistics that appear in the Results control can now be also accessed as additional outputs of filters in the program.
- New: It is now possible to create new macrofilters after Ctrl+Space.
- New: User-types can be searched in the search box of the Project Explorer window.
- Improved: 16-bit images are supported in data editors.
- New: Filter descriptions have been translated to all supported languages (Chinese, English, German, Japanese, Polish).
- Improved: Macrofilter .Net Interface generator dialog has redesigned "Compiler" tab with more intuitive build tools selection.
- New: It is possible to choose the Windows SDK version when generating Macrofilter .Net Interface assemblies.
New and Improved Filters
- New: The following filters were added: AngleBetweenPlanes3D, AngleBetweenSegments3D, AngleBetweenThreePoints3D, AngleBetweenVectors3D, SplitPointGrid3D, LineLineIntersection3D.
- New: Property Segment3D.Length was added.
- Improved: The ImageDifference filter can now work with multi-channel images without averaging channels.
- New: An additional CalibrateWorldPlane filter has been implemented for working with multiple grids.
- Improved: The filter DetectCalibrationGrid_Circles has been re-implemented.
- New: Profile processing filters have received an inRange input which is equivalent to inRoi for image-processing operations.
- New: FitSegmentToPoints filters now have also robust versions (TheilSen, RANSAC etc.).
- New: Additional documentation on Image Stitching has been written:
https://docs.adaptive-vision.com/4.12/studio/machine_vision_guide/CameraCalibrationAndWorldCoordinates.html#stitching_
- New: Some new statistical analysis filter wer added: FindDataMode (with methods: FixedCount, FixedSpread, MeanShift), QuadraticRegression (with robust variants).
- New: Another new filter is GetProfileValue.
- New: There are new filters SelectByPredicate and SelectByRange, which are very similar to ClassifyByPredicate and ClassifyByRange, but have fewer outputs and thus are a bit faster. Use them in the bottlenecks of your application.
- New: Another new filter has been added, CropImageToQuadrangle.
- Improved: Great performance improvement on modern processors has been achieved by optimizing filters for the AVX2 instruction set. The following filters have been improved: LocateSingleObject_NCC, LocateMultipleObjects_NCC, ThresholdImage, ThresholdImage_Relative, RgbToHsv, SharpenImage, RemapImage, ImageDifference, SmoothImage_Mean_Mask, SmoothImage_Gauss, SmoothImage_Gauss_Mask, DifferenceOfGaussians, DilateImage, ErodeImage, AverageChannels, AddChannels, GradientImage_Mask, GradientMagnitudeImage, GradientDirAndPresenceImage, RemapImage and almost all the Image Combinators.
- Improved: 1D Edge Detection and Shape Fitting filters have been further optimized. In some cases you can achieve a speed-up factor of 4.
- Improved: Image downsampling has been optimized with better use of multi-threading.
- New: A new filter for advanced image segmentation has been added, FindMaxStableExtremalRegions.
Data Matrix codes
- New: There is a new metod for detection of Data Matrix codes, named "FinderEdges". It improves reliability in most (but not all) of our datasets at a cost of slightly higher execution time. This method is especially recommended when Quiet Zone of the code may be distorted.
- Improved: Data Matrix code reading implementation now uses a new, better scheme of parallel data processing. On modern Intel processors it results in speed improvement between 5% and 20%, depending on the case.
- New: It is now possible to read codes with distorted outline. It is controlled with the AllowDistortion parameter.
- Fixed: Reading of Data Matrix codes caused trouble when running in parallel. Now it has been made fully thread-safe.
Hardware Support
- New: Support for SmartRay 3D sensors has been added.
- New: Support for Microview cameras has been added.
- New: Support for Dahua cameras has been added.
- Improved: New Photoneo SDK support (1.2.14)
- Improved: A workaround for problems with GenTL module lifetime of some cameras has been made. There is a new setting, "Keep System Modules Alive".
Licensing
- New: We introduce a new licensing scheme for Adaptive Vision Library, named "CoreLimit". Licenses with CoreLimit allow any number of threads on a computer with maximum 8 physical cores.
- New: It is now possible to have usb-dongle licenses with ThreadFactor and CoreLimit.
- New: It is now possible to have licenses for individual modules not only for Library Runtime, but also for Studio Runtime (only for very high volume applications).
- New: A dongle-based license now contains information about the user it is assigned to.
- Changed: Licensing mechanisms for the Factor number were re-implemented. It is now more strictly checked.
- Changed: Newly created dongle-based licenses will not work with versions earlier than 4.12. Old dongles that will be upgraded will work.
- Improved: Adaptive Vision Library Lite received many new filters, especially in 2D Geometry, which were only available in Professional edition before. Our aim here is to make it a much more functional alternative for OpenCV/imgproc, but together with extensive geometrical filters and basic image acquisition interfaces.
AVL.NET
- New: Added generic functions LoadObject and SaveObject for storing AvlNet objects.
- Fixed: Optional outputs support in AVL functions - it is now possible to choose which outputs should be calculated.
- Changed: Optional structs are handled with new AvlNet.NullableValue\<T> class, dedicated to the structures (class alternative to the System.Nullable\<T> that cannot be used as a generic type parameter).
- Changed: Reduced the previously too large amount of AVL function overloads.
- Improved: Introduced AVL function overloads that skips outputs that have declared default values in the C++ counterpart.
Linux - AVL
- New: QtCreator wizard support
Other
- New: C++ Code Generator now supports writable global parameters.
- Improved: The HMI control DetailedListView can now process mouse and keyboard events.
Release Notes: Adaptive Vision Studio 4.11
2019.01.22
New and improved filters
- Changed: Edge-based Template Matching has two new parameters, inEdgePolarityMode and inEdgeNoiseLevel, which replace inIgnorePolarity. The new version has more capabilities to adapt to difficulties specific to some tricky applications. If you were using inIgnorePolarity=True, you must manually set inEdgePolarityMode to Ignore in your program.
- New: Camera calibration tools have been completely redesigned. The new tools can be used to easily and accurately perform both image rectification and image to world plane transformation of geometric primitives (such as points), in presence of lens and perspective distortions. Applications such as image stitching and hand-eye robot coordination are now possible.
https://docs.adaptive-vision.com/4.11/studio/machine_vision_guide/CameraCalibrationAndWorldCoordinates.html
- New: LocatePointPattern tool has been implemented that makes it possible to perform quasi-Template Matching when the input data is not an image, but a set of detected characteristic points.
- Improved: It is now automatically detected when the same object is being used on the input and on the output of a function that does not allow in-place data processing.
- Changed: LoopMinimum and LoopMaximum can now accept conditional objects on the 'inValue' input. It makes it easier to use these tools in practical applications.
- New: Filters for Photometric Stereo have been added. Some really amazing results can be done for stationary objects illuminated from 4 different sides.
- New: Support for PDF417 codes has been added (ReadSingle/MultiplePDF417Code).
- Improved: Reading of Code39 codes have been made significantly more robust.
- New: There is a new measurement filter, RegionCaliperDiameter - finding the most narrow region projection among all possible directions.
- New: Special functions avl::CancelCurrentWork and avl::ResetIsCurrentWorkCancelled can now be used to gently stop execution of a tool that runs in a separate thread.
- New: AdjustPointGrids3D tool has been added for point grid registration. It can be used to find precise location of an object within a 3D point cloud.
- Improved: Filters computing image gradients have been optimized for the AVX2 instruction set.
- Improved: Bilinear image resize has been optimized.
- The most up-to-date performance analysis see: https://www.adaptive-vision.com/en/technical_data/performance/
Deep learning
- New: A new powerful tool has been implemented for Point Location. It makes it possible to detect objects by looking for characteristic points on the input image.
https://www.youtube.com/watch?v=N56UDQgpJbc
- New: There is a stand-alone application for training deep learning models, Adaptive Vision DL Editor. It can be deployed to the production environment without installing full Adaptive Vision Studio software there.
- Improved: All deep learning tools are now based on CUDA version 9.
- New: There is a new filter DeepLearning_IsServiceRunning which can be used for error diagnostics in the runtime system.
- Improved: It is now possible to specify various stopping conditions for training, not only the number of iterations.
AVL.NET (REDESIGNED)
- Changed: Passing of output parameters has been redesigned for better performance. Now, in most cases "out" modifiers are removed (they are only left for structures and structure-like types). This allows for the tools to re-use already allocated the memory of the output data. Here is a quick migration guide: https://docs.adaptive-vision.com/4.11/avl/net/gettingstarted/migration_guide.html
- Changed: Introduced AvlNet.NullableRef\<T> and AvlNet.SafeNullableRef\<T> for AVL reference types to make AVL.NET API more readable and self-explanatory (see the migration guide for details).
- Changed: Replaced .NET arrays with built-in System.Collections.Generic.IList\<T> as atl::Array\<T> .NET equivalent in AVL functions.
- Changed: Type properties of either native wrapper type, IList\<T> type or nullable reference type are now views for internal state of the parent object. This way one can access those compound objects directly without the need of using temporary objects.
- New: Introduced disposable AvlNet.SafeList\<T> and disposable AvlNet.SafeNullableRef\<T> for easier management of disposable list elements and nullable reference items. This, combined with "out" modifier removed, makes it possible to effectively use the "using" clause in cases with lists and nullable references in function outputs.
- Changed: Filter cancellation in the AVL.NET has been unified with cancellation logic in the native AVL. Now user need to manually call off the filter cancellation. Until now, AVL.NET functions has always been calling the cancellation off before execution. This could lead to unexpected calls to the sequence of long-lasting AVL functions.
.NET Macrofilter Interfaces
- Improved: Serialization and deserialization of AVL.NET types being passed to/from the execution engine has been redesigned.
- Fixed: Changes to the User Types being exported to the Macrofilter .NET Interface assembly did not enforce the assembly to rebuild and the assembly was still considered as up-to-date.
- Improved: In the generator dialog the dependent User Types are automatically selected to prevent the errors in the assembly compilation phase.
- Improved: In the generator dialog User Types and Macrofilters items provides details tooltips. Disabled items provides info about the disable reason.
- Known issue: User Types containing disposable fields (e.g. Image, Region) must be managed manually, i.e. all fields need to be disposed separately by the user.
Writable global parameters
- New: Global parameters are now variables. They can be read and written with special filters named ReadParameter and WriteParameter.
Please note, that this new feature is meant to be used only in relatively rare circumstances and not to be used to replace network of connections between filters! One particular application where we do recommend using writable global parameters is receipe management.
Profinet support
- New: Profinet communication is supported through Hilscher hardware cards.
Other
- New: 3D scanners from Photoneo company are now natively supported.
- Changed: Filter performance statistics are now computed per instances of macrofilters (was: average of all instances).
- New: There is a new property in .NET HMI designers named "HideSelectors" which makes it possible to hide the top line with image selection. Is has always been possible in the HMI Designer in Studio, while now it is possible also in AVL.NET.
- New: Basic documentation of filters (description and applications) can now be available in multiple languages (English, German, Chinese, Japanese, Polish).
- New: CMake support - the
AVL
and AVL_Lite
libraries can now be discovered after installation using find_package(AVL CONFIG REQUIRED)
call in CMake. The mechanism is portable between Windows and Linux. Some examples were modified to use it. Use of CMake is recommended if the application should be portable to Linux.
*
*
Release Notes: Adaptive Vision Studio 4.10
2018.09.19
Deep learning
- New: A new tool, DetectAnomalies2, has been implemented for fast and effective detection of undefined defects. There is a significant improvement over the previous version of the tool as a completely new method has been employed here. The old tool (DetectAnomalies1) uses image reconstruction techniques, while the new is based on one-class classification.
- New: Another new tool, SegmentInstances, can now be used to detect objects even if they have highly variable shapes, touch each other or even intersect. A very unique feature of this tool (comparing to other products) is that it not only detects the bounding box, but also the mask of each object.
- New: A advanced C++ API was created that lets our users create their own training GUI. See the documentation:
https://docs.adaptive-vision.com/4.10/avl/technical_issues/DeepLearningTrainingAPI.html
- Improved: Set of possible augmentations has been enlarged.
- Improved: Better error checking and more descriptive errors in training continuation.
- Improved: Detect Anomalies 1 - the Global network returns significant better reonstructions and heatmaps.
- Improved: Training and inference of Object Classification have been sped up significantly. Quality of classification is also improved.
- Improved: Added diagnostic output in DeepLearning_ClassifyObject returning heatmap indicating how specific parts of input image influenced classification result.
- Improved: Instance Segmentation is more sensitive for small objects.
- New: A new tool, AdjustPathArrayToEdges, can now be used to achieve highest possible subpixel precision in object location. It can be used stand-alone (if the object location changes only a bit) or as a postprocessing step for other location tools.
- New: A template matching tool was implemented for arrays of 2D points, LocateSingle/MultiplePointPattern.
- New: A new calibration tool for telecentric lens distortion was added.
- Improved: SplitRegionIntoComponents tools was optimized better for execution on multiple threads.
- New: There is now a tool for basic grading of 1D codes, GradeBarcode(*).
- Improved: New parameters inMaxContrastRatio and inMaxBrightnessRatio improved gray-based template matching - by limiting these one can get higher performance and fewer false positives.
- Improved: Several tools have been further optimized for NEON instruction set on ARM.
- New: Code grading tools for Code39 and Code128 standards were added (see the GradeBarcode filter).
- Improved: Edge-based Template Matching and 1D Edge Detection tools have been aggressively optimized for the most recent processor architectures. In some cases speed-up factor is above 50%.
- Improved: Also optimized have been the tools for thresholding images to regions.
- New: Barcode reading tools were extended to support PDF417 standard.
HMI and Adaptive Vision Executor
- New: There is a new mechanism for setting the .Enabled property of HMI controls automatically depending on a condition of another control (e.g. a ComboBox). It is named EnabledManger and comes in the "Logic and Automation" category.
- New: Adaptive Vision Executor now supports multiple languages for all standard elements of its interface (excluding user-defined HMI). Currently we support languages: English, Polish, German, Chinese.
- New: Adaptive Vision Executor application may now be run in console mode (without HMI).
- Fixed: The inVariables input of the BoolIndicatorBoard HMI control could not be set from the program (*).
- Improved: HMI in big applications is getting loaded much faster.
Avl.Net
- Improved: Usability of AvlNet.Designers API was improved. It is now more difficult to use it incorrectly.
- New: Avl.Net now supports 3D data processing with Surface type.
- Improved: Memory management in Avl.Net has been optimized. Some unnecessary data copying was removed.
- Improved: There is one common base class for all AVL exceptions (as atl.Error in the C++ API).
Other
- New: User Types (structures and enumerations) can now be created and edited directly in Adaptive Vision Studio.
- Fixed: Revesal of pixel channels (RGB \<-> BGR) was not working for OpenCV conversion functions.
- New: Software triggering is now supported for Gocator devices.
- New: Acquisition of Measurement data from Gocator was implemented.
- Changed: Arrays of arrays become displayed column-wise instead of row-wise in data previews.
- Improved: All the numbers presented in Studio can now be displayed with more than three fractional digits (configurable).
- Fixed: There were locale-related issues on Turkish version of the Windows operating system.
- Fixed: Undo command is now supported also in the Results control.
- Improved: The version number of Adaptive Vision Library is now rigorously checked during program execution. We require an exact match between the version of library the program was compiled with and the version that is distributed with the application.
- Improved: Data acquisition filters for ENSENSO devices now include colors for the acquired 3D points.
- New: There is a PDF version of documentation: https://docs.adaptive-vision.com/4.10/pdf/
- New: Each filter's output, as well as the filter itself, can now have a .Status property (Bool type) which indicates the inspection result (Pass or Fail).
(*) 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
- New: Our special HMI controls, such as ZoomingVideoBox, AnalogIndicator or OnOffButton, are now available for use with AVL.NET. It becomes more straightforward to port an application from Studio to a C# project.
- Changed: Mouse Up and Down events have been modified in VideoBox controls to better correspond to standard Windows controls.
- New: There are new outputs in the ZoomingVideoBox control: outLeftClick, outMouseMove.
- New: User Types became supported in .NET Macrofilter Interfaces.
- New: DLL files of .NET Macrofilter Interfaces can now be versioned and signed. This makes it possible to use them in signed applications.
3D Machine Vision
- New: Support for Gocator's "Sections" have been added.
- New: Shape fitting filters, well known from our 2D library, are now also available in 3D.
- New: Profile data can now include information about offset and scale on the X axis. This makes it possible to represent 3D scans in real-world units.
- Changed: Gocator_GrabResampledProfile now returns a Profile instead of Point2DArray.
- New: New basic filters: RemoveInvalidPoints3D, CropSurfaceByPlaneProximity, CropSurfaceByNeighborsProximity, GetSurfacePoint, GetSurfaceElement. (*)
- New: Point clouds can be loaded from .STL and .PLY files. (*)
- New: 3D data previews can now be switched to orthogonal projections. (*)
- New: Regions can be visualized on 3D data previews as open-base prisms. (*)
- New: Paths can be visualized on 3D data previews as curved vertical walls. (*)
- Improved: Toolbox structure has been revised after we finished implementing all the basic 3D filters. (*)
- Changed: By default 3D data get colored along the vertical axis (Y or Z depending on a setting).
Results window and inspection status
- New: There is a new window, Results, that displays for filters seleted in the Program Editor:
-
- Name, Type and current Value,
- Limits, current Pass/Fail indications and Pass/Fail statistic,
- Statistics such as: minimum, maximum, average, median and scewness.
- New: Each filter's output, as well as the filter itself, can now have a .Status property (Bool type) which indicates the inspection result (Pass or Fail).
Regions of interest
- New: There is a new type of data, named RegionOfInterest, which is an union of rectangle, circle, polygon and region. It makes it easier to: (a) use geometrical primitives as regions-of-interests (no need to use CreateRectangleRegion and similar filters), (b) draw basic regions-of-interest in the editor, (c) handle regions-of-interests in the HMI.
- Improved: Image and region morphological operations have been significantly speeded up.
- Improved: Some image drawing filtres have been significantly speeded up.
- Changed: The filters for locating image local extrema had several outputs. These outputs have been merged into structures and now these filters have only one output.
- Fixed: GetArrayElement_OrNil filter was throwing a DomainError in a scenario with inInvers=True instead of returning a Nil value. (*)
- Changed: Some filter names appeared weird and we changed them or made shorter:
-
- MergeWithDefault -> MergeDefault
- JoinArrays_OfArray -> FlattenArray
- JoinArrays_OfLoop -> AccumulateArray
- LastMultipleObjects -> AccumulateElements
- Fixed: CombineSpatialMaps was creating some artifacts. Now it is all smooth. (*)
- Changed: Filters PointOnLineProjection and similar have been renamed to ProjectPointOnLine (and similar) to keep with general conventions.
- Improved: Our Data Matrix reader has been extended with inContrastPerturbations parameter that allows for checking different parameters for more reliable detection. (*)
- Improved: Long-running data matrix detection can now be cancelled (in the development environment). (*)
- Improved: 2D Edge Detection filters have been significantly optimized for UINT8 pixels.
- New: Dynamic thresholding is now possible also with Median and Middle filtering (was: only with Mean).
- Improved: PCA filters have been revised. Now we have three: (Create/Apply/Reverse)PCATransform.
- Improved: 2D Edge Detection filters have been significantly speeded up and improved for noisy images.
- Improved: There is a new filter for easy conversion from image to real distances: PixelToRealDistance. It supports a constant bias as an additional parameter.
- Improved: The ProfileSections filter has got new inputs for setting min/max gap or section widths.
- Improved: The ResizeImage filter has been optimized for integer scaling factors.
GigE Vision 2.0
- New: Support for 64-bit Block Identification Mode (Extended ID Mode).
- New: Support for new Extended Chunk Data format.
- New: Support for Multi-zone Image format.
- New: Support for new stream packet Status Codes and flags improving lost packets recovery process.
- New: Support for XML file Manifest Table.
Other
- Improved: Region, Path and Profile data are now returned from filters without copying of the internal data buffers. This optimizes performance and memory usage.
- Fixed: Adaptive Vision Executor does not prevent Windows system shutdown anymore. (*)
- Fixed: User filters did not define NDEBUG definition in the Release mode.
- New: User types can now be used in formula blocks.
- Fixed: The documentation for AVL.NET was generated incorrectly in some places resulting in mismatch between entries and their descriptions.
- New: Visual Studio 2017 is now supported for creating User Filters. (*)
- Improved: Adaptive Vision Library for Linux has gone through a major revise. A number of compatibility problems with various libraries and systems were solved. (*)
- New: Some additional types of data (Edge1D, Stripe1D, Ridge1D, StringLabel) are supported in the View2DBox control. (*)
- New: It is possible to display numerical values with more than three decimal points.
- Improved: AVEXE files are now protected with a stronger encryption algorithm.
Licensing
- New: It is now possible to have one license with a "factor" number run multiple programs created with Adaptive Vision Library.
- Changed: License names have been revised for better clarity as follows:
-
- StudioProfessional (was: Professional)
- StudioRuntime (was: Runtime)
- StudioSmart (was: Smart)
- LibraryProfessional (was: Library)
- LibraryRuntime (was: LibraryRuntime)
- Improved: License keys based on computer-id were redesigned for increased security.
- Improved: License keys based on computer-id are now based on Base32 encoding, which is more human-friendly.
Hardware support
- New: Cameras from Thorlabs(R) are now supported through the manufacturers SDK. (*)
- Improved: Support for PointGrey cameras through the Spinnaker SDK has been updated. (*)
- Improved: Support for NET's iCube SDK has been updated. (*)
- New: Support for Lumerena cameras has been added.
- New: Support for HikVision cameras has been added.
- New: Support for Ensenso 3D sensors has been added.
- Fixed: There was a mismatch between RGB and BGR color spaces in support for the Imaging Source cameras. (*)
Embedded
- New: Adaptive Vision Library (C++) is now available for nVidia® Jetson platform and for the ARMv8a architecture in general.
Deep Learning Add-on
- New: Added a new Network Type for Unsupervised mode, named Texture, designed specially for detecting anomalies on materials with repetitive pattern.
- New: There is a new tool, DeepLearning_ClassifyObject, which analyses an entire image and decides which type of an object there is.
- Changed: To avoid confusion with classification, the DeepLearning_ClassifyFeatures fillter was renamed to DeepLearning_DetectFeatures.
- New: It is possible to set elliptical Region of Interest during training in Deep Learning Editor.
- Improved: The Training Progress window shows more information and allows for better preview of the training process.
- Improved: Training is almost fully interruptible in the preparation phase.
- New: Chart on the Training Progress window contains information about validation process from an already existing model (if any).
- New: A newly trained model no longer overwrites a previous model automatically. Now, the user has to decide whether to save the new model or not. This decision can be made on the basis of comparison of validation results with the previous ones (see above).
- New: A mechanism for checking compatibility with the version of Deep Learning Service was added. Using a too old Adaptive Vision Studio or Deep Learning Service will result in an error message.
- New: Added a new preprocessing operation: downsampling. It shortens the execution time significantly.
- Improved: Training and classification using Region of Interest is faster and leads to better results.
- Improved: Training in the Supervised mode with multiple classes has been improved.
- Changed: Heatmaps from Deep Learning filters always have one channel now.
- Changed: All samples in the Unsupervised use the same Region of Interest (defined during training).
- Improved: The Unsupervised classification gives results with much better quality. (*)
- Improved: Increased maximum size of image (after downsampling) being able to process.
- Fixed: Handling file path and directories with non-ASCII characters.
- Fixed: Running multiple Deep Learning filters does not worsen performance anymore.
- Changed: Removed "Validation Set Size" parameter - size of validation set is calculated automatically by Deep Learning Service instead.
- Improved: Inference has been significantly speeded up.
- All already trained models should work with new Deep Learinng Add-on. However, to achieve best results, re-training is strongly advised.
(*) 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
- New: Our products have been moved from Microsoft Visual Studio 2010 to Microsoft Visual Studio 2015. User filters and generated C++ code still can be compatible with version 2010 and later.
- Changed: We are moving away from ATL (Adaptive Template Library) to STL (Standard Template Library). We have removed many non-standard classes and functions like atl::Set, atl::AutoPtr, atl::Sort etc. We now recommend using standard C++ elements for that. This was different in the past, because the standard C++ library was not so well implemented on some ARM platforms.
- New: Generated C++ code can output project files and example code for Visual Studio 2015, while before it was Visual Studio 2010. The old version can still be used, but default is 2015.
- Improved: The installation packages have be re-implemented from scratch.
Program Editor, Previews and HMI
- New: There are two new program display modes: Minimal and Simplified. These are designed for more convenient handling of small programs by industrial end users.
- Improved: Static program analysis for array synchronization errors have been significantly improved. You should see much fewer false warnings.
- Improved: There are several improvements in the application for working well with increased DPI displays.
- New: A new button "Iterate Back" can be used to iterate the program back. It is only useful when working with images loaded from files, not with images loaded from a camera.
- New: Two new HMI controls, "View2DBox" and "View2DBox_PassFail", can be used to display inspection results without the need for image drawing filters.
- New: Arrays of geometrical objects have always been displayed completely in data previews. Now it is also possible to display them element-by-element, which greatly improves understanding in some cases.
- New: There is new type, StringLabel, which contains a string and a location. It is useful for displaying results of OCR.
- Improved: It happened in the past frequently, that users accidently broke their data previews by adding an incompatible element. Since this version there is a warning displayed before breaking an existing preview.
Properties Window
- New: Connections can be created through a drop-down menu in Properties window.
- New: When a connection is displayed in Properties window, an icon is added symbolizing outputs of other filters, global parameters or macrofilter inputs.
- New: There is a new "voltage" symbol in the "Value" column header, which changes depending on whether changing of parameters causes filter re-execution or not.
- New: All descriptions of filter or port paths in a program have been unified to a more user-friendly syntax.
- New: Multiple HMI controls can now be selected and have their properties edited together in the Properties window.
New and improved filters
- New: Frequently used filters that can cause Domain Errors for the case of empty input data got a new variant "_OrNil" that returns Nil value instead of throwing an exception. This applies to such filters as RegionMassCenter, PointsBoundingRectangle or GetMinimumElement.
- New: There are several new filters for easy image tiling: CreateImageTiles, CutImageIntoTiles and JoinImageTiles.
- New: Images can be saved to disk asynchronously for increased performance. See new filters with _Asynchronous suffixes.
- New: Filter SetImagePixels can now be used to quickly draw single-pixel dots.
- Improved: RegionIntersection filters have been significantly speeded up.
- New: Filter FindDisjointSets is now available for performing the Union-Find algorithm.
- New: Several new utility filters have been added: TestFirstIteration, SwapObjects, GroupByCase, GetMultipleArrayElements.
Point Clouds 3D
- New: There is a new data structures for point clouds: Surface. It is more efficient than Point3DGrid, but assumes that points are regularly spaced in the X and Y axes.
- New: Data acquisition support for LMI devices has been changed to return Surface instead of Point3Grid.
- New: Many general-purpose 3D filters have been added to Toolbox.
- New: 2D geometric data (e.g. scan paths) can now be edited with the context of a background surface (as it was always possible with background images).
- New: Paths (2D) can be visualized on 3D data previews.
- New: We have added new 1D Edge Detection filters, which work with surfaces in 3D, instead of with images in 2D. The new filters have names with "3D", e.g. ScanSingleEdge3D.
- Improved: When a new data preview is created with a point cloud, the rotation center is now set to the center of the bounding box of that point cloud.
Other
- New: There is a new article on building programs with Adaptive Vision Library under Linux, including ARM-based platforms:
http://docs.adaptive-vision.com/4.8/avl/getting_started/LibraryOnLinux.html
- Improved: Function reference for AVL.NET got the same parameter table than AVL/C++.
- New: PointGrey's sdk Spinnaker is now supported.
- Improved: Support for ICube interface from NET GmbH has been updated.
- New: "Run Until Here" command makes it possible to execute the program until any particular place. This is a very first implementation of breakpoints.
- Improved: All important I/O tools can be found in Toolbox, including Serial Port and Tcp Ip.
- Improved: We have started upgrading support for GenICam/GenTL to version 1.5.
Deep Learning [COMING SOON...]
- New: Filter DeepLearning_ClassifyFeatures has been added that learns image features from 20-50 labelled samples provided by the user, and then automatically detects them on input images. This is also called "supervised training".
- New: Filter DeepLearning_DetectAnomalies has been added that learns how correct objects look like by analysing 20-50 samples provided by the user, and then automatically detects any significant deviations on input images. This is also called "unsupervised training".
- New: Training and execution of deep learning models can be performed both on CPU and on GPU.
- New: The user can prepare training data for supervised training with an easy-to-use graphical interface.
- Note that Deep Learning is a premium feature. Ask your local sales partner for details about pricing.
Release Notes: Adaptive Vision Studio 4.7
2016.12.08
Adaptive Vision Library for ARM
- New: Adaptive Vision Library (C++) is avaiable for the ARM platform (ARMv7a).
- New: Image acquisition through Basler's Pylon SDK is possible on the ARM platform. We have a sample application with that.
Point Clouds 3D
- New: Point Cloud (for 3D machine vision) can be represented as an array of 3D points (Point3DArray, unorganized) or as a 2D grid of 3D points (Point3DGrid, organized).
- New: Point Clouds can be acquired directly from LMI Gocator and IFM devices.
- New: Point Clouds can be seen in a 3D visualization window and explored with all 6 degrees of freedom.
- New: There are standard functions for point cloud transformations and fitting.
New HMI Controls
- New: MultiPanelControl can now be used to create multi-screen applications much easier than with TabControl. (*)
- New: It is now possible to change the application icon for the runtime system. (*)
- New: Password protection now works with multiple user-levels. Different users can be given access to different elements more easily. (*)
- New: A new ProfileBox control is available for displaying charts. (*)
- New: State Management controls got a writable FilePath input and now can be used to load and save object references also with reference names provided from the program.
- New: A tree-structured combo-box have been added for easy navigation between nested HMI controls.
- New: HMI controls can be given names. No more trackBar1, trackBar2 etc.
- New: Shape Editor controls have been added for Gray and Edge Template Matching. This makes it possible for end users to create models in the runtime application.
New Filters
- New: A ready-made tool ExtractBlobs is an easy-to-use replacement of ThresholdToRegion + Open/CloseRegion + SplitRegionIntoBlobs.
- New: AccumulateProfile filter has been added for more easy gathering numeric data for charts.
- New: The ReadBarcodes tool got automatic selection of the format.
- New: Filters MergeAnd and MergeOr have been added for more convenient merging of multiple conditional inspection results.
- New: Filters FindFirst, FindLast and FindAll have been added for more conenient searching of objects in arrays.
- Fixed: Matching accuracy has been fixed for the case of using inMinPyramidLevel greater than zero. There was a systematic error.
- New: There is a new filter, SaveImageToPng, for saving images with user-selected compression level.
- Improved: Filters for Golden Template have been redesigned. Now they do not require cropping of the input image and there is a graphical editor for them.
- Improved: Outputs of Path Fitting filters have been redesigned. Now this is more straightforwad to use these filters in "Bead Inspection" applications.
- Improved: The "prev" operator, that can access a value from a previous iterations in formulas, can now have a second argument specifying the result in the first iteration.
- Improved: The SplitRegionIntoComponents filter has been redesigned and optimized.
Template Matching
- New: The GUI for Template Matching has now two modes of operation: Basic and Expert. The Basic mode is simplified, but still good enough for vast majority of applications.
- Improved: The object center is now clearly visualized in the graphical editors related to Template Matching filters.
Local Cloud Licensing
- New: A new licensing scheme has been made available for running multiple runtime systems on a single computer.
- New: It is now possible to run multiple Adaptive Vision Executor applications on one computer. A license with a "factor" (number of threads/processes) is required.
Improved Touch Screen Support
- Improved: Two-finger gestures work on image previews regardless of the currently selected tool (earlier it worked only with magnifier selected).
- New: The user can select between "PC" and "Tablet" modes during first launch of the application. Several settings get adjusted to better suit the chosen context.
Camera Calibration
- New: The graphical editor for the UndistortImage filter can now work with dot pattern (while in the past it only worked with chessboards).
- New: The graphical editor for the UndistortImage filter now includes also perspective correction step.
- Improved: A new filter, CreateUndistortionMap_Divisional, has been added to allow computing divisional spatial map before the main loop of an application.
.NET Interoperability
- Improved: Image passing has been significantly improved in .NET Macrofilter Interfaces. Now images can be passed between the iterafaces and the user's code without copying.
- Improved: The types appearing in AVL.NET and .NET Macrofilter Interfaces have been unified. Now the two features can be used together.
- Improved: Shape Editor controls are now available for applications based on .NET Macrofilter Interfaces.
Program Model
- New: There are new property ports for arrays: IsEmpty, IsNotImpty.
- New: There are new property ports for conditional types: IsNil and IsNotNil.
- New: There is a new property port for boolean types: Not.
Easier Editing of a Program
- Improved: When defining a new port created by dragging-and-dropping, the user has a simple choice of up to four possible types instead of arbitrary type selection.
- New: Array and conditional types are indicated directly on the ports in the Program Editor. We hope this makes type-related mistakes easier to spot.
Other
- Improved: Filter indexes in the Program Editor are now displayed before the filter name (was: over the filter's icon).
- Improved: Serialization of regions, paths and arrays of primitive types has been optimized by removing some redundant copying of data.
- Improved: Automatic scaling of the Y axis has been turned of in data previews for profiles and histograms.
- Improved: Passing assertions are not written to the log file any more.
- Improved: Rotating rectangles in the graphical editors is now more easy as the "handle" for that can be extended.
- Improved: The language of the IDE can now be more easily changed with a button near the upper-right corner of the main window.
- Improved: Automatic mode of data previews has been re-designed. Now the main preview is focused on principal graphical results. Input values have been removed.
- New: The graphical editor for the Path type now includes options for creating rectangular and circular paths.
- New: There are new commands in the context menu of a macrofilter input: "Rename / Edit Properties...", "Add Macrofilter Input...", "Add Macrofilter Output...".
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.
- 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.
- Improved: Two separate data types, OcrMlpModel and OcrSvmModel, have been merged into a single one, OcrModel.
- New: Articles on OCR:
-
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.
- 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.
- 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.
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.
- 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.
- 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.