System and Method for On-Site Calibration of a Vision System

The three-dimensional on-site calibration method and system streamline the deployment of machine vision systems by automating the calibration process, reducing resource requirements, and enhancing efficiency through standardized calibration interfaces.

JP2025516561APending Publication Date: 2025-05-30COGNEX CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024566259
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-05-09
Filing Date
2023-05-09
Publication Date
2025-05-30

AI Technical Summary

Technical Problem

Existing machine vision systems require complex and time-consuming installation and calibration processes, which can be resource-intensive and inefficient, especially for custom site deployments.

Method used

A method and system for three-dimensional on-site calibration of machine vision systems, which involves receiving calibration parameters, determining camera acquisition parameters, verifying these parameters, and controlling imaging devices to collect image data from a calibration target, generating calibration data, and producing a report indicating whether the maximum error is within an acceptable range.

Benefits of technology

This approach simplifies the deployment of machine vision systems by reducing the time and resources required for installation and calibration, improving efficiency and reducing the need for trained personnel, while providing a standardized calibration interface for reproducibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025516561000001_ABST
    Figure 2025516561000001_ABST
Patent Text Reader

Abstract

A method for three-dimensional (3D) on-site calibration of a machine vision system includes receiving a set of calibration parameters and an identification of an imaging device of the machine vision system, determining camera acquisition parameters for calibration based on the set of calibration parameters, verifying the set of calibration parameters and the camera acquisition parameters, and controlling the imaging device to collect image data of a calibration target using the determined camera acquisition parameters. The image data can be collected using the determined camera acquisition parameters. The method may further include generating a set of calibration data for the imaging device using the collected image data. The set of calibration data includes a maximum error. The method further includes generating a report including the set of calibration data for the imaging device and an identification of whether the maximum error for the imaging device is within an acceptable error range, and displaying the report on a display.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] (Cross - Reference to Related Applications) This application claims priority based on U.S. Provisional Application No. 63 / 339,891, filed on May 9, 2022, entitled "System and Method for In - Field Calibration of Vision Systems", and incorporates the same herein by reference in its entirety.

[0002] (Statement Regarding Federally Sponsored Research) Not applicable.

Background Art

[0003] This technology relates to an imaging system that includes a machine vision system configured to acquire and analyze images of an object or symbol (e.g., barcode).

[0004] A machine vision system is generally configured to image an object or symbol and analyze the image to identify the object or decode the symbol. Thus, a machine vision system generally includes one or more devices for image acquisition and image processing. In conventional applications, these devices can be used to acquire an image or analyze the acquired image, for example, to decode an imaged symbol such as a barcode or text. In some contexts, machine vision and other imaging systems can be used to acquire an image of an object that may be larger than the field of view (FOV) of the corresponding imaging device and / or an object that is moving relative to the imaging device.

Summary of the Invention

[0005] According to an embodiment of the present technology, a method for three-dimensional on-site calibration of a machine vision system includes receiving a set of calibration parameters and identifying at least one imaging device of the machine vision system, determining camera acquisition parameters for calibration based on the set of calibration parameters, verifying the set of calibration parameters and the camera acquisition parameters, and controlling at least one imaging device to collect image data of a calibration target. The image data can be collected using the determined camera acquisition parameters. The method further includes generating a set of calibration data for at least one imaging device using the collected image data. The set of calibration data can include a maximum error. The method further includes generating a report including the set of calibration data for at least one imaging device and an indicator of whether the maximum error for at least one imaging device is within an acceptable range where the maximum error is acceptable.

[0006] According to some embodiments, the method further includes using a display unit to display a report. According to some embodiments, the machine vision system is configured as a tunnel with one imaging device. In some embodiments, the machine vision system is configured as a tunnel including a plurality of imaging devices. According to some embodiments, the setting of calibration data includes one or more of a runtime conveyor speed, a calibration conveyor speed, a connection address associated with at least one imaging device, a type of calibration target, or a setting of dimensions for the calibration target. According to some embodiments, the method further includes controlling at least one imaging device to store a set of custom system settings for the at least one imaging device before collecting image data of a calibration target. According to some embodiments, the method further includes loading a set of calibration data onto at least one imaging device. According to some embodiments, generating an indicator of whether a maximum error is within an acceptable tolerance includes comparing the maximum error with at least one predetermined error threshold. According to some embodiments, the report further includes an image generated based on the collected image data. In some embodiments, the calibration target includes a symbol, and the maximum error is the difference between an actual symbol center position and a calculated symbol center position.

[0007] According to another embodiment of the present technology, a system for three-dimensional on-site calibration of a machine vision system includes an input configured to receive an identification of a set of calibration parameters, at least one imaging device of the machine vision system, and at least one processor device coupled to the input. The at least one processor device determines camera acquisition parameters for calibration based on the set of calibration parameters, verifies the set of calibration parameters and the camera acquisition parameters, controls the at least one imaging device to collect image data of a calibration target, uses the determined camera acquisition parameters to collect the image data, uses the collected image data to generate a set of calibration data for the at least one imaging device, the set of calibration data includes a maximum error, and may be configured to generate a report including an indication of whether the maximum error for the at least one imaging device is within an acceptable tolerance range.

[0008] According to some embodiments, the system can further include a display unit coupled to at least one processor device and configured to display a report. According to some embodiments, the calibration data setting includes one or more of a runtime conveyor speed, a calibration conveyor speed, a connection address associated with at least one imaging device, a type of calibration target, or a setting of dimensions for the calibration target. According to some embodiments, the at least one processor device is further configured to store a set of custom system settings for the at least one imaging device before controlling the at least one imaging device to collect image data of a calibration target. According to some embodiments, the at least one processor device is further configured to generate a graphical user interface. According to some embodiments, generating an indication of whether a maximum error for the at least one imaging device is within an acceptable tolerance range includes comparing the maximum error to at least one predetermined error threshold. According to some embodiments, the machine vision system is configured as a tunnel with one imaging device. In some embodiments, the machine vision system is configured as a tunnel with a plurality of imaging devices. According to some embodiments, the report further includes an image generated based on the collected image data. In some embodiments, the calibration target includes a symbol, and the maximum error is the difference between the actual symbol center position and the calculated symbol center position.

[0009] The various objects, features, and advantages of the disclosed subject matter can be more fully understood by referring to the following detailed description of the disclosed subject matter when considered in connection with the following drawings. In the drawings, like reference numbers identify like elements.

Brief Description of the Drawings

[0010]

Figure 1A

Figure 1B

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7A

Figure 7B

Figure 7C

Figure 7D

Figure 8

Figure 9A

Figure 9B

Figure 10A

Figure 10B

Figure 10C

Figure 10D

Figure 11

Figure 12A

Figure 12B

Figure 12C

Figure 13A

Figure 13B

Figure 14A

Figure 14B

Embodiments for Carrying Out the Invention

[0011] A machine vision system can include one or more imaging devices. For example, according to some embodiments, the machine vision system may be implemented within a tunnel arrangement (or system) that can include a structure in which each of the imaging devices can be arranged at an angle with respect to a conveyor so as to produce an angled field of view. As used herein, a "machine vision tunnel" (or simply referred to as "tunnel" or "tunnel system") can refer to a system that includes an imaging device for acquiring image data with respect to a normal scene and supports it. In some embodiments, the normal scene can include a relatively small area, such as, for example, a desktop or a discrete portion of a conveyor. According to some embodiments, within a given tunnel system, there may be an overlap between the fields of view of the imaging devices, there may be no overlap between the fields of view of the imaging devices, or a combination thereof (e.g., there is an overlap between a specific set of imaging devices but not between other sets, an overall overlap of multiple imaging devices to cover the entire scene, etc.).

[0012] The deployment of a machine vision system, such as to a custom site of a tunnel system, can involve a number of steps including installation, commissioning, on-site calibration and testing. A customized machine vision system may require complex and time-consuming installation and setup and may require a number of resources. It is advantageous to provide systems and applications that can simplify and rationalize the placement of machine vision systems. For example, modular hardware elements (e.g., pre-built modules) can be configured to implement system configurations and specifications and can reduce installation time. The present disclosure describes systems and methods configured to simplify a deployment process that includes a three-dimensional (3D) on-site calibration process for a machine vision system. In some embodiments, the apparatus and method for on-site calibration can include integrated hardware-software elements that can include an application that can automate one or more portions of the three-dimensional on-site calibration process. Advantageously, the three-dimensional system for on-site calibration described can provide a standardized on-site calibration interface that can provide reproducibility between different systems and between different customers. The systems and methods for three-dimensional on-site calibration described can also reduce the time (and thus the amount of required downtime) and resources required to install a machine vision system and thus can improve the efficiency of the deployment of the machine vision system. Additionally, the systems and methods for three-dimensional calibration described can reduce the number of trained personnel required to support and maintain an installed machine vision system. The following description refers to a tunnel system or placement, but it should be understood that the systems and methods for three-dimensional on-site calibration described herein can be applied to other types of machine vision system placements.

[0013] FIG. 1A shows an example of a system 100 for imaging a plurality of images of each surface of an object according to an embodiment of the present technology. According to some embodiments, the system 100 can be configured to evaluate symbols (e.g., barcodes, two-dimensional (2D) codes, fiducial points, hashmats, machine-readable codes, alphanumeric codes, and other labels) on objects (e.g., objects 118a, 118b) moving through a tunnel 102, such as symbol 120 on object 118a. According to some embodiments, symbol 120 is a flat barcode on the upper surface of object 118a, and objects 118a and 118b are approximately cubic boxes. In addition to or instead of this, in some embodiments, any suitable geometric shape is possible for the object to be imaged, and any of a variety of symbols and symbol positions, including non-direct part mark (DPM) symbols and DPM symbols arranged on the top or any other side of the object, can be imaged and evaluated. Alternatively, or in addition, according to some embodiments, a non-symbol recognition method may be implemented. As an example, some implementations can include vision-based recognition of features independent of symbols, such as one or more edges of an object, for example.

