Systems and methods for dynamic testing of vision systems
The dynamic testing system for machine vision systems simplifies deployment by automating testing processes, reducing installation time and resource needs, and ensuring reproducibility, addressing the complexity of conventional installation and setup challenges.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- COGNEX CORP
- Filing Date
- 2023-05-09
- Publication Date
- 2026-06-02
AI Technical Summary
Conventional machine vision systems require complex and lengthy installation and setup processes, necessitating significant resources and downtime, and lack standardized testing methods for efficient deployment.
A system and method for dynamic testing of machine vision systems, including a tunnel configuration with imaging devices and a conveyor, which simplifies deployment by automating testing processes and providing a standardized test interface, reducing installation time and resource requirements.
The system streamlines machine vision system deployment by reducing installation time, resource needs, and improving efficiency, while ensuring reproducibility and reducing the number of trained personnel required.
Smart Images

Figure 0007869338000001 
Figure 0007869338000002 
Figure 0007869338000003
Abstract
Description
Technical Field
[0001] (Cross - reference to Related Applications) This application claims priority based on U.S. Provisional Application No. 63 / 339,862, filed on May 9, 2022, entitled "System and Method for Dynamic Testing 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] Machine vision systems are generally configured to image an object or symbol and analyze the image to identify the object or decode the symbol. Thus, machine vision systems generally include one or more devices for image acquisition and image processing. In conventional applications, these devices can be used to acquire an image or to analyze an 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 that is moving relative to the imaging device.
Summary of the Invention
[0005] According to embodiments of the present technology, a method for dynamic testing of a machine vision system includes receiving a set of test parameters and a selection of a tunnel system. The machine vision system may include a tunnel system having a conveyor and at least one imaging device. The method may further include verifying the test parameters, controlling the at least one imaging device, and acquiring a set of imaging data for a test object located at a predetermined justification on the conveyor. The test object may include a plurality of object symbols. The method may further include determining the test result by analyzing the set of imaging data to determine whether the at least one imaging device reads an object symbol associated with the at least one imaging device, and generating a report containing the test result.
[0006] In some embodiments, the method further includes displaying the report using a display. In some embodiments, the set of image data of the object under test may include image data of the object under test located at a predetermined justification corresponding to the right side of the conveyor. In some embodiments, the set of image data of the object under test may include image data of the object under test located at a predetermined justification corresponding to the left side of the conveyor. In some embodiments, the test parameters may include one or more test types indicating the height of the object under test or the size of the plurality of test symbols of the object under test. In some embodiments, the height of the object under test is a predetermined maximum height corresponding to the tunnel system. In some embodiments, the method may further include saving a set of existing customer system settings for the at least one imaging device before acquiring the set of image data. In some embodiments, the method may further include reconfiguring the at least one imaging device based on the test parameters after saving the set of existing customer system settings for the at least one imaging device. In some embodiments, the method may further include restoring the at least one imaging device to the set of existing customer system settings after determining the test results. In some embodiments, the at least one imaging device includes a plurality of imaging devices. In some embodiments, determining the test result may further include analyzing the set of imaging data to determine whether the at least one imaging device in the bank reads one target symbol associated with the bank. In some embodiments, the at least one imaging device includes one imaging device. In some embodiments, the method may further include determining whether the at least one imaging device accurately received motion data based on the set of imaging data.
[0007] According to another embodiment of the present technology, a system for dynamic testing of a machine vision system includes one input unit and at least one processing unit. The machine vision system may include a tunnel system having a conveyor and at least one imaging device. The input unit may be configured to receive a set of test parameters and a selection of the tunnel system. The at least one processing unit may be coupled to the input unit and may be configured to verify the test parameters, control the at least one imaging device, and acquire a set of imaging data for a test object located at a predetermined justification on the conveyor. The test object may include a plurality of object symbols. The processing unit may further be configured to determine the test result by analyzing the set of imaging data to determine whether the at least one imaging device reads an object symbol associated with the at least one imaging device, and to generate a report including the test result.
[0008] According to some embodiments, the system further includes a display coupled to the at least one processing unit and configured to display the test results. In some embodiments, the set of image data of the object under test may include image data of the object under test located at a predetermined justification corresponding to the right side of the conveyor. In some embodiments, the set of image data of the object under test may include image data of the object under test located at a predetermined justification corresponding to the left side of the conveyor. In some embodiments, the at least one imaging device includes a plurality of imaging devices, and the plurality of imaging devices may be divided into a plurality of banks. In some embodiments, determining the test results further includes analyzing the set of image data to determine whether at least one imaging device in the bank reads a target symbol associated with the bank. In some embodiments, the at least one imaging device includes a single imaging device. In some embodiments, the at least one processing unit is further configured to determine whether the at least one imaging device has accurately received motion data based on the set of image data.
[0009] The various purposes, 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 relation to the following drawings. In the drawings, similar reference numerals identify similar elements. [Brief explanation of the drawing]
[0010] [Figure 1A] This figure shows an example of a system for capturing multiple images of each side of an object, according to one embodiment of this technology. [Figure 1B] This figure shows an example of a system for capturing multiple images of each side of an object, according to one embodiment of this technology. [Figure 2]This figure shows another example of a system for capturing multiple images of each side of an object, according to one embodiment of this technology. [Figure 3] This figure shows another example of a system for capturing multiple images of each side of an object, according to one embodiment of this technology. [Figure 4] This figure shows a system for dynamic testing of a machine vision system, according to one embodiment of this technology. [Figure 5] This figure shows an example of a server in the system shown in Figure 4, according to one embodiment of this technology. [Figure 6] This figure shows a method for dynamic testing of a machine vision system according to one embodiment of this technology. [Figure 7A] This figure shows an example of a setup page user interface according to one embodiment of this technology. [Figure 7B] This figure shows an example of a setup page user interface according to one embodiment of this technology. [Figure 8A] This figure shows an example of a device preparation user interface according to one embodiment of this technology. [Figure 8B] This figure shows an example of a device preparation user interface according to one embodiment of this technology. [Figure 9A] This figure shows an example of an encoding check user interface according to one embodiment of this technology. [Figure 9B] This figure shows an example of an encoding check user interface according to one embodiment of this technology. [Figure 9C] This figure shows an example of an encoding check user interface according to one embodiment of this technology. [Figure 10A] This figure shows an example of a right-aligned test user interface according to one embodiment of this technology. [Figure 10B] This figure shows an example of a right-aligned test user interface according to one embodiment of this technology. [Figure 10C]FIG. showing an example of a right-aligned test user interface according to an embodiment of the present technology. [Figure 11A] FIG. showing an example of a left-aligned test user interface according to an embodiment of the present technology. [Figure 11B] FIG. showing an example of a left-aligned test user interface according to an embodiment of the present technology. [Figure 11C] FIG. showing an example of a left-aligned test user interface according to an embodiment of the present technology. [Figure 12A] FIG. showing an example of a result summary user interface according to an embodiment of the present technology. [Figure 12B] FIG. showing an example of a result summary user interface according to an embodiment of the present technology. [Figure 13] FIG. showing an example of an aligned test user interface according to an embodiment of the present technology.
MODE FOR CARRYING OUT THE INVENTION
[0011] A machine vision system may include one or more imaging devices. For example, according to some embodiments, a machine vision system may be implemented within a tunnel arrangement (or system) which may include a structure in which each imaging device can be positioned at a certain angle to a conveyor so as to produce an angled field of view. As used herein, a “machine vision tunnel” (or simply “tunnel” or “tunnel system”) may refer to a system that includes and supports imaging devices that acquire image data of a typical scene. In some embodiments, a typical scene may include a relatively small area, such as a tabletop or a discrete portion of a conveyor. According to some embodiments, within a given tunnel system, there may be overlaps between the fields of view of imaging devices, or there may not be overlaps between the fields of view of imaging devices, or a combination thereof (e.g., there may be overlaps between certain sets of imaging devices but not between other sets, or a collective overlap of multiple imaging devices to cover the entire scene, etc.).
[0012] The deployment of a machine vision system, such as a tunnel system, to a customer site can involve numerous steps, including installation, commissioning, field calibration, and testing. Customized machine vision systems may require complex and lengthy installation and setup, necessitating significant resources. It is advantageous to provide systems and applications that can simplify and streamline the deployment of machine vision systems. For example, modular hardware elements (e.g., pre-built modules) can be configured to implement system configurations and specifications, thereby reducing installation time. This disclosure describes systems and methods configured to simplify deployment processes, including dynamic testing processes, for installed machine vision systems. In some embodiments, the apparatus and methods for dynamic testing may include integrated hardware and software elements that include applications capable of automating one or more parts of the dynamic testing process. Advantageously, the dynamic testing systems described can provide a standardized test interface that can provide reproducibility between different systems and between different customers. The dynamic testing systems and methods described can also reduce the time (and therefore the amount of downtime) and resources required to install a machine vision system, thereby improving the efficiency of machine vision system deployment. In addition, the systems and methods for dynamic testing described herein can reduce the number of trained personnel required to support and maintain the installed machine vision system. While the following description refers to tunnel systems or configurations, it should be understood that the systems and methods for dynamic testing described herein can be applied to other types of machine vision system configurations.
[0013] FIG. 1A shows an example of a system 100 for imaging multiple 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 (such as barcodes, two-dimensional (2D) codes, fiducial points, hashmats, machine-readable codes, alphanumeric codes, and other labels) on objects (such as 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 various symbols and symbol positions, including non-direct part mark (DPM) symbols and DPM symbols arranged on the top or any other side surface 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.
[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 measuring 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, the system 100 may include one or more imaging devices 112 and an imaging processing device 132. For example, the system 100 may include multiple imaging devices in a tunnel arrangement (e.g., implementing part of tunnel 102) representatively shown via imaging devices 112a, 112b, 112c, having a field of view (FOV) representatively shown via fields of view 114a, 114b, 114c that include part of the conveyor 116. According to some embodiments, each imaging device 112 is positioned at an angle to the top or side of the conveyor (e.g., with respect to the normal direction of the symbols on the sides of objects 118a and 118b, or with respect to the direction of travel), resulting in an angled field of view. Similarly, some of the fields of view may overlap with other fields of view (e.g., fields of view 114a and field of view 114b). In such embodiments, the system 100 may be configured to capture one or more images of multiple faces of object 118a and / or 118b as the object is moved by the conveyor 116. According to some embodiments, the captured images can be used to identify symbols on each object (e.g., symbol 120), which can then be decoded or analyzed (as appropriate). In some embodiments, gaps in the conveyor 116 (not shown) can be used to facilitate imaging of the bottom sides of objects using an imaging device or array of imaging devices (not shown) located below the conveyor 116 (e.g., as described in U.S. Patent Application Publication No. 2019 / 0333259, filed April 25, 2018, which is incorporated herein by reference in its entirety). In some embodiments, images captured from the underside of an object can also be used to identify symbols on the object, which can then be decoded (as appropriate).
[0016] Two arrays of three imaging devices 112 are shown to image the top of objects 118a and 118b, and four arrays of two imaging devices 112 are shown to image the sides of objects 118a and 118b; however, this is merely illustrative, and it should be noted that images of various faces of an object can be captured using any suitable number of imaging devices. For example, each array may include four or more imaging devices. In some cases, the system 100 may include fewer or more imaging devices 112 than those shown in Figure 1A. For example, as described above, the tunnel system may include only one imaging device 112. In some cases, a single imaging device 112 may be positioned to image the top of objects 118a and 118b, to image the sides of objects 118a and 118b, or to image the bottom of objects 118a and 118b. In another embodiment, various combinations of two or more imaging devices 112 (for example, various combinations of imaging devices 112a, 112b, and 112c) may be included in the system 100. In one case, one imaging device 112a may be positioned to image the top of objects 118a and 118b, and one imaging device 112b may be positioned to image the sides of objects 118a and 118b. In another case, one imaging device 112a may be positioned to image the top of objects 118a and 118b, and one imaging device 112c may be positioned to image the sides of objects 118a and 118b.
[0017] While the imaging device 112 is generally shown to image objects 118a and 118b without using mirrors to rotate its field of view, this is merely illustrative, and one or more fixed and / or steerable (rotatable) mirrors can be used to rotate one or more fields of view of the imaging device, as will be discussed later with respect to Figures 2 and 3, making it easier to reduce the vertical or lateral distance between the imaging device and objects in the tunnel 102. For example, imaging device 112a may be positioned with an optical axis parallel to the conveyor 116, and one or more mirrors may be positioned above the tunnel 102 to rotate the field of view of imaging device 112a toward the front and above objects in the tunnel 102.
[0018] According to some embodiments, the imaging device 112 may be implemented using any preferred type of imaging device. For example, the 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, the 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, the 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 on the image sensors. The imaging devices 112a, 112b, and 112c can each selectively acquire image data from different fields of view (FOV), regions of interest ("ROIs"), or combinations thereof. According to some embodiments, the system 100 can be used to acquire multiple images of each face of an object, where one or more images may include one or more objects. The object 118 may be associated with one or more symbols, such as a barcode or a QR code (registered trademark). In some embodiments, the system 100 can be configured to facilitate imaging of the bottom side of an object supported by the conveyor 116 (for example, the surface of the object 118a placed on the conveyor 116). For example, the conveyor 116 may be implemented with gaps, such as gaps between the parts of the conveyor 116 (as described above).
[0019] According to some embodiments, a gap 122 is provided between objects 118a and 118b. In different implementations, the size of the gap between objects can be within a certain range. In some implementations, the gap between objects can be substantially the same as that between all sets of objects in the system, or it can represent a fixed minimum size between all sets of objects in the system. According to some embodiments, a smaller gap size may be used to maximize the throughput of the system.
[0020] According to some embodiments, system 100 can measure the dimensions of an object moving toward tunnel 102 on conveyor 116 and may include a dimensioning system (not shown) called a dimensioner. Furthermore, system 100 may include a device (e.g., an encoder or other motion measuring device, not shown) that tracks the physical movement of an object (e.g., objects 118a, 118b) moving through tunnel 102 on conveyor 116. Figure 1B shows an example of a device that captures multiple images of each face of an object according to embodiments of the art. Figure 1B shows a simplified diagram of system 140 to illustrate an exemplary arrangement of the dimensioner and motion measuring device (e.g., encoder) relative to the tunnel. As described above, system 140 may also include a dimensioner 150 and a motion measuring device 152. In the illustrated embodiment, the conveyor 116 is configured such that objects 118d and 118e move along the direction of travel (i.e., the direction indicated by the arrow 154) through the dimensioner 150 before being imaged by one or more imaging devices 112. According to the illustrated embodiment, a gap 156 is provided between objects 118d and 118e, and the image processing device 132 is able to communicate with one or more imaging devices 112, the dimensioner 150, and the motion measuring device 152. The 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 some point in time. For example, the dimensioner 150 can be configured to determine the distance from the dimensioner 150 to the top surface of the object, and can be configured to determine the size and / or orientation of the surface facing the dimensioner 150. According to several embodiments, the dimensioner 150 can be implemented using various techniques. For example, the dimensioner 150 can be implemented using a three-dimensional camera (e.g., a structured optical three-dimensional camera, a continuous time of flight three-dimensional camera, etc.).As another example, the dimensioner 150 can be implemented using a laser scanning system (e.g., a LiDAR system). In a particular example, the dimensioner 150 can be implemented using the 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 stereocalculated) may be implemented in 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 used as an image processing device) may be implemented in the device together with the dimensioner and imaging device.
[0021] According to several 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 roughly rectangular in shape in a Cartesian coordinate space defined at 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 roughly cubic in shape in a Cartesian coordinate space defined at the origin in the dimensioner 150. In yet another embodiment, the dimensioner 150 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least roughly cubic in shape in a Cartesian coordinate space defined with respect to the conveyor 116 (for example, 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 a conveyor 116 and an imaging device 112 to supply an electronic signal to the imaging device 112 and / or an image processing device 132 indicating the amount of movement of the conveyor 116 and the objects 118d, 118e supported on it over a known period of time. This can be useful, for example, to coordinate 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 112). According to some embodiments, the motion measuring device 152 can be configured to generate a number of pulses (e.g., encoder pulses) 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 pulses) to an 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 the arrow 154. According to some embodiments, the position of an object can be determined based on the initial position, the change in pulse count, and the pulse count interval.
[0023] As described above, the tunnel system includes and supports one or more imaging devices that can acquire image data relating to a normal scene. According to some embodiments, the tunnel system may include one imaging device; for example, in Figure 1B of some embodiments, imaging device 112 may represent a single imaging device. Although imaging device 112 is shown at the top of system 140 above the conveyor, in some cases, imaging device 112 may be located on the side of system 140 or below system 140 (for example, below a gap in conveyor 116).
[0024] According to some embodiments, the image processing device 132 (or control device) can coordinate the operation of various components of the system 100 (or system 140). For example, the image processing device 132 can cause a dimensioner (e.g., dimensioner 150 shown in Figure 1B) to acquire the dimensions of an object positioned on the conveyor 116, and the imaging device 112 to capture images of each surface. According to some embodiments, the image processing device 132 can control the detailed operation 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 contained within each imaging device, a separate control device, etc.) can control the detailed operation of each imaging device. For example, the image processing device 132 (and / or any other preferred device) can provide a trigger signal to each imaging device and / or dimensioner (e.g., dimensioner 150 shown in Figure 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. System 100 may also include one or more light sources (not shown) to illuminate the surface of an object, and the operation of such light sources may be coordinated by a central device (e.g., an image processing device 132) and / or control may be distributed (e.g., an imaging device may control the operation of one or more light sources, and a processor associated with one or more light sources may control the operation of the light sources, etc.). For example, according to some embodiments, System 100 may be configured to acquire images of multiple sides of one object simultaneously (e.g., simultaneously or over a common time interval), which are included as part of a single trigger event. For example, each imaging device 112 may be configured to acquire each set of one or more images over a common time interval. In addition, or alternatively, in some embodiments, the imaging device 112 may be configured to acquire images based on a single trigger event.For example, based on a sensor (e.g., a contact sensor, presence sensor, imaging device, etc.) determining that object 118 has moved into the field of view of the imaging device 112, the imaging device 112 can simultaneously acquire images of each side of object 118.
[0025] As described above, the field of view of one or more imaging devices can be rotated using one or more fixed and / or controllable mirrors, thereby facilitating a reduction in the vertical or lateral distance between the imaging devices and the object in the tunnel 102. Figure 2 shows another example of an apparatus for capturing multiple images of each face of an object according to one embodiment of the present technology. The system 200 includes, within the tunnel arrangement 202, multiple banks of imaging devices 212, 214, 216, 218, 220, 222 and multiple mirrors 224, 226, 228, 230. For example, the banks of imaging devices shown in Figure 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 capture images 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 upper leading bank 216 and mirror 228 can be configured to capture images of the top and rear faces of an object using imaging devices 234, 236, 238, 240. According to the illustrated embodiment, the banks of imaging devices 212, 214, 216, 218, 220, 222 and mirrors 224, 226, 228, 230 can be mechanically coupled to a support structure 242 above the conveyor 204. While the illustrated relative mounting positions of the bank imaging devices 212, 214, 216, 218, 220, and 222 are advantageous, it should be noted that in some embodiments, imaging devices for imaging various faces of an object may be reoriented relative to the positions shown in Figure 2 (for example, imaging devices may be offset and positioned at corners rather than faces).Similarly, while there may be advantages associated with using four imaging devices per bank configured to acquire image data from one or more faces of an object, according to some embodiments, a particular imaging device can be configured to acquire images of multiple faces of an object using a different number or arrangement of imaging devices and different arrangements of mirrors (e.g., using maneuverable mirrors and additional fixed mirrors). In some embodiments, an imaging device may be dedicated to acquiring images of multiple faces of an object, including overlapping acquisition areas, for other imaging devices included in the same system.
[0026] According to some embodiments, the system 200 also includes a dimensioner 206 and an image processing device 232. As described above, a number of objects 208a, 208b, 208c are supported within the conveyor 204 and can move within the tunnel 202 along the direction indicated by the 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 face or multiple faces of an object (e.g., object 208a) supported by the conveyor 204.
[0027] Figures 1A, 1B, and 2 show a dynamic support structure that can move (e.g., conveyor 116, conveyor 204), which, according to some embodiments, can be used with a stationary support structure to support an object being imaged by one or more imaging devices. In some embodiments (not shown), the object being imaged can be temporarily moved by an operator through a coverage area until the desired visualization operation is completed. Figure 3 shows another example of a system for capturing multiple images of each face of an object according to embodiments of the art. According to some embodiments, the system 300 may 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 on the image sensors. According to some embodiments, the multiple imaging devices 302, 304, 306, 308, 310, and / or 312 may include and / or associate a operable mirror (for example, described in U.S. Application No. 17 / 071,636 filed October 13, 2020, which is incorporated herein by reference in its entirety). Each of the imaging devices 302, 304, 306, 308, 310, and / or 312 may selectively acquire image data from different fields of view (FOV) corresponding to different orientations of the associated operable mirror. According to some embodiments, the system 300 can be used to acquire multiple images of each face of an object. Figure 3 shows the multiple imaging devices 302, 304, 306, 308, 310, and 312 in the figure, but it should be understood that according to some embodiments, the system 300 may include one imaging device or various combinations of two or more imaging devices.
[0028] According to some embodiments, system 300 can be used to acquire images of multiple objects presented for image acquisition. For example, system 300 may include a support configuration supporting each of the imaging devices 302, 304, 306, 308, 310, and 312, and a platform 316 configured to support one or more objects 318, 334, and 336 to be imaged (note that each object 318, 334, and 336 may be associated with one or more symbols such as a barcode or a QR code®). For example, a transport device (not shown) including one or more robotic arms (e.g., robotic bin pickers) may be used to position the multiple objects (e.g., in 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 realized in a variety of configurations. According to some embodiments, the support platform 316 can be configured to easily capture images of the bottom side surfaces of one or more objects supported by the support platform 316 (e.g., the surfaces of objects stationary on the platform 316 (e.g., objects 318, 334, or 336)). For example, the support structure 316 can be implemented using a transparent platform, a mesh or grid platform, an open center platform, or any other suitable configuration. Except for the presence of the support structure 316, acquiring images of the bottom surfaces is substantially the same as acquiring images of other surfaces of the objects. In a further embodiment, a conveying device (not shown) including one or more robotic arms (e.g., robotic bin pickers) may be used to select and / or position a number of objects (e.g., in bins or other containers) on the support platform 316.
[0029] In some embodiments, imaging devices 302, 304, 306, 308, 310, and / or 312 can be oriented to acquire images of specific faces of an object (e.g., object 318) that is placed on and supported by the support platform 316, using the fields of view of the imaging devices. For example, imaging device 302 may be mechanically coupled to an upper support structure of the support platform 316 and oriented toward the upper surface of the support platform 316, imaging device 304 may be mechanically coupled to a lower support structure of the support platform 316, and imaging devices 306, 308, 310, and / or 312 may each be mechanically coupled to a face of the support structure such that their respective fields of view are oriented toward the side of the support platform 316.
[0030] According to some embodiments, each imaging device may be configured to have an optical axis substantially parallel to another imaging device and perpendicular to the other imaging devices (for example, when a controllable mirror is in the neutral position). For example, imaging devices 302 and 304 may be configured to face each other (for example, the imaging devices have substantially parallel optical axes), and the other imaging devices may be configured to have optical axes perpendicular to the optical axes of imaging devices 302 and 304.
[0031] According to some embodiments, the illustrated mounting positions of the imaging devices 302, 304, 306, 308, 310, and 312 relative to each other may be advantageously reoriented relative to the illustrated positions in Figure 3 for imaging various faces of a single object (e.g., the imaging devices may be offset, or the imaging devices may be positioned at corners rather than faces). Similarly, advantages (e.g., improved acquisition speed) may be obtained in relation to using six imaging devices configured to acquire imaging data of corresponding faces of a single object (e.g., six faces of object 118), while according to some embodiments, a particular imaging device can be configured to acquire images of multiple faces of a single object using a different number or arrangement of imaging devices, different arrangements of mirrors (e.g., using fixed mirrors and additional movable mirrors). For example, fixed mirrors may be positioned so that imaging devices 306, 310 can acquire images of the far faces of object 318 and can be used instead of imaging devices 308, 312. According to some embodiments, the system 300 can be configured to image each of a number of objects 318, 334, 336 on the platform 316.
[0032] According to some embodiments, the system 300 may include a dimensioner 330. As described above with respect to Figures 1A, 1B, and 2, the dimensioner may be configured to determine the dimensions and / or position of an object (e.g., object 318, 334, or 336) supported by the support structure 316. As described above, according to some embodiments, the dimensioner 330 may 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 300. For example, the dimensioner 330 may determine the three-dimensional coordinates of each of the eight corners of an object that is at least roughly rectangular in shape in a Cartesian coordinate space defined at the origin in the dimensioner 330. As another example, the dimensioner 330 may determine the three-dimensional coordinates of each of the eight corners of an object that is at least roughly cubic in shape in a Cartesian coordinate space defined with respect to the support platform 316 (e.g., using the center of the support platform 316 as the origin).
[0033] According to some embodiments, the image processing device 332 can coordinate the operation of the imaging devices 302, 304, 306, 308, 310, and / or 312, and / or perform the image processing operations described above in relation to the image processing device 132 in Figure 1A, and / or the image processing device 410 described later in relation to Figure 4.
[0034] Figure 4 shows a system for dynamic testing of a machine vision system according to one embodiment of the present technology. In the example illustrated in Figure 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 Figure 4. For example, system 400 may include multiple machine vision systems 402, multiple user devices 410, multiple servers 418, or a combination thereof. In another embodiment, one or more components of device 400 can be combined into a single device, such as a user device 410 and a server 418.
[0035] 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 may 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, 4G network, 5G network, etc., conforming to any suitable standard such as CDMA, GSM, LTE®, LTE Advanced, NR, etc.), a wired network, etc. According to some embodiments, the communication network 408 may 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 Figure 4 can be any appropriate communication link or combination of communication links, such as a wired link, fiber optic link, Wi-Fi® link, Bluetooth® link, or cellular link. According to some embodiments, the components of system 400 may communicate directly with the communication network 408. According to some embodiments, the components of system 400 may communicate via one or more intermediate devices not shown in Figure 4.
[0036] As shown in Figure 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 devices 404 and the image processing devices 406 may communicate via one or more wired or wireless communication lines or buses, or a combination 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 Figure 4. According to some embodiments, the machine vision system 402 may include one or more imaging devices 404 in a tunnel configuration, for example, as described above with respect to Figures 1A, 1B, 2 and 3. In one embodiment, an image processing device 406 (e.g., an image processing device 132) can receive images and / or information about 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 as described above in relation to Figures 1A and 1B, imaging devices in imaging device banks 212, 214, 216, 218, 220, 222 as described above in relation to Figure 2, and / or one or more imaging devices 302, 304, 306, 308, 310, 312 as described above in relation to Figure 3). According to some embodiments, the machine vision system 402 may also include a dimension sensing system (not shown), e.g., dimensioners 150, 206, and 330 as described above in relation to Figures 1A, 1B, 2, and 3. As described above, the dimensioner can be used to supply dimensional data relating to 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 via a network connection (for example, via a communication network 408).The image processing device 406 may also receive input from any other suitable device, such as a motion measuring device (not shown) configured to output a value indicating the movement of a conveyor over a specific period of time, which can be used to determine the distance an object has moved (e.g., between the time the dimensions were determined and the time each image of the object was generated). The image processing device 406 may also coordinate the operation of one or more other devices, such as one or more other light sources (not shown) configured to illuminate an object (e.g., flashing, projecting light, etc.). Additionally or alternatively, the image processing device 406 may, using any suitable technique or combination of techniques, perform part of a symbol decoding process to identify and / or decode symbols (e.g., barcodes, QR codes®, text, etc.) associated with an object imaged by the imaging device 404.
[0037] According to some embodiments, the imaging device 404 may be any preferred imaging device. For example, each may include at least one imaging sensor (e.g., a CCD image sensor, a CMOS image sensor, or other preferred sensor), at least one lens arrangement, and at least one control device (e.g., a processor device) configured to perform computational operations relating to the imaging sensor. According to some embodiments, the lens arrangement may include a fixed-focus lens. In addition to or instead of this, the lens arrangement may include an adjustable-focus lens, such as a liquid lens or a mechanically adjustable lens of known form. In addition, according to some embodiments, the imaging device 302 may include a controllable 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 (or more) configured to illuminate objects in the field of view (e.g., a flash, a high-intensity flash, or a light source as described in U.S. Patent Application Publication No. 2019 / 0333259). According to some embodiments, the 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 Figures 1A, 1B, 2, and 3.
[0038] According to some embodiments, the imaging device 404 may be localized to the image processing device 406. For example, the imaging device 404 can be connected to the image processing device 406 by a cable, a direct wireless link, etc. In addition to or instead of this, in some embodiments, the imaging device 404 may be located locally and / or remotely from the image processing device 406, and may communicate data (e.g., image data, dimensions and / or location data, etc.) to the image 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, image processing devices 406, and / or any other suitable components may be integrated as a single device (e.g., in a common housing).
[0039] As shown in Figure 4, the user device 410 may include one or more input devices 412, a user interface 414, and a display 416. The user device 410 can be configured to allow an operator or user to perform dynamic tests of the machine vision system 402, as will be further described below. The input device 412 may be configured to receive data or information from the user or operator. According to some embodiments, the input device(s) may include any suitable input device and / or sensor that can be used to receive user input, such as a keyboard, mouse, touchscreen, or microphone. The user interface 414 may be configured to provide one or more graphical user interfaces (GUIs) configured to allow the user to interact with the user device 410 (e.g., to provide input and receive output from there). In some embodiments, the GUI may be displayed to the user on the display 416. According to some embodiments, the display 416 may include any suitable display device, such as a computer monitor, touchscreen, television, smartphone, or tablet. According to some embodiments, the GUI may be generated using a processor device (not shown) on the user device 410, or it may be generated by a separate device, such as a server 418, as further described below, and transmitted to the user device 410 (e.g., via a communication network 408). The user device 410 may also include other components not shown, such as a processor device (e.g., a microprocessor, an application-specific integrated circuit (ASIC), or another suitable electronic device), memory (e.g., a non-volatile computer-readable medium), a communication system for communicating via the communication network 408 (e.g., a transceiver), and optionally, one or more additional communication networks or connections.
[0040] 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, or a virtual machine run on a physical computing device.
[0041] According to some embodiments, the image processing device 410 can communicate image data (e.g., images received from imaging devices 404) and / or data received from a dimension sensing system (not shown) to a server 418 or user device 410 via a communication network 408. According to some embodiments, the user device 410 can communicate data to the server 418 via the communication network 408, such as data for dynamic testing of a machine vision system 402. Figure 5 shows an example of a server 418 in the system shown in Figure 4 according to one embodiment of the present technology. As shown in Figure 5, the server 418 may comprise a processing device 502, one or more communication systems 504, and / or memory 506. The processing device 502, communication systems 504, and memory 506 can communicate via one or more wired or wireless lines or buses, or a combination thereof. The server 418 may include additional components beyond those shown in Figure 5 in various configurations. For example, server 418 may also include one or more input devices that receive input from the user, such as a keyboard, mouse, touchscreen, or microphone. In another example, server 418 may include a display, such as a computer monitor, touchscreen, or television. Server 418 may also perform additional functions other than those described herein. Furthermore, functions performed by server 418 may be combined with other components of system 400 (e.g., in combination with user equipment 410, one or more components of machine vision system 402, etc.), or combinations thereof, and distributed across a number of servers or devices (e.g., as part of a cloud service or cloud computing environment).
[0042] According to some embodiments, the processing unit 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 over the communication network 408 (shown in Figure 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 chipsets, etc., that communicate with the machine vision system 402, the user device 410, or a combination thereof over the communication network 408. In more specific examples, the communication system 504 can include hardware, firmware, and / or software that can be used to establish Wi-Fi® connections, Bluetooth® connections, cellular connections, Ethernet® connections, and the like.
[0043] According to some embodiments, memory 506 may include any suitable storage device or apparatus that can be used to store instructions, values, etc., used by the processing unit 502 for purposes such as 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. Memory 506 may include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, memory 506 may 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, memory 506 may be encoded on a server program for controlling the operation of the server 418. For example, in such embodiments, the processing unit 502 may receive data from the image processing unit 406 (e.g., images associated with objects, etc.), the imaging device 404, and / or the user device 410.
[0044] As shown in Figure 5, the memory 506 may include a dynamic test application 508. The dynamic test application 508 is a software application executable by the exemplary processor 502, but in other examples specifically described below, modules for similar purposes can be implemented in other ways. As detailed below, the processor 502 runs the dynamic test application 508 to determine whether the machine vision system 402, for example, the tunnel system, has been built and installed according to the customer's design specifications. The memory 506 may also include dynamic test data 510. In some embodiments, the dynamic test data 510 may include data received from the user (e.g., test parameters), data collected using the tunnel 402 (e.g., encoder (or other motion measurement device) verification data, left-biased and right-biased test data), and, for example, test summaries and reports generated by the processor 502 and the dynamic test application 508.
[0045] In some embodiments, functions described herein, such as those performed by the server 418, may be performed locally by the user device 410. For example, in some embodiments, the user device 410 may store a dynamic test application 508, dynamic test data 510, or a combination thereof. As will be further detailed below, the user can use the user device 410 to test the machine vision system 402 (e.g., a tunnel) via, for example, a dynamic test application, dynamic test data, or a combination thereof.
[0046] Figure 6 shows a method for dynamic testing of a machine vision system according to one embodiment of the present technology. The method shown in Figure 6 is described here as being performed by a server 418, and in particular, the dynamic test application 508 may be performed by a processing unit 502. However, as described above, the functionality described for the method for dynamic testing can be performed by distributing it among multiple devices, such as a user device 410, a component(s) of the machine vision system 402, or multiple servers contained within a cloud device.
[0047] The process illustrated in Figure 6 will be described below with reference to the elements of System 400 for dynamic testing of the machine vision system shown in Figures 4 and 5, as well as to Figures 7A to 13, which are example screenshots of the graphical user interface (GUI) for dynamic testing of the machine vision system. Although the blocks of processing are illustrated in a specific order, in some embodiments one or more blocks may be executed or bypassed in a different order than that illustrated in Figure 6.
[0048] In block 602, a set of test parameters can be received. According to some embodiments, a set of test parameters may be received from a user. In some embodiments, a set of test parameters can be retrieved from predetermined specifications for the machine vision system or tunnel system 402 being tested, which can specify, for example, selection parameters for the machine vision system or tunnel. In some embodiments, the predetermined specifications can be stored in the memory 506 of the server 418 and retrieved from there. In some embodiments, the dynamic test application 508 may be configured to generate a graphical user interface configured to receive input from a user. In some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. Figures 7A and 7B illustrate an exemplary setup (or start page) user interface 700 that can be displayed to the user (for example, as a user interface 414 on the display 416 of the user device 410) to receive data including test parameters for dynamic testing of, for example, an installed tunnel system 402. As illustrated in Figure 7A, the setup user interface 700 may include a header 702 that indicates the steps of the dynamic test process and identifies the current step being performed by the system 400 (e.g., using a visual indicator). For example, in the user interface shown in Figures 7A and 7B, the "Start" visual indicator may be highlighted in color (e.g., yellow). In some embodiments, the setup user interface 700 may include a section 704 that provides a set of instructions for setting up the dynamic test, for example, a set of instructions on how to set up (e.g., assemble) a test target (e.g., a box) that can be passed through the tunnel system 402 during the test process.In some embodiments, the height of the test target can be set to an adjustable maximum height specified by the application associated with the tunnel system 402 (i.e., the maximum height supported by a particular tunnel system design), and a set of code labels (e.g., one-dimensional and / or two-dimensional codes) can be attached to the test object, for example, to five sides of the object box (i.e., all sides except the bottom surface which is placed on the conveyor of the tunnel system 402 during testing (top, front, rear, left side, right side)). In some embodiments, the code labels may be affixed to the test object at predetermined locations on the test object, for example, defined by a rectangle printed on the test object. In some embodiments, the code on each code label may include information about where the code is located on the test object.
[0049] The setup user interface 700 may also have sections for receiving test parameters from the user, as shown in Figure 7B. In some embodiments, the test parameters may include test case (or type) information 706, such as a test case identifier 708 and the height of the object under test 710. In some embodiments, the test case selected by the user may correspond to the size of a code set provided by the user for use with the object under test. In the exemplary user interface 700 shown in Figure 7B, a drop-down list 708 may be displayed containing available test cases, e.g., 10MIL nominal and 13MIL nominal. The user can select one of the test case options from the drop-down list 708. In some embodiments, the user may upload information for a custom code set. In addition to selecting a test case, the user can enter the height of the test target (e.g., a box) into the input box 710, e.g., height. In some embodiments, the test target height 710 can be entered in millimeters or inches. In some embodiments, the setup user interface 700 may also be configured to allow the user to attach a QR code label to the test object and indicate that it is included in the test, for example, by selecting a checkbox 712. It should be understood that in some embodiments, the user interface 700 may be configured to receive other types of test parameters. In some embodiments, the test parameters received in block 602 may be stored in the memory 506 of the server 418, for example, as part of dynamic test data 510.
[0050] In some embodiments, as described above, test parameters (e.g., test case and box heights) can be retrieved from predetermined specifications for the machine vision system or tunnel system being tested, which may specify, for example, selection parameters for the machine vision system or tunnel. In some embodiments, predetermined specifications can be stored in the memory 506 of the server 418 and retrieved from there. In some cases, the test parameters are automatically provided to the dynamic test application 508 and, in some cases, automatically entered into the graphical user interface 700.
[0051] In block 604, in some embodiments, a selection 714 of the tunnel systems 402 (i.e., multi-reader sync (MRS) groups) to be tested may be received from the user. In some embodiments, a list of tunnel systems may be provided for the user to select from, for example, a checkbox 722. In some embodiments, the setup user interface 700 includes an input section, such as a button 720, which can be selected by the user to discover or identify available tunnel systems that may later be listed for selection. In one example, the user interface 700 may include information such as group information 716 and information about the primary imaging devices 718 within the tunnel system. For example, the group information may include a dropdown list for viewing the imaging devices within the tunnel system (or group), the group name, the number of imaging devices within the tunnel system (or group), and primary device information including the name of the primary imaging device, the type for the primary imaging device, and the software or firmware version of the primary imaging device. In some embodiments, the selection of tunnel systems (or groups) received in block 604 and data related to the group can be stored in the memory 506 of server 418, for example, as part of dynamic test data 510. Once test parameters are provided and the tunnel system to be tested is selected, the user may provide an input to select a select button (not shown) in the user interface 700, for example, prompting the dynamic test application 508 to proceed to the next step.
[0052] In some embodiments, information about the machine vision system or tunnel system 402 (e.g., multi-reader-sync (MRS) group 712) to be tested may be retrieved (e.g., automatically) from a predetermined specification relating to the machine vision system or tunnel system 402, for example, which can specify selection parameters for the machine vision system or tunnel system 402. In some embodiments, the predetermined specification may be stored in the memory 506 of the server 418 and retrieved from there. In some cases, information about the machine vision system or tunnel system 402 to be tested (e.g., including information such as MRS group 712, group information 714, primary device 716, etc.) may be automatically provided to the dynamic test application 508, and in some cases, automatically entered into the graphical user interface 700.
[0053] In block 606, test parameters can be verified, and in block 608, existing customer system settings for each imaging device 404 in the selected tunnel system 402 (or group) can be automatically stored in the memory 506 of the server 418 as part of the dynamic test data 510 (e.g., creating a backup). In some embodiments, in block 608, each of the imaging devices 404 in the selected tunnel system 402 may be automatically reconfigured for testing after the customer system settings have been stored. In some embodiments, the dynamic test application 508 may be configured to generate a graphical user interface configured to display, for example, the results of the test parameter verification and the creation of a backup of the imaging device 404. In some embodiments, the server 418 may send the generated graphical user interface to the user device 410. Figures 8A and 8B show an exemplary device-prepared user interface 700 that may be displayed to the user to allow the user to view, for example, the results of the test parameter verification and the creation of a backup of the imaging device (e.g., as a user interface 414 on the display 416 of the user device 410). As illustrated in Figure 8A, the verification user interface 800 may include a header 802 that indicates the steps of the dynamic test process and identifies the current step being performed by the system 400 (for example, using a visual indicator). For example, the user interface 800 may highlight the “Prepare” visual indicator in color (for example, yellow), and the “Start” visual indicator may include an edit icon indicating that the “Start” setup step is complete but can be edited if necessary. The preparation user interface 800 may also include a section 804 for displaying the results of verification and preparation, including, for example, whether a particular item was successful or failed. For example, in Figure 8A, a check mark may be used to indicate that a particular item was successful.In some embodiments, the checkmark may be displayed in a color, such as green. In some embodiments, an unsuccessful verification may be indicated using a checkmark (not shown), for example. In some embodiments, the checkmark may be displayed in a color, such as red. In the example shown in Figure 8A, the user interface 800 provides indicators of whether the verification of test parameters 806 was successful, whether the customer system settings for each imaging device have been stored (i.e., whether the creation of backups 808 for each imaging device was successful), and whether the subscription 810 to device events and push settings was successful. In the example shown in Figure 8B, in some embodiments, the device preparation user interface 800 may also include a drop-down list 814, which allows the user to see a list of all imaging devices and whether a backup for each imaging device was successfully created. In some embodiments, the device preparation from blocks 606 and 608 may be stored in the memory 506 of the server 418, for example, as part of dynamic test data 510. Once the device is ready and successful, the user can provide input by selecting a button 812 (shown in Figure 8A) within the user interface 800, for example, to request the dynamic test application 508 to proceed to the next step.
[0054] In block 610, an optional encoder check may be performed using the tunnel system 402 (including encoders), a test target (e.g., a box), and a dynamic test application 508. In some cases, if an encoder check is not performed, the process proceeds to block 612, where one or more tests using a test target can be performed, such as a right-alignment test as described below. While the following description refers to encoder checks, it should be understood that in some embodiments other motion measurement devices may be used in the machine vision system. In some embodiments in which an encoder check is performed, one test target (e.g., a box) may be run through the tunnel system 402 (e.g., by a user) to obtain images from an imaging device (may be multiple) and encoder data (e.g., velocity and position) from an encoder (e.g., encoder 152 shown in Figure 1B). In some embodiments, the encoder check is configured to determine whether each imaging device 404 in the tunnel system 402 detects or observes the same velocity and motion of the object under test. In some embodiments, the encoder check in block 610 can be configured to provide a “success” or “failure” result regarding whether each imaging device 404 in the tunnel system 402 has received an encoder signal. In some embodiments, the dynamic test application 508 can be configured to generate a graphical user interface configured to allow a user to view the results of the encoder check. In some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. Figures 9A to 9C show an exemplary encoder check user interface 900 that can be displayed to a user (for example, as a user interface 414 on the display 416 of the user device 410) so that the user can view the results of the encoder check.As shown in Figure 9A, the encoder check user interface 900 may include a header 902 that indicates the steps of the dynamic test process and identifies the current step being performed by the system 400 (e.g., using a visual indicator). For example, in the user interface 900, the "Encoder Check" visual indicator may be highlighted in color (e.g., yellow), and the "Start" and "Device Ready" visual indicators may include edit icons to indicate that these steps are complete but can be edited if necessary.
[0055] The encoder check user interface 900 may also include a section 904 that shows the results of the encoder check for each imaging device 404 in the tunnel system 402. As shown in Figure 9B, in some embodiments, the encoder check user interface 900 may provide a list 906 of the encoder check results for each imaging device 404 in the tunnel system 402. Each entry for an imaging device may include, for example, the name of the imaging device 908, the encoder resolution 910, the calculated speed (e.g., meters / second) 912, whether the imaging device succeeded in the encoder check 914, and a message 916 if the imaging device failed the encoder check. In some embodiments, the encoder check user interface 900 may include an illustrative image 918 of a target object (e.g., a box) passing through the tunnel. In some embodiments, the encoder check results for each imaging device 404 in the tunnel system 402 from block 610 may be stored in the memory 506 of the server 418, for example, as part of dynamic test data 510. Once the encoder is complete, the user can provide input by selecting a button (not shown) within the user interface 800, for example, to request the dynamic test application 508 to proceed to the next step.
[0056] In block 612, one or more tests can be performed using the tunnel system 402, the object under test (e.g., a box), and the dynamic test application 508. For example, in some embodiments, the test target can be placed on the conveyor of the tunnel system 402 at a specific location (e.g., by a user) and then travel through the tunnel system 402 to obtain images from imaging devices 404 within the tunnel system 402. In some examples, tests can be performed on a test target positioned to align with the right side of the conveyor, to align with the left side of the conveyor, to align with the center of the conveyor, or at any other position on the conveyor. In some embodiments, tests can be performed on one or more possible positions of the object under test. For example, in some embodiments, tests may be performed with the test target aligned to the right side of the conveyor (e.g., a right-aligned test), and tests may be performed with the test target aligned to the left side of the conveyor (e.g., a left-aligned test). The following discussion will describe right-aligned and left-aligned tests, but it should be understood that different numbers of tests and different positions of the object under test may be performed.
[0057] As described above, in one example, a right-alignment test may be performed. The right-alignment test may be configured to determine whether each imaging device 404 reads and decodes one or more codes (e.g., barcodes) on the test target that it is expected to read and decode. In some embodiments, as described above with respect to Figures 1A, 1B and 2, the tunnel system 402 may include multiple banks, each bank consisting of one or more imaging devices 404. In some embodiments, the right-alignment test may be configured to determine whether each bank reads and decodes one or more codes (e.g., barcodes) on the test target that it is expected to read, and whether each imaging device 404 in the bank contributed to the decoding result. In some embodiments, the right-alignment test in block 610 can be configured to produce an overall "success" or "failure" result indicating whether all codes on the test object are read by at least one imaging device 404, and in some embodiments, at least one imaging device 404 in a designated bank of the tunnel system 402 can be used when the test object is right-aligned on the conveyor.
[0058] In some embodiments, the overall “success” or “failure” result of the right-alignment test may be based on the respective camera decode results, bank results, symbol (e.g., barcode) results, trigger results, and sequence results from the right-alignment test. For example, each camera decode result may be defined as the respective decode result from the imaging device 404 during a trigger. Each imaging device may report multiple decode results during a single trigger. In some embodiments, each camera decode result that does not match any target symbol on the test target can be ignored. In some embodiments, for attached symbol results, the bank result can be determined by comparing the collected decode results with the target symbol on the test target. In some embodiments, the bank result may be N / A if the bank is not expected to read the target symbol. In some embodiments, the bank result may be “success” if any decode result in the bank matches the target symbol and the bank is expected to read the target barcode, and the bank result may be “failure” if the bank is expected to read the target symbol but the result in the bank does not match the target symbol. In some embodiments, a symbol result consists of multiple bank results for a specific physical code on the test target, and the symbol result may be "successful" unless the bank results are failures. In some embodiments, a trigger result consists of multiple symbol results, and the trigger result may be "successful" if all symbol results are successful. In some embodiments, a sequence result consists of one or more trigger results for a single justification (i.e., a sequence may be an aggregation of one or more triggers), and the sequence result may be considered "successful" if the individual trigger results are successful. Users can execute multiple triggers during a sequence to increase the reliability of tunnel performance, but in some embodiments, this does not need to be used to affect the logic for the sequence result.
[0059] In some embodiments, the dynamic test application 508 may be configured to generate a graphical user interface configured to allow a user to view the results of a right-aligned test. In some embodiments, the server 418 may send the generated graphical user interface to the user device 410. Figures 10A to 10C show an exemplary right-aligned test user interface 1000 that may be displayed to a user (e.g., as a user interface 414 on the display 416 of the user device 410) to allow the user to view the results of a right-aligned test. As illustrated in Figure 10A, the right-aligned test user interface 1000 may include a header 1002 that shows the steps of the dynamic test process and identifies the current step being performed by the system 400 (e.g., using visual indicators). For example, the user interface 1000 may highlight a “right-aligned test” visual indicator in color (e.g., yellow), and the “start” visual indicator, “device ready” visual indicator, and “encoder check” visual indicator may include edit icons to indicate that these steps are complete but can also be edited if necessary. In some embodiments, the right-aligned test user interface 1000 may include a section 1004 that lists triggers executed by the user, sections 1006 and 1008 that display images taken between selected triggers, and a code detail section 1010 that lists the decoding results of the selected triggers. In the example shown in Figure 10B, in some embodiments, section 1004 may include a list or table of collected triggers and may include information such as date and time, trigger index, and status (i.e., "success" or "failure"). Sections 1006 and 1008 are shown with exemplary images 1012 and 1014 associated with triggers selected from list 1004, respectively.For example, a user can select a trigger from List 1004 by using an input device (e.g., input device 412) to "click" a column for a particular trigger. In the example shown in Figure 10B, in some embodiments, the code detail table 1010 can indicate whether or not a code was read on the test subject, and whether or not a code was read, and which bank or imaging device read that code and indicated the minimum PPM. In some embodiments, the code detail table 1010 can explain to the user the reason for a trigger failure by indicating which criteria were not met, for example, whether a failure may have occurred if a code on the test subject was read by at least one imaging device in the right trailing edge bank but not by any imaging device in the right leading edge bank. In some embodiments, data from the right-aligned tests collected in block 610 can be stored in the memory 506 of the server 418, for example, as part of dynamic test data 510. In some embodiments, once the right-aligned tests are complete, the user can be provided with an input to select a button in the user interface 1000 (e.g., button 1016 shown in Figure 10B) that prompts the dynamic test application 508 to proceed to the next step, for example. In some embodiments, the right-aligned test user interface 1000 can include a link 1018 that allows the user to view an explanation (or hint) 1020 on how to perform the right-aligned tests, as shown in Figure 10C. For example, as shown in Figure 10C, the explanation (or hint) 1020 may include animations and text.
[0060] As described above, in one example, the left-side alignment test can also be performed using a tunnel system 402, a test object (e.g., a box), and a dynamic test application 508. For example, in some embodiments, the test object may be placed (e.g., by a user) on a conveyor in the tunnel system 402, aligned with the left side of the conveyor, and then travel through the tunnel system 402 to obtain images from imaging devices 404 within the tunnel system 402. The left-side alignment test may be configured so that each imaging device 404 determines whether or not it reads and decodes a code or code (e.g., a barcode) on the test target that it is expected to read and decode. In some embodiments, as described above in Figures 1A, 1B, and 2, the tunnel system 402 may include multiple banks, each bank consisting of one or more imaging devices 404. In some embodiments, the left-alignment test may be configured to determine whether each bank reads and decodes one or more symbols (e.g., barcodes) on the test object that it is expected to read, and whether its imaging device 404 in the bank contributed to the decoding result. In some embodiments, the left-alignment test in block 610 may be configured to provide an overall "success" or "failure" result indicating whether all codes on the test object were read by at least one imaging device 404, or in some embodiments, at least one imaging device 404 in a particular bank of the tunnel system 402, while the test object remains left-aligned on the conveyor. As described above with respect to the right-alignment test, in some embodiments, the overall "success" or "failure" result of the left-alignment test may be based on the respective camera decoding results, bank results, symbol (e.g., barcode) results, trigger results, and sequence results from the left-alignment test.
[0061] In some embodiments, the dynamic test application 508 may be configured to generate a graphical user interface configured to allow the user to view the results of left-aligned tests. In some embodiments, the server 418 may send the generated graphical user interface to the user device 410. Figures 11A to 11C illustrate a left-aligned test user interface 1100 that may be displayed to the user to allow the user to view the results of left-aligned tests (for example, as a user interface 414 on the display 416 of the user device 410). As shown in Figure 11A, the left-aligned test user interface 1100 may include a header 1102 that indicates the steps of the dynamic testing process and identifies the current step being performed by the system 400 (for example, using visual indicators). For example, the user interface 1100 may highlight a “left-aligned test” visual indicator in color (e.g., yellow), and “start” visual indicators, “device preparation” visual indicators, “encoder check” visual indicators, and “right-aligned test” visual indicators may include edit icons to indicate that these steps are complete but can also be edited if necessary. In some embodiments, the left-aligned test user interface 1100 may include a section 1104 listing triggers executed by the user, sections 1106 and 1108 displaying images taken between selected triggers, and a code detail section 1110 listing the decoding results of the selected triggers. In the example shown in Figure 11B, in some embodiments, section 1004 may include a list or table of collected triggers and may include information such as date and time, trigger metrics, and status (i.e., “success” or “failure”). Sections 1106 and 1108 are shown with illustrative images 1112 and 1114 associated with triggers selected from list 1104, respectively.For example, a user can select a trigger from List 1104 by using an input device (e.g., input device 412) to "click" a column for a particular trigger. In the example shown in Figure 11B, in some embodiments, the code detail table 1110 can indicate for each code on the test target whether the code was read or not, which bank read the code, and the minimum PPM. In some embodiments, the code detail table 1110 can explain to the user which criteria were not met that caused the trigger to fail, for example, if the code on the test target was read by at least one imaging device in the left trailing edge bank but not by any imaging device in the left leading edge bank. In some embodiments, data from left-aligned tests collected in block 610 can be stored in the memory 506 of server 418, for example, as part of dynamic test data 510. In some embodiments, once the left-alignment test is complete, the user may be provided with input such as selecting a button in the user interface 1100 (e.g., button 1116 shown in Figure 11B) that prompts the dynamic test application 508 to proceed to the next step. In some embodiments, the left-alignment test user interface 1100 may include a link 1118 that allows the user to view an explanation (or hint) 1120 on how to perform the left-alignment test, as shown in Figure 11C. For example, as shown in Figure 11C, the explanation (or hint) 1120 may include animations and text.
[0062] In some embodiments, summaries of encoder checks (if applicable), right-alignment tests, and left-alignment tests may be optionally generated and displayed in block 614. In some cases, if summaries are not provided, the process may proceed to block 616 to generate a report as described later. In some embodiments where summaries are provided, the dynamic test application 508 may be configured to generate a graphical user interface configured to allow the user to optionally view summaries for tests such as right-alignment and left-alignment tests. In some embodiments, the server 418 may send the generated graphical user interface to the user device 410. Figures 12A and 12B show an exemplary results summary user interface 1200 that can be displayed on the display 416 of the user device 410 (for example, as user interface 414) to allow the user to view the results of encoder checks and left-alignment and right-alignment tests. As illustrated in Figure 12A, the results summary user interface 1200 may include a header 1202 that shows the steps of the dynamic test process and identifies the current step being performed by the system 400 (e.g., using a visual indicator). For example, in the user interface 1200, the “Results Summary” visual indicator may be highlighted in color (e.g., yellow), and the “Start” visual indicator, “Apparatus Preparation” visual indicator, “Encoder Check” visual indicator, “Right-Aligned Test” visual indicator, and “Left-Aligned Test” visual indicator may include edit icons to indicate that these steps are complete but can be edited if necessary. In some embodiments, the results summary user interface 1200 may include a table summarizing the encoder checks and a test summary section 1204 that provides test results such as, for example, the results of left-aligned tests and the results of right-aligned tests.Furthermore, the test summary unit 1204 may also include an instrument summary field 1206 having an icon that can be selected to view a dialog box 1208 (shown in Figure 12B) containing instrument summary information for the selected test (e.g., either a left-aligned test or a right-aligned test), for example, all imaging devices, and a list of decoded symbols for their specific test (or run). In some embodiments, the encoder check and left-aligned test result summaries generated in block 616 may be stored in the memory 506 of the server 418, for example, as part of the dynamic test data 510.
[0063] In some embodiments, once the user reviews an encoder check, a summary of one or more tests, e.g., left-alignment and right-alignment tests, the user may be provided with an input in the user interface 1200 to select a button (not shown) to request the dynamic test application 508 to complete the dynamic test process. In some embodiments, completion of the dynamic test process may include automatically generating a report in block 616 and automatically restoring each of the imaging devices 404 in the tunnel system to customer system settings in block 618. In some embodiments, confirmation that the imaging devices 414 have been restored may be provided to the user, for example, on the display 416 of the user device 410. In some embodiments, the dynamic test application 508 may be configured to generate a graphical user interface configured to allow the user to download the report generated in block 616. In some embodiments, the downloaded report may be used by the customer to sign off on the installed tunnel equipment. In some embodiments, the overall result of the dynamic test of the installed tunnel system may be determined by combining the results from each test “sequence” performed (e.g., both the left-alignment and right-alignment test “sequences”). Here, as described above, a “sequence” is an aggregation of one or more triggers. In some embodiments, the overall result may be “successful” if each test (e.g., both left-aligned and right-aligned tests) is “successful” and it is indicated that all imaging devices received encoder signals. In some embodiments, the results of the dynamic test may report if one or more imaging devices failed to provide symbol results during the test (e.g., left-aligned and right-aligned tests).In some embodiments, each camera result may not serve as a success / failure criterion, because obtaining readouts from all individual imaging devices without a more thorough test sequence (i.e., left-aligned and right-aligned) may be impractical tunnel design.
[0064] Figure 13 shows an example of a alignment test user interface according to one embodiment of the present technology. As described above with respect to Figures 10B and 11B, the right-alignment test user interface 1000 and the left-alignment test user interface 1100 may include sections 1006, 1106 and 1008, 1108 to display images acquired between selected triggers. In some embodiments, the alignment test user interface 1300 (e.g., right-alignment test, left-alignment test, center-alignment test, etc.) may be configured to allow the user to select an image from a set of images in section 1308 (e.g., grouping thumbnails) and view an SVG overlay on the selected image in section 1306 indicating whether symbols were successfully read on the selected image.
[0065] 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 temporary or non-temporary. For example, non-temporary computer-readable mediums may include magnetic media (hard disks, floppy disks, etc.), optical media (compact disks, digital video disks, Blu-ray disks, etc.), semiconductor media (RAM, flash memory, electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), any suitable medium that lacks permanence during transmission or is a line, and / or any suitable tangible medium. As another example, a temporary computer-readable medium may include signals on a network, signals in a wire, conductors, optical fibers, circuits, or any suitable medium that lacks permanence during transmission, and / or any suitable intangible medium.
[0066] Please note that the term "mechanism" as used herein may encompass hardware, software, firmware, or any appropriate combination thereof.
[0067] It should be understood that the steps described above for the process in Figure 6 may be performed or executed in any sequence or sequence, and not limited to, those shown and described in the figure. Furthermore, some of the steps described above for the process in Figure 6 may be performed or executed substantially simultaneously or in parallel where appropriate to reduce delays and processing times.
[0068] Although the present invention has been described and illustrated in the embodiments illustrated above, this disclosure is provided only as an example, and it should be understood that numerous modifications to the details of the realization of the invention can be made without departing from the spirit and scope of the invention, and are 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 dynamic testing of a machine vision system, wherein the machine vision system includes a tunnel system having a conveyor and a plurality of imaging devices. Receive a set of test parameters and tunnel system selections. The aforementioned test parameters were verified, The plurality of imaging devices are controlled to acquire a set of imaging data for a test object located at a predetermined justification on the conveyor, which includes a plurality of target symbols. The test result is determined by analyzing the set of imaging data so that each of the multiple imaging devices determines whether to read the corresponding target symbol associated with each imaging device in the multiple target symbols. A method comprising generating a report containing the aforementioned test results.
2. The method according to claim 1, further comprising displaying the report using a display.
3. The method according to claim 1, wherein the set of imaging data of the test subject includes imaging data of the test subject located at the predetermined justification corresponding to the right side of the conveyor.
4. The method according to claim 1, wherein the set of imaging data of the test subject includes imaging data of the test subject located at a predetermined justification corresponding to the left side of the conveyor.
5. The method according to claim 1, wherein the test parameters include one or more test types indicating the height of the object under test or the size of the plurality of test symbols of the object under test.
6. The method according to claim 5, wherein the height of the object under test is a predetermined maximum height corresponding to the tunnel system.
7. The method according to claim 1, further comprising saving a set of existing customer system settings for the plurality of imaging devices before acquiring the set of imaging data.
8. The method according to claim 7, further comprising saving the set of existing customer system settings for the plurality of imaging devices, and then reconfiguring the plurality of imaging devices based on the test parameters.
9. The method according to claim 8, further comprising, after determining the test results, restoring the plurality of imaging devices to the set of existing customer system settings.
10. The method according to claim 1, wherein the plurality of imaging devices are divided into a plurality of banks.
11. The method according to claim 10, wherein determining the test result involves analyzing the set of imaging data to determine whether at least one imaging device in each of the plurality of banks reads one of the plurality of target symbols associated with the corresponding bank.
12. The method according to claim 1, further comprising determining whether the plurality of imaging devices have accurately received motion data based on the set of imaging data.
13. A system for dynamic testing of a machine vision system, wherein the machine vision system includes a tunnel system having a conveyor and a plurality of imaging devices. An input section for receiving a set of test parameters and tunnel system selection, At least one processing device coupled to the input unit, The aforementioned test parameters were verified, The plurality of imaging devices are controlled to acquire a set of imaging data for a test object located at a predetermined justification on the conveyor, which includes a plurality of target symbols. The test result is determined by analyzing the set of imaging data so that each of the multiple imaging devices determines whether to read the corresponding target symbol associated with each imaging device in the multiple target symbols. A processing device that generates a report including the test results, A system that includes this.
14. The system according to claim 13, further comprising a display coupled to the at least one processing unit and configured to display the test results.
15. The system according to claim 13, wherein the set of imaging data of the test subject includes imaging data of the test subject located at the predetermined justification corresponding to the right side of the conveyor.
16. The system according to claim 13, wherein the set of imaging data of the test subject includes imaging data of the test subject located at the predetermined justification corresponding to the left side of the conveyor.
17. The system according to claim 13, wherein the plurality of imaging devices are divided into a plurality of banks.
18. The system according to claim 17, wherein determining the test result involves analyzing a set of imaging data to determine whether at least one imaging device in each of the plurality of banks reads one of the plurality of target symbols associated with the corresponding bank.
19. The system according to claim 13, wherein the at least one processing device is further configured to determine whether the plurality of imaging devices have accurately received motion data based on the set of imaging data.