# Patent

## Title
Method of error correction for 3D imaging device

## Abstract

A method is presented for correcting errors in a 3D scanner. Measurement errors in the 3D scanner are determined by scanning each of a plurality of calibration objects in each of a plurality of sectors in the 3D scanner's field of view. The calibration objects have a known height, a known width, and a known length. The measurements taken by the 3D scanner are compared to the known dimensions to derive a measurement error for each dimension in each sector. An estimated measurement error is calculated based on scans of each of the plurality of calibration objects. When scanning target objects in a given sector, the estimated measurement error for that sector is used to correct measurements obtained by the 3D scanner.

## Background
FIELD OF THE INVENTION
The disclosure relates generally to imaging devices, and, more particularly, to a method of error correction for an imaging device.
BACKGROUND OF THE DISCLOSURE
Many commercial and research sectors have a need for rapid three-dimensional (3D) measurements of objects. Recently, 3D range cameras (e.g., laser range cameras (LRC), range imaging cameras, range cameras, 3D cameras, time-of-flight cameras, ToF cameras) have gained in popularity due to certain advantages over other types of 3D dimensioning systems such as laser scanners (e.g., LIDAR), and due to advances in technology making the use of 3D range cameras more practical. Range imaging cameras resolve distance based on the known speed of light using a time-of-flight technique. An illumination unit such as a laser or LED array illuminates the field of view. The reflected light is gathered by optics onto an image sensor (e.g., CCD, CMOS). Each collector (e.g., pixel) of the image sensor simultaneously measures the time that it took for the light to travel from the illumination unit to the target object and back to the range imaging camera.
A principal advantage of range imaging cameras is that they are typically able to resolve distances much quicker than laser scanning systems such as LIDAR. Their speed is principally attributable to the fact that the range imaging camera calculates distances to each point in parallel, whereas laser scanning techniques measure distances point by point as the laser passes over the entire target object. Because each pixel detects the distance to its corresponding point on the target object simultaneously, the range imaging camera is able to capture complete images very quickly (e.g., about 100 frames per second). The high-speed nature of range imaging cameras makes them well-suited for real-time applications. For example, range imaging cameras have been used experimentally to control driverless automobiles, and are used to enable certain robotic devices to maneuver through their environment. Another advantage enjoyed by range imaging cameras is that they afford greater simplicity and durability due to their lack of moving parts. In contrast, laser scanning devices typically employ a rotatable mirror to sweep the laser across the target object. Range imaging cameras also tend to be less expensive.
Although there is tremendous potential for range imaging devices in a variety of commercial and research sectors, there remain challenges to the reliability, and therefore usability, of the technology. For example, external factors that interfere with the detection of light reflected back to the range imaging camera can contribute to errors in distance measurement. Background light (e.g., ambient light) can reach the pixels, thereby increasing the signal-to-noise ratio and diminishing the ability of the pixel to obtain an accurate determination of the light beam's travel time. Similarly, interference problems can result when multiple range imaging cameras are in use at the same time, which can lead to one camera detecting the reflected signal generated by the other camera. Other sources of distance detection error for these types of systems may include pixel saturation, mixed pixels, motion artifacts, and internal scattering (e.g., internal reflections of the received signal between the gathering lens and image sensor). Systemic distance measurement errors can result in greatly reduced distance measuring accuracy (e.g., errors of up to tens of centimeters).
Range image cameras are not the only types of dimension imaging devices susceptible to errors in measurement. The aforementioned laser scanners can also experience errors that bring their measurements outside of accepted tolerances. Because the error correction techniques discussed herein could be applied to any of the various types of dimensioning cameras, the term “3D scanner,” as it is used in this disclosure, is intended to broadly encompass any type of imaging device adapted to measure the dimensions of an object, including range image cameras, laser range cameras (LRC), range imaging cameras, range cameras, 3D cameras, time-of-flight cameras, ToF cameras, Lidar, stereo imaging cameras, and triangulation range finders.
Therefore, there exists a need for a method of correcting measurement errors in a 3D scanner.
SUMMARY OF THE INVENTION
In one aspect, the present disclosure embraces a method of error correction for a 3D scanner. A plurality of calibration objects, each having a known height, are provided, along with a 3D scanner having a field of view. At least a portion of the field of view is divided into a plurality of sectors. The 3D scanner is used to scan each of the plurality of calibration objects, in successive fashion, in each of the plurality of sectors to obtain for each of the plurality of calibration objects a measured height corresponding to each of the plurality of sectors. A height measurement error for each of the plurality of sectors is calculated based on the known height of each calibration object and the measured height of each calibration object in each of the plurality of sectors. When scanning a target object positioned in a sector, a corrected height measurement of the target object is calculated from the measured height of the target object and the height measurement error corresponding to the sector. In one embodiment, the calculated height measurement error for each of the plurality of sectors may be stored in a memory store (e.g., a computer memory or computer hard drive).
In one embodiment wherein each of the plurality of calibration objects has a known width, each of the plurality of calibration objects, in successive fashion, are scanned with the 3D scanner in each of the plurality of sectors to obtain for each of the plurality of calibration objects a measured width corresponding to each of the plurality of sectors. A width measurement error for each of the plurality of sectors is calculated based on the known width of each calibration object and the measured width of each calibration object in each of the plurality of sectors. When scanning a target object positioned in a sector, a corrected width measurement of the target object is calculated from the measured width of the target object and the width measurement error corresponding to the sector.
In another embodiment wherein each of the plurality of calibration objects has a known length, each of the plurality of calibration objects, in successive fashion, are scanned with the 3D scanner in each of the plurality of sectors to obtain for each of the plurality of calibration objects a measured length corresponding to each of the plurality of sectors. A length measurement error for each of the plurality of sectors is calculated based on the known length of each calibration object and the measured length of each calibration object in each of the plurality of sectors. When scanning a target object positioned in a sector, a corrected length measurement of the target object is calculated from the measured length of the target object and the length measurement error corresponding to the sector.
In another aspect, the present disclosure embraces a method of error correction for a 3D scanner where a plurality of calibration objects, each having a known height, known width, and known length, are provided, along with a 3D scanner having a field of view. At least a portion of the field of view is divided into a plurality of sectors. Each of the plurality of calibration objects is scanned, in successive fashion, in each of the plurality of sectors with the 3D scanner to obtain for each of the plurality of calibration objects a measured height, a measured width, and a measured length corresponding to each of the plurality of sectors. A height measurement error for each of the plurality of sectors is calculated based on the known height of each calibration object and the measured height of each calibration object in each of the plurality of sectors. A width measurement error for each of the plurality of sectors is calculated based on the known width of each calibration object and the measured width of each calibration object in each of the plurality of sectors. A length measurement error for each of the plurality of sectors is calculated based on the known length of each calibration object and the measured length of each calibration object in each of the plurality of sectors. When scanning a target object positioned in a sector, a corrected height measurement of the target object is calculated from the measured height of the target object and the height measurement error corresponding to the sector; and a corrected width measurement of the target object is calculated from the measured width of the target object and the width measurement error corresponding to the sector; and a corrected length measurement of the target object is calculated from the measured length of the target object and the length measurement error corresponding to the sector.
In another aspect, the disclosure embraces a method of error correction for a 3D scanner where a plurality of calibration objects, each having a first known dimension, are provided, along with a 3D scanner having a field of view. At least a portion of the field of view is divided into a plurality of sectors. Each of the plurality of calibration objects is scanned, in successive fashion, with the 3D scanner in each of the plurality of sectors to obtain for each of the plurality of calibration objects a first measured dimension corresponding to each of the plurality of sectors. For each sector, a first dimension measurement error for each calibration object is calculated based on the first known dimension of the calibration object and the first measured dimension of the calibration object in the sector. For each sector, it is determined if the first dimension error for each calibration object is substantially the same. For each sector, if the first dimension measurement error for each calibration object is substantially the same, the first dimension measurement error is stored. When scanning a target object positioned in a sector, a corrected first dimension measurement of the target object is calculated from the first measured dimension of the target object and the stored first dimension measurement error corresponding to the sector.
In one embodiment in which each calibration object has a second known dimension orthogonal to the first known dimension, each of the plurality of calibration objects is scanned with the 3D scanner, in successive fashion, in each of the plurality of sectors to obtain for each of the plurality of calibration objects a second measured dimension corresponding to each of the plurality of sectors. For each sector, a second dimension measurement for each calibration object is calculated based on the second known dimension of the calibration object and the second measured dimension of the calibration object in the sector. For each sector, it is determined if the second dimension measurement error for each calibration object is substantially the same. For each sector, if the second dimension measurement error for each calibration object is substantially the same, the second dimension measurement error is stored. When scanning a target object positioned in a sector, a corrected second dimension measurement of the target object is calculated from the second measured dimension of the target object and the stored second dimension measurement error corresponding to the sector.
In one embodiment in which each calibration object has a second known dimension orthogonal to the first known dimension and a third known dimension orthogonal to the first known dimension and the second known dimension, each of the plurality of calibration objects is scanned with the 3D scanner, in successive fashion, in each of the plurality of sectors to obtain for each of the plurality of calibration objects a third measured dimension corresponding to each of the plurality of sectors. For each sector, a third dimension measurement for each calibration object is calculated based on the third known dimension of the calibration object and the third measured dimension of the calibration object in the sector. For each sector, it is determined if the third dimension measurement error for each calibration object is substantially the same. For each sector, if the third dimension measurement error for each calibration object is substantially the same, the third dimension measurement error is stored. When scanning a target object positioned in a sector, a corrected third dimension measurement of the target object is calculated from the third measured dimension of the target object and the stored third dimension measurement error corresponding to the sector.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is schematic block diagram of an exemplary computer used in an exemplary method according to the present disclosure.
FIG. 2 is a top elevational depiction of a calibration object within one of a plurality of sectors within the field of view of an exemplary 3D scanner used in an exemplary method according to the present disclosure.
FIG. 3 is an exemplary collection of graphical representations of measurement errors in a 3D scanner as detected by an exemplary method according to the present disclosure.



