System and method for dynamic testing of a vision system
The dynamic testing method and system for machine vision systems address the challenges of testing in dynamic environments by acquiring and analyzing imaging data within a tunnel system, thereby simplifying deployment, reducing resource needs, and enhancing efficiency.
Patent Information
- Application Number
- JP2024566258
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-05-09
- Filing Date
- 2023-05-09
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2043-05-09
AI Technical Summary
Existing machine vision systems face challenges in efficiently testing and validating their performance, particularly in dynamic environments where objects are moving and may exceed the field of view, leading to increased installation time and resource requirements.
A method and system for dynamic testing of machine vision systems, which includes receiving test parameters, selecting a tunnel system with a conveyor and imaging devices, validating parameters, controlling imaging devices, acquiring imaging data for a test object, analyzing data to determine test results, and generating a report.
This approach simplifies the deployment process, reduces installation time and resource needs, improves efficiency, and decreases the number of trained personnel required for machine vision system maintenance and support.
Smart Images

Figure 2025516560000001_ABST
Abstract
Description
Technical Field
[0001] (Cross - Reference to Related Applications) This application claims priority based on and incorporates herein by reference in its entirety U.S. Provisional Application No. 63 / 339,862, filed on May 9, 2022, entitled "System and Method for Dynamic Testing of Vision Systems".
[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 an embodiment of the present technology, a method for dynamic testing of a machine vision system includes receiving a set of test parameters and selection of a tunnel system. The machine vision system can include a tunnel system having a conveyor and at least one imaging device. The method can further include validating 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 can include a plurality of target symbols. The method can further include determining a test result by analyzing the set of imaging data to determine whether the at least one imaging device reads a target symbol associated with the at least one imaging device, and generating a report including the test result.
[0006] According to some embodiments, the method further includes displaying the report using a display. In some embodiments, the set of imaging data of the test object can include the imaging data of the test object located at the predetermined justification corresponding to the right side of the conveyor. In some embodiments, the set of imaging data of the test object can include the imaging data of the test object located at the predetermined justification corresponding to the left side of the conveyor. In some embodiments, the test parameters can include one or more of the height of the test object or a test type indicating the size of the plurality of test symbols of the test object. In some embodiments, the height of the test object is the predetermined maximum height corresponding to the tunnel system. In some embodiments, the method can further include saving a set of existing customer system settings for the at least one imaging device before acquiring the set of imaging data. In some embodiments, the method can 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 can further include restoring the at least one imaging device to the set of existing customer system settings after determining the test result. In some embodiments, the at least one imaging device includes a plurality of imaging devices. In some embodiments, determining the test result further includes analyzing the set of imaging data to determine whether 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 can further include determining whether the at least one imaging device accurately receives 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 device. The machine vision system can include a tunnel system having a conveyor and at least one imaging device. The input unit can be configured to receive a set of test parameters and a selection of the tunnel system. The at least one processing device can be coupled to the input unit, verify the test parameters, control the at least one imaging device, and be configured to acquire a set of imaging data for a test object located at a predetermined justification on the conveyor. The test object can include a plurality of target symbols. The processing device can further determine a test result by analyzing the set of imaging data to determine whether the at least one imaging device reads a target symbol associated with the at least one imaging device, and be configured 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 device and configured to display the test results. In some embodiments, the set of imaging data of the object under test can include the imaging data of the object under test located at the predetermined justification corresponding to the right side of the conveyor. In some embodiments, the set of imaging data of the object under test can include the imaging data of the object under test located at the 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 can be divided into a plurality of banks. In some embodiments, determining the test results further includes analyzing the set of imaging data to determine whether 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 at least one processing device is further configured to determine whether the at least one imaging device accurately receives motion data based on the set of imaging data.
[0009] The various objectives, features, and advantages of the disclosed subject matter can be more fully understood by referring to the following detailed description of the disclosed subject matter when considered in connection with the following drawings. In the drawings, like reference numbers identify like elements.
Brief Description of the Drawings
[0010]
Figure 1A
Figure 1B
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7A
Figure 7B
Figure 8A
Figure 8B
Figure 9A
Figure 9B
Figure 9C
Figure 10A
Figure 10B
Figure 10C
Figure 11A
Figure 11B
Figure 11C
Figure 12A
Figure 12B
Figure 13
DETAILED DESCRIPTION OF THE INVENTION
[0011] A machine vision system can include one or more imaging devices. For example, according to some embodiments, the machine vision system may be implemented within a tunnel arrangement (or system) that can include a structure in which each of the imaging devices can be arranged at an angle with respect to a conveyor so as to produce an angled field of view. As used herein, a "machine vision tunnel" (or simply "tunnel" or "tunnel system") can refer to a system that includes an imaging device for acquiring image data with respect to a normal scene and supports it. In some embodiments, the normal scene can include a relatively small area, such as, for example, a desktop or a discrete portion of a conveyor. According to some embodiments, within a given tunnel system, there may be an overlap between the fields of view of the imaging devices, there may be no overlap between the fields of view of the imaging devices, or a combination thereof (e.g., there is an overlap between a specific set of imaging devices but not between other sets, an overall overlap of multiple imaging devices to cover the entire scene, etc.).
[0012] The deployment of a machine vision system, e.g., to a customer site of a tunnel system, can involve a number of steps including installation, commissioning, on-site calibration, and testing. A customized machine vision system may require complex and time-consuming installation and setup, and a number of resources. It is advantageous to provide systems and applications that can simplify and streamline the placement of machine vision systems. For example, modular hardware elements (e.g., pre-built modules) can be configured to implement system configurations and specifications, and can reduce installation time. The present disclosure describes systems and methods configured to simplify a deployment process that includes a dynamic test process for an installed machine vision system. In some embodiments, the apparatus and method for dynamic testing can include integrated hardware-software elements including an application that can automate one or more portions of the dynamic test process. Advantageously, the described dynamic test system can provide a standardized test interface that can provide reproducibility between different systems and between different customers. The described dynamic test systems and methods can also reduce the time (and thus the amount of required downtime) and resources required to install a machine vision system, and thus can improve the efficiency of the deployment of machine vision systems. In addition, the described systems and methods for dynamic testing can reduce the number of trained personnel required to support and maintain an installed machine vision system. The following description refers to tunnel systems or deployments, but it should be understood that the systems and methods for dynamic testing described herein can be applied to other types of machine vision system deployments.
[0013] FIG. 1A shows an example of a system 100 for imaging a plurality of images of each surface of an object according to an embodiment of the present technology. According to some embodiments, the system 100 can be configured to evaluate symbols (e.g., barcodes, two-dimensional (2D) codes, fiducial points, hashmats, machine-readable codes, alphanumeric codes, and other labels) on objects (e.g., objects 118a, 118b) moving through a tunnel 102, such as symbol 120 on object 118a. According to some embodiments, symbol 120 is a flat barcode on the upper surface of object 118a, and objects 118a and 118b are approximately cubic boxes. In addition to or instead of this, in some embodiments, any suitable geometric shape is possible for the object to be imaged, and any 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, for example.
[0014] In FIG. 1A, objects 118a and 118b are placed on a conveyor 116 configured to move objects 118a and 118b in a traveling direction (e.g., horizontally left and right) through tunnel 102 at a relatively predictable and continuous speed, or at a variable speed measured by a device such as an encoder or other motion measurement device. In addition to or instead of this, the object can move through tunnel 102 in other ways (e.g., non-linear movement). According to some embodiments, conveyor 116 can include a conveyor belt. According to some embodiments, conveyor 116 may consist of other types of conveying devices.
[0015] According to some embodiments, system 100 may include one or more imaging devices 112 and an imaging processing device 132. For example, system 100 may include imaging devices 112a, 112b, 112c, which are typically shown via fields of view (FOV) represented via fields of view 114a, 114b, 114c, which include a portion of conveyor 116, within a tunnel arrangement (e.g., implementing a portion of tunnel 102). According to some embodiments, each imaging device 112 is positioned at an angle (e.g., relative to the normal direction of symbols on the sides of objects 118a and 118b, or relative to the direction of travel) with respect to the conveyor top or side, resulting in an angled field of view. Similarly, some of the fields of view can overlap other fields of view (e.g., field of view 114a and field of view 114b). In such embodiments, system 100 can be configured to capture one or more images of multiple faces of objects 118a and / or 118b as the objects are moved by conveyor 116. According to some embodiments, the captured images can be used to identify symbols (e.g., symbol 120) on each object, which can then be (optionally) decoded or analyzed. In some embodiments, a gap (not shown) within conveyor 116 can facilitate imaging of the bottom side of an object using an imaging device or an array of imaging devices (not shown) disposed below conveyor 116 (e.g., as described in U.S. Patent Application Publication No. 2019 / 0333259, filed Apr. 25, 2018, which is hereby incorporated by reference in its entirety). In some embodiments, symbols on an object can also be identified using an image captured from below the object, and this symbol can then be (optionally) decoded.
[0016] The two arrays by the three imaging devices 112 are shown to image the upper portions of the objects 118a and 118b, and the four arrays by the two imaging devices 112 are shown to image the sides of the objects 118a and 118b, but this is merely illustrative, and it should be noted that any suitable number of imaging devices can be used to image the various faces of the object. For example, each array may include four or more imaging devices. In some cases, the system 100 may include a smaller number of imaging devices 112 than shown in FIG. 1A, or a larger number of imaging devices 112. 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 upper portions of the objects 118a and 118b, may be positioned to image the sides of the objects 118a and 118b, or may be positioned to image the lower portions of the objects 118a and 118b. In another embodiment, various combinations of two or more imaging devices 112 (e.g., various combinations of imaging devices 112a, 112b, 112c) may be included within the system 100. In some cases, one imaging device 112a may be arranged to image the upper portions of the objects 118a and 118b, and one imaging device 112b may be arranged to image the sides of the objects 118a and 118b. In other cases, one imaging device 112a may be arranged to image the upper portions of the objects 118a and 118b, and one imaging device 112c may be arranged to image the sides of the objects 118a and 118b.
[0017] The imaging device 112 is shown to generally image the objects 118a and 118b without using a mirror for turning the field of view, but this is merely an example, and one or more fixed and / or steerable (turnable) mirrors can be used to turn one or more fields of view of the imaging device, as will be described later with respect to FIGS. 2 and 3, and can facilitate reducing the vertical or lateral distance between the imaging device and the object within the tunnel 102. For example, the imaging device 112a is arranged to have an optical axis parallel to the conveyor 116, and one or more mirrors are arranged above the tunnel 102 to turn the field of view of the imaging device 112a towards the front and upper surfaces of the object within the tunnel 102.
[0018] According to some embodiments, imaging device 112 may be implemented using any suitable type of imaging device. For example, imaging device 112 may be implemented using a two-dimensional imaging device (e.g., a two-dimensional camera) such as area scan cameras and / or line scan cameras. According to some embodiments, imaging device 112 may be an integrated system including a lens assembly and an imager such as a CCD or CMOS sensor. According to some embodiments, imaging device 112 may each include one or more image sensors, at least one lens array, and at least one control device (e.g., a processor device) configured to perform computational operations related to the image sensors. Imaging devices 112a, 112b, 112c may each selectively acquire image data from different fields of view (FOVs), regions of interest (ROIs), or combinations thereof. According to some embodiments, using system 100, multiple images of each side of an object, where one or more images may include one or more objects, can be acquired. Object 118 may be associated with one or more symbols such as barcodes, QR codes (registered trademarks), etc. In some embodiments, system 100 may be configured to facilitate imaging of the bottom side of an object supported by conveyor 116 (e.g., the surface of object 118a placed on conveyor 116). For example, conveyor 116 may be implemented with a gap such as a gap between parts of conveyor 116 (as described above).
[0019] According to some embodiments, a gap 122 is provided between objects 118a, 118b. In different implementations, the size of the gap between the objects can have a certain range. In some implementations, the gap between the objects can be substantially the same among all sets of objects in the system, or can indicate a fixed minimum size among all sets of objects in the system. According to some embodiments, a smaller gap size can be used to maximize the throughput of the system.
[0020] According to some embodiments, system 100 can measure the dimensions of an object moving on conveyor 116 towards tunnel 102 and can include a dimensioning system (not shown), sometimes called a dimensioner. Further, system 100 can include a device (e.g., an encoder or other motion measuring device not shown) that tracks the physical movement of an object (e.g., objects 118a, 118b) moving on conveyor 116 through tunnel 102. FIG. 1B shows an example of a device that captures a plurality of images of each face of an object according to an embodiment of the present technology. FIG. 1B shows a simplified diagram of system 140 for illustrating an exemplary arrangement of a dimensioner and a motion measuring device (e.g., an encoder) relative to a tunnel. As described above, system 140 may include dimensioner 150 and motion measuring device 152. In the illustrated example, conveyor 116 is configured such that objects 118d, 118e are moved through dimensioner 150 along the direction of travel (i.e., the direction indicated by arrow 154) before being imaged by one or more imaging devices 112. According to the illustrated embodiment, a gap 156 is provided between object 118d and object 118e, and image processing device 132 can communicate with one or more imaging devices 112, dimensioner 150, and motion measuring device 152. Dimensioner 150 can be configured to determine the dimensions and / or position of an object supported by a support structure 116 (e.g., object 118d or object 118e) at a given time. For example, dimensioner 150 can be configured to determine the distance from dimensioner 150 to the top surface of an object and can be configured to determine the size and / or orientation of the surface facing dimensioner 150. According to some embodiments, dimensioner 150 can be implemented using various techniques. For example, dimensioner 150 can be implemented using a 3D camera (e.g., a structured light 3D camera, a continuous time of flight 3D camera, etc.).As another example, the dimensioner 150 can be implemented using a laser scanning system (e.g., a LiDAR system). In a specific example, the dimensioner 150 can be implemented using a 3D-A1000 system available from Cognex Corporation. According to some embodiments, the dimensioning system or dimensioner 150 (e.g., a time-of-flight sensor, or stereo-computed) may be implemented within a single device or enclosure together with an imaging device (e.g., a two-dimensional camera), and according to some embodiments, a processor (e.g., which may be utilized as an image processing device) may be implemented within the device together with the dimensioner and the imaging device.
[0021] According to some embodiments, the dimensioner 150 can determine the three-dimensional coordinates of each corner of an object in a coordinate space defined with respect to one or more parts of the system 140. For example, the dimensioner 150 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least approximately rectangular parallelepiped-shaped within an orthogonal coordinate space defined 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 approximately cube-shaped within an orthogonal 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 approximately cubic-shaped within an orthogonal coordinate space defined with respect to the conveyor 116 (e.g., with the center of the conveyor 116 as the origin).
[0022] According to some embodiments, a motion measurement device 152 (e.g., an encoder) can be linked to the conveyor 116 and the imaging device 112 to supply an electronic signal indicating the amount of movement of the conveyor 116 and the objects 118d, 118e supported thereon to the imaging device 112 and / or the image processing device 132 over a known time. This can be useful, for example, for coordinating the imaging of an image of a particular object (e.g., objects 118d, 118e) based on the calculated position of the object relative to the field of view of the associated imaging device (e.g., imaging device(s) 112). According to some embodiments, the motion measurement device 152 can be configured to generate a number of pulses (e.g., encoder pulse count) that can be used to identify the position of the conveyor 116 along the direction of travel (e.g., the direction of arrow 154). For example, the motion measurement device 152 can provide the number of pulses (e.g., encoder pulse count) to the image processing device 132 for identifying and tracking the position of an object (e.g., objects 118d, 118e) on the conveyor 116. According to some embodiments, the motion measurement device 152 can increase the number of pulses (e.g., encoder pulse count) each time the conveyor 116 moves a predetermined distance (encoder pulse count distance) in the direction of arrow 154. According to some embodiments, the position of an object can be determined based on the initial position, the change in the number of pulses, and the pulse number interval.
[0023] As described above, the tunnel system includes one or more imaging devices and can support and acquire image data regarding a normal scene. According to some embodiments, the tunnel system may include one imaging device. For example, in FIG. 1B of some embodiments, the imaging device 112 may represent a single imaging device. Although the imaging device 112 is shown at the top of the system 140 above the conveyor, in some cases, the imaging device 112 may be disposed on the side of the system 140 or below the system 140 (e.g., below the gap in the conveyor 116).
[0024] According to some embodiments, the image processing device 132 (or the control device) can coordinate the operations of various components of the system 100 (or the system 140). For example, the image processing device 132 can cause the dimensioner (e.g., the dimensioner 150 shown in FIG. 1B) to obtain the dimensions of an object positioned on the conveyor 116, and can cause the imaging device 112 to capture images of each surface. According to some embodiments, the image processing device 132 can control the detailed operations of each imaging device, for example, by providing a trigger signal to cause the imaging device to capture an image at a specific time. Alternatively, according to some embodiments, another device (e.g., a processor included in each imaging device, a separate control device, etc.) can control the detailed operations of each imaging device. For example, the image processing device 132 (and / or any other suitable device) can provide a trigger signal to each imaging device and / or the dimensioner (e.g., the dimensioner 150 shown in FIG. 1B), and the processor of each imaging device can be configured to perform a predetermined image acquisition sequence that spans a predetermined region of interest in response to the trigger. The system 100 can also include one or more light sources (not shown) for illuminating the surface of the object, and the operations of such light sources can be coordinated by a central device (e.g., the image processing device 132), and / or the control can be distributed (e.g., the imaging device can control the operations of one or more light sources, and the processor associated with one or more light sources can control the operations of the light sources, etc.). For example, according to some embodiments, the system 100 can be configured to simultaneously (e.g., simultaneously or over a common time interval) acquire images of multiple sides of one object 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. Additionally, or alternatively, in some embodiments, the imaging device 112 can be configured to acquire an image based on a single trigger event.For example, based on a determination by a sensor (e.g., a contact sensor, a presence sensor, an imaging device, etc.) that an object 118 has entered the field of view of the imaging device 112, the imaging device 112 can simultaneously acquire images of respective sides of the object 118.
[0025] As described above, one or more fixed and / or steerable mirrors can be used to turn the field of view of one or more imaging devices, thereby facilitating shortening of the vertical or lateral distance between the imaging device and the object within the tunnel 102. FIG. 2 shows another example of an apparatus for imaging a plurality of images of each face of an object according to an embodiment of the present technology. The system 200 includes a plurality of banks of imaging devices 212, 214, 216, 218, 220, 222 and a plurality of mirrors 224, 226, 228, 230 within the tunnel arrangement 202. For example, the banks of imaging devices shown in FIG. 2 include a left trail bank 212, a left lead bank 214, a top trail bank 216, a top lead bank 218, a right trail bank 220, and a right lead bank 222. According to the illustrated embodiment, each bank 212, 214, 216, 218, 220, 222 includes four imaging devices configured to image an image of one or more faces of an object (e.g., object 208a) and various fields of view of one or more faces of the object. For example, the top trail bank 216 and the mirror 228 can be configured to image an image of the top and rear faces of the object using the imaging devices 234, 236, 238, 240. According to the illustrated embodiment, the banks of imaging devices 212, 214, 216, 218, 220, 222 and the mirrors 224, 226, 228, 230 can be mechanically coupled to a support structure 242 above the conveyor 204. The illustrated relative mounting positions of the bank imaging devices 212, 214, 216, 218, 220, 222 are advantageous, but it should be noted that in some embodiments, the imaging devices for imaging various faces of the object can be reoriented relative to the positions shown in FIG. 2 (e.g., the imaging devices can be offset and arranged at corners instead of faces, etc.).Similarly, while they may have the advantage associated with using four imaging devices per bank configured to acquire image data from one or more faces of an object, according to some embodiments, different numbers or arrangements of imaging devices, and different arrangements of mirrors (e.g., using steerable mirrors, using additional fixed mirrors, etc.) can be used to configure a particular imaging device to acquire images of multiple faces of an object. In some embodiments, an imaging device can be dedicated to acquiring images of multiple faces of an object that include overlapping acquisition regions, relative to other imaging devices included in the same system.
[0026] According to some embodiments, system 200 also includes a dimensioner 206 and an image processing device 232. As described above, a number of objects 208a, 208b, 208c can be supported within conveyor 204 and moved through tunnel 202 along the direction indicated by arrow 210. According to some embodiments, each bank of imaging devices 212, 214, 216, 218, 220, 222 (and each imaging device within a bank) can generate a set of images depicting a field of view or fields of view of a particular face or faces of an object (e.g., object 208a) supported by conveyor 204.
[0027] Note that FIGS. 1A, 1B, and 2 show a dynamic support structure (e.g., conveyor 116, conveyor 204) that can move, which, according to some embodiments, can support an object imaged by one or more imaging devices using a stationary support structure. In some embodiments (not shown), the object to be imaged can be temporarily passed through the coverage area by an operator until the desired visualization operation is completed. FIG. 3 shows another example of a system for imaging multiple images of each face of an object according to an embodiment of the present technology. According to some embodiments, system 300 can include a plurality of imaging devices 302, 304, 306, 308, 310, 312, each including one or more image sensors, at least one lens array, and at least one control device (e.g., a processor device) configured to perform computational operations related to the image sensors. According to some embodiments, the plurality of imaging devices 302, 304, 306, 308, 310, and / or 312 can include and / or be associated with steerable mirrors (e.g., as described in U.S. Application No. 17 / 071,636, filed on October 13, 2020, which is hereby incorporated by reference in its entirety). The imaging devices 302, 304, 306, 308, 310, and / or 312 can selectively acquire image data from different fields of view (FOVs) corresponding to different orientations of the associated steerable mirrors. According to some embodiments, system 300 can be used to acquire multiple images of each face of an object. Although FIG. 3 shows a plurality of imaging devices 302, 304, 306, 308, 310, 312, it should be understood that according to some embodiments, system 300 can 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 a plurality of objects presented for image acquisition. For example, system 300 can include a support configuration that supports each of imaging devices 302, 304, 306, 308, 310, 312, and a platform 316 configured to support one or more objects 318, 334, 336 to be imaged (note that each object 318, 334, 336 can be associated with one or more symbols such as barcodes, QR codes (registered trademarks), etc.). For example, a transport device (not shown) including one or more robotic arms (e.g., a robotic bin picker) can be used to position a plurality of objects (e.g., within bins or other containers) on platform 316. According to some embodiments, the support structure can be configured as a caged support structure. However, this is merely an example, and the support configuration can be implemented in various configurations. According to some embodiments, support platform 316 can be configured to facilitate imaging of the bottom side surface of one or more objects supported by support platform 316 (e.g., the surface of an object (e.g., object 318, 334, or 336) resting on platform 316). For example, support structure 316 can be implemented using a transparent platform, a mesh or lattice platform, an open center platform, or any other suitable configuration. Except for the presence of support configuration 316, acquisition of the bottom surface image is substantially the same as acquisition of other surfaces of the object. As a further example, a transport device (not shown) including one or more robotic arms (e.g., a robotic bin picker) can be used to select and / or position a number of objects (e.g., within bins or other containers) on support platform 316.
[0029] In some embodiments, imaging devices 302, 304, 306, 308, 310, and / or 312 can be oriented to obtain an image of a particular face of an object (e.g., object 318) placed on and supported by support platform 316 such that each face of the object can be imaged by imaging devices 302, 304, 306, 308, 310, and / or 312 using the field of view of the imaging devices. For example, imaging device 302 can be mechanically coupled to a support structure above support platform 316 and be directed toward the upper surface of support platform 316, imaging device 304 can be mechanically coupled to a support structure below support platform 316, and imaging devices 306, 308, 310, and / or 312 can each be mechanically coupled to a face of the support structure such that the respective fields of view of imaging devices 306, 308, 310, and / or 312 are directed toward the side surfaces of support platform 316.
[0030] According to some embodiments, each imaging device may be configured to have an optical axis that is substantially parallel to another imaging device and orthogonal to a plurality of other imaging devices (e.g., when the steerable mirror is in a neutral position). For example, imaging devices 302, 304 can be configured to face each other (e.g., the imaging devices have substantially parallel optical axes), and the plurality of other imaging devices can be configured to have optical axes that are orthogonal to the optical axes of imaging devices 302, 304.
[0031] According to some embodiments, the illustrated mounting positions of imaging devices 302, 304, 306, 308, 310, and 312 relative to each other may advantageously be reoriented (e.g., the imaging devices may be offset, the imaging devices may be arranged at corners instead of faces, etc.) relative to the illustrated positions in FIG. 3 for imaging various faces of one object. Similarly, while advantages (e.g., improved acquisition speed) may be obtained in connection with using six imaging devices configured to acquire imaging data of corresponding faces (e.g., the six faces of object 118) of one object, according to some embodiments, a particular imaging device for acquiring images of multiple faces of one object may be configured using a different number or arrangement of imaging devices, different arrangements of mirrors (e.g., using fixed mirrors, using additional movable mirrors, etc.). For example, the fixed mirrors are arranged such that imaging devices 306, 310 can image the far faces of object 318 and can be arranged to be used instead of imaging devices 308, 312. According to some embodiments, system 300 may be configured to image each of a number of objects 318, 334, 336 on platform 316.
[0032] According to some embodiments, system 300 can include a dimensioner 330. As described above with respect to FIGS. 1A, 1B, and 2, the dimensioner can be configured to determine the dimensions and / or position of an object (e.g., objects 318, 334, or 336) supported by a support structure 316. As described above, according to some embodiments, dimensioner 330 can determine the three-dimensional coordinates of each corner of an object within a coordinate space defined with respect to one or more portions of system 300. For example, dimensioner 330 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least generally rectangular parallelepiped-shaped within an orthogonal coordinate space defined with an origin at dimensioner 330. As another example, dimensioner 330 can determine the three-dimensional coordinates of each of the eight corners of an object that is at least generally cubic within an orthogonal coordinate space defined with respect to support platform 316 (e.g., using the center of support platform 316 as the origin).
[0033] According to some embodiments, image processing device 332 can coordinate the operation of imaging devices 302, 304, 306, 308, 310, and / or 312, and / or be related to image processing device 132 in FIG. 1A and / or image processing device 410 described below with respect to FIG. 4, and can perform the image processing operations described above.
[0034] FIG. 4 shows a system for dynamic testing of a machine vision system according to an embodiment of the present technology. In the example illustrated in FIG. 4, system 400 includes a machine vision system 402, a communication network 408, a user device 410, and a server 418. According to some embodiments, system 400 includes fewer, additional, or different components for a configuration different from that shown in FIG. 4. As an example, system 400 may include multiple machine vision systems 402, multiple user devices 410, multiple servers 418, or combinations thereof. As another embodiment, one or more components of device 400 may be combined into a single device, such as user device 410 and server 418, for example.
[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 can include one or more wireless routers, one or more switches, etc.), a peer-to-peer network (e.g., a Bluetooth® network), a cellular network (e.g., a 3G network, a 4G network, a 5G network, etc. compliant with any suitable standard such as CDMA, GSM, LTE®, LTE Advanced, NR), a wired network, and the like. According to some embodiments, the communication network 408 can be a local area network (LAN), a wide area network (WAN), a public network (e.g., the Internet), a private or semi-private network (e.g., a corporate or university intranet), any other suitable type of network, or any suitable combination of networks. The communication links shown in FIG. 4 can each be any suitable communication link or combination of communication links, such as a wired link, an optical fiber link, a Wi-Fi® link, a Bluetooth® link, a cellular link, and the like. According to some embodiments, the components of the system 400 may communicate directly compared to the communication network 408. According to some embodiments, the components of the system 400 may communicate via one or more intermediate devices not shown in FIG. 4.
[0036] As shown in FIG. 4, the machine vision system 402 may include one or more imaging devices 404 and one or more image processing devices 406. According to some embodiments, the imaging device 404 and the imaging processing device 406 may communicate via one or more wired communication or wireless communication lines or buses, or combinations thereof. According to some embodiments, the machine vision system 402 may include fewer, additional, or different components in a configuration different from that shown in FIG. 4. According to some embodiments, the machine vision system 402 may include one or more imaging devices 404 within a tunnel configuration, for example, as described above with respect to FIGS. 1A, 1B, 2, and 3. In one example, the image processing device 406 (e.g., the image processing device 132) may receive images and / or information regarding each image (e.g., two-dimensional position related to the image) from one or more imaging devices 404 (e.g., one or more of the imaging devices 112a, 112b, and 112c described above in connection with FIGS. 1A and 1B, the imaging devices in the imaging device banks 212, 214, 216, 218, 220, 222 described above in connection with FIG. 2, and / or one or more of the imaging devices 302, 304, 306, 308, 310, 312 described above in connection with FIG. 3). According to some embodiments, the machine vision system 402 may also include a dimensional sensing system (not shown), for example, the dimensioner 150, the dimensioner 206, and the dimensioner 330 described above with respect to FIGS. 1A, 1B, 2, and 3. As described above, the dimensioner can be used to supply dimensional data regarding an object imaged by the imaging device 404 to the image processing device 406. According to some embodiments, the dimensioner can be connected locally to the image processing device 406 and / or can be connected via a network connection (e.g., via the communication network 408).The image processing apparatus 406 can also receive input from any other suitable device, such as a motion measurement device (not shown) configured to output a value indicating the movement of the conveyor over a specific period of time that can be used to determine the distance the object has moved (e.g., between when the dimensions were determined and when each image of the object was generated). The image processing apparatus 406 can also coordinate the operation of one or more other devices, such as one or more other light sources (not shown) configured to irradiate the object (e.g., flashing, projected light, etc.). Additionally or alternatively, the image processing apparatus 406 can perform part of a symbol decoding process to identify and / or decode symbols (e.g., barcodes, QR codes (registered trademark), text, etc.) associated with the object imaged by the imaging device 404 using any suitable technique or combination of techniques.
[0037] According to some embodiments, imaging device 404 may be any suitable imaging device. For example, each may include at least one imaging sensor (e.g., a CCD image sensor, a CMOS image sensor, or other suitable sensor), at least one lens arrangement, and at least one control device (e.g., a processor device) configured to perform computational operations related to the imaging sensor. According to some embodiments, the lens configuration can include a fixed focus lens. In addition to or instead of this, the lens configuration can include an adjustable focus lens such as a liquid lens or a mechanically adjustable lens of a known type. Additionally, according to some embodiments, imaging device 302 can include a steerable mirror that can be used to adjust the direction of focus of the imaging device. According to some embodiments, one or more imaging devices 404 can include a light source(s) (e.g., a flash, a high-intensity flash, a light source described in U.S. Patent Application Publication No. 2019 / 0333259, etc.) configured to illuminate objects within the field of view. According to some embodiments, imaging device 404 may be similar to imaging devices 112, 234, 236, 238, 240, 302, 304, 306, 308, 310, and 312 as described above with respect to FIGS. 1A, 1B, 2, and 3.
[0038] According to some embodiments, imaging device 404 may be local to imaging processing device 406. For example, imaging device 404 can be connected to imaging processing device 406 by a cable, a direct wireless link, etc. In addition to or instead of this, in some embodiments, imaging device 404 can be located locally and / or remotely from imaging processing device 406, and can communicate data (e.g., image data, dimension and / or position data, etc.) to imaging processing device 406 (and / or server 418) via a communication network (e.g., communication network 408). According to some embodiments, one or more imaging devices 404, imaging processing device 406, and / or any other suitable components may be integrated as a single device (e.g., within a common housing).
[0039] As shown in FIG. 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 so that an operator or user can perform a dynamic test of the machine vision system 402, as will be further described below. The input device 412 can be configured to receive data or information from a user or operator. According to some embodiments, the input device(s) can include any suitable input device and / or sensor that can be used to receive user input, such as a keyboard, mouse, touch screen, microphone, etc. The user interface 414 can be configured to provide one or more graphical user interfaces (GUIs) configured to permit a user to interact with the user device 410 (e.g., provide input and receive output therefrom). In some embodiments, the GUI can be displayed to the user on the display 416. According to some embodiments, the display 416 can include any suitable display device, such as a computer monitor, touch screen, television, smartphone, tablet, etc. According to some embodiments, the GUI may be generated using a processor device (not shown) on the user device 410, or may be generated by a separate device, such as a server 418, and transmitted to the user device 410 (e.g., via the communication network 408), as will be further described below. Also, the user device 410 may include, for example, a processor device (e.g., a microprocessor, an application specific integrated circuit (ASIC), or another suitable electronic device), a memory (e.g., a non-volatile computer-readable medium), a communication system (e.g., a transceiver) for communicating via the communication network 408, and optionally, other components not shown, such as one or more additional communication networks or connections.
[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, a virtual machine executed by a physical computing device, and the like.
[0041] According to some embodiments, the image processing apparatus 410 can communicate image data (e.g., an image received from the imaging device(s) 404) and / or data received from a dimension sensing system (not shown) to the server 418 or the user device 410 via the communication network 408. According to some embodiments, the user device 410 can communicate data, such as data for dynamic testing of the machine vision system 402, to and from the server 418 via the communication network 408. FIG. 5 shows an example of the server 418 in the system shown in FIG. 4 according to an embodiment of the present technology. As shown in FIG. 5, the server 418 can include a processing device 502, one or more communication systems 504, and / or a memory 506. The processing device 502, the communication system 504, and the memory 506 can communicate via one or more wired or wireless communication lines or buses, or combinations thereof. The server 418 can include additional components beyond those illustrated in FIG. 5 in various configurations. For example, the server 418 may also include one or more input devices for receiving input from a user, such as a keyboard, a mouse, a touch screen, a microphone, etc. In another example, the server 418 may include a display, such as a computer monitor, a touch screen, a television, etc. Also, the server 418 may perform additional functions other than those described herein. Also, the functions such as those executed by the server 418 may be combined with other components of the system 400 (e.g., the user device 410, one or more components of the machine vision system 402, etc.), or combinations thereof, and distributed among a number of servers or devices (e.g., as part of a cloud service or a cloud computing environment).
[0042] According to some embodiments, the processing device 502 can be any suitable hardware processor or combination of processors, such as a CPU, GPU, ASIC, FPGA, etc. According to some embodiments, the communication system 504 can include any suitable hardware, firmware, and / or software for communicating information via a communication network 408 (shown in FIG. 4) and / or any other suitable communication network. For example, the communication system 504 can include one or more transceivers, one or more communication chips, and / or chip sets that communicate with the machine vision system 402, the user device 410, or a combination thereof via the communication network 408. In a more specific example, the communication system 504 can include hardware, firmware, and / or software that can be used to establish a Wi-Fi (registered trademark) connection, Bluetooth (registered trademark) connection, cellular connection, Ethernet (registered trademark) connection, etc.
[0043] According to some embodiments, the memory 506 can include any suitable storage device or apparatus that can be used to store instructions, values, etc. used by the processing device 502, for example, to process data, generate content (e.g., GUI), communicate with one or more user devices 410, communicate with one or more machine vision systems 402, etc. The memory 506 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, the memory 506 can include RAM, ROM, EEPROM, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, etc. According to some embodiments, the memory 506 can be encoded on a server program for controlling the operation of the server 418. For example, in such embodiments, the processing device 502 can receive data from the image processing device 406 (e.g., an image associated with an object, etc.), the imaging device 404, and / or the user device 410.
[0044] As shown in FIG. 5, the memory 506 can include a dynamic test application 508. The dynamic test application 508 is a software application executable by the exemplary processing device 502. However, in other examples described in detail below, modules with similar purposes can be implemented in other ways. As described in detail below, the processing device 502 executes the dynamic test application 508 to determine whether the machine vision system 402, e.g., the tunnel system, is constructed and installed according to the customer's design specifications. The memory 506 can also include dynamic test data 510. In some embodiments, the dynamic test data 510 can include data received from a user (e.g., test parameters), data collected using the tunnel 402 (e.g., encoder (or other motion measurement device) verification data, left and right test data), and, e.g., test summaries and reports generated by, for example, the processor 502 and the dynamic test application 508.
[0045] In some embodiments, the functions described herein as being executed by the server 418 may be executed locally by the user device 410. For example, in some embodiments, the user device 410 can store the dynamic test application 508, the dynamic test data 510, or a combination thereof. As described in further detail below, the user can use the user device 410 to test the machine vision system 402 (e.g., the tunnel) via, e.g., the dynamic test application, the dynamic test data, or a combination thereof.
[0046] FIG. 6 shows a method for dynamic testing of a machine vision system according to an embodiment of the present technology. The method shown in FIG. 6 is described herein as being executed by server 418, and in particular, dynamic test application 508 may be executed by processing device 502. However, as described above, the functionality described with respect to the method for dynamic testing can be executed by distributing it among other devices such as user device 410, components (plural) of machine vision system 402, or multiple devices such as multiple servers included within a cloud device.
[0047] The process illustrated in FIG. 6 will be described below with reference to the elements of system 400 for dynamic testing of the machine vision system shown in FIGS. 4 and 5, as well as FIGS. 7A through 13, which are examples of screenshots of a graphical user interface (GUI) for dynamic testing of the machine vision system. Although the blocks of the process are illustrated in a particular order, in some embodiments, one or more blocks may be executed in an order different from that shown in FIG. 6 or may be bypassed.
[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 a predetermined specification for the machine vision system or tunnel system 402 being tested, which can specify, for example, machine vision system or tunnel selection parameters. In some embodiments, the predetermined specification can be stored in the memory 506 of the server 418 and retrieved therefrom. 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 send the generated graphical user interface to the user device 410. FIGS. 7A and 7B illustrate an exemplary setup (or start page) user interface 700 that can be displayed to a user (e.g., as a user interface 414 on the display 416 of the user device 410) to receive data including test parameters for a dynamic test of the installed tunnel system 402. As shown in FIG. 7A, the setup user interface 700 can include a header 702 that shows the steps of the dynamic test process and identifies (e.g., using a visual indicator) the current step being executed by the system 400. For example, in the user interfaces shown in FIGS. 7A and 7B, the visual indicator for "Start" can be highlighted in a color (e.g., yellow color). In some embodiments, the setup user interface 700 can include a section 704 that provides a set of instructions for the setup of the dynamic test, such as a set of instructions on how to set up (e.g., assemble) a test target (e.g., a box) that can pass through the tunnel system 402 during the test process.In some embodiments, the height of the test target can be adjustably set to the 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 added to the test object, for example, to five surfaces of the object box (i.e., all surfaces except the bottom surface that is placed on the conveyor of the tunnel system 402 during the test (top surface, front surface, rear surface, left side surface, right side surface)). In some embodiments, the code label may be affixed to the test object at a predetermined position on the test object, for example, to the test object defined by a rectangle printed on the test object. In some embodiments, the code on each code label can include information about where on the test object the code is located.
[0049] The setup user interface 700 can also have sections for receiving test parameters from the user, as shown in FIG. 7B. In some embodiments, the test parameters may include test case (or type) information 706 such as, for example, 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 the set of codes provided by the user for use with the object under test. In the exemplary user interface 700 shown in FIG. 7B, a drop-down list 708 of available test cases, such as 10 MIL nominal and 13 MIL nominal, may be displayed. The user can select one of the test case options from the drop-down list 708. In some embodiments, the user may upload information about a custom code set. In addition to selecting a test case, the user can enter the height at which the test target (e.g., a box) is set, for example, into a height input box 710. In some embodiments, the test target height 710 can be entered in millimeters or inches. In some embodiments, the setup user interface 700 can also be configured to have the user attach a two-dimensional code label to the object under test and indicate that it is to be included in the test, for example, the user can select 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 at block 602 may be stored in the memory 506 of the server 418, for example, as part of the dynamic test data 510.
[0050] In some embodiments, as described above, test parameters (e.g., test cases and bin height, etc.) can be retrieved from a predetermined specification for the machine vision system or tunnel system being tested that can specify, for example, machine vision system or tunnel selection parameters. In some embodiments, the predetermined specification can be stored in the memory 506 of the server 418 and retrieved therefrom. In some cases, the test parameters are automatically provided to the dynamic test application 508 and in some cases are automatically input into the graphical user interface 700.
[0051] In block 604, in some embodiments, a selection 714 of the tunnel system 402 to be tested (i.e., a multi-reader sync (MRS) group) can be received from a user. In some embodiments, a list of tunnel systems can be provided for the user to select from, for example, by using a checkbox 722. In some embodiments, the setup user interface 700 includes an input section, such as a button 720, that can be selected by the user to discover or identify available tunnel systems that can later be listed for selection. In one example, the user interface 700, each entry for a tunnel system in the list 714 can include information such as group information 716 and information regarding the primary imaging device 718 within the tunnel system. For example, the group information can include a dropdown list for viewing imaging devices within the tunnel system (or group), a 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 for the primary imaging device. In some embodiments, the selection of the tunnel system (or group) received at block 604 and data associated with the group can be stored in the memory 506 of the server 418, for example, as part of the dynamic test data 510. Once test parameters are provided and the tunnel system to be tested is selected, the user may provide an input, for example, by selecting a selection button (not shown) within the user interface 700 that requests 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 to be tested (e.g., multi-reader sink (MRS) group 712) may be retrieved (e.g., automatically) from a predetermined specification regarding the machine vision system or tunnel system 402 that can specify selection parameters of 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 therefrom. 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 input into the graphical user interface 700.
[0053] At block 606, test parameters can be verified, and at block 608, existing customer system settings for each imaging device 404 within the selected tunnel system 402 (or group) can be automatically stored (e.g., create a backup) in the memory 506 of the server 418 as part of, for example, the dynamic test data 510. In some embodiments, at block 608, each of the imaging devices 404 within the selected tunnel system 402 may be automatically reconfigured for testing after the customer system settings are 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 verification of the test parameters and the creation of the backup of the imaging device 404. In some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. FIGS. 8A and 8B show an exemplary device preparation user interface 700 that may be presented to a user (e.g., as the user interface 414 on the display 416 of the user device 410) to enable the user to view, for example, the results of the verification of the test parameters and the creation of the backup of the imaging device. As shown in FIG. 8A, the verification user interface 800 may include a header 802 that shows the steps of the dynamic test process and identifies the current step being executed by the system 400 (e.g., using a visual indicator). For example, in the user interface 800, the "Device Preparation" visual indicator can be highlighted in a color (e.g., yellow color), and the "Start" visual indicator includes an edit icon indicating that the "Start" setup step is complete but can be edited if necessary. The device preparation user interface 800 may also include a section 804 for displaying the results of the verification and device preparation, including, for example, whether a particular item was successful or failed. For example, in FIG. 8A, checkmarks can 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, for example, a checkmark (not shown) may be used to indicate a failed verification. In some embodiments, the checkmark can be displayed in a color such as red. In the example shown in FIG. 8A, the user interface 800 provides an indication of whether the verification 806 of the test parameters was successful, whether the customer system settings for each imaging device are stored (i.e., whether the backup 808 for each imaging device was successfully created), and whether the subscription 810 to the device events and push settings was successful. In the example shown in FIG. 8B, in some embodiments, the device preparation user interface 800 may also include a drop-down list 814 that enables the user to view a list of all imaging devices and to view whether a backup was successfully created for each imaging device. 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 the dynamic test data 510. When the device preparation is complete and successful, the user can provide an input, for example, by selecting a button 812 (shown in FIG. 8A) within the user interface 800 that requests 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 an encoder), a test target (e.g., a box), and the dynamic test application 508. In some cases, if the encoder check is not performed, the process proceeds to block 612 where one or more tests using the test target, such as a right alignment test as described below, can be performed. Although the following description refers to an encoder check, it should be understood that in some embodiments, other motion measurement devices may be used in the machine vision system. In some embodiments where the encoder check is performed, one test target (e.g., a box) may be run (e.g., by a user) through the tunnel system 402 to obtain images from the imaging device(s) and encoder data (e.g., speed and position) from the encoder (e.g., encoder 152 shown in FIG. 1B). In some embodiments, the encoder check is configured to determine whether each imaging device 404 within the tunnel system 402 detects or observes the same speed and motion of the test target. In some embodiments, the encoder check at block 610 can be configured to provide a "success" or "failure" result regarding whether each imaging device 404 within the tunnel system 402 is receiving an encoder signal. In some embodiments, the dynamic test application 508 can be configured to generate a graphical user interface configured such that a user can 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. FIGS. 9A through 9C show an exemplary encoder check user interface 900 that can be displayed to the user (e.g., as the user interface 414 on the display 416 of the user device 410) such that the user can view the results of the encoder check.As shown in FIG. 9A, the encoder check user interface 900 can include a header 902 that indicates the steps of the dynamic test process and identifies the current step being executed by the system 400 (e.g., using visual indicators). For example, in the user interface 900, the "encoder check" visual indicator can be highlighted in a color (e.g., yellow), and the "start" visual indicator and "device ready" visual indicator can include an edit icon indicating that these steps are completed but can also be edited as needed.
[0055] Also, the encoder check user interface 900 can include a section 904 that shows the results of the encoder check for each imaging device 404 within the tunnel system 402. As shown in FIG. 9B, in some embodiments, the encoder check user interface 900 can provide a list 906 of the encoder check results for each imaging device 404 within the tunnel system 402. Each entry for an imaging device can include, for example, the name 908 of the imaging device, the encoder resolution 910, the calculated speed (e.g., meters / second) 912, whether the imaging device passed 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 can include an exemplary 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 within the tunnel system 402 from block 610 may be stored in the memory 506 of the server 418, for example, as part of the dynamic test data 510. Once the encoder is completed, the user can provide an input, for example, by selecting a button (not shown) within the user interface 800 that requests 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 to be tested (e.g., a box), and the dynamic test application 508. For example, in some embodiments, the test object is placed (e.g., by a user) on the conveyor of the tunnel system 402 at a specific location and then can travel through the tunnel system 402 to obtain an image from the imaging device(s) 404 within the tunnel system 402. In some examples, the test can be performed on a test object placed aligned with the right side of the conveyor, a test object placed aligned with the left side of the conveyor, a test object placed aligned with the center of the conveyor, or a test object placed at other locations on the conveyor. In some embodiments, tests can be performed for one or more possible positions of the object to be tested. For example, in some embodiments, the test can be executed with the test object aligned with the right side of the conveyor (e.g., a right-aligned test), or the test can be executed with the test object aligned with the left side of the conveyor (e.g., a left-aligned test). In the following discussion, the right-aligned test and the left-aligned test will be described, but it should be understood that tests can be performed for different numbers of tests and different positions of the object to be tested.
[0057] As described above, in one example, a right alignment test may be performed. The right alignment test may be configured such that each imaging device 404 determines whether it reads and decodes one or more codes (e.g., barcodes) on a test target that it is expected to read and decode. In some embodiments, as described above with respect to FIGS. 1A, 1B, and 2, the tunnel system 402 may include a plurality of banks, each bank including one or more imaging devices 404. In some embodiments, the right alignment test may be configured such that each bank determines whether it reads and decodes one or more codes (e.g., barcodes) on a test target that it is expected to read, and whether each imaging device 404 within the bank contributed to the decoding result. In some embodiments, the right alignment test at block 610 can be configured to provide an overall "success" or "failure" result indicating whether all codes on the test target are read by at least one imaging device 404, and in some embodiments, when the test target is right-aligned on a conveyor, at least one imaging device 404 within a designated bank of the tunnel system 402 can be used.
[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 the trigger. Each imaging device can 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 the 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, if any decode result within the bank matches the target symbol and the bank is expected to read the target barcode, the bank result may be "success", and if the bank is expected to read the target symbol but the results within the bank do not match the target symbol, the bank result may be "failure". In some embodiments, the symbol result is composed of multiple bank results for a specific physical code on the test target, and the symbol result may be "success" as long as the bank result is not a failure. In some embodiments, the trigger result is composed of multiple symbol results, and the trigger result may be "success" if all symbol results are successful. In some embodiments, the sequence result is composed of one or more trigger results for a single justification (i.e., the sequence may be an aggregation of one or more triggers), and the sequence result may be considered "success" if the individual trigger results are successful. The user can execute multiple triggers during the sequence to increase the reliability of the 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 enable a user to view the results of the right-justification test. In some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. FIGS. 10A through 10C show an exemplary right-justification test user interface 1000 that may be presented to a user (e.g., as the user interface 414 on the display 416 of the user device 410) to enable the user to view the results of the right-justification test. As illustrated in FIG. 10A, the right-justification test user interface 1000 may include a header 1002 that shows the steps of the dynamic test process and identifies (e.g., using visual indicators) the current step being executed by the system 400. For example, in the user interface 1000, the "Right-Justification Test" visual indicator can be highlighted in color (e.g., yellow), and the "Start" visual indicator, "Device Preparation" visual indicator, and "Encoder Check" visual indicator include an edit icon indicating that these steps are complete but can also be edited if needed. In some embodiments, the right-justification test user interface 1000 can include a section 1004 that lists the triggers executed by the user, sections 1006 and 1008 that display the images acquired between the selected triggers, and a code details section 1010 that lists the decode results of the selected triggers. In the example shown in FIG. 10B, in some embodiments, the section 1004 includes a list or table of the triggers collected and can 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 the triggers selected from the 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" on a column for a specific trigger. In the example shown in FIG. 10B, in some embodiments, the code detail table 1010 can indicate for each code on the test subject whether the code could not be read or was read, and which bank or imaging device read the code and can indicate 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, if a code on the test subject was read by at least one imaging device in the right rear edge bank but not by any imaging device in the right front edge bank, there may have been a failure. In some embodiments, the data from the right alignment test collected at block 610 can be stored in the memory 506 of the server 418, for example, as part of the dynamic test data 510. In some embodiments, once the right alignment test is complete, the user can provide an input to select a button (e.g., button 1016 shown in FIG. 10B) within the user interface 1000 that requests, for example, to proceed to the next step in the dynamic test application 508. In some embodiments, the right alignment 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 alignment test, as shown in FIG. 10C. For example, as shown in FIG. 10C, the explanation (or hint) 1020 may include animation and text.
[0060] As described above, in one example, the left alignment test can also be performed using the tunnel system 402, the object to be tested (e.g., a box), and the dynamic test application 508. For example, in some embodiments, the object to be tested is placed (e.g., by a user) on the conveyor of the tunnel system 402 and aligned with the left side of the conveyor, and then may travel through the tunnel system 402 to obtain an image from the imaging device(s) 404 within the tunnel system 402. The left alignment test may be configured such that each imaging device 404 determines whether it reads and decodes a code or 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 FIGS. 1A, 1B, and 2, the tunnel system 402 may include a plurality of banks, each bank consisting of one or more imaging devices 404. In some embodiments, the left alignment test may be configured such that each bank determines whether it reads and decodes one or more symbols (e.g., barcodes) on the test target that it is expected to read, and whether each imaging device 404 within the bank contributed to the result of the decoding. In some embodiments, the left alignment test at block 610 is configured to provide a result indicating an overall "success" or "failure" indicating whether all the codes on the test target are 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, when the test target 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 each camera decoding result, bank result, symbol (e.g., barcode) result, trigger result, and sequence result 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 enable a user to view the results of the left-justification test. In some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. FIGS. 11A through 11C illustrate a left-justification test user interface 1100 that may be presented to a user to enable the user to view the results of the left-justification test (e.g., as the user interface 414 on the display 416 of the user device 410). As shown in FIG. 11A, the left-justification test user interface 1100 may include a header 1102 that indicates the steps of the dynamic testing process and identifies the current step being executed by the system 400 (e.g., using a visual indicator). For example, in the user interface 1100, the "Left-Justification Test" visual indicator may be highlighted in color (e.g., yellow), and the "Start" visual indicator, "Device Preparation" visual indicator, "Encoder Check" visual indicator, and "Right-Justification Test" visual indicator may include an edit icon indicating that these steps have been completed but can be edited if necessary. In some embodiments, the left-justification test user interface 1100 may include a section 1104 that lists the triggers executed by the user, sections 1106 and 1108 that display the images acquired between the selected triggers, and a code details 1110 that lists the decoding results of the selected triggers. In the example shown in FIG. 11B, in some embodiments, the section 1004 may include a list or table of the 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 exemplary images 1112 and 1114 associated with the triggers selected from the 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" on a column for a particular trigger. In the example shown in FIG. 11B, in some embodiments, the code detail table 1110 can indicate for each code on the test target whether the code was unreadable or was read, which bank read the code, and the minimum PPM. In some embodiments, the code detail table 1110 can explain to the user why the trigger failed due to which criteria were not met, such as when a code on the test target was read by at least one imaging device within the left trailing edge bank but not by any imaging device within the left leading edge bank. In some embodiments, the data from the left alignment test collected at block 610 can be stored in the memory 506 of the server 418, for example, as part of the dynamic test data 510. In some embodiments, when the left alignment test is complete, the user can provide an input such as selecting a button (e.g., button 1116 shown in FIG. 11B) within the user interface 1100 that requests the dynamic test application 508 to proceed to the next step. In some embodiments, the left alignment test user interface 1100 can include a link 1118 that enables the user to view an explanation (or hint) 1120 on how to perform the left alignment test, as shown in FIG. 11C. For example, as shown in FIG. 11C, the explanation (or hint) 1120 may include animation and text.
[0062] In some embodiments, a summary of the encoder check (if applicable), the right-align test, and the left-align test can be generated and displayed as an option at block 614. In some cases, if no summary is provided, the process proceeds to block 616 where a report can be generated as described below. In some embodiments where a summary is provided, the dynamic test application 508 may be configured to generate a graphical user interface configured to allow a user to view the summary as an option for tests such as the right-align and left-align tests. In some embodiments, the server 418 may transmit the generated graphical user interface to the user device 410. FIGS. 12A and 12B show an exemplary result summary user interface 1200 that can be displayed (e.g., as the user interface 414) on the display 416 of the user device 410 to allow a user to view the results of the encoder check, and the left-align test, and the right-align test. As illustrated in FIG. 12A, the result summary user interface 1200 can include a header 1202 that shows the steps of the dynamic test process and identifies (e.g., using a visual indicator) the current step being executed by the system 400. For example, in the user interface 1200, the "Result Summary" visual indicator can be highlighted in a color (e.g., yellow), and the "Start" visual indicator, "Device Preparation" visual indicator, "Encoder Check" visual indicator, "Right-align Test" visual indicator, and "Left-align Test" visual indicator can include an edit icon indicating that these steps are completed but can also be edited if necessary. In some embodiments, the result summary user interface 1200 may include a table summarizing the encoder check and a test summary section 1204 that provides test results such as the results of the left-align test and the right-align test.Furthermore, the test summary section 1204 can include a device summary column 1206 having an icon that can be selected to view a dialog box 1208 (shown in FIG. 12B) that includes device summary information for the selected test (e.g., either a left-justified test or a right-justified test), for example, all imaging devices, and can also include a list of symbols decoded for that specific test (or run). In some embodiments, the summary of the encoder check and left- and right-justification test results generated at block 616 can be stored in the memory 506 of the server 418, for example, as part of the dynamic test data 510.
[0063] In some embodiments, when a user reviews a summary of encoder checks, one or more tests, such as left-justify and right-justify tests, the user can provide an input by selecting a button (not shown) in the user interface 1200 to request, for example, the dynamic test application 508 to complete the dynamic test process. In some embodiments, completion of the dynamic test process can include automatically generating a report at block 616 and automatically restoring each of the imaging devices 404 within the tunnel system to the customer system settings at block 618. In some embodiments, confirmation regarding the restoration of the imaging device 414 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 at block 616. In some embodiments, the downloaded report may be used by the customer to sign off on the installed tunnel device. 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” that is executed (e.g., both the left-justify test and right-justify test “sequences”). Here, as described above, a “sequence” is an aggregation of one or more triggers. In some embodiments, if each test (e.g., both the left-justify test and right-justify test) is “successful” and it is shown that all imaging devices received an encoder signal, the overall result can be “successful”. In some embodiments, the result of the dynamic test can report when one or more of the respective imaging devices were unable to provide a symbol result during the test (e.g., left-justify test and right-justify test).In some embodiments, each camera result may not be a success / failure criterion, because it may be an unrealistic tunnel design to obtain reads from all individual imaging devices without a more thorough test sequence (i.e., left-justified and right-justified).
[0064] FIG. 13 shows an example of an alignment test user interface according to an embodiment of the present technology. As described above with respect to FIGS. 10B and 11B, the right-justified test user interface 1000 and the left-justified test user interface 1100 may include sections 1006, 1106 and 1008, 1108 for displaying the images acquired between the selected triggers. In some embodiments, the alignment test user interface 1300 (e.g., right-justified test, left-justified test, centered test, etc.) may be configured to allow the user to select an image from a set of images in section 1308 (e.g., grouping of thumbnails) and view an SVG overlay on the selected image within section 1306 indicating whether the symbol was 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 either transient or non-transient. For example, non-transitory computer-readable media can include magnetic media (hard disks, floppy (registered trademark) disks, etc.), optical media (compact disks, digital video disks, Blu-ray disks (registered trademark), etc.), semiconductor media (RAM, flash memory, electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), any suitable media of non-persistent or line-selectable during transmission, and / or any suitable tangible media. As another example, transient computer-readable media can include signals on a network, signals in a wire, conductors, optical fibers, circuits, or any suitable media lacking permanence during transmission, and / or any suitable intangible media.
[0066] Note that the term mechanism as used herein can include hardware, software, firmware, or any suitable combination thereof.
[0067] It should be understood that the above-described steps of the process of FIG. 6 can be executed or performed in any sequence or sequences not limited to the sequences shown and described in the figure. Also, some of the above-described steps of the process of FIG. 6 can be executed or performed substantially simultaneously or in parallel at appropriate places to reduce delays and processing times.
[0068] The present invention has been described and illustrated in the above-exemplified embodiments, but it is understood that the present disclosure is made only as an example, and numerous changes in the details of the implementation of the present invention can be made without departing from the spirit and scope of the present invention, which is limited only by the following claims. Each feature of the disclosed embodiments can be combined and rearranged in various ways.
Claims
1. A method for dynamic testing of a machine vision system, wherein the machine vision system includes a tunnel system having a conveyor and at least one imaging device, receiving a set of test parameters and a selection of the tunnel system, verifying the test parameters, controlling the at least one imaging device to obtain a set of imaging data for a test target located at a predetermined justification on the conveyor and including a plurality of target symbols, determining a test result by analyzing the set of imaging data to determine whether the at least one imaging device reads the target symbols associated with the at least one imaging device, generating a report including the test result.
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 target includes imaging data of the test target 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 target includes imaging data of the test target located at the 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 of the height of the test target or a test type indicating the size of the plurality of test symbols of the test target.
6. The method according to claim 5, wherein the height of the test target 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 at least one imaging device before obtaining the set of imaging data.
8. The method according to claim 7, further comprising 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.
9. The method according to claim 8, further comprising restoring the at least one imaging device to the set of existing customer system settings after determining the test result.
10. The method according to claim 1, wherein the at least one imaging device includes a plurality of imaging devices.
11. The method according to claim 10, wherein the plurality of imaging devices are divided into a plurality of banks.
12. Determining the test result further includes analyzing the set of imaging data to determine whether at least one imaging device in the bank reads one target symbol associated with the bank, according to the method of claim 11.
13. The method according to claim 1, wherein the at least one imaging device includes one imaging device.
14. The method according to claim 1 further includes determining whether the at least one imaging device accurately receives motion data based on the set of imaging data.
15. A system for dynamic testing of a machine vision system, the machine vision system including a conveyor and a tunnel system having at least one imaging device, an input unit for receiving a set of test parameters and a selection of the tunnel system, at least one processing device coupled to the input unit, verifying the test parameters, controlling the at least one imaging device to obtain a set of imaging data for a test object located at a predetermined justification on the conveyor and including a plurality of target symbols, determining a test result by analyzing the set of imaging data to determine whether the at least one imaging device reads a target symbol associated with the at least one imaging device, at least one processing device for generating a report including the test result, a system including.
16. The system according to claim 15 further includes a display coupled to the at least one processing device and configured to display the test result.
17. The system according to claim 15, wherein the set of imaging data of the test object includes imaging data of the test object located at the predetermined justification corresponding to the right side of the conveyor.
18. The system according to claim 15, wherein the set of imaging data of the test object includes imaging data of the test object located at the predetermined justification corresponding to the left side of the conveyor.
19. The at least one imaging device includes a plurality of imaging devices, the system according to claim 15.
20. The plurality of imaging devices are divided into a plurality of banks, the system according to claim 15.
21. Determining the test result further includes analyzing the set of imaging data to determine whether at least one imaging device in the bank reads one target symbol associated with the bank, the system according to claim 15.
22. The at least one imaging device includes one imaging device, the system according to claim 15.
23. The at least one processing device is further configured to determine whether the at least one imaging device accurately receives motion data based on the set of imaging data, the system according to claim 15.
Citation Information
Patent Citations
Installation support device, installation support method, and computer program for stationary code reader
JP2021149604A