[0014] In FIG. 1A, objects 118a and 118b are placed on a conveyor 116 configured to move objects 118a and 118b in a traveling direction (e.g., horizontally left and right) through tunnel 102 at a relatively predictable and continuous speed or at a variable speed measured by a device such as an encoder or other motion measurement device. In addition to or instead of this, the object can move through tunnel 102 in other ways (e.g., non-linear movement). According to some embodiments, conveyor 116 can include a conveyor belt. According to some embodiments, conveyor 116 may consist of other types of conveying devices.

[0015] According to some embodiments, system 100 may include one or more imaging devices 112 and an imaging processing device 132. For example, system 100 may include imaging devices 112a, 112b, 112c, which are typically shown via fields of view 114a, 114b, 114c that include a portion of conveyor 116, having a field of view (FOV) typically shown via a tunnel arrangement (e.g., implementing a portion of tunnel 102). According to some embodiments, each imaging device 112 is positioned at an angle (e.g., with respect to the normal direction of symbols on the side surfaces of objects 118a and 118b or with respect to the direction of travel) with respect to the conveyor top or side, resulting in an angled field of view. Similarly, some of the fields of view can overlap other fields of view (e.g., field of view 114a and field of view 114b). In such embodiments, system 100 can be configured to capture one or more images of multiple surfaces of objects 118a and / or 118b as the objects are moved by conveyor 116. According to some embodiments, the captured images can be used to identify symbols (e.g., symbol 120) on each object, which can then be (optionally) decoded. In some embodiments, a gap (not shown) in conveyor 116 can facilitate imaging of the bottom side of an object using an imaging device or an array of imaging devices (not shown) disposed below conveyor 116 (e.g., as described in U.S. Patent Application Publication No. 2019 / 0333259, filed Apr. 25, 2018, which is hereby incorporated by reference in its entirety). In some embodiments, symbols on an object can also be identified using an image captured from below the object, and this symbol can then be (optionally) decoded

[0016] Two arrays of three imaging devices 112 are shown to image the tops of objects 118a and 118b, and four arrays of two imaging devices 112 are shown to image the sides of objects 118a and 118b, but this is merely illustrative, and it should be noted that any suitable number of imaging devices can be used to image the various faces of an object. For example, each array may include four or more imaging devices. In some cases, system 100 may include a smaller number of imaging devices 112 than shown in FIG. 1A, or a greater number of imaging devices 112. For example, as described above, a tunnel system may include only one imaging device 112. In some cases, a single imaging device 112 may be positioned to image the tops of objects 118a and 118b, may be positioned to image the sides of objects 118a and 118b, or may be positioned to image the bottoms of objects 118a and 118b. In another embodiment, various combinations of two or more imaging devices 112 (e.g., various combinations of imaging devices 112a, 112b, 112c) may be included within system 100. In some cases, one imaging device 112a may be arranged to image the tops of objects 118a and 118b, and one imaging device 112b may be arranged to image the sides of objects 118a and 118b. In other cases, one imaging device 112a may be arranged to image the tops of objects 118a and 118b, and one imaging device 112c may be arranged to image the sides of objects 118a and 118b.

[0017] The imaging device 112 is shown to generally image objects 118a and 118b without using a mirror for turning the field of view, but this is merely an example, and one or more fixed and / or steerable (turnable) mirrors can be used to turn one or more fields of view of the imaging device as will be described later with respect to FIGS. 2 and 3, and can facilitate reducing the vertical or lateral distance between the imaging device and the object within the tunnel 102. For example, the imaging device 112a is arranged to have an optical axis parallel to the conveyor 116, and one or more mirrors are arranged above the tunnel 102 to turn the field of view of the imaging device 112a towards the front and upper surfaces of the object within the tunnel 102.

[0018] According to some embodiments, imaging device 112 may be implemented using any suitable type of imaging device. For example, imaging device 112 may be implemented using a two-dimensional imaging device (e.g., a two-dimensional camera) such as area scan cameras and / or line scan cameras. According to some embodiments, imaging device 112 may be an integrated system including a lens assembly and an imager such as a CCD or CMOS sensor. According to some embodiments, imaging device 112 may each include one or more image sensors, at least one lens array, and at least one control device (e.g., a processor device) configured to perform computational operations related to the image sensors. Imaging devices 112a, 112b, 112c may each selectively acquire image data from different fields of view (FOVs), regions of interest (ROIs), or combinations thereof. According to some embodiments, using system 100, multiple images of each side of an object, where one or more images may include one or more objects, can be acquired. Object 118 may be associated with one or more symbols such as barcodes, QR codes (registered trademarks), etc. In some embodiments, system 100 may be configured to facilitate imaging of the bottom side of an object supported by conveyor 116 (e.g., the surface of object 118a placed on conveyor 116). For example, conveyor 116 may be implemented with a gap such as a gap between portions of conveyor 116 (as described above).

[0019] According to some embodiments, a gap 122 is provided between objects 118a, 118b. In different implementations, the size of the gap between the objects can have a certain range. In some implementations, the gap between the objects can be substantially the same among all sets of objects within the system or can indicate a fixed minimum size among all sets of objects within the system. According to some embodiments, a smaller gap size can be used to maximize the throughput of the system.

[0020] According to some embodiments, system 100 can measure the dimensions of an object moving on conveyor 116 towards tunnel 102 and can include a dimensioning system (not shown), sometimes called a dimensioner. Further, system 100 can include a device (e.g., an encoder or other motion measurement device not shown) that tracks the physical movement of an object (e.g., objects 118a, 118b) moving on conveyor 116 through tunnel 102. FIG. 1B shows an example of a device that captures multiple images of each face of an object according to an embodiment of the present technology. FIG. 1B shows a simplified diagram of system 140 for illustrating an exemplary arrangement of a dimensioner and a motion measurement device (e.g., an encoder) with respect to a tunnel. As described above, system 140 may include dimensioner 150 and motion measurement device 152. In the illustrated example, conveyor 116 is configured to move an object through dimensioner 150 along the direction indicated by arrow 154 before the object 118d, 118e is imaged by one or more imaging devices 112. According to the illustrated embodiment, a gap 156 is provided between object 118d and object 118e, and image processing device 132 can communicate with one or more imaging devices 112, dimensioner 150, and motion measurement device 152. Dimensioner 150 can be configured to determine the dimensions and / or position of an object supported by a support structure 116 (e.g., object 118d or object 118e) at a given time. For example, dimensioner 150 can be configured to determine the distance from dimensioner 150 to the top surface of the object and can be configured to determine the size and / or orientation of the surface facing dimensioner 150. According to some embodiments, dimensioner 150 can be implemented using various techniques. For example, dimensioner 150 can be implemented using a 3D camera (e.g., a structured light 3D camera, a continuous time of flight 3D camera, etc.). As another example, dimensioner 150 can be implemented using a laser scanning system (e.g., a LiDAR system).In a specific example, the dimensioner 150 can be implemented using a 3D-A1000 system available from Cognex Corporation. According to some embodiments, the dimensioning system or dimensioner 150 (e.g., a time-of-flight sensor or stereo-computed) may be implemented within a single device or enclosure together with an imaging device (e.g., a two-dimensional camera), and according to some embodiments, a processor (e.g., which may be utilized as an image processing device) may be implemented within the device together with the dimensioner and the imaging device.

[0021] According to some embodiments, the dimensioner 150 can determine the three-dimensional coordinates of each corner of an object in a coordinate space defined with respect to one or more parts of the system 140. For example, the dimensioner 150 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least approximately rectangular parallelepiped-shaped within an orthogonal coordinate space defined with the origin in the dimensioner 150. As another example, the dimensioner 150 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least approximately cube-shaped within an orthogonal coordinate space defined with the origin in the dimensioner 150. As another example, the dimensioner 150 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least approximately cubic-shaped within an orthogonal coordinate space defined with respect to the conveyor 116 (e.g., with the center of the conveyor 116 as the origin).

[0022] According to some embodiments, a motion measuring device 152 (e.g., an encoder) can be linked to the conveyor 116 and the imaging device 112 to supply an electronic signal indicating the amount of movement of the conveyor 116 and the objects 118d, 118e supported thereon to the imaging device 112 and / or the image processing device 132 over a known period of time. This can be useful, for example, for coordinating the imaging of a particular object (e.g., objects 118d, 118e) based on the calculated position of the object relative to the field of view of the associated imaging device (e.g., imaging device(s) 112). According to some embodiments, the motion measuring device 152 can be configured to generate a number of pulses (e.g., encoder pulse count) that can be used to identify the position of the conveyor 116 along the direction of travel (e.g., the direction of arrow 154). For example, the motion measuring device 152 can provide the number of pulses (e.g., encoder pulse count) to the image processing device 132 for identifying and tracking the position of an object (e.g., objects 118d, 118e) on the conveyor 116. According to some embodiments, the motion measuring device 152 can increase the number of pulses (e.g., encoder pulse count) each time the conveyor 116 moves a predetermined distance (encoder pulse count distance) in the direction of arrow 154. According to some embodiments, the position of the object can be determined based on the initial position, the change in the number of pulses, and the pulse number interval.

[0023] As described above, the tunnel system includes one or more imaging devices and supports obtaining image data regarding a normal scene. According to some embodiments, the tunnel system may include one imaging device. For example, in FIG. 1B in some embodiments, the imaging device 112 may represent a single imaging device. Although the imaging device 112 is shown at the top of the system 140 above the conveyor, in some cases, the imaging device 112 may be disposed at the side of the system 140 or below the system 140 (e.g., below the gap in the conveyor 116).

[0024] Returning to FIG. 1A, according to some embodiments, each imaging device (e.g., imaging device 112) can facilitate mapping the three-dimensional position of each corner of an object (e.g., object 118) supported by conveyor 116 to a two-dimensional position within an image captured by the imaging device (as will be described later in connection with FIGS. 12A-12C, for example).