DETAILED DESCRIPTION
Turning now to the drawings, FIG. 1 is a schematic block diagram of an exemplary computer 20 used in an exemplary method according to the present disclosure. The computer 20 is used to calculate and compile errors in measurement by the 3D scanner, and to apply error correction calculations, as appropriate, to measurements received by the computer 20 from the 3D scanner. The computer 20 includes a mass storage device 40 for storing an operating system 45 and application programs 55. The mass storage device 40 may store other types of information. The operating system 45 is software that controls the overall operation of the computer 20, including process scheduling and management, process protection, and memory management. Examples of a suitable operating system include, without limitation, WINDOWS® 7 from MICROSOFT® CORPORATION of Redmond, Wash., and the LINUX® open source operating system. Typically, the operating system 45 is loaded by booting the computer 20 and is executed directly by the central processing unit 25. An application program 55 is an executable software program designed to perform specific tasks. The application programs 55 may load automatically upon execution of the operating system 45 or in response to a command input.
A main memory 30 provides for storage of instructions and data directly accessible by the central processing unit 25. Main memory 30 may include random-access memory 32 (RAM) and read-only memory 34 (ROM). The ROM 34 may permanently store firmware or a basic input/output system (BIOS), which provide the first instructions to the computer 20 when it boots up. The RAM 32 typically serves as temporary and immediately accessible storage for the operating system 45 and application programs 55.
The mass storage device 40 may be any of the various types of computer components capable of storing large amounts of data in a persisting (i.e., non-volatile) and machine-readable manner. Typically, the mass storage device 40 will be a hard disk drive. Alternatively, the mass storage device 40 may be a solid state drive, optical drive, or other component with similar storage capabilities.
An exemplary embodiment of the computer 20 used to practice the method according to the present disclosure also includes a network interface 80. Typically, the network interface 80 is connected to a network 85, thereby enabling the computer 20 to communicate with the network 85. The network 85 may be any collection of computers or communication devices interconnected by communication channels. The communication channels may be wired or wireless. Examples of such communication networks include, without limitation, local area networks, the Internet, and cellular networks. The connection to the communications network 85 allows the computer 20 to communicate with other network nodes.
The computer 20 receives user input (i.e., user commands) via an input apparatus 75. The type of input apparatus 75 employed by the computer 20 will generally depend upon the input requirements of the application programs 55 (e.g., whether they require data input or simply menu selection). Examples of a suitable input apparatus 75 include, without limitation, a keyboard, a mouse, a light pen, a microphone, a touchpad, or a touchscreen. An input apparatus 75 may include a plurality of input devices (e.g., a mouse, a keyboard, and a 3D scanner). Where data input is required, a keyboard would typically be the preferred input apparatus 75. Where touchscreen input is desirable, the input apparatus 75 may be integrated with the display device 70.
The central processing unit 25, main memory 30, mass storage device 40, network interface 80, display device 70, and input apparatus 75 are all operably connected to a system bus 35. The system bus 35 is adapted to transmit data communications between components of the computer 20 (e.g., between the central processing unit 25 and the network interface 80).
Reference is now made to FIGS. 2 and 3. The method employs a plurality of calibration objects 220. The calibration objects 220 have a known height, a known width, and a known length (i.e., known dimensions). The dimensions of the calibration objects 220 can be predetermined by any conventional measurement technique (e.g., ruler, tape measure). In this way, the calibration object 220 is used as a standard for comparison to the measurements obtained from the unit under test, the range image camera 200. The dimensions of the calibration objects 220 may become known, through the traditional measuring techniques or other suitable method, either before or after the taking of measurement readings by the 3D scanner. A calibration object 220 may be any object of suitable size and shape to be scanned by the particular 3D scanner being employed. Typically, a calibration object 220 will be of a kind similar to the types of objects normally measured by the particular 3D scanner when in regular use. For example, if the 3D scanner typically is used to measure shipping boxes, typical calibration objects 220 would include shipping boxes. Typically, the calibration objects 220 will be of varying shape and size. Varying the shape and size of the calibration object 220 used during each calibration scan will help ensure that repeatable measurement errors are not attributable to a specific shape or size of the scanned object. In other words, using calibration objects 220 of varying sizes and shapes helps to eliminate object size and/or shape as a variable that could be contributing to the measurement error on a given scan.
Each of the plurality of calibration objects 220 are scanned separately (e.g., in successive fashion). Prior to scanning the calibration objects, at least a portion of the field of view of the 3D scanner is divided into a plurality of sectors 210. Typically, the sectors 210 are defined by a grid of uniformly spaced horizontal and perpendicular lines, with each sector 210 being uniquely identifiable by a pair of coordinates (x,y). Typically, the grid is on a horizontal plane. More typically, the grid is on the ground plane (e.g., the supporting surface of the measured objects). Each of the plurality of calibration objects 220 are scanned by the 3D scanner at each of the sectors (e.g., one scan in each of sectors x1,y1 to xn,yn). The result of the scans is a measured height, a measured width, and a measured length for each calibration object 220 at each of the plurality of sectors. These measured dimensions represent the dimensions as calculated by the 3D scanner, which measured dimensions may or may not be accurate. For example, the first calibration object 220 will have a measured height, a measured width, and a measured length at each of sectors 210 (x1,y1), (x2,y2) through (xn,yn). It will be appreciated by persons of ordinary skill in the art that it is not necessary to scan the calibration object 220 in all dimensions (e.g., height, width, and length) if an analysis of fewer than all the dimensions would be sufficient. For example, the height dimension may be important for obtaining an accurate 3D scan; so it may be desirable to only obtain a measured height for each of the calibration objects 220.
Having acquired these measurements with the 3D scanner 200, the recorded measurements are then compared to the known measurements of the calibration objects 220. For a given sector, the comparison results in a measurement error for each of the dimensions (e.g., a height measurement error, a width measurement error, and a length measurement error). A measurement error is the amount by which the measured dimension of the calibration object 220 varies from the corresponding known dimension of the calibration object 220. For example, the first calibration object 220 that is scanned will have a measured height for sector (x1,y1). The difference between the measured height and the known height is that first calibration object's 220 height measurement error for sector (x1,y1). Typically, the calculations of measurement error are performed by the computer 220 using an application program 55 adapted to perform such calculations. FIG. 3 shows an exemplary display generated by an exemplary application program 55 adapted to calculate measurement error. In FIG. 3, there are three rows of charts, with each row depicting data relating to a different calibration object 220. Each of the three columns depicts data relating to one of the three dimensions of height, width, and length. Each bar on the chart represents the calculated measurement error for the corresponding sector 210.
It will be appreciated by persons of ordinary skill in the art that the charts in FIG. 3 reflect that measurement errors were calculated in most of the scanned sectors 210 for each of the calibration objects 220. In other words, every scan typically results in some degree of measurement error, regardless of the calibration object 220 employed or the sector 210 scanned. This is largely attributable to random errors encountered for reasons such as interference. Because these types of random errors are, by definition, not predictable, they cannot be corrected for. The method according to the present disclosure seeks to identify those systemic errors that repeat themselves scan over scan. To identify these systemic errors, it is necessary to analyze the measurement errors to determine which sectors are experiencing about the same level of measurement error (e.g., consistent measurement error) in scans of each calibration object 220. For example, in FIG. 3, the third column shows measurements in the same dimension for three different calibration objects 220. The chart reveals that scans taken on the left side of the field of view tended to have about the same levels of measurement error. As such, the measurement errors in these sectors 210 should be identified using the computer 20 as systemic errors which should be corrected.
To correct the measurement error in a given sector 210, the computer calculates an estimated measurement error for that sector 210. The estimated measurement error is typically calculated based upon an analysis of all the measurement errors (i.e., for different calibration objects) for a given sector 210. The estimated measurement error may be calculated by a variety of methods, including by taking the average of the measurement errors or by taking the mean measurement error. Once an estimated measurement error is determined by the computer 20, the estimated measurement error for each sector 210 is stored in the computer 20 (e.g., in memory or hard drive). In this way, the estimated measurement error can be recalled each time the computer 20 processes a scan of an object located in that sector 210.
The estimated measurement error data is used whenever the 3D scanner is used to measure target objects. Target objects are objects about which the user of the 3D scanner wishes to determine their dimensions. In other words, target objects are objects that are scanned by the 3D scanner that are not calibration objects 220. When the 3D scanner scans a target object, it determines in what sector the target object was positioned. When the measurement readings for the target object are received by the computer 20, the computer 20 applies the estimated measurement error for that sector 210 to the actual measurements for each dimension. In other words, the computer 20 uses the estimated measurement error stored in memory to correct (e.g., by error regression) the 3D scanner's measurements of the target object. In this way, each subsequent scan of a target object is made more accurate by accounting for systemic (e.g., repeated) errors experienced by the 3D scanner. The result is a more accurate dimensional scan which is more likely to fall within acceptable scan tolerances (e.g., scans accurate to within less than one millimeter).
Exemplary methods of determining the dimensions of an object are disclosed in U.S. patent application Ser. No. 13/784,933 for an Integrated Dimensioning and Weighing System, filed Mar. 5, 2013 (McCloskey et al.) and U.S. patent application Ser. No. 13/785,177 for a Dimensioning System, filed Mar. 5, 2013 (McCloskey et al.), each of which is hereby incorporated by reference in its entirety.
To supplement the present disclosure, this application incorporates entirely by reference the following patents, patent application publications, and patent applications: U.S. Pat. No. 6,832,725; U.S. Pat. No. 7,159,783; U.S. Pat. No. 7,413,127; U.S. Pat. No. 8,390,909; U.S. Pat. No. 8,294,969; U.S. Pat. No. 8,408,469; U.S. Pat. No. 8,408,468; U.S. Pat. No. 8,381,979; U.S. Pat. No. 8,408,464; U.S. Pat. No. 8,317,105; U.S. Pat. No. 8,366,005; U.S. Pat. No. 8,424,768; U.S. Pat. No. 8,322,622; U.S. Pat. No. 8,371,507; U.S. Pat. No. 8,376,233; U.S. Pat. No. 8,457,013; U.S. Pat. No. 8,448,863; U.S. Pat. No. 8,459,557; U.S. Patent Application Publication No. 2012/0111946; U.S. Patent Application Publication No. 2012/0223141; U.S. Patent Application Publication No. 2012/0193423; U.S. Patent Application Publication No. 2012/0203647; U.S. Patent Application Publication No. 2012/0248188; U.S. Patent Application Publication No. 2012/0228382; U.S. Patent Application Publication No. 2012/0193407; U.S. Patent Application Publication No. 2012/0168511; U.S. Patent Application Publication No. 2012/0168512; U.S. Patent Application Publication No. 2010/0177749; U.S. Patent Application Publication No. 2010/0177080; U.S. Patent Application Publication No. 2010/0177707; U.S. Patent Application Publication No. 2010/0177076; U.S. Patent Application Publication No. 2009/0134221; U.S. Patent Application Publication No. 2012/0318869; U.S. Patent Application Publication No. 2013/0043312; U.S. Patent Application Publication No. 2013/0068840; U.S. Patent Application Publication No. 2013/0070322; U.S. Patent Application Publication No. 2013/0075168; U.S. Patent Application Publication No. 2013/0056285; U.S. Patent Application Publication No. 2013/0075464; U.S. Patent Application Publication No. 2013/0082104; U.S. Patent Application Publication No. 2010/0225757; U.S. patent application Ser. No. 13/347,219 for an OMNIDIRECTIONAL LASER SCANNING BAR CODE SYMBOL READER GENERATING A LASER SCANNING PATTERN WITH A HIGHLY NON-UNIFORM SCAN DENSITY WITH RESPECT TO LINE ORIENTATION, filed Jan. 10, 2012 (Good); U.S. patent application Ser. No. 13/347,193 for a HYBRID-TYPE BIOPTICAL LASER SCANNING AND DIGITAL IMAGING SYSTEM EMPLOYING DIGITAL IMAGER WITH FIELD OF VIEW OVERLAPPING FIELD OF FIELD OF LASER SCANNING SUBSYSTEM, filed Jan. 10, 2012 (Kearney et al.); U.S. patent application Ser. No. 13/367,047 for LASER SCANNING MODULES EMBODYING SILICONE SCAN ELEMENT WITH TORSIONAL HINGES, filed Feb. 6, 2012 (Feng et al.); U.S. patent application Ser. No. 13/400,748 for a LASER SCANNING BAR CODE SYMBOL READING SYSTEM HAVING INTELLIGENT SCAN SWEEP ANGLE ADJUSTMENT CAPABILITIES OVER THE WORKING RANGE OF THE SYSTEM FOR OPTIMIZED BAR CODE SYMBOL READING PERFORMANCE, filed Feb. 21, 2012 (Wilz); U.S. patent application Ser. No. 13/432,197 for a LASER SCANNING SYSTEM USING LASER BEAM SOURCES FOR PRODUCING LONG AND SHORT WAVELENGTHS IN COMBINATION WITH BEAM-WAIST EXTENDING OPTICS TO EXTEND THE DEPTH OF FIELD THEREOF WHILE RESOLVING HIGH RESOLUTION BAR CODE SYMBOLS HAVING MINIMUM CODE ELEMENT WIDTHS, filed Mar. 28, 2012 (Havens et al.); U.S. patent application Ser. No. 13/492,883 for a LASER SCANNING MODULE WITH ROTATABLY ADJUSTABLE LASER SCANNING ASSEMBLY, filed Jun. 10, 2012 (Hennick et al.); U.S. patent application Ser. No. 13/367,978 for a LASER SCANNING MODULE EMPLOYING AN ELASTOMERIC U-HINGE BASED LASER SCANNING ASSEMBLY, filed Feb. 7, 2012 (Feng et al.); U.S. patent application Ser. No. 13/852,097 for a System and Method for Capturing and Preserving Vehicle Event Data, filed Mar. 28, 2013 (Barker et al.); U.S. patent application Ser. No. 13/780,356 for a Mobile Device Having Object-Identification Interface, filed Feb. 28, 2013 (Samek et al.); U.S. patent application Ser. No. 13/780,158 for a Distraction Avoidance System, filed Feb. 28, 2013 (Sauerwein); U.S. patent application Ser. No. 13/784,933 for an Integrated Dimensioning and Weighing System, filed Mar. 5, 2013 (McCloskey et al.); U.S. patent application Ser. No. 13/785,177 for a Dimensioning System, filed Mar. 5, 2013 (McCloskey et al.); U.S. patent application Ser. No. 13/780,196 for Android Bound Service Camera Initialization, filed Feb. 28, 2013 (Todeschini et al.); U.S. patent application Ser. No. 13/792,322 for a Replaceable Connector, filed Mar. 11, 2013 (Skvoretz); U.S. patent application Ser. No. 13/780,271 for a Vehicle Computer System with Transparent Display, filed Feb. 28, 2013 (Fitch et al.); U.S. patent application Ser. No. 13/736,139 for an Electronic Device Enclosure, filed Jan. 8, 2013 (Chaney); U.S. patent application Ser. No. 13/771,508 for an Optical Redirection Adapter, filed Feb. 20, 2013 (Anderson); U.S. patent application Ser. No. 13/750,304 for Measuring Object Dimensions Using Mobile Computer, filed Jan. 25, 2013; U.S. patent application Ser. No. 13/471,973 for Terminals and Methods for Dimensioning Objects, filed May 15, 2012; U.S. patent application Ser. No. 13/895,846 for a Method of Programming a Symbol Reading System, filed Apr. 10, 2013 (Corcoran); U.S. patent application Ser. No. 13/867,386 for a Point of Sale (POS) Based Checkout System Supporting a Customer-Transparent Two-Factor Authentication Process During Product Checkout Operations, filed Apr. 22, 2013 (Cunningham et al.); U.S. patent application Ser. No. 13/888,884 for an Indicia Reading System Employing Digital Gain Control, filed May 7, 2013 (Xian et al.); U.S. patent application Ser. No. 13/895,616 for a Laser Scanning Code Symbol Reading System Employing Multi-Channel Scan Data Signal Processing with Synchronized Digital Gain Control (SDGC) for Full Range Scanning, filed May 16, 2013 (Xian et al.); U.S. patent application Ser. No. 13/897,512 for a Laser Scanning Code Symbol Reading System Providing Improved Control over the Length and Intensity Characteristics of a Laser Scan Line Projected Therefrom Using Laser Source Blanking Control, filed May 20, 2013 (Brady et al.); U.S. patent application Ser. No. 13/897,634 for a Laser Scanning Code Symbol Reading System Employing Programmable Decode Time-Window Filtering, filed May 20, 2013 (Wilz, Sr. et al.); U.S. patent application Ser. No. 13/902,242 for a System For Providing A Continuous Communication Link With A Symbol Reading Device, filed May 24, 2013 (Smith et al.); U.S. patent application Ser. No. 13/902,144, for a System and Method for Display of Information Using a Vehicle-Mount Computer, filed May 24, 2013 (Chamberlin); and U.S. patent application Ser. No. 13/902,110 for a System and Method for Display of Information Using a Vehicle-Mount Computer, filed May 24, 2013 (Hollifield).
In the specification and figures, typical embodiments of the invention have been disclosed. The present invention is not limited to such exemplary embodiments. Unless otherwise noted, specific terms have been used in a generic and descriptive sense and not for purposes of limitation.

