Techniques to Maximize Performance
Barcode scanning in automation and robotics is substantially different from scanning with smart mobile devices. These automated systems need to scan barcodes in intensive applications where it is vital that every image taken is processed, and all the barcodes in each image are found and decoded. Furthermore, this processing must be completed at very high speeds. The main challenge to automate barcode scanning is that the application requirements often necessitate the use of high-resolution cameras with a large angle of view, wide enough to capture either whole pallets or many barcodes at once. This makes it even more challenging to find every barcode and process the huge image files in a timely manner.
This paper reviews the key problems in scanning these large image files, the typical barcode label problems, and environmental factors that affect scanning success. We then review the solutions that are built into the Viziotix scanning library to maximize scan success rates in automation.
Viziotix specializes in barcode scanning on fully automatic systems. These systems may be mobile, such as camera-equipped robots and drones, or fixed, such as automated storage, conveyor systems, sorting systems, and medical laboratory analysis machines.
Automated systems vary in their design and features but have similar barcode scanning challenges:
Moving items or systems;
- Varying distances between camera and barcodes;
- Camera resolution limits due to angle of view and distance;
- Varying illumination levels;
- Multiple barcodes per label and multiple labels per image;
- Dirty or damaged barcode labels;
- Use of plastic wraps or packaging materials over the barcodes;
- Requirement for high-volume, high-speed processing.
A number of barcode scanning software SDKs are available to provide scanning solutions for camera-enabled systems. Very few of these were developed specifically for automated scanning, and their levels of performance vary in specific applications.
The key performance metric for automated barcode scanning is the scan success rate. This may be defined as the number of successful scans divided by the total number of barcodes in an image. Maximizing the Scan Success Rate is the key to building successful automated products and systems. In tests against other software barcode scanner libraries and against barcode scanning hardware, Viziotix is able to provide 5%–20% higher scan success rates and up to 10 times faster scanning.
This white paper explains the key scanning problems seen in automated barcode scanning and reviews the technical solutions provided by Viziotix to ensure the highest scan success rates and fastest scan times.
Automate Barcode Scanning with Barcode Scanner SDKs
Barcode scanning by robots, fixed cameras, and other automated solutions is providing new opportunities to automate manual processes. Before introducing a new automated scanning solution, it is important that the barcode scan success rate meets the requirements for that solution. Scan success rates are measured on a data-set of images captured by the actual cameras used in a particular application. Initial measures of scan success rates vary greatly because of the variety of applications and their particular challenges. For instance, in the early stages of a solution’s development, image data sets may include images that do not include all or parts of a barcode or have problems with blur or lighting that make barcodes impossible to scan. For these reasons, scan success rates are normally significantly less than 100% in early solution development. The challenge for barcode software decoders is to maximize the scan success rate on all images where the barcode is present by using a number of techniques to overcome any camera, image, environmental or barcode label issues.
Types of Barcode Scanning Libraries
Not all scanning software provides the same results. The performance of scanning software libraries varies depending on the techniques used to recover information from difficult images. Most commercially available software libraries are designed to scan barcodes on handheld smart-devices (smartphones) with good image quality and a steady stream of images of the same barcode to allow multiple attempts to scan. Automated solutions require libraries designed to be scanned by automated systems that can extract data from every image. The key differences between manual scanning and automated scanning are highlighted below:
Images per scan
10 – 10,000 lux
Automated scanning is often based on obtaining a successful scan from a single imperfect image. As such, complex algorithms must be used to compensate for image problems and recover all the data. This has to be balanced against the processing time so that the scan time is fast enough for the system to be ready for the next scan. It is important to ensure that the software library used for an automated solution has been designed for this usage.
Key Causes of Scanning Problems
The main barcode scanning problems seen in automated applications include:
Multiple codes in the image.
Some or many of the barcodes are not found in an image or frame. Barcodes at the edges are often not found if the library is trained to look for barcodes in the center of the image.
-In a scan where there are 10 codes in an image, typically only 3 or 4 are decoded (so a 30-40% success rate per image).
The ambient lighting in a warehouse or production site is normally between 150 and 200 lux (offices are around 400 lux). However, this may dip to only 50 lux in some zones or in shaded locations near to factory equipment. In these areas, barcodes can be too dark in the image to find and decode. Even if the solution includes its own lighting, the images are often uneven, with light and dark areas.
-5–10% of images in data-sets seen are too dark for the current scanner to decode.
Direct reflections from sunlight or from lighting mounted on the device can obscure parts of the barcode on a label. This problem is made worse when labels are covered by pallet wrap.
-Glare in images can typically affect 5% or more of the images collected by automated systems.
Damage and printing errors.
Barcodes are damaged or marked in handling or become dirty in storage. Mass label printing systems under-or over-burn barcodes.
– Labels with tears, dirt, or printing errors cause scanning problems in 2–3% of the images seen.
Images collected by the system may be blurred due to either movement (moving robots and drones, for instance) or camera focus issues. The effect of this is to make it difficult for the scanning system to resolve all the bars in the barcode. Blur is a problem in all automated barcode scanning systems, but the percent of images that cannot be scanned varies widely depending on the particular hardware.
-In some image data-sets, 20% or more of the images are too blurred to scan without advanced techniques.
As the distance increases between the scanner and the barcodes, the effective resolution is decreased. The same number of pixels is needed to cover an increased image area. At a certain distance, depending on the sensor and optics, there are not enough pixels to resolve the distance between bars or adjacent barcode elements. Most barcode scanner SDKs require the narrow bars in a barcode to be covered by 3 or more pixels across the code. When there are less than 3 pixels, the code is not scanned.
— Resolution problems can affect 10% or more of the images in datasets.
Perspective (Skew & Pitch).
The angle between the camera and barcode impacts decoding as it alters the distance between bars, as seen in the image.
– Perspective problems can affect 10% or more of the images in data-sets.
The time to decode a barcode is heavily dependent on the hardware and software solution. Most scanning software has much slower decoding speeds for barcodes that are not centered in the image. Also, the time taken to find barcodes in large images may be excessive. This is a bottleneck in solutions where the images are scanned in real-time as the speed of the device or conveyor may have to be reduced to allow scanning to keep pace.
-On high resolution camera scanning, decode times above 1 second per image are common.
Impact of Scanning Problems on Scan Success Rate
The actual scan success rate achieved depends on whether the application is more sensitive to some problems than others. The following examples provide evidence of the impact of scanning problems on scan success rates and speed of scanning, based on previous scanning solutions:
- An warehouse inventory robot scanned only 87% of the barcodes in pallet locations
- A storage system scanning speed was restricting the rate of delivery of items to 50% of the system potential.
- A vehicle mounted scanner was unable to find all the codes in the image of a pallet.
Every percentage point counts in applications for inventory scanning. Each percent of scan failures by a robotic inventory system results in 180 pallets not being spotted and tallied in a warehouse with 18,000 pallet locations. It might take 30 minutes of physical labor to locate and repair these “lost” pallets. According to average labor costs, this may translate to warehousing expenses of $15 for each failed scan or $2,700 for 180 pallets.
In data sets analyzed by Viziotix , between 5% and 20% of codes in images where a successful scan should be possible were not scanned.
Automate Barcode Scanning: Software Techniques
Viziotix barcode scanning software is designed for automation solutions. In contrast to manual scanning software, the entire computer-vision chain – from finding codes in images to decoding the identified barcode symbologies – is treated differently. The goal is to maximize scan success rates and minimize decoding time.
Processing Large Images and Edge Areas with Smart-Findr
Smart-Findr, a cutting-edge finder algorithm, powers the Viziotix SDK for fully automated scanning. To find every barcode in the image, a milliseconds-long search of large image files is conducted. In automated systems barcodes are often not centered in the image. In order to find the barcodes and achieve the optimum total scan speeds, the Viziotix Smart-Findr algorithm equally and thoroughly examines the whole image area. This guarantees that all the codes are found, even in edge location cases. In the example below, Viziotix Smart-Findr decodes a code in the center in 19 milliseconds and a code towards the edge in 20 milliseconds. Other measured SDKs either fail to detect the edge code or find it 5x or 10x slower than the centered code.
Multi-code Decoding with Maxi-Scan
When the Smart-Findr process is complete, all the barcodes in an image are located. Then, the Maxi-Scan algorithm is applied to decode all the barcodes found. Maxi-Scan can decode any number of barcodes in an image and output all the data. For maximum efficiency in industrial processes, it is often necessary to decode all the barcodes at once.
Extended Range Scanning and Blur Scanning - Nano-Scan
The small bars of barcodes can be challenging to resolve when the camera’s resolution is at its limit and when there is motion blur. To restore bars that have been lost to blur or low resolution, the Viziotix Nano-Scan algorithm uses sub-pixel resolution techniques.
The available pixels are dispersed over a wider area as the distance between the camera and barcode grows. To resolve and measure the width of a thin bar, the majority of barcode scanners and software require at least 3 pixels. Narrow bars with only 0.7 pixels per bar can be detected by Viziotix software when Nano-Scan is activated.
Nano-Scan sub-pixel resolution doubles the maximum scanning distance compared to other scanning software. This increases the probability of a successful scan in any application where resolution is limited or the distance varies during scanning (such as warehouse inventory drones or robot scanning).
Motion blur is visible when a camera and item are moving in parallel relative to each other. Like resolution constraints, excessive blur can make it challenging to resolve all the bars. Nano-Scan maximizes scan success rates by recovering the bars and allowing the decoding of even very blurred images.
Lighting, Reflection and Contrast Issues
Ambient or embedded lighting may be used by automation solutions depending on the application and environment. Controlled, embedded lighting may offer some advantages, but it is often not able to illuminate all areas of the image evenly (images may be bright in the center but dark at the edges) and may cause direct glare off any reflective surfaces.
The Viziotix decoder makes use of specialized filters to locate barcodes in visually dark images, to control uneven lighting, and overcome glare. This makes it possible for Viziotix software to scan images where the environmental or embedded lighting is low or uneven. With these filters, barcodes partially hidden by glare are found and decoded.
Using colors other than black in the barcode or background reduces the contrast between the bars and spaces. Contrast is also reduced by printer ink or ribbon problems. The same suite of Viziotix algorithms that overcome lighting issues are also used to overcome low print contrast. Barcode contrasts below 25% can be easily scanned with these techniques.
Damage, Dirt and Printing Errors.
Industrial applications in warehouses and manufacturing are harsh environments and barcode labels are often affected by damage, marks and dirt from handling.
To overcome these problems, Viziotix software uses additional bespoke algorithms to decode barcodes with missing or obscured start and stop bars (on 1D codes), damaged finder patterns (on 2D codes), with over-and under-burn (thermal printing errors), with quiet zone violations, and with huge markings over the code.
Angles and Perspective.
Perspective problems are prevalent in systems where the exact orientation of the items or camera are not known or may change from item to item – such as with robotic AMRs or drones.
Special methods for locating and decoding barcodes that are off-plane to the camera are included in the Viziotix library. In order to optimize for situations where this kind of decoding issue is particularly common, additional settings parameters are available.
Speed of decode is a critical metric in inventory scanning due to the high volume of scans and large camera image resolutions needed for large area scans (such as for whole pallets). The Viziotix Smart-Finder and the sum of all the decode processes are designed to be so efficient that clients have reported that the time to scan the same images was reduced by a factor of ten compared to other solutions. This is particularly important for high resolution images with multiple barcodes. In the example image below, a 13MP image of a pallet is scanned, and all 18 barcodes are found and decoded in just 83ms.
Summary of Viziotix Techniques
Viziotix’s SDK and scanning library includes many technologies specifically designed for automation solutions to maximize scan success rates. The Smart-Findr, Maxi-Scan, and Nano-Scan algorithms are some of the technologies critical to these types of solutions. However, there are many other techniques used in the decoding processes that maximize the scan success rates while maintaining the necessary fast scan speeds.
Impact on Example Applications
Four companies with different types of automated barcode scanning solutions found significant performance improvements after switching to Viziotix software:
- Warehouse inventory solution with drones: The percent of pallet locations scanned increased by 5%. The scanning speed increased by a factor of 10. Multi-barcode images and images with barcodes near the edge are now decoded.
- Warehouse inventory solution with robotics (AMR): The scan success rate increased by 7%. The scan speed increased by a factor of 2. The scan distance also increased and this allowed the robotic solution to maintain a straight-line course between the racks and therefore travel 33% faster.
- Vehicle mounted scanner: The scan success rate on 1D codes increased by 5%. The success rate on 2D codes increased by 12%. Previously, this company cropped images before sending them to the decoder to shorted the scan times. This is now not necessary with Viziotix and a time-consuming step in the process is eliminated.
- Automated storage and picking system: The system was operating at less than capacity due to a scan rate bottleneck. By switching to Viziotix software and camera scanning, the item delivery rate was increased by 50%. Even at this increased rate, scanning was no longer the system bottleneck as the scan speed was 10 times faster than the previous solution.
The above Viziotix software scanning technologies combine to offer measurable benefits to automate barcode scanning solutions:
- The Viziotix Smart-Findr approach is adapted for scanning the whole image and not just the center. Maxi-Scan then ensures that all the barcodes in the image are decoded.
- Nano-Scan Sub-pixel resolution works down to 0.7 pixels per bar to compensate for motion and camera blur, and substantially increases the scanning distances.
- Faster Scan Rate. Clients achieved scan times up to 10 times faster than previous solutions on the same hardware.
- A number of other techniques are used to compensate for lighting, damage and printing issues to recover as much data as possible from problem images and barcodes.
The highest scan success rates are made possible by the combination of this automation scanning technology. These cutting-edge methods for scanning single images in automation solutions result in scan success rates that are 5-20% greater than with previous scanning solutions.