[0025] According to some embodiments, the image processing device 132 (or the control device) can coordinate the operations of various components of the system 100 (or the system 140). For example, the image processing device 132 can cause the dimensioner (e.g., the dimensioner 150 shown in FIG. 1B) to obtain the dimensions of an object positioned on the conveyor 116, and cause the imaging device 112 to capture images of each surface. According to some embodiments, the image processing device 132 can control the detailed operations of each imaging device, for example, by providing a trigger signal to cause the imaging device to capture an image at a specific time. Alternatively, according to some embodiments, another device (e.g., a processor included in each imaging device, a separate control device, etc.) can control the detailed operations of each imaging device. For example, the image processing device 132 (and / or any other suitable device) can provide a trigger signal to each imaging device and / or the dimensioner (e.g., the dimensioner 150 shown in FIG. 1B), and the processor of each imaging device can be configured to perform a predetermined image acquisition sequence spanning a predetermined region of interest in response to the trigger. The system 100 can also include one or more light sources (not shown) for illuminating the surface of the object, and the operation of such light sources can be coordinated by a central device (e.g., the image processing device 132), and / or the control can be distributed (e.g., the imaging device can control the operation of one or more light sources, and the processor associated with one or more light sources can control the operation of the light sources, etc.). For example, according to some embodiments, the system 100 can be configured to simultaneously (e.g., over a simultaneous or common time interval) obtain images of multiple sides of one object as part of a single trigger event. For example, each imaging device 112 may be configured to obtain each set of one or more images over a common time interval. Additionally, or alternatively, in some embodiments, the imaging device 112 can be configured to obtain an image based on a single trigger event.For example, based on a sensor (e.g., a contact sensor, a presence sensor, an imaging device, etc.) determining that an object 118 has entered the field of view of the imaging device 112, the imaging device 112 can simultaneously acquire images of each side of the object 118.

[0026] According to some embodiments, each imaging device 112 can generate a set of images depicting a particular surface or surfaces or various fields of view of an object (e.g., object 118) supported by the conveyor 116. According to some embodiments, the image processing device 132 can map the three-dimensional position of one or more corners of the object 118 to the two-dimensional position within each image in the set of images output by each imaging device (e.g., as will be described later in connection with FIGS. 13A and 13B showing a number of boxes on a conveyor). According to some embodiments, the image processing device can generate a mask (e.g., a bitmask that indicates the presence of a particular surface with a 1 and the absence of a particular surface with a 0) that identifies which portions of the image are associated with each surface based on the two-dimensional position of each corner. According to some embodiments, the three-dimensional positions of one or more corners of a target object (e.g., object 118a), and the three-dimensional positions of one or more corners of an object 118c (leading object) in front of the target object 118a on the conveyor 116, and the three-dimensional positions of one or more corners of an object 118b (trailing object) behind the target object 118a on the conveyor 116 can be mapped to the two-dimensional positions within each image in the set of images output by each imaging device. Thus, when an image captures a plurality of objects (118a, 118b, 118c), one or more corners of each object within the image can be mapped to the two-dimensional image.

[0027] As described above, one or more fixed and / or steerable mirrors can be used to turn the field of view of one or more imaging devices, thereby facilitating shortening of the vertical or lateral distance between the imaging device and the object within the tunnel 102. FIG. 2 shows another example of an apparatus for imaging a plurality of images of each face of an object according to an embodiment of the present technology. The system 200 includes a plurality of banks of imaging devices 212, 214, 216, 218, 220, 222 and a plurality of mirrors 224, 226, 228, 230 within the tunnel arrangement 202. For example, the banks of imaging devices shown in FIG. 2 include a left trail bank 212, a left lead bank 214, a top trail bank 216, a top lead bank 218, a right trail bank 220, and a right lead bank 222. According to the illustrated embodiment, each bank 212, 214, 216, 218, 220, 222 includes four imaging devices configured to image an image of one or more faces of an object (e.g., object 208a) and various fields of view of one or more faces of the object. For example, the top trail bank 216 and the mirror 228 can be configured to image the top and rear faces of the object using the imaging devices 234, 236, 238, 240. According to the illustrated embodiment, the banks of imaging devices 212, 214, 216, 218, 220, 222 and the mirrors 224, 226, 228, 230 can be mechanically coupled to a support structure 242 above the conveyor 204. The illustrated relative mounting positions of the bank imaging devices 212, 214, 216, 218, 220, 222 are advantageous, but it should be noted that in some embodiments, the imaging devices for imaging various faces of the object can be reoriented relative to the positions shown in FIG. 2 (e.g., the imaging devices can be offset and placed at corners instead of faces, etc.).Similarly, while they may have the advantage associated with using four imaging devices per bank configured to acquire image data from one or more surfaces of an object, according to some embodiments, different numbers or arrangements of imaging devices, and different arrangements of mirrors (e.g., using steerable mirrors, using additional fixed mirrors, etc.) can be used to configure a particular imaging device to acquire images of multiple surfaces of an object. In some embodiments, an imaging device can be dedicated to acquiring images of multiple surfaces of an object that include overlapping acquisition regions with respect to other imaging devices included in the same system.

[0028] According to some embodiments, system 200 also includes a dimensioner 206 and an image processing device 232. As described above, a number of objects 208a, 208b, 208c can be supported within conveyor 204 and moved through tunnel 202 along the direction indicated by arrow 210. According to some embodiments, each bank of imaging devices 212, 214, 216, 218, 220, 222 (and each imaging device within a bank) can generate a set of images depicting a field of view or various fields of view for a particular surface or surfaces of an object (e.g., object 208a) supported by conveyor 204.

[0029] According to some embodiments, each imaging device (e.g., the imaging devices in imaging device banks 212, 214, 216, 218, 220, 222) can be calibrated to facilitate mapping the three-dimensional position of each corner of an object (e.g., object 208) supported by conveyor 204 to a two-dimensional position within an image captured by the imaging device (e.g., as described below in connection with FIGS. 12A - 12C).

[0030] Note that FIGS. 1A, 1B, and 2 show a dynamic support structure (e.g., conveyor 116, conveyor 204) that can move, which, according to some embodiments, can support an object imaged by one or more imaging devices using a stationary support structure. In some embodiments (not shown), the object to be imaged can be temporarily passed through the coverage area by an operator until the desired visualization operation is completed. FIG. 3 shows another example of a system for imaging a plurality of images of each face of an object according to an embodiment of the present technology. According to some embodiments, the system 300 can include a plurality of imaging devices 302, 304, 306, 308, 310, 312, each including one or more image sensors, at least one lens array, and at least one control device (e.g., a processor device) configured to perform computational operations related to the image sensors. According to some embodiments, the plurality of imaging devices 302, 304, 306, 308, 310, and / or 312 can include and / or be associated with steerable mirrors (e.g., as described in U.S. Application No. 17 / 071,636, filed on October 13, 2020, which is hereby incorporated by reference in its entirety). The imaging devices 302, 304, 306, 308, 310, and / or 312 can selectively acquire image data from different fields of view (FOVs) corresponding to different orientations of the associated steerable mirrors. According to some embodiments, the system 300 can be utilized to acquire a plurality of images of each face of an object. Although FIG. 3 shows the plurality of imaging devices 302, 304, 306, 308, 310, 312, it should be understood that according to some embodiments, the system 300 can include one imaging device or various combinations of two or more imaging devices.

[0031] According to some embodiments, the system 300 can be used to acquire images of a plurality of objects presented for image acquisition. For example, the system 300 can include a support configuration that supports each of the imaging devices 302, 304, 306, 308, 310, 312, and a platform 316 configured to support one or more objects 318, 334, 336 to be imaged (note that each object 318, 334, 336 can be associated with one or more symbols such as barcodes, QR codes (registered trademarks), etc.). For example, a conveying device (not shown) including one or more robotic arms (e.g., a robotic bin picker) can be used to position a plurality of objects (e.g., within bins or other containers) on the platform 316. According to some embodiments, the support structure can be configured as a caged support structure. However, this is merely an example, and the support configuration can be implemented in various configurations. According to some embodiments, the support platform 316 can be configured to facilitate imaging of the bottom side surface of one or more objects supported by the support platform 316 (e.g., the surface of an object (e.g., object 318, 334, or 336) resting on the platform 316). For example, the support structure 316 can be implemented using a transparent platform, a mesh or lattice platform, an open center platform, or any other suitable configuration. Except for the presence of the support configuration 316, the acquisition of the bottom surface image is substantially the same as the acquisition of other surfaces of the object. As a further example, a conveying device (not shown) including one or more robotic arms (e.g., a robotic bin picker) can be used to select and / or position a number of objects (e.g., within bins or other containers) on the support platform 316.

[0032] In some embodiments, the imaging devices 302, 304, 306, 308, 310, and / or 312 can be oriented to obtain an image of a particular surface of an object (e.g., object 318) placed on and supported by the support platform 316 such that each surface of the object can be imaged by the imaging devices 302, 304, 306, 308, 310, and / or 312 using the field of view of the imaging devices. For example, the imaging device 302 can be mechanically coupled to a support structure above the support platform 316 and be directed toward the upper surface of the support platform 316, the imaging device 304 can be mechanically coupled to a support structure below the support platform 316, and the imaging devices 306, 308, 310, and / or 312 can each be mechanically coupled to a surface of the support structure such that the respective fields of view of the imaging devices 306, 308, 310, and / or 312 face the side surfaces of the support platform 316.

[0033] According to some embodiments, each imaging device may be configured to have an optical axis that is substantially parallel to another imaging device and orthogonal to a plurality of other imaging devices (e.g., when the steerable mirror is in a neutral position). For example, the imaging devices 302, 304 can be configured to face each other (e.g., the imaging devices have substantially parallel optical axes), and the plurality of other imaging devices can be configured to have optical axes that are orthogonal to the optical axes of the imaging devices 302, 304.