## Claims

1. A method of error correction for a 3D scanner, comprising:
providing a plurality of three-dimensional calibration objects each having a known height, width and length, wherein no two calibration objects have the same shape, and wherein each calibration object is configured such that its height, width and length can be measured using a 3D scanner;
providing a 3D scanner having a field of view;
dividing the field of view into a plurality of sectors;
calculating the height measurement error for each of the plurality of sectors; and
calculating a corrected height measurement for a target object positioned in a sector and scanned with the 3D scanner, the corrected height measurement being derived from both the measured height of the target object and the height measurement error corresponding to the sector in which the target object was positioned when scanned with the 3D scanner;
wherein calculating the height measurement error for a selected sector comprises the following substeps (a-d):
(a) positioning within the selected sector a calibration object that does not yet have a measured height associated with the selected sector;
(b) using the 3D scanner, scanning the positioned calibration object to obtain a measured height of the positioned calibration object, wherein the measured height is associated with the selected sector;
(c) repeating substeps (a) and (b) until each of the calibration objects has a measured height associated with the selected sector;
(d) for each calibration object, comparing the calibration object's known height to the calibration object's measured height associated with the selected sector.

2. The method of claim 1, comprising storing the calculated height measurement error for each of the plurality of sectors in a memory store.

3. The method of claim 1, comprising:
calculating the width measurement error for each of the plurality of sectors; and
calculating a corrected width measurement for the target object, the corrected width measurement being derived from both the measured width of the target object and the width measurement error corresponding to the sector in which the target object was positioned when scanned with the 3D scanner;
wherein calculating the width measurement error for a selected sector comprises the following substeps (e-h):
(e) positioning within the selected sector a calibration object that does not yet have a measured width associated with the selected sector;
(f) using the 3D scanner, scanning the positioned calibration object to obtain a measured width of the positioned calibration object, wherein the measured width is associated with the selected sector;
(g) repeating substeps (e) and (f) until each of the calibration objects has a measured width associated with the selected sector;
(h) for each calibration object, comparing the calibration object's known width to the calibration object's measured width associated with the selected sector.

4. The method of claim 1, comprising:
calculating the length measurement error for each of the plurality of sectors; and
calculating a corrected length measurement for the target object, the corrected length measurement being derived from both the measured length of the target object and the length measurement error corresponding to the sector in which the target object was positioned when scanned with the 3D scanner;
wherein calculating the length measurement error for a selected sector comprises the following substeps (i-l):
(i) positioning within the selected sector a calibration object that does not yet have a measured length associated with the selected sector;
(j) using the 3D scanner, scanning the positioned calibration object to obtain a measured length of the positioned calibration object, wherein the measured length is associated with the selected sector;
(k) repeating substeps (i) and (j) until each of the calibration objects has a measured length associated with the selected sector;
(l) for each calibration object, comparing the calibration object's known length to the calibration object's measured length associated with the selected sector.

5. The method of claim 1, wherein each sector is located on a common horizontal plane.

6. The method of claim 5, wherein the horizontal plane is the ground plane.

7. A method of error correction for a 3D scanner, comprising:
providing a plurality of three-dimensional calibration objects each having a known height, width and length, wherein no two calibration objects have the same shape, and wherein each calibration object is configured such that its height, width and length can be measured using a 3D scanner;
providing a 3D scanner having a field of view;
dividing the field of view into a plurality of sectors;
for each of the plurality of sectors, calculating the height measurement error, the width measurement error, and the length measurement error;
calculating a corrected height measurement for a target object positioned in a sector and scanned with the 3D scanner, the corrected height measurement being derived from both the measured height of the target object and the height measurement error corresponding to the sector in which the target object was positioned when scanned with the 3D scanner;
calculating a corrected width measurement for the target object, the corrected width measurement being derived from both the measured width of the target object and the width measurement error corresponding to the sector in which the target object was positioned when scanned with the 3D scanner; and
calculating a corrected length measurement for the target object, the corrected length measurement being derived from both the measured length of the target object and the length measurement error corresponding to the sector in which the target object was positioned when scanned with the 3D scanner;
wherein calculating the height measurement error for a selected sector comprises the following substeps:
(a) positioning within the selected sector a calibration object that does not yet have a measured height associated with the selected sector;
(b) using the 3D scanner, scanning the positioned calibration object to obtain a measured height of the positioned calibration object, wherein the measured height is associated with the selected sector;
(c) repeating substeps (a) and (b) until each of the calibration objects has a measured height associated with the selected sector;
(d) for each calibration object, comparing the calibration object's known height to the calibration object's measured height associated with the selected sector;
wherein calculating the width measurement error for a selected sector comprises the following substeps (e-h):
(e) positioning within the selected sector a calibration object that does not yet have a measured width associated with the selected sector;
(f) using the 3D scanner, scanning the positioned calibration object to obtain a measured width of the positioned calibration object, wherein the measured width is associated with the selected sector;
(g) repeating substeps (e) and (f) until each of the calibration objects has a measured width associated with the selected sector;
(h) for each calibration object, comparing the calibration object's known width to the calibration object's measured width associated with the selected sector;
wherein calculating the length measurement error for a selected sector comprises the following substeps (i-l):
(i) positioning within the selected sector a calibration object that does not yet have a measured length associated with the selected sector;
(j) using the 3D scanner, scanning the positioned calibration object to obtain a measured length of the positioned calibration object, wherein the measured length is associated with the selected sector;
(k) repeating substeps (i) and (j) until each of the calibration objects has a measured length associated with the selected sector;
(l) for each calibration object, comparing the calibration object's known length to the calibration object's measured length associated with the selected sector.