[0034] According to some embodiments, the illustrated mounting positions of imaging devices 302, 304, 306, 308, 310, and 312 relative to each other may advantageously be reoriented (e.g., the imaging devices may be offset, the imaging devices may be arranged at corners instead of faces, etc.) with respect to the illustrated positions in FIG. 3 for imaging various faces of one object. Similarly, while advantages (e.g., improved acquisition speed) may be obtained in connection with using six imaging devices configured to acquire imaging data of corresponding faces (e.g., the six faces of object 118) of one object, according to some embodiments, a particular imaging device for acquiring images of multiple faces of one object may be configured using a different number or arrangement of imaging devices, different arrangements of mirrors (e.g., using fixed mirrors, using additional movable mirrors, etc.). For example, the fixed mirrors are arranged such that imaging devices 306, 310 can image the far faces of object 318 and are arranged to be used in place of imaging devices 308, 312. According to some embodiments, system 300 may be configured to image each of a number of objects 318, 334, 336 on platform 316.

[0035] According to some embodiments, system 300 can include a dimensioner 330. As described above with respect to FIGS. 1A, 1B, and 2, the dimensioner can be configured to determine the dimensions and / or position of an object (e.g., objects 318, 334, or 336) supported by a support structure 316. As described above, according to some embodiments, dimensioner 330 can determine the three-dimensional coordinates of each corner of an object within a coordinate space defined with respect to one or more portions of system 300. For example, dimensioner 330 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least generally rectangular parallelepiped-shaped within an orthogonal coordinate space defined at the origin in dimensioner 330. As another example, dimensioner 330 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least generally cubic within an orthogonal coordinate space defined with respect to support platform 316 (e.g., using the center of support platform 316 as the origin).

[0036] According to some embodiments, each imaging device (e.g., imaging devices 302, 304, 306, 308, 310, and 312) can be calibrated (as described below in connection with FIGS. 12A-12C, for example) and can use a mirror that is steerable in a particular orientation to facilitate mapping the three-dimensional position of each corner of an object (e.g., object 318) supported by support platform 316 to a two-dimensional position within an image captured by the imaging device.

[0037] According to some embodiments, image processing device 332 can coordinate the operation of imaging devices 302, 304, 306, 308, 310, and / or 312 and / or can be related to image processing device 132 in FIG. 1A and / or image processing device 410 described below in connection with FIG. 4 and can perform the image processing operations described above.

[0038] FIG. 4 shows a system for three-dimensional (3D) on-site calibration of a machine vision system according to an embodiment of the present technology. In the example illustrated in FIG. 4, system 400 includes a machine vision system 402, a communication network 408, a user device 410, and a server 418. According to some embodiments, system 400 includes fewer, additional, or different components for a configuration different from that shown in FIG. 4. As an example, system 400 may include multiple machine vision systems 402, multiple user devices 410, multiple servers 418, or combinations thereof. As another embodiment, one or more components of device 400 may be combined into a single device, such as user device 410 and server 418, for example.

[0039] According to some embodiments, the machine vision system 402, the user device 410, and the server 418 can communicate via one or more communication networks 408. According to some embodiments, the communication network 408 can be any suitable communication network or combination of communication networks. For example, the communication network 408 can include a Wi-Fi® network (which can include one or more wireless routers, one or more switches, etc.), a peer-to-peer network (e.g., a Bluetooth® network), a cellular network (e.g., a 3G network, a 4G network, a 5G network, etc. compliant with any suitable standard such as CDMA, GSM, LTE®, LTE Advanced, NR), a wired network, etc. According to some embodiments, the communication network 408 can be a local area network (LAN), a wide area network (WAN), a public network (e.g., the Internet), a private or semi-private network (e.g., a corporate or university intranet), any other suitable type of network, or any suitable combination of networks. The communication links shown in FIG. 4 can each be any suitable communication link or combination of communication links, such as a wired link, an optical fiber link, a Wi-Fi® link, a Bluetooth® link, a cellular link, etc. According to some embodiments, the components of the system 400 may communicate directly compared to the communication network 408. According to some embodiments, the components of the system 400 may communicate via one or more intermediate devices not shown in FIG. 4.

[0040] As shown in FIG. 4, the machine vision system 402 may include one or more imaging devices 404 and one or more image processing devices 406. According to some embodiments, the imaging device 404 and the imaging processing device 406 may communicate via one or more wired or wireless communication lines or buses, or combinations thereof. According to some embodiments, the machine vision system 402 may include fewer, additional, or different components in a configuration different from that shown in FIG. 4. According to some embodiments, the machine vision system 402 may include one or more imaging devices 404 within a tunnel configuration, for example, as described above with respect to FIGS. 1A, 1B, 2, and 3. In one example, the image processing device 406 (e.g., image processing device 132) may receive images and / or information regarding each image (e.g., two-dimensional position associated with the image) from one or more imaging devices 404 (e.g., one or more imaging devices 112a, 112b, and 112c described above in connection with FIGS. 1A and 1B, imaging devices in imaging device banks 212, 214, 216, 218, 220, 222 described above in connection with FIG. 2, and / or one or more of the imaging devices 302, 304, 306, 308, 310, 312 described above in connection with FIG. 3). According to some embodiments, the machine vision system 402 may also include a dimensional sensing system (not shown), for example, the dimensioner 150, dimensioner 206, dimensioner 330 described above with respect to FIGS. 1A, 1B, 2, and 3. As described above, the dimensioner can be used to supply dimensional data regarding an object imaged by the imaging device 404 to the image processing device 406. According to some embodiments, the dimensioner can be connected locally to the image processing device 406 and / or can be connected via a network connection (e.g., via communication network 408).The image processing device 406 can also receive input from any other suitable device, such as a motion measurement device (not shown) configured to output a value indicating the movement of the conveyor over a specific period of time that can be used to determine the distance the object has moved (e.g., between when the dimensions were determined and when each image of the object was generated). The image processing device 406 can also coordinate the operation of one or more other devices, such as one or more other light sources (not shown) configured to irradiate the object (e.g., blinking, projected light, etc.). Additionally or alternatively, the image processing device 406 can perform part of a symbol decoding process to identify and / or decode symbols (e.g., barcodes, QR codes (registered trademark), text, etc.) associated with the object imaged by the imaging device 404 using any suitable technique or combination of techniques.

[0041] According to some embodiments, imaging device 404 may be any suitable imaging device. For example, each may include at least one imaging sensor (e.g., a CCD image sensor, a CMOS image sensor, or other suitable sensor), at least one lens arrangement, and at least one control device (e.g., a processor device) configured to perform computational operations related to the imaging sensor. According to some embodiments, the lens configuration may include a fixed focus lens. In addition or alternatively, the lens configuration may include an adjustable focus lens such as a liquid lens or a mechanically adjustable lens of a known type. Additionally, according to some embodiments, imaging device 302 may include a steerable mirror that can be used to adjust the direction of focus of the imaging device. According to some embodiments, one or more imaging devices 404 may include a light source(s) (e.g., a flash, a high-intensity flash, a light source as described in U.S. Patent Application Publication No. 2019 / 0333259, etc.) configured to illuminate objects within the field of view. According to some embodiments, imaging device 404 may be similar to imaging devices 112, 234, 236, 238, 240, 302, 304, 306, 308, 310, and 312 as described above with respect to FIGS. 1A, 1B, 2, and 3.

[0042] According to some embodiments, imaging device 404 may be local to imaging processing device 406. For example, imaging device 404 can be connected to imaging processing device 406 by a cable, a direct wireless link, etc. In addition or alternatively, in some embodiments, imaging device 404 can be located locally and / or remotely from imaging processing device 406, and can communicate data (e.g., image data, dimension and / or position data, etc.) to imaging processing device 406 (and / or server 418) via a communication network (e.g., communication network 408). According to some embodiments, one or more imaging devices 404, imaging processing device 406, and / or any other suitable components may be integrated as a single device (e.g., within a common housing).

[0043] As shown in FIG. 4, the user device 410 may include one or more input devices 412, a user interface 414, and a display unit 416. The user device 410 can be configured so that an operator or user can perform three-dimensional on-site calibration of the machine vision system 402, as further described below. The input device 412 can be configured to receive data or information from a user or operator. According to some embodiments, the input device(s) can include any suitable input device and / or sensor that can be used to receive user input, such as a keyboard, a mouse, a touch screen, a microphone, etc. The user interface 414 can be configured to provide one or more graphical user interfaces (GUIs) configured to permit a user to interact with the user device 410 (e.g., provide input and receive output therefrom). In some embodiments, the GUI can be displayed to the user on the display unit 416. According to some embodiments, the display 416 can include any suitable display device, such as a computer monitor, a touch screen, a television, a smartphone, a tablet, etc. According to some embodiments, the GUI may be generated using a processor device (not shown) on the user device 410, or may be generated by a separate device, such as a server 418, and transmitted to the user device 410 (e.g., via the communication network 408), as further described below. Also, the user device 410 may include, for example, a processor device (e.g., a microprocessor, an application specific integrated circuit (ASIC), or another suitable electronic device), a memory (e.g., a non-volatile computer-readable medium), a communication system (e.g., a transceiver) for communicating via the communication network 408, and optionally, other components not shown, such as one or more additional communication networks or connections.

[0044] According to some embodiments, the image processing apparatus 406, the user device 410, and / or the server 418 can be any suitable computing device or combination of devices, such as a desktop computer, a laptop computer, a smartphone, a tablet computer, a wearable computer, a server computer, a virtual machine executed by a physical computing device, and the like.

[0045] According to some embodiments, the image processing apparatus 410 can communicate image data (e.g., an image received from the imaging device(s) 404) and / or data received from a dimension sensing system (not shown) to the server 418 or the user device 410 via the communication network 408. According to some embodiments, the user device 410 can communicate data, such as data for three-dimensional on-site calibration of the machine vision system 402, to and from the server 418 via the communication network 408. FIG. 5 shows an example of the server 418 in the system shown in FIG. 4 according to an embodiment of the present technology. As shown in FIG. 5, the server 418 can include a processor device 502, one or more communication systems 504, and / or a memory 506. The processor device 502, the communication system 504, and the memory 506 can communicate via one or more wired or wireless communication lines or buses, or combinations thereof. The server 418 can include additional components other than those illustrated in FIG. 5 in various configurations. For example, the server 418 may also include one or more input devices for receiving input from a user, such as a keyboard, a mouse, a touch screen, a microphone, etc. In another example, the server 418 may include a display, such as a computer monitor, a touch screen, a television, etc. Also, the server 418 may perform additional functions other than those described herein. Further, the functions such as those executed by the server 418 may be combined with other components of the system 400 (e.g., the user device 410, one or more components of the machine vision system 402, etc.), or combinations thereof, and distributed among a number of servers or devices (e.g., as part of a cloud service or a cloud computing environment).