8. The method of claim 7, wherein each sector is located on a common horizontal plane.

9. The method of claim 8, wherein the horizontal plane is the ground plane.

10. A method of error correction for a 3D scanner, comprising:
providing a plurality of three-dimensional calibration objects each having a first known dimension, a second known dimension, and a third known dimension, wherein no two calibration objects have the same shape, and wherein each calibration object is configured such that its height, width and length can be measured using a 3D scanner;
providing a 3D scanner having a field of view;
dividing the field of view into a plurality of sectors;
for each calibration object, calculating a first dimension measurement error for each sector;
if all calculated first dimension measurement errors associated with a selected sector are equal, associating the first dimension measurement error with the selected sector and storing the first dimension measurement error in a memory store;
when scanning a target object positioned in a selected sector, calculating a corrected first dimension measurement of the target object based upon the first measured dimension of the target object and the stored first dimension measurement error associated with the selected sector;
wherein calculating a first dimension measurement error for a selected sector comprises the following substeps (a-d):
(a) positioning within the selected sector a calibration object that does not yet have a first measured dimension associated with the selected sector;
(b) using the 3D scanner, scanning the positioned calibration object to obtain a first measured dimension of the positioned calibration object, wherein the first measured dimension is associated with the selected sector;
(c) repeating substeps (a) and (b) until each of the calibration objects has a first measured dimension associated with the selected sector;
(d) for each calibration object, comparing the calibration object's first known dimension to the calibration object's first measured dimension associated with the selected sector.