[0046] According to some embodiments, the processor device 502 can be any suitable hardware processor or combination of processors, such as a CPU, GPU, ASIC, FPGA, etc. According to some embodiments, the communication system 504 can include any suitable hardware, firmware, and / or software for communicating information via the communication network 408 (shown in FIG. 4) and / or any other suitable communication network. For example, the communication system 504 can include one or more transceivers, one or more communication chips, and / or chip sets that communicate with the machine vision system 402, the user device 410, or a combination thereof via the communication network 408. In a more specific example, the communication system 504 can include hardware, firmware, and / or software that can be used to establish a Wi-Fi (registered trademark) connection, Bluetooth (registered trademark) connection, cellular connection, Ethernet (registered trademark) connection, etc.

[0047] According to some embodiments, the memory 506 can include any suitable storage device or apparatus that can be used to store instructions, values, etc. for use by the processor device 502, such as for example, processing data, generating content (e.g., GUI), communicating with one or more user devices 410, and communicating with one or more machine vision systems 402. The memory 506 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, the memory 506 can include RAM, ROM, EEPROM, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, etc. According to some embodiments, the memory 506 can be encoded on a server program for controlling the operation of the server 418. For example, in such embodiments, the processor device 502 can receive data from the image processing device 406 (e.g., an image associated with an object, etc.), the imaging device 404, and / or the user device 410.

[0048] As shown in FIG. 5, the memory 506 can include a three-dimensional (3D) on-site calibration application 508. The three-dimensional on-site calibration application 508 is a software application executable by the processor device 502 in the illustrated and hereinafter specifically described embodiments, although the intended modules can be implemented in other ways in other embodiments. As will be described in more detail later, the processor device 502 executes the three-dimensional on-site calibration application 508 to automatically determine the calibration for one or more imaging devices (e.g., imaging device 404) related to the machine vision system 402, thereby calibrating a machine vision system, such as a tunnel system. The memory 506 can also include three-dimensional on-site calibration data 510. According to some embodiments, the three-dimensional on-site calibration data 510 can include data received from a user (e.g., calibration parameters), data collected using the tunnel 402 (e.g., image data and dimensional data captured by one or more imaging devices 404), and calibration data generated, for example, by the processor 502 and the three-dimensional on-site calibration application 508.

[0049] According to some embodiments, each function described herein as being executed by the server 418 may be executed locally by the user device 410. For example, in some embodiments, the user device 410 can store the three-dimensional on-site calibration application 508, the three-dimensional on-site calibration data 510, or a combination thereof. As will be described in further detail below, the user can use the user device 410 to calibrate the machine vision system 402 (e.g., a tunnel), for example, via the three-dimensional on-site calibration application, the three-dimensional on-site calibration data, or a combination thereof.

[0050] FIG. 6 shows a method for three-dimensional on-site calibration of a machine vision system according to an embodiment of the present technology. The method shown in FIG. 6 is described herein as being executed by the server 418, and in particular, the three-dimensional on-site calibration application 508 may be executed by the processor device 502. However, as described above, the functions described with respect to the method for three-dimensional on-site calibration may be executed by being distributed among other devices such as the user device 410, components of the machine vision system 402 (s), or multiple devices such as multiple servers included in the cloud device.

[0051] The process shown in FIG. 6 will be described as follows with reference to the elements of the system 400 for three-dimensional on-site calibration of the machine vision system shown in FIGS. 4 and 5 and the example screenshots of the graphical user interface (GUI) for three-dimensional on-site calibration of the machine vision system shown in FIGS. 7A to 11. Although the blocks of the process are illustrated in a particular order, according to some embodiments, one or more blocks may be executed in an order different from that shown in FIG. 6 or may be bypassed.

[0052] In block 602, a set of calibration parameters can be received from the user. According to some embodiments, the three-dimensional on-site calibration application 508 may be configured to generate a user interface configured to receive input from the user. According to some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. FIGS. 7A-7D show an exemplary setup user interface 700 (e.g., displayed as user interface 414 on the display 416 of user device 410) for a user receiving data including calibration parameters. As shown in FIG. 7A, the setup user interface 700 can include a header 702 that indicates the steps of the three-dimensional on-site calibration process and identifies the current step being executed by the system 400 (e.g., using a visual indicator). For example, in user interfaces 7A-7D, the "Settings" visual indicator can be highlighted in color (e.g., yellow). The setup user interface 700 can also include a portion 704 for receiving calibration parameters from the user. According to some embodiments, the calibration parameters can include, for example, the runtime conveyor (e.g., belt) speed 706 (i.e., the runtime speed of the conveyor within the tunnel system 402) and the calibration conveyor speed 708 (i.e., the desired speed of the conveyor within the tunnel system 402 during calibration). Values for the runtime conveyor speed and the calibration conveyor speed may be input by the user into boxes 706 and 708, respectively. According to some embodiments, the three-dimensional on-site calibration application 508 may be configured to automatically calculate one or more camera acquisition parameters, such as the camera interval, for the imaging device(s) 404. For example, the camera interval can be calculated from the calibration conveyor speed. The calculated acquisition parameters (e.g., the camera interval) can be used during data collection for the three-dimensional on-site calibration process (e.g., as further described below with respect to block 608).According to some embodiments, the calculated camera acquisition parameters may be the same as or different from the camera acquisition parameters in the custom system settings for the tunnel system 402. According to some embodiments, the three-dimensional on-site calibration process may exhibit better performance at a slow conveyor speed. According to some embodiments, instead, the user may manually enter camera acquisition parameters, such as the camera interval, for the three-dimensional on-site calibration process, for example, by selecting the checkbox 710. For example, when the checkbox 710 for manual entry of the camera interval is selected by the user, a data entry box 740 may be displayed on the user interface 700 to receive the input camera interval value, as shown in FIG. 7B.

[0053] Returning to FIG. 7A, according to some embodiments, the calibration parameter 704 may also include an identifier of the location of a server or computing device (e.g., the image processing device 406) related to the control of the tunnel system 402. In the example shown in FIG. 7A, the selection 714 can be checked, and the box 712 can be used to enter, for example, an IP address 750 (shown in FIG. 7C) or other connection address for the tunnel system 402. According to some embodiments, the three-dimensional on-site calibration application 508 can be configured to automatically discover suitable devices. According to some embodiments, the calibration parameter may also include, for example, data 716 regarding the shape and dimensions of a calibration target (e.g., a box). According to some embodiments, the drop-down menu 716 may provide a list of pre-defined shapes and associated dimensions of the calibration target. According to some embodiments, the drop-down menu 716 may also include, for example, a "custom" option 760 that allows the user to enter the dimensions of the calibration target, as shown in FIG. 7D. When the custom option 760 is selected, the user interface 700 may provide boxes for the user to enter the length 762, width 764, and height 766 of the calibration target. It should be understood that according to some embodiments, the user interface 700 may be configured to receive other types of calibration parameters. In some embodiments, the calibration parameter received at block 692 may be stored, for example, as part of the three-dimensional on-site calibration data 510, in the memory 506 of the server 418.

[0054] Once the calibration parameter 704 is received at block 602, at block 604, a selection of one or more imaging devices 404 of the tunnel system 402 to be calibrated may be received from the user. In the exemplary user interface 700 shown in FIG. 7A, a drop-down list 718 including available imaging devices 404 within the tunnel system 402 may be displayed. The user may select one or more check boxes 720 to select one or more imaging devices for calibration. The list column of available imaging devices may be another imaging device 404 within the tunnel system 402, for example, the name 722 of the imaging device, the type 724 of the imaging device, the MAC address 726 of the imaging device, the software (or firmware) version 728 for the imaging device, the IP address 730 for the imaging device, and the group 732 to which the imaging device may be related or assigned. According to some embodiments, the user interface 700 may include a search box 734 that can be used to search for one or more specific imaging devices 404 of the tunnel system 402. In the exemplary user interface 700 shown in FIG. 7A, the user interface may also include an option (e.g., button 736) selectable by the user to discover or identify the imaging devices 404 within the tunnel system 402, which option can then be displayed within the list 718. In some embodiments, the selection of the imaging device(s) received at block 604 and the data associated with the selected imaging device(s) may be stored in the memory 506 of the server 418, for example, as part of the three-dimensional on-site calibration data 510. Once the calibration parameter is provided and one or more imaging devices to be calibrated are selected, the user may provide an input, for example, in the user interface 700, by selecting a button (not shown) that requests the three-dimensional calibration application to proceed to the next step.

[0055] In block 606, the calibration parameters and the selected imaging device can be automatically verified, for example, by the three-dimensional on-site calibration application 508. In some embodiments, the three-dimensional on-site calibration application 508 can be configured to generate a user interface configured to show the results of the verification. According to some embodiments, the server 418 may send the generated graphical user interface to the user device 410. FIG. 8 shows an exemplary verification user interface 700 that can be presented to the user to enable the user to view the results of the verification (e.g., as the user interface 414 on the display 416 of the user device 410). As illustrated in FIG. 8, the verification user interface 800 can include a header 802 that shows the steps of the three-dimensional on-site calibration process and identifies the current step being executed by the system 400 (e.g., using visual indicators). For example, in the user interface 800, the "pre-calibration verification" visual indicator can be highlighted in color (e.g., yellow color), and the "settings" visual indicator can include an edit icon (e.g., a pencil) to indicate that the "settings" step has been completed, and can be edited as needed. The verification user interface 800 can also include a section 804 for displaying the results of the verification, including, for example, whether a particular verification item was successful or not. For example, in FIG. 8, a checkmark (e.g., a checkmark displayed in a color such as green) can be used to indicate that a particular verification was successful. According to some embodiments, an unsuccessful verification may be indicated, for example, using an X (not shown). In some examples, the X may be displayed in a color such as red.In the example shown in FIG. 8, the pre-calibration verification 804 can include verification 806 of the input calibration parameters (e.g., the received calibration parameters from block 602), verification 808 of the calculated camera acquisition parameters such as the new camera interval for data collection for calibration (e.g., automatically calculated by the three-dimensional on-site calibration application 508), verification 810 that the calibration vision service is set (i.e., the IP address (or host name) for the tunnel system 402), verification 812 that factory calibration is available for all selected imaging services, and verification 814 that a backup of the customer system settings has been created for all selected imaging devices. According to some embodiments, the verification result of the verification in block 606 may be stored in the memory 506 of the server 418, for example, as part of the three-dimensional on-site calibration data 510.