11. The method of claim 10, wherein the first known dimension is the object's height and the first measured dimension is a height.

12. The method of claim 10, wherein the first known dimension is the object's width and the first measured dimension is a width.

13. The method of claim 10, wherein the first known dimension is the object's length and the first measured dimension is a length.

14. The method of claim 10, comprising:
for each calibration object, calculating a second dimension measurement error for each sector;
if all calculated second dimension measurement errors associated with a selected sector are equal, associating the second dimension measurement error with the selected sector and storing the second dimension measurement error in a memory store; and
when scanning a target object positioned in a selected sector, calculating a corrected second dimension measurement of the target object based upon the second measured dimension of the target object and the stored second dimension measurement error associated to the selected sector;
wherein calculating a second dimension measurement error for a selected sector comprises the following substeps (e-h):
(e) positioning within the selected sector a calibration object that does not yet have a second measured dimension associated with the selected sector;
(f) using the 3D scanner, scanning the positioned calibration object to obtain a second measured dimension of the positioned calibration object, wherein the second measured dimension is associated with the selected sector;
(g) repeating substeps (e) and (f) until each of the calibration objects has a second measured dimension associated with the selected sector;
(h) for each calibration object, comparing the calibration object's second known dimension to the calibration object's second measured dimension associated with the selected sector.