[0056] According to some embodiments, the three-dimensional on-site calibration application 508 may be configured to automatically create and store a backup of existing custom system settings for a selected imaging device(s) (e.g., including custom system settings regarding camera spacing and other camera acquisition parameters). According to some embodiments, a backup of the custom system settings can be created and saved based on input or instructions received from a user. For verification 808 of camera acquisition parameters, according to some embodiments, the verification user interface 800 may include a drop-down selection 816 that enables a user to inspect and confirm a selected imaging device and new camera acquisition parameters (e.g., a new camera spacing as shown in FIG. 8) that are automatically calculated by the three-dimensional on-site calibration application 508 and set during data collection for calibration. For factory calibration verification, according to some embodiments, the verification user interface 800 may also include a drop-down selection 818 that enables a user to download a factory calibration. For backup creation verification, according to some embodiments, the verification user interface 800 may also include a drop-down selection 820 that enables a user to download an imaging device backup. According to some embodiments, the verification user interface 800 may include an input (e.g., a button) 822 that enables a user to re-run the verification. For example, if one of the verifications 806, 808, 810, 812, 814 fails, the user can return to the setup user interface (e.g., using input button 824) and change or re-enter the data. If the verification is completed successfully, the user can select a button 826 within the user interface 800 that requests, for example, that the three-dimensional on-site calibration application 508 proceed to the next step.

[0057] At block 608, data collection for three-dimensional on-site calibration can be performed using the tunnel system 402, a calibration target (e.g., a box), and the three-dimensional on-site calibration application 508. According to some embodiments, the three-dimensional on-site calibration application 508 may be configured to generate a user interface configured such that a user can select and present a trigger for data collection from the selected imaging device(s) 404. According to some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. FIGS. 9A and 9B show an exemplary data collection user interface 900 that may be presented to a user (e.g., as a user interface 414 on the display 416 of the user device 410), whereby the user can select and display collection data for the trigger used for data collection from the selected imaging device. As used herein, the term "trigger" refers to an execution by at least one imaging device that describes an object (or an acquisition or passage cycle of an object) that controls the acquisition of an image, the decoding of the acquired image, the assembly of the results, and the distribution of the results. As illustrated in FIG. 9A, the verification user interface 900 may include a header 902 that shows the steps of the three-dimensional on-site calibration process and identifies (e.g., using visual indicators) the current step being executed by the system 400. For example, in the user interface 900, the "Data Collection" visual indicator can be highlighted in a color (e.g., yellow color), and the "Settings" visual indicator and the "Pre-Calibration Verification" visual indicator include an edit icon indicating that these steps are complete but may require editing.

[0058] The data collection user interface 900 can also include an indication 904 that the tunnel system (e.g., tunnel system 402) is ready to collect data. Next, the user can run a calibration target (e.g., a box) through the tunnel system to obtain images from, for example, each selected imaging device and dimensioner data. According to some embodiments, as shown in FIG. 9B, the data collection user interface 900 can include a link 918 that enables the user to view an explanation (or hint) 924 of how to run a calibration target (e.g., a box) through the tunnel to collect data for calibration. For example, as shown in FIG. 9B, the explanation (or hint) 924 can include an animation and text. Returning to FIG. 9A, in an exemplary data collection user interface 900, as described above, each scan of the calibration target (i.e., running the calibration target through the tunnel, obtaining images, dimensioner data, etc.) using the selected imaging device(s) 404 can be referred to as a trigger. According to some embodiments, the data collection user interface 900 is configured to show a list 906 of completed scans or triggers for the calibration target. According to some embodiments, the entries in the list 906 for each completed trigger can include trigger information 908 and dimensioner data 910 obtained for the calibration target. According to some embodiments, the trigger information 908 can include, for example, the date and time of the trigger and a trigger index. According to some embodiments, the dimensioner data 910 can include, for example, length, width, height, corners, and an image count. The image count can indicate the total count of all images from all devices (e.g., all imaging devices selected for calibration) for a particular trigger. According to some embodiments, the data collection user interface 900 can highlight issues that may prevent successful calibration. For example, non-calibration objects can be detected and dimensioned, but marked as errors based on one or more failure checks (e.g., inaccurate length).According to some embodiments, the data collection user interface 900 can also be configured to show a list 912 of selected imaging devices 402 used to collect data for scans or triggers. As shown in FIG. 9A, the list 912 can include the name 914 of each imaging device and the number of images 916 acquired using each imaging device during a scan or trigger. According to some embodiments, for each scan or trigger, a calibration target can be placed at another location on the conveyor of the tunnel system, for example, at the center of the conveyor, on the right side of the conveyor, on the left side of the conveyor, etc. According to some embodiments, the data (e.g., images and dimensioners) collected for each trigger and imaging device at block 608 may be stored in the memory 506 of the server 418, for example, as part of the three-dimensional on-site calibration data 510. When data collection at block 608 conflicts, the user may select one or more triggers (e.g., using checkboxes 922 for each trigger) for calibration. According to some embodiments, when one or more triggers are selected, the user can provide an input, for example, in the user interface 900, to select a button (not shown) that requests the three-dimensional calibration application 508 to proceed to the next step.

[0059] In block 610, calibration for the selected imaging device is automatically generated using the data collected for each selected trigger, and in block 612, a report may be generated and displayed along with the calibration results for the selected imaging device. For example, in some embodiments, the three-dimensional calibration application 508 and the processor device 502 may be configured to automatically calculate and generate calibration data for each imaging device based on the data collected in block 606 and generate a report. According to some embodiments, each selected imaging device may be calibrated to facilitate mapping the three-dimensional position of each corner of an object supported by the conveyors 116, 204 (e.g., objects 118, 208) or an object supported by the support platform 316 (e.g., object 218) to a two-dimensional position within an image captured by the imaging device (e.g., as described below in connection with FIGS. 12A-12C). According to some embodiments, the image processing device 132 can map the three-dimensional position of one or more corners of an object to a two-dimensional position within each image in the set of images output by each imaging device (e.g., as described below in connection with FIGS. 13A and 13B). Thus, the three-dimensional position of each corner can be mapped to a two-dimensional position within the image by an imaging device having a particular field of view at a particular time.

[0060] According to some embodiments, the three-dimensional on-site calibration application 508 may be configured to generate a user interface configured to enable a user to view calibration data and results for each selected imaging device 404. According to some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. FIGS. 10A-10D show an exemplary calibration user interface 1000 that may be presented to the user to enable the user to view calibration data and results (e.g., user interface 414 on the display 416 of the user device 410). As shown in FIG. 10A, the verification user interface 1000 may include a header 1002 that shows the steps of the three-dimensional on-site calibration process and identifies the current step being executed by the system 400 (e.g., using visual indicators). For example, in the user interface 1000, the "Calibration" visual indicator can be highlighted in color (e.g., yellow color), and the "Settings", "Pre-Calibration Verification", and "Data Collection" visual indicators include editing icons to indicate that these steps have been completed, but can also be edited as needed.

[0061] As shown in FIG. 10A, the calibration user interface 1000 may include a list of selected imaging devices 404 (i.e., selected for calibration at block 604) that includes the generated calibration data and results. According to some embodiments, the calibration user interface 1000 may include an indicator 1006 as to whether there is a calibration error for one or more of the imaging devices 404. According to some embodiments, the list 1004 of imaging devices 404 may include trigger information 1008 and calibration data and results 1010 for each imaging device. According to some embodiments, the trigger information 1008 may include the name of the imaging device, its status (e.g., whether the calibration of the imaging device was successful), the identifier of the trigger used (e.g., the trigger with the best calibration result, i.e., the lowest max plane errors or other criteria), and the arrival time. As shown in FIG. 10A, according to some embodiments, the calibration data and results may be provided for one or more planes, e.g., a first plane 1012 and a second plane 1014. According to some embodiments, the generated calibration data can include the error determined between where a target (e.g., a symbol) on a calibration target (e.g., a box) was found in the collected data and where the target was expected to be found. In the exemplary calibration user interface 1000 of FIG. 10A, the maximum error 1016 for each plane with respect to the imaging device is shown along with the plane 1018 of the calibration target on which the target symbol was found (e.g., a cube with a symbol at a known position). In some embodiments, the “maximum error” 1016 is the maximum difference between the actually reported symbol center position and the calculated symbol center position of all symbols found on the plane converted from pixels to millimeters.

[0062] According to some embodiments, the generated calibration data may also include an evaluation or determination as to whether the maximum error for the imaging device is within an acceptable range. According to some embodiments, the determination as to whether the maximum error for the imaging device is within an acceptable range (e.g., implemented by the three-dimensional on-site calibration application 508 and the processor device 502) can be made by comparing the maximum error to a predetermined error threshold. In the exemplary calibration user interface 1000 shown in FIG. 10A, the calibration results for each imaging device are shown by highlighting the maximum error information in color. In this example, if the maximum error for the imaging device is less than a first predetermined error threshold (e.g., 25 millimeters), the maximum error is within an acceptable tolerance and is highlighted in green. In this example, if the maximum value for the imaging device is greater than the first predetermined error threshold and less than a second predetermined threshold (e.g., >25 mm and <50 mm), the maximum error is within an acceptable error range but higher than the recommended value, and thus is highlighted in yellow. Further, in this embodiment, if the maximum error for the imaging device is greater than the second predetermined threshold (e.g., >50 mm), the maximum error is unacceptable (i.e., calibration fails) and is highlighted in red. According to some embodiments, the calibration data and results generated for each imaging device in blocks 610 and 612 may be stored in the memory 506 of the server 418, for example, as part of the three-dimensional field calibration data 510

[0063] According to some embodiments, the calibration user interface 1000 may also include an area 1024 for showing one or more images associated with the imaging device selected from the list 1004. When the user selects the imaging device 1028 from the list 1004, one or more images 1026 can be displayed as shown in FIG. 10B. According to some embodiments, inputs 1030 (e.g., a film strip or other navigation control such as the "previous image" button) and 1032 (e.g., a film strip or other navigation control such as the "next image" button) may be provided to allow the user to scroll through each of the images associated with the selected imaging device 1028. According to some embodiments, the calibration user interface 1000 may provide feedback to the user as to why a particular image associated with the selected imaging device 1028 has not been used for calibration. As shown in FIG. 10C, according to some embodiments, the calibration user interface 1000 can be configured to provide an error message 1034 over a series of images not used for calibration, and may also include identification information 1036 for the images, such as, for example, the trigger indicator from which the image is derived, and the image indicator for that trigger. FIG. 10D shows an example of a calibration user interface 1000 in which the calibration of all imaging devices (e.g., all imaging devices selected for calibration) has been successful. In this example, the calibration user interface 1000 can include a display 1038 (e.g., using text) indicating that the calibration was successful and the process is complete, using, for example, a completion step described further below.

[0064] In block 614, if there is a calibration error (e.g., when the calibration of the imaging device fails or the maximum error is unacceptable), or if the user is not satisfied with the calibration result, the user may choose to re - execute the calibration for the failed imaging device in block 616. According to some embodiments, the calibration user interface 1000 may enable the selection of, for example, a button 1020 (shown in FIG. 10A) that allows the user to select to re - execute the calibration for a failed imaging device, and / or a button 1022 (shown in FIG. 10A) that allows the user to select to re - execute the calibration for all imaging devices, and / or a button 1040 (shown in FIG. 10D) that allows the user to select to perform calibration again after a successful calibration. If the user selects to re - execute the calibration for one or more imaging devices, the process returns to step 608 to collect data. In block 614, if there is no calibration error or failure, or in block 616, if the user does not choose to re - execute the calibration for one or more imaging devices, calibration can be completed in block 618. In some embodiments, the user may provide an input, for example, by selecting a button (not shown) in the user interface 1000 that requests the three - dimensional calibration application 508 to proceed to the next step.

[0065] According to some embodiments, the three-dimensional on-site calibration application 508 may be configured to generate a user interface configured to enable a user to complete the calibration result. According to some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. FIG. 11 shows an example of a completion user interface 1100 that enables a user to complete on-site calibration and can be displayed to the user (e.g., as a user interface 414 on the display unit 416 of the user device 410) to, for example, restore custom system settings and push calibration data. As shown in FIG. 11, the completion user interface 1100 may include a header 1102 that shows the steps of the three-dimensional on-site calibration process and identifies (e.g., using visual indicators) the current step being executed by the system 400. For example, in the user interface 1100, the "final" visual indicator can be highlighted in color (e.g., yellow color), and the "settings" visual indicator, "pre-calibration verification", "data collection" visual indicator, and "calibration" visual indicator include edit icons that indicate that these steps have been completed but can also be edited as needed.

[0066] In block 618, in some embodiments, one or more completion steps may be automatically performed, for example, by the three-dimensional on-site calibration application 508 and the processor device 502. In some embodiments, the three-dimensional on-site calibration system 400 (e.g., the processor 502 and the three-dimensional on-site calibration application 508) is configured to automatically restore the selected imaging device(s) to the custom system settings for calibration. According to some embodiments, the three-dimensional field calibration system 400 may also be configured to load the calibration data generated in block 610, for example, into the imaging device selected for calibration. Further, the completion user interface 1100 may further include a portion for displaying the results of one or more of the completion steps, for example, whether the device 1004 restoration step and the step of loading the calibration data into all devices 1106 were successful. According to some embodiments, the completion user interface 1100 may also include an input that allows the user to select to re-execute the completion steps (e.g., if one or more of the completion steps did not complete successfully). According to some embodiments, the restoration device section 1104 can be made selectable by the user, for example, using a drop-down list, to view the results of restoring the custom system settings for the imaging device. According to some embodiments, the calibration data loading section 1106 can be made selectable by the user, for example, using a drop-down list, to view the results of the push for all calibration data. According to some embodiments, the completion user interface 100 may also be configured to allow the user to select to download the calibration results either collectively or individually.

[0067] As described above, according to some embodiments, the calibration for each selected imaging device at block 610 of FIG. 6 can include calibrating each selected imaging device to map the three-dimensional position of each corner of an object supported by conveyors 116, 204 (e.g., objects 118, 208), or an object supported by support platform 316 (e.g., object 218) to a two-dimensional position within the image captured by the imaging device. According to some embodiments, the factory shipment calibration process may be performed for each imaging device within the machine vision system prior to installation at the site. FIG. 12A shows an example of a factory calibration setup that can be used to find the transformation between the image coordinate space and the calibration target coordinate space. As shown in FIG. 12A, the imaging device can generate an image that projects projection points within a three-dimensional factory coordinate space (Xf, Yf, Zf) onto a two-dimensional image coordinate space (xi, yi). The three-dimensional factory coordinate space can be defined based on a support structure (sometimes called a fixture) that supports the calibration target used to find the transformation between the factory coordinate space and the image coordinate space.

[0068] Generally, the calibration goal of an overall imaging device (e.g., a camera) is to find the transformation between a physical three-dimensional coordinate space (e.g., in millimeters) and an image two-dimensional coordinate space (e.g., in pixels). The transformation in FIG. 12A shows an example of such a transformation using a simple pinhole camera model. The transformation can have other non-linear components (e.g., to represent lens distortion). The transformation can be divided into extrinsic parameters and intrinsic parameters. The extrinsic parameters can depend on the mounting position and orientation of the imaging device with respect to the physical three-dimensional coordinate space. The intrinsic parameters can depend on the internal parameters of the imaging device, such as, for example, sensor and lens parameters. The goal of the calibration process is to find the values of these extrinsic and intrinsic parameters. According to some embodiments, the calibration process is divided into two parts, one part being executed in factory calibration and the other part being executed on-site.

[0069] Factory calibration may be aimed at finding eigenvalue parameters that do not change mainly based on the installation of the imaging device on-site. This can simplify the calibration process on-site. According to some embodiments, additional on-site calibration processing can be performed after the installation of the machine vision system, for example, during the three-dimensional on-site calibration processing as described above with respect to FIG. 6 (e.g., calibration at block 610 in FIG. 6). On-site calibration can mainly aim at finding external function parameters that can perform the on-site calibration processing during system installation more quickly and easily after installing the imaging device on-site. FIG. 12B shows an example of a coordinate space related to various parts of a system for imaging multiple images of each surface of an object and assigning symbols to the object according to an embodiment of the present technology. As shown in FIG. 12B, a common three-dimensional coordinate space (e.g., the common three-dimensional coordinate space shown in FIG. 12B having axes Xt, Yt, Zt) can be defined based on a support structure. For example, in FIG. 12B, a conveyor (e.g., as described above in relation to FIGS. 1A, 1B, and 2A) is used to define the common coordinate space, and there is an origin at a specific position along the conveyor (e.g., Yt = 0 is defined at a specific point along the conveyor such as a point defined based on the position of the photo eye described in U.S. Patent Application Publication No. 2021 / 0125373, Xt = 0 is defined on one side of the conveyor, and Zt = 0 is defined on the surface of the conveyor). As another example, the common coordinate space can be defined based on a stationary support structure (e.g., as described above in relation to FIG. 3). Alternatively, according to some embodiments, the common coordinate space can be defined based on a dimensioner used to measure the position of an object.

[0070] In addition, according to some embodiments, during the calibration process (e.g., on-site calibration process), the object coordinate space (Xb, Yb, Zb) can be defined based on the object (e.g., the calibration target described above with respect to FIG. 6) being used for calibration. For example, as shown in FIG. 12B, it is possible to place symbols on the object, where each symbol is associated with a specific position within the object coordinate space.

[0071] FIG. 12C shows an example of a process for generating an imaging device model that can be used to convert the coordinates of an object in a three-dimensional coordinate space related to a system for imaging a plurality of images of each surface of the object into coordinates in a two-dimensional coordinate space related to the imaging device. According to some embodiments, the imaging device can be calibrated before being installed on site (e.g., factory calibration can be performed). As described above, such calibration can mainly aim to find eigenvalue parameters that do not change with the installation of the imaging device on site, which can simplify the calibration process on site. For example, as shown in FIG. 12C, a factory calibration process can be executed to generate eigenvalue parameters that can be used with the external function parameters to map points in a three-dimensional factory coordinate space to two-dimensional points in an image coordinate space. The eigenvalue parameters can represent parameters that relate the pixels of the image sensor of the imaging device to the image plane of the imaging device, such as focal length, image format, and principal point. The external function parameters can represent parameters that relate points in a three-dimensional common coordinate (e.g., having an origin defined by a target used during factory calibration) to a three-dimensional camera coordinate (e.g., having an origin defined by the camera center).

[0072] The dimensioner can measure calibration targets (e.g., boxes to which codes defining the position of each code in the object coordinate space are added) in a common coordinate space, and the positions in the common coordinate space can be correlated with the positions in the image coordinate space of the calibration object (e.g., associating the coordinates at (Xt, Yt, Zt) with (xi, yi)). Such correspondence can be used to update the camera model to account for the transformation between the factory coordinate space and the common coordinate space (e.g., by deriving a factory calibration extrinsic function parameter matrix that can be defined using a 3D rigid transformation for converting one three-dimensional coordinate space, such as the normal coordinate space, to another like the factory coordinate space). During on-site calibration, the on-site calibration extrinsic function parameter matrix can be used with the derived camera model to relate points in the normal coordinate space (Xt, Yt, Zt) to points in the image coordinate space (xi, yi). This transformation is used to map the three-dimensional points of the object measured by the dimensioner to the image of the object, and as a result, the portion of the image corresponding to a particular surface can be determined without analyzing the content of the image. Note that the models depicted in FIGS. 12A, 12B, and 12C are simplified (e.g., pinhole camera) models that can be used to correct the distortion caused by projection to avoid complicating the explanation. Also, more sophisticated models (e.g., including lens distortion) can be used in relation to the mechanisms described herein.