15. The method of claim 14, wherein:
the first known dimension is the object's height;
the first measured dimension is a height;
the second known dimension is the object's width; and
the second measured dimension is a width.

16. The method of claim 14, wherein:
the first known dimension is the object's height;
the first measured dimension is a height;
the second known dimension is the object's length; and
the second measured dimension is a length.

17. The method of claim 14, wherein:
the first known dimension is the object's width;
the first measured dimension is a width;
the second known dimension is the object's length; and
the second measured dimension is a length.

18. The method of claim 14, comprising:
for each calibration object, calculating a third dimension measurement error for each sector;
if all calculated third dimension measurement errors associated with a selected sector are equal, associating the third dimension measurement error with the selected sector and storing the third dimension measurement error in a memory store; and
when scanning a target object positioned in a selected sector, calculating a corrected third dimension measurement of the target object based upon the third measured dimension of the target object and the stored third dimension measurement error associated to the selected sector;
wherein calculating a third dimension measurement error for a selected sector comprises the following substeps (i-l):
(i) positioning within the selected sector a calibration object that does not yet have a third measured dimension associated with the selected sector;
(j) using the 3D scanner, scanning the positioned calibration object to obtain a third measured dimension of the positioned calibration object, wherein the third measured dimension is associated with the selected sector;
(k) repeating substeps (i) and (j) until each of the calibration objects has a third measured dimension associated with the selected sector;
(l) for each calibration object, comparing the calibration object's third known dimension to the calibration object's third measured dimension associated with the selected sector.

19. The method of claim 18, wherein:
the first known dimension is the object's height;
the first measured dimension is a height;
the second known dimension is the object's width;
the second measured dimension is a width;
the third known dimension is the object's length; and
the third measured dimension is a length.

20. The method of claim 10, wherein each sector is located on the ground plane.