[0073] Note that this is merely an example, and other techniques can be used to define the conversion between the common coordinate space and the image coordinate space. For example, instead of performing factory calibration and on-site calibration, on-site calibration can be used to derive a model that associates the common coordinates with the image coordinates. However, this may make the replacement of the imaging device more cumbersome because it may be necessary to perform the entire calibration using a new imaging device. According to some embodiments, calibration targets are used to find the conversion between the three-dimensional factory coordinate space and the image coordinates, and the imaging device is calibrated to find a conversion that facilitates the mapping between common coordinates (e.g., related to a conveyor, a support platform, or a dimensioner) without repeating the on-site calibration (e.g., as described in U.S. Patent No. 9,305,231, published on April 5, 2016, which is hereby incorporated by reference in its entirety), which can facilitate the replacement of the imaging device.

[0074] Figures 13A and 13B show an example of the correspondence between the coordinates of an object in a three-dimensional coordinate space associated with a system for imaging multiple images of each face of the object and the coordinates of the object in a two-dimensional coordinate space associated with the imaging device. As shown in Figure 13A, the mechanism described herein can map a three-dimensional point related to an object (e.g., a corner of the object) defined in a common coordinate space specified based on the geometric features of the conveyor to a point in the image coordinate space based on a model generated based on factory calibration and on-site calibration. In some embodiments, the two-dimensional points of each corner in the image space are used together with the known orientation of the imaging device to associate (or determine that a pixel is not associated with the object) each pixel in the image with a specific face (or side) of the object without analyzing the content of the image.

[0075] For example, as shown in FIG. 13A, the imaging device is configured to capture an image from a front-top angle with respect to a common coordinate. In such an example, using the two-dimensional positions of the corners of the box, the first part of the image can be automatically associated with the "left side" of the box, the second part with the "front side" of the box, and the third part with the "upper side" of the box. As shown in FIG. 13A, only two corners are located within the image, and the other six corners are outside the image. Based on the finding that the imaging device captures an image from above the object and / or based on camera calibration (e.g., facilitating the determination of the position of the imaging device and the common coordinates of the optical axis of the imaging device), the system can determine that both the top left bottom corner and the top left corner are visible within the image.

[0076] As shown in FIG. 13B, it is a second image captured after the box has moved a distance of ΔYt along the conveyor. As described above, an encoder can be used to determine the distance the box has moved between the time the first image shown in FIG. 13A was captured and the time the second image was captured. The operation of such an encoder is described in U.S. Patent No. 9,305,231 and U.S. Patent Application Publication No. 2021 / 0125373, filed on October 26, 2020, which are hereby incorporated by reference in their entirety. Using the amount of movement and the three-dimensional coordinate values, the two-dimensional points of the second image corresponding to the corners of the box can be determined. Based on the finding that the imaging device captures an image from above the object, the system can determine that the bottom right top corner is visible within the image, but the bottom right corner is blocked by the upper part of the box. Incidentally, the top surface of the box is visible, but the back surface and the right surface are not visible.

[0077] As described above, the three-dimensional on-site calibration application 508 may be configured to generate, for example, a data collection user interface as shown in FIGS. 9A and 9B. This enables the user to select and indicate a trigger for data collection from the selected imaging device 404. According to some embodiments, the data collection user interface may include a selection and input of "calibration cancellation" that enables the user to cancel the calibration process. FIGS. 14A and 14B show an example of a user interface with a calibration cancellation option according to an embodiment of the present technology. In FIG. 14A, the user interface 1400 (e.g., the data collection user interface 900) may include, for example, a button 1402 for the user to select and initiate the "calibration cancellation" process. When the user selects the "calibration cancellation" input 1402, a prompt such as a confirmation dialog box 1404 (shown in FIG. 14B) may be displayed to confirm whether the user wishes to proceed with stopping the calibration process. If the user confirms the "calibration cancellation" process, for the selected imaging device(s), it may be restored (e.g., automatically) to the custom system settings, and a completion user interface (an example of which is shown in FIG. 11) that indicates that the imaging device(s) has been restored to the custom system settings, the calibration has been cancelled, and calibration data has not been pushed to the imaging device may be displayed. If the user does not wish to proceed with "canceling the calibration process", the user can cancel "canceling the calibration process" itself, for example, by using the "cancel" input on the prompt 1404. According to some embodiments, when the user selects "cancel", the three-dimensional on-site calibration application 508 can save the user as they are during the calibration process without making changes.

[0078] According to some embodiments, any suitable computer-readable medium can be used to store instructions for performing the functions and / or processes described herein. For example, according to some embodiments, the computer-readable medium may be either transient or non-transient. For example, non-transitory computer-readable media can include magnetic media (such as hard disks, floppy disks, etc.), optical media (such as compact disks, digital video disks, Blu-ray disks (registered trademarks), etc.), semiconductor media (such as RAM, flash memory, electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), any suitable medium that is non-selectable or a line of permanence during transmission, and / or any suitable tangible medium. As another example, transient computer-readable media can include signals on a network, signals in an electric wire, conductors, optical fibers, circuits, or any suitable medium lacking permanence during transmission, and / or any suitable intangible medium.

[0079] Note that the term mechanism as used herein can include hardware, software, firmware, or any suitable combination thereof.

[0080] It should be understood that the above-described steps of the process of FIG. 6 can be executed or performed in any sequence or sequences not limited to the sequences shown and described in the figure. Also, some of the above-described steps of the process of FIG. 6 can be executed or performed substantially simultaneously or in parallel at appropriate places to reduce delays and processing times.

[0081] The present invention has been described and illustrated in the above-exemplified embodiments, but it is understood that the present disclosure is provided by way of example only, and that numerous changes in the details of the implementation of the present invention can be made without departing from the spirit and scope of the present invention, which is limited only by the following claims. Each feature of the disclosed embodiments can be combined and rearranged in various ways.

Claims

1. A method for three-dimensional (3D) on-site calibration of a machine vision system, comprising: receiving a set of calibration parameters and an identification of at least one imaging device of the machine vision system; determining camera acquisition parameters for calibration based on the set of calibration parameters; verifying the set of calibration parameters and the camera acquisition parameters; controlling the at least one imaging device to collect image data of a calibration target using the determined camera acquisition parameters; generating a set of calibration data for the at least one imaging device using the collected image data, the set of calibration data including a maximum error; generating a report including the set of calibration data for the at least one imaging device and an identification of whether the maximum error for the at least one imaging device is within an acceptable error range.

2. The method according to claim 1, further comprising displaying the report using a display.

3. The method according to claim 1, wherein the machine vision system is configured as a tunnel including one imaging device.

4. The method according to claim 1, wherein the machine vision system is configured as a tunnel including a plurality of imaging devices.

5. The method according to claim 1, wherein the set of calibration data includes one or more of a runtime conveyor speed, a calibration conveyor speed, a connection address associated with the at least one imaging device, a type of calibration target, and a dimension of the calibration target.

6. The method according to claim 1, further comprising saving a set of custom system settings for the at least one imaging device before controlling the at least one imaging device to collect image data of a calibration target.

7. The method according to claim 1, further comprising loading the set of calibration data in the at least one imaging device.

8. The method according to claim 1, wherein generating an identification of whether the maximum error is within an acceptable error range includes comparing the maximum error with a predetermined error threshold.

9. The method according to claim 1, wherein the report further includes an image generated based on the collected image data.

10. The method according to claim 1, wherein the object to be calibrated includes symbols, and the maximum error is the difference between the actual symbol center position and the calculated symbol center position.

11. A system for three-dimensional (3D) on-site calibration of a machine vision system, the system comprising: An input unit calibrated to receive a set of calibration parameters and an identification of at least one imaging device of the machine vision system; At least one processing device coupled to the input unit, Determining camera acquisition parameters for calibration based on the set of calibration parameters; Verifying the set of calibration parameters and the camera acquisition parameters; Controlling the at least one imaging device to collect image data of an object to be calibrated using the determined camera acquisition parameters; Generating a set of calibration data for the at least one imaging device using the collected image data, the set of calibration data including a maximum error; At least one processing device calibrated to generate a report including the set of calibration data for the at least one imaging device and an identification of whether the maximum error for the at least one imaging device is within an acceptable error range; A system comprising.

12. The system according to claim 11, further comprising a display coupled to the at least one processing device and configured to display the report.

13. The system according to claim 11, wherein the set of calibration data includes one or more of a runtime conveyor speed, a calibration conveyor speed, a connection address associated with the at least one imaging device, a type of object to be calibrated, and a dimension of the object to be calibrated.

14. The system according to claim 11, wherein the at least one processing device is further configured to save a set of custom system settings for the at least one imaging device before controlling the at least one imaging device to collect image data of an object to be calibrated.

15. The system according to claim 11, wherein the at least one processing device is further configured to generate a graphical user interface.

16. For the at least one imaging device, generating an identification of whether the maximum error is within an acceptable error range includes comparing the maximum error to a predetermined error threshold, the system of claim 11. **Claim 17** The machine vision system is configured as a tunnel including one imaging device, the system of claim 11. **Claim 18** The machine vision system is configured as a tunnel including a plurality of imaging devices, the system of claim 11. **Claim 19** The report further includes an image generated based on the collected image data, the system of claim 11. **Claim 20** The object to be calibrated includes a symbol, and the maximum error is the difference between the actual symbol center position and the calculated symbol center position, the system of claim 11.

Citation Information

Patent Citations

  • System and method for three-dimensional alignment of objects using machine vision

    JP2017004533A

  • Dimensioning and Barcode Reading System

    US20170337406A1

  • Boundary estimation systems and methods

    US20210125373A1