Automatically generating one or more machine vision jobs based on a region of interest (ROIS) in a digital image
Patent Information
- Application Number
- JP2024504521
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-07-29
- Filing Date
- 2022-05-31
- Publication Date
- 2025-02-21
- Estimated Expiration
- 2042-05-31
Smart Images

Figure 0007634776000001 
Figure 0007634776000002 
Figure 0007634776000003
Abstract
Description
[Background technology]
[0001] Over the past few years, industrial automation has become heavily reliant on machine vision components that can assist operators in a variety of tasks. In some implementations, machine vision components such as cameras are utilized to track objects, such as objects moving on a conveyor belt as they pass a fixed camera. Often, these cameras (also referred to as imaging devices) interface with client devices (e.g., personal computers) that run corresponding applications operable to interact with these imaging devices at various levels. Image manipulation and analysis is often routine in these applications, including user interaction through the use of multiple regions of interest (ROIs) within the image.
[0002] However, problems can arise when setting up or otherwise configuring machine vision components and / or software to accurately image objects, especially moving objects. Such moving objects can include objects (e.g., products in production) moving on a conveyor belt. In such situations, the machine vision components and / or software typically require manual or custom configuration, which is not only time consuming but also error prone.
[0003] In some aspects, machine vision components and / or software may be manually configured as a particular "job" to image a particular object (e.g., a barcode on a manufactured product or other portion of a manufactured product) in a particular environment (e.g., a conveyor belt or other manufacturing process). However, manually creating a job may itself be a time-consuming process. Typically, a user must carefully identify an ROI in an image for potential defects and configure the machine vision job accordingly so that deviations are detected. Such a user must also manually identify areas of critical features, such as barcodes. Thus, a need exists for a machine vision system and method for automatically generating one or more machine vision jobs based on the ROI of a digital image. Summary of the Invention
[0004] In one aspect, the present disclosure describes an inventive machine vision method for automatically generating one or more machine vision jobs based on a region of interest (ROI) of a digital image. The machine vision method includes configuring a machine vision tool to capture an image identifier (ID). The machine vision method further includes loading a plurality of training images. Each training image may indicate an image ID. The machine vision method further includes labeling each of the plurality of training images to indicate a success or failure status of an object depicted in each training image. The machine vision method further includes extracting one or more candidate image features from the plurality of training images. The machine vision method further includes generating one or more candidate ROIs based on the candidate image features. The machine vision method further includes selecting a training set of ROIs from the one or more candidate ROIs. Each ROI in the training set of ROIs may be designated as an inclusion ROI or an exclusion ROI. The machine vision method further includes training a visual learning model using the training set of ROIs and the plurality of training images. The vision learning model may be configured to output a machine vision job. The machine vision job may be configured for electronic deployment to an imaging device. The imaging device performing the machine vision job may be configured to detect the success or failure status of additional images depicting the object.
[0005] In another aspect, a machine vision system is disclosed. The machine vision system is configured to automatically generate one or more machine vision jobs based on a region of interest (ROI) of a digital image. The machine vision system comprises an imaging device configured to perform one or more machine vision jobs. The machine vision system further comprises one or more processors. The machine vision system further comprises a memory communicatively coupled to the one or more processors and storing computing instructions. The computing instructions, when executed by the one or more processors, cause the one or more processors to configure a machine vision tool to capture an image identifier (ID). The computing instructions, when executed by the one or more processors, further cause the one or more processors to load a plurality of training images. Each training image may indicate an image ID. The computing instructions, when executed by the one or more processors, further cause each of the plurality of training images to be labeled to indicate a success or failure status of an object depicted in each training image. The computing instructions, when executed by the one or more processors, further cause extraction of one or more candidate image features from the plurality of training images. The computing instructions, when executed by the one or more processors, further cause generating one or more candidate ROIs based on the candidate image features. The computing instructions, when executed by the one or more processors, further cause selecting a training set of ROIs from the one or more candidate ROIs. Each ROI in the training set of ROIs may be designated as an inclusion ROI or an exclusion ROI. The computing instructions, when executed by the one or more processors, further cause training a visual learning model using the training set of ROIs and the plurality of training images. Each ROI in the training set of ROIs may be designated as an inclusion ROI or an exclusion ROI. The visual learning model may be configured to output a machine vision job. The machine vision job may be configured for electronic deployment to the imaging device.The imaging device performing the machine vision job may be configured to detect the success or failure status of additional images depicting the object.
[0006] In yet another aspect, a tangible, non-transitory, computer-readable medium is disclosed that stores computing instructions for automatically generating one or more machine vision jobs based on a region of interest (ROI) of a digital image. The computing instructions, when executed by one or more processors, cause the one or more processors to configure a machine vision tool to capture an image identifier (ID). The computing instructions, when executed by one or more processors, further cause the one or more processors to load a plurality of training images. Each training image may indicate an image ID. The computing instructions, when executed by one or more processors, further cause each of the plurality of training images to be labeled to indicate a success or failure status of an object depicted in each training image. The computing instructions, when executed by one or more processors, further cause extraction of one or more candidate image features from the plurality of training images. The computing instructions, when executed by one or more processors, further cause generation of one or more candidate ROIs based on the candidate image features. The computing instructions, when executed by one or more processors, may further cause a training set of ROIs to be selected from the one or more candidate ROIs. Each ROI in the training set of ROIs may be designated as an inclusion ROI or an exclusion ROI. The computing instructions, when executed by one or more processors, may further cause a visual learning model to be trained using the training set of ROIs and the plurality of training images. Each ROI in the training set of ROIs may be designated as an inclusion ROI or an exclusion ROI. The visual learning model may be configured to output a machine vision job. The machine vision job may be configured for electronic deployment to an imaging device. The imaging device performing the machine vision job may be configured to detect the success or failure status of additional images depicting the object.
[0007] The accompanying drawings, together with the following detailed description, are incorporated in and form a part of this specification and serve to further explain aspects of the concepts comprising the claimed invention and to explain various principles and advantages of those aspects. In the accompanying drawings, like reference numbers indicate identical or functionally similar elements throughout the different drawings. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 illustrates an exemplary machine vision system configured to automatically generate one or more machine vision jobs based on a region of interest (ROI) of a digital image, the one or more machine vision jobs being deployable to an imaging device, in accordance with aspects (embodiments) described herein.
[0009] [Diagram 2] FIG. 2 is a perspective view of the imaging device of FIG. 1 according to an embodiment described herein.
[0010] [Diagram 3] FIG. 3 illustrates an example application interface that may be utilized in connection with operation of the machine vision system of FIG. 1 according to aspects (embodiments) described herein.
[0011] [Figure 4] FIG. 4 is an example machine vision method for automatically generating one or more machine vision jobs based on a region of interest (ROI) of a digital image according to aspects (embodiments) described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] Those skilled in the art will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of aspects (embodiments) of the present invention.
[0013] Components of the apparatus and methods are designated by conventional reference numerals in the drawings, where appropriate, and the drawings show only those specific details relevant to understanding aspects (embodiments) of the invention so as not to obscure the disclosure of such details, which will be readily apparent to those skilled in the art having the benefit of the disclosures herein.
[0014] Disclosed herein are machine vision systems and methods for automatically generating machine vision jobs based on regions of interest (ROIs) in a digital image. Overall, the disclosure herein provides a novel aspect in which, given a set of pass and fail instances (as depicted in the digital image), a machine learning model for the machine vision job is trained and useful components are automatically extracted for analysis. As the term is used herein, a "machine vision job" or other "job" refers to imaging and / or camera software or firmware configured to be deployed and implemented on an imaging camera, such as, for example, any one or more of the VS-SERIES smart cameras, such as those offered by ZEBRA TECHNOLOGIES CORP., e.g., the VS70 MACHINE VISION SMART CAMERA device. For example, in one aspect, a machine vision job may be configured to be deployed on an imaging camera to read or scan an image of a barcode on a product. Configuring a machine vision job may include selecting multiple ROIs in an image, such as computer chip locations in an image of a computer circuit board, to indicate success (e.g., a success status) or failure (e.g., a failure status) of the computer circuit board during or after manufacturing. Such activities may occur, for example, as part of a manufacturing quality control process. In various aspects, the machine vision job may be generated, set up, or otherwise output by a vision learning model (e.g., a machine learning model). These and other aspects of the present disclosure are further described with reference to the drawings herein.
[0015] 1 illustrates an example machine vision system 100 configured to automatically generate one or more machine vision jobs based on an ROI of a digital image, where the one or more machine vision jobs can be deployed to an imaging device 104, in accordance with aspects described herein. In various aspects, the machine vision system 100 provides analysis of pixel data of an image of a target object generation of a machine vision job (an image of a target object for generation of a machine vision job) in accordance with various aspects disclosed herein.
[0016] In the exemplary embodiment of FIG. 1, the imaging system 100 includes a user computing device 102 (e.g., a computer, mobile device, or tablet), a control computing device 105 (e.g., a programmable logic controller (PLC)), and an imaging device 104 communicatively coupled to the user computing device 102 and the control computing device 105 via a network 106. Generally, the user computing device 102 and the imaging device 104 may be configured to execute instructions to implement operations of the exemplary methods described herein, for example, as may be represented by the flowcharts of the drawings accompanying the description. The user computing device 102 is generally configured to enable a user / operator to create a machine vision job for execution on the imaging device 104. When created, the user / operator may send / upload the machine vision job via the network 106 to the imaging device 104 where it is interpreted, executed, or otherwise implemented by the imaging device 104. Upon execution of these jobs, output data generated by the imaging device 104 may be transmitted to the control computing device 105 for further analysis and utilization. The user computing device 102 may be one or more operator workstations and may include one or more processors 108, one or more memories 110, a networking interface 112, an input / output (I / O) interface 114, and a smart imaging application 116. Similarly, the control computing device 105 may include one or more processors 158, one or more memories 160, a networking interface 172, an input / output (I / O) interface 174, and software potentially running in the form of firmware and / or as a smart application 166 (which may be the same as or different from the smart imaging application 116).
[0017] The imaging device 104 is connected to the user computing device 102 via a network 106 (e.g., a private computer network such as an internal LAN, or additionally or alternatively, a public computer network such as the Internet) and is configured to interpret, execute, or otherwise implement machine vision jobs received from the user computing device 102. In general, the imaging device 104 may obtain a job file including one or more job scripts from the user computing device 102 via the network 106, which may define a machine vision job, and may configure the imaging device 104 to capture and / or analyze images according to the machine vision job. For example, the imaging device 104 may include flash memory used to determine, store, or otherwise process imaging data / datasets and / or post-imaging data. The imaging device 104 may then receive, recognize, and / or otherwise interpret triggers that cause the imaging device 104 to capture images of target objects according to the configuration established via the one or more job scripts. Once captured and / or analyzed, the imaging device 104 may transmit the image and any associated data over the network 106 to the user computing device 102 for further analysis and / or storage. In various aspects (embodiments), the imaging device 104 may be a “smart” camera (e.g., a VS70 MACHINE VISION SMART CAMERA device, etc.) and / or may be configured to automatically perform the full functionality of the imaging device 104 to retrieve, interpret, and execute job scripts defining a machine vision job, such as any job script or scripts contained in one or more job files retrieved from the user computing device 102.
[0018] Generally, a job file may be a JSON representation / data format of the one or more job scripts that can be transferred from the user computing device 102 to the imaging device 104. As used herein, a job script may also include or be referred to as a configuration file or “job configuration.” The job file may also be loadable / readable by a C++ runtime engine or other suitable runtime engine executing on the imaging device 104. Additionally, the imaging device 104 may run or implement a server (not shown) configured to listen for and receive job files from the user computing device 102 over the network 106. Additionally or alternatively, the server configured to listen for and receive job files may be implemented as one or more cloud-based servers, such as a cloud-based computing platform. For example, the server may be any one or more cloud-based platforms, such as MICROSOFT AZURE, AMAZON AWS, and the like.
[0019] In various aspects, the imaging device 104 may include one or more processors 118, one or more memories 120, a networking interface 122, an I / O interface 124, and an imaging assembly 126. The imaging assembly 126 may include a digital camera and / or a digital video camera for capturing or filming digital images and / or frames. Each digital image may include pixel data that may be analyzed by one or more tools, each configured to perform an image analysis task. For example, the digital camera and / or the digital video camera of the imaging assembly 126 may be configured to film, capture, or otherwise generate digital images as disclosed herein, and at least in some aspects (embodiments), may store such images in memory (e.g., one or more memories 110, 120, and / or 160) of the respective device (e.g., the user computing device 102, the imaging device 104).
[0020] By way of example, the imaging assembly 126 may include a photorealistic camera (not shown) for capturing, sensing, or scanning 2D image data. The photorealistic camera may be an RGB (red, green, blue) based camera for capturing 2D images having RGB based pixel data. In various aspects (embodiments), the imaging assembly may additionally include a three-dimensional (3D) camera (not shown) for capturing, sensing, or scanning 3D image data. The 3D camera may include an infrared (IR) projector and an associated IR camera for capturing, sensing, or scanning the 3D image data / data set. In some aspects (embodiments), the photorealistic camera of the imaging assembly 126 may capture the 2D image and associated 2D image data at the same or similar time as the 3D camera of the imaging assembly 126, and the imaging device 104 may have both sets of 3D and 2D image data available for a particular surface, object, area, or scene at the same or similar time. In various aspects (embodiments), the imaging assembly 126 may include a 3D camera and a photorealistic camera as a single imaging device configured to capture 3D depth image data simultaneously with 2D image data, such that the captured 2D image and the corresponding 2D image data may be depth-aligned with the 3D image and the 3D image data.
[0021] In various aspects (embodiments), the imaging assembly 126 may be configured to capture images of a surface or region of a predetermined search space or a target object within the predetermined search space. For example, each tool included in a job script may additionally include a region of interest (ROI) corresponding to a particular region or target object imaged by the imaging assembly 126. The composite region defined by the ROIs of all tools included in a particular job script may thereby define a predefined search space that the imaging assembly 126 may capture to facilitate execution of the job script. However, the predefined search space may be specified by a user to include more or less field of view (FOV) features than the composite region defined by the ROIs of all tools included in the particular job script. It should be noted that the imaging assembly 126 may capture 2D and / or 3D image data / data sets of various regions, such that additional regions in addition to the predefined search space are contemplated herein. Further, in various aspects (embodiments), in addition to the 2D / 3D image data, the imaging assembly 126 may be configured to capture other sets of image data, such as grayscale image data or amplitude image data, each of which may be depth-aligned with the 2D / 3D image data.
[0022] The imaging device 104 may also process the 2D image data / dataset and / or the 3D image data set for use by other devices (e.g., the user computing device 102, an external server). For example, the one or more processors 118 may process image data or data sets captured, scanned or sensed by the imaging assembly 126. Processing of the image data may generate post-imaging data that may include metadata, simplified data, normalized data, result data, status data or alert data determined from the original scanned or sensed image data. The image data and / or post-imaging data may be transmitted to the user computing device 102 running the smart imaging application 116 for viewing, manipulation and / or other interaction. In other embodiments, the image data and / or post-imaging data may be transmitted to a server for storage or further manipulation. As described herein, the user computing device 102, the imaging device 104, and / or an external server or other central processing unit and / or storage device may store such data and may also transmit the image data and / or post-imaging data to other applications implemented on the user device, such as a mobile device, tablet, handheld device, or desktop device.
[0023] Each of the one or more memories 110, 120, and / or 160 may include one or more forms of volatile and / or non-volatile fixed and / or removable memory, such as read only memory (ROM), electronically programmable read only memory (EPROM), random access memory (RAM), erasable electronically programmable read only memory (EEPROM), and / or other hard drives, flash memory, MicroSD cards, etc. In general, computer programs or computer-based products, applications, or code (e.g., smart imaging application 116, or other computing instructions described herein) may be stored on a computer usable storage medium or tangible non-transitory computer readable medium (e.g., standard random access memory (RAM), optical disk, Universal Serial Bus (USB) drive, etc.) in which such computer readable program code or computer instructions are embodied. Therein, computer readable program code or computer instructions may be installed for execution by one or more processors 108, 118 and / or 158 (e.g., operating in conjunction with a respective operating system in one or more memories 110, 120 and / or 160) or may be otherwise adapted to facilitate, implement or execute the machine readable instructions, methods, processes, elements or limitations as shown, depicted or described for purposes of the various flowcharts, illustrations, schematics, figures and / or other disclosures herein. In this regard, the program code may be implemented in any desired programming language and may be implemented as machine code, assembly code, bytecode, interpretable source code, or the like (e.g., via Golang, Python, C, C++, C#, Objective-C, Java, Scala, ActionScript, JavaScript, HTML, CSS, XML, etc.).
[0024] The one or more memories 110, 120, and / or 160 may store an operating system (OS) (e.g., Microsoft Windows, Linux, Unix, etc.) capable of facilitating functions, apps, methods, or other software as described herein. The one or more memories 110 may also store a smart imaging application 116, which may be configured to enable the construction of machine vision jobs as described further herein. Additionally or alternatively, the smart imaging application 116 may be stored in one or more memories 120 of the imaging device 104 and / or in an external database (not shown), the latter being accessible or otherwise communicatively coupled to the user computing device 102 via the network 106. The one or more memories 110, 120, and / or 160 may also store machine-readable instructions, which may include any of one or more applications, one or more software components, and / or one or more application programming interfaces (APIs). They may be implemented to facilitate or perform features, functions, or other disclosures described herein, such as methods, processes, elements, or limitations, as shown, depicted, or described in the various flowcharts, illustrations, schematics, figures, and / or other disclosures herein. For example, at least some of the applications, software components, or APIs may be, include, or be part of a machine vision based imaging application, such as smart imaging application 116, in which each may be configured to facilitate various functions thereof described herein. One or more other applications may be envisioned and executed by one or more processors 108, 118, and / or 158.
[0025] One or more processors 108, 118 and / or 158 may be connected to one or more memories 110, 120 and / or 160 via a computer bus and may be responsible for transmitting electronic data, data packets or other electronic signals between the one or more processors 108, 118 and / or 158 and the one or more memories 110, 120 and / or 160 to implement or execute machine-readable instructions, methods, processes, elements or limitations as shown, depicted or described in the various flowcharts, illustrations, schematics, figures, and / or other disclosures herein.
[0026] The one or more processors 108, 118 and / or 158 may interface with the one or more memories 110, 120 and / or 160 via a computer bus and may execute an operating system (OS). The one or more processors 108, 118 and / or 158 may also interface with the one or more memories 110, 120 and / or 160 via a computer bus and may create, read, update, delete, or otherwise access or interact with data stored in the one or more memories 110, 120 and / or 160 and / or in an external database (e.g., a relational database such as Oracle, DB2, MySQL, or a NoSQL-based database such as MongoDB). The data stored in one or more memories 110, 120 and / or 160 and / or in an external database may include all or any portion of the data or information described herein, including, for example, machine vision job images (e.g., images captured by imaging device 104 in response to execution of a job script) and / or other suitable information.
[0027] The networking interfaces 112, 122, and / or 162 may be configured to communicate (e.g., send and receive) data to one or more networks, such as the network 106 described herein, or to a local terminal, via one or more external / network ports. In some aspects (embodiments), the networking interfaces 112, 122, and / or 162 may include client-server platform technologies, such as ASP.NET, Java J2EE, Ruby on Rails, Node.js, Web Services, or online APIs, and may be responsible for receiving and responding to electronic requests. The networking interfaces 112, 122, and / or 162 may implement client-server platform technologies that may interact with one or more memories 110, 120, and / or 160 (applications, components, APIs, data, etc. stored therein) via a computer bus and may implement or execute machine-readable instructions, methods, processes, elements, or limitations. As shown, depicted or described in the various flow charts, illustrations, schematics, figures, and / or other disclosure herein.
[0028] According to some aspects, the networking interfaces 112, 122, and / or 162 may include or interact with one or more transceivers (e.g., WWAN, WLAN, and / or WPAN transceivers) that function according to IEEE, 3GPP, or other standards, and may be used to transmit and receive data via an external / network port connected to the network 106. In some aspects, the network 106 may include a private network or a local area network (LAN). Additionally or alternatively, the network 106 may include a public network, such as the Internet. In some aspects, the network 106 may include a router, wireless switch, or other such wireless connection point that communicates with the user computing device 102 (via the networking interface 112) and the imaging device 104 (via the networking interface 122) via wireless communication based on any one or more of a variety of wireless standards. Such wireless standards include, by way of non-limiting example, IEEE 802.11a / b / c / g (WIFI), the BLUETOOTH standard, and the like.
[0029] I / O interfaces 114, 124, and / or 164 may include or implement an operator interface configured to present information to and / or receive input from an administrator or operator. The operator interface may provide a display screen (e.g., via user computing device 102 and / or imaging device 104) that a user / operator may use to visualize any images, graphics, text, data, features, pixels, and / or other suitable visual images or information. For example, user computing device 102 and / or imaging device 104 may, at least in part, have, implement, have access to, render, or otherwise expose a graphical user interface (GUI) for displaying images, graphics, text, data, features, pixels, and / or other suitable visual images or information on a display screen. I / O interfaces 114, 124, and / or 164 may also include I / O components (e.g., ports, capacitive or resistive touch-sensitive input panels, keys, buttons, lights, LEDs, any number of keyboards, mice, USB drives, optical drives, screens, touch screens, etc.) that may be directly / indirectly accessible through or directly / indirectly attached to user computing device 102 and / or imaging device 104. According to some aspects (embodiments), an administrator or user / operator may access user computing device 102 and / or imaging device 104 to build jobs, review images or other information, make changes, enter responses and / or selections, and / or perform other functions.
[0030] As previously described herein, in some aspects (embodiments), the user computing device 102 may perform the functions described herein as part of a “cloud” network or may communicate with other hardware or software components in the cloud to transmit, obtain, or analyze data or information as described herein.
[0031] FIG. 2 is a perspective view of the imaging device 104 of FIG. 1 according to aspects (embodiments) described herein. As a non-limiting example, FIG. 2 represents a VS70 MACHINE VISION SMART CAMERA device as described herein for FIG. 1. The imaging device 104 includes a housing 202, an imaging aperture 204, a user interface label 206, a dome switch / button 208, one or more light emitting diodes (LEDs) 210, and an attachment point 212. As previously described, the imaging device 104 may obtain a job file from a user computing device (e.g., the user computing device 102), which the imaging device 104 then interprets and executes. The instructions included in the job file may include device configuration settings (also referred to herein as "imaging settings") operable to adjust the configuration of the imaging device 104 prior to capturing an image of a target object.
[0032] For example, the device configuration settings may include instructions to adjust one or more settings related to the imaging aperture 204. As an example, assume that at least a portion of the intended analysis corresponding to a machine vision job requires that the imaging device 104 maximize the brightness of any captured images. To address this requirement, the job file may include a device configuration setting to increase the aperture size of the imaging aperture 204. The imaging device 104 may interpret these instructions (e.g., via one or more processors 118) and, in response, increase the aperture size of the imaging aperture 204. Thus, the imaging device 104 may be configured to automatically adjust its own configuration to optimally suit a particular machine vision job. Additionally, the imaging device 104 may include or be adaptable to include, by way of example and not limitation, one or more bandpass filters, one or more polarizers, one or more DPM diffusers, one or more C-mount lenses, and / or one or more C-mount liquid lenses that relate to or otherwise affect the illumination received through the imaging aperture 204.
[0033] The user interface label 206 may include a dome switch / button 208 and one or more LEDs 210, thereby enabling various interactive and / or indication functions. In general, the user interface label 206 may enable a user to trigger and / or adjust the imaging device 104 (e.g., via the dome switch / button 208) and may enable a user to recognize when one or more functions, errors, and / or other operations have been performed or taken on the imaging device 104 (e.g., via the one or more LEDs 210). For example, a trigger function of a dome switch / button (e.g., the dome / switch button 208) may enable a user to capture an image using the imaging device 104 and / or may enable a user to display a trigger configuration screen of a user application (e.g., the smart imaging application 116). The trigger configuration screen may allow a user to configure one or more triggers for the imaging device 104, which may be stored in memory (e.g., one or more of memories 110, 120 and / or 160) for use in subsequently developed machine vision jobs, as described herein.
[0034] As another example, an adjustment function of a dome switch / button (e.g., dome / switch button 208) may enable a user to automatically and / or manually adjust the configuration of the imaging device 104 according to a preferred / predetermined configuration and / or may enable a user to display an imaging configuration screen of a user application (e.g., smart imaging application 116) that may allow a user to configure one or more configurations (e.g., aperture size, exposure length, etc.) of the imaging device 104, which may be stored in memory (e.g., one or more of memories 110, 120 and / or 160) for use in subsequently developed machine vision jobs, as described herein.
[0035] Further to this example, as described further herein, a user may utilize the imaging configuration screen (or, more generally, smart imaging application 116) to establish two or more configurations of imaging settings for imaging device 104. The user may then save these two or more configurations of imaging settings as part of a machine vision job, which is then transmitted to imaging device 104 in a job file that includes one or more job scripts. The one or more job scripts may then instruct a processor (e.g., one or more processors 118) of imaging device 104 to automatically sequentially adjust the imaging settings of the imaging device in accordance with one or more of the two or more configurations of imaging settings after each successive image acquisition.
[0036] The attachment points 212 may enable a user to connect and / or removably secure the imaging device 104 to a mounting device (e.g., an imaging tripod, a camera mount, etc.), a structural surface (e.g., a warehouse wall, a warehouse ceiling, a structural support beam, etc.), other accessory items, and / or other suitable connecting devices, structures or surfaces. For example, the imaging device 104 may be optimally mounted on a mounting device in a distribution center, a manufacturing plant, a warehouse, and / or other facility to image and thereby monitor the quality / consistency of products, packages, and / or other items as they pass through the FOV of the imaging device 104. Additionally, the attachment points 212 may enable a user to connect the imaging device 104 to a number of accessory items, including, but not limited to, one or more external lighting fixtures, one or more mounting devices / brackets, etc.
[0037] Additionally, the imaging device 104 may include several hardware components contained within the housing 202 that enable connection to a computer network (e.g., network 106). For example, the imaging device 104 may include a networking interface (e.g., networking interface 122) that enables the imaging device 104 to connect to a network, such as a gigabit Ethernet connection and / or a dual gigabit Ethernet connection. Additionally, the imaging device 104 may include a transceiver and / or other communication components as part of the networking interface for communicating with other devices (e.g., the user computing device 102) via, for example, Ethernet / IP, PROFINET, Modbus TCP, CC-Link, USB 3.0, RS-232, and / or any other suitable communication protocol or combination thereof.
[0038] FIG. 3 illustrates an example application interface 300 utilized in connection with operation of the machine vision system of FIG. 1 according to aspects (embodiments) described herein. As illustrated in the example of FIG. 3, an image 302 is loaded and / or displayed on the application interface 300. The application interface 300 may load images that may be annotated, marked, or otherwise manipulated to have regions of interest (ROIs) associated with them, or may be ready for such. Such ROIs may be used to train machine learning models and / or to configure the imaging device 104 to implement machine vision jobs, as described herein. In some aspects (embodiments), the application interface 300 may store and / or load additional images 320 that may be used for training, testing, and / or application, such as with an already trained machine vision model.
[0039] In the example of Figure 3, image 302 shows an image of a computer circuit board, which is one example of a manufactured product that may be imaged by imaging device 104. Image 302 may be manipulated or otherwise interacted with by a user. As shown, image 302 shows ROIs 306, 308. ROI 306 includes a barcode associated with the computer circuit board of image 302. ROI 308 includes a portion of the computer circuit board, e.g., an area on the computer circuit board of image 302 where a computer chip is (or should be) mounted.
[0040] It should be understood that the ROI may be of any desired shape and may be obtained in any manner, manual or automatic. For example, while each illustrated ROI is shown as having a rectangular shape, the ROI may have, for example, a circle, a square, an oval, an octagon, or any other desired shape. Furthermore, the ROI need not be symmetrical about any line and may have a generally irregular shape. The ROI may be generated manually by a user selecting a point in the image 302 with a mouse and dragging a pointer from the point while activating an ROI function to draw an ROI of desired proportions, or may be generated based on the results of image analysis performed by an application and / or an imaging device. For example, the system may be configured to generate an ROI around an area in an image having pixel luminance values above or below a threshold, or may be configured to generate an ROI based on edge detection, or may be configured to generate an ROI based on color detection.
[0041] Additionally, each ROI may have a label (e.g., label 306L for ROI 306 and label 308L for ROI 308) that is displayed on the screen and provides some identifying information. Such identifying information may include, by way of non-limiting example, information that identifies or represents one or more features in an image, the approach used to generate the ROI, or other such information corresponding to the ROI. In the example of FIG. 3, label 306L defines ROI 306 as an image identifier (ID) (e.g., the barcode shown in ROI 306 includes a barcode). Similarly, label 308L defines ROI 308 as a status (e.g., the computer chip shown in ROI 308 has a status, including a success status or a failure status, indicating whether the computer chip is depicted in a successful status (e.g., depicted without defects) or a failed status (e.g., depicted with defects, missing, etc.)).
[0042] When one or more ROIs are present, the following approach may be applied to determine which ROIs should be affected in response to a user action. For example, the following logic may be applied: When the mouse pointer is over an ROI label, the ROI associated with that label is the target of the interaction. Alternatively, if the pointer is within the body of a single ROI, the ROI within which the mouse pointer is found is targeted for interaction. Alternatively, if the pointer is within the body of multiple ROIs, target the ROI whose center is closest to the pointer's location. If the pointer is equidistant to the centers of multiple ROIs, target the smallest ROI for interaction.
[0043] Once an ROI is targeted, it can be selected by clicking or moved by dragging. As the pointer is moved over the canvas displaying image 302, the targeted ROI is highlighted with a semi-transparent overlay so the user knows which ROI to interact with given the current pointer position.
[0044] Such center distance logic allows a user to target a desired ROI from a group of overlapping ROIs once the user becomes accustomed to the convention.
[0045] In another aspect, the following logic applies. When the pointer is over an ROI label, the ROI associated with that label is targeted for interaction. Alternatively, if the pointer is within the body of a single ROI, the ROI within which the mouse pointer is found is targeted for interaction. Alternatively, if the pointer is within the body of multiple ROIs, target the ROI whose boundary is closest to the pointer's location. If the pointer is equidistant to the boundaries of multiple ROIs, the distance to the center and / or the ROI size are used as tablebreakers. Thus, the targeted ROI may be the one whose center is closest to the pointer position and / or the ROI with the smallest size.
[0046] The ROI boundary may be a visible element of an otherwise transparent ROI body and may serve as an anchor for targeting rather than the invisible center. A thin boundary may require too high a pointing precision to function as a target by itself, but the user may follow the convention of pointing inside the ROI body near the boundary, which is efficient since it requires only less pointing precision.
[0047] If a particular mode is more intuitive (easier to use) for a particular user or is more suitable for a particular use case, an overlapping ROI interaction setting may be added to toggle between several different overlapping ROI targeting mode options. The modes may include: Dynamic targeting (closest center or closest boundary based on configurable thresholds) · Boundary targeting (closest boundary) · Center targeting (closest center) · Size targeting (smallest ROI) Z-index targeting (selected ROI or top ROI)
[0048] It should be understood that throughout this disclosure, references to input devices such as a mouse should not be considered limiting and other input devices should be considered within the scope of this disclosure. For example, it should be understood that when an application is run on a mobile device such as a tablet or notebook with touch screen capabilities, the respective input functions via the user's finger and the screen can function exactly like the input functions of a computer mouse.
[0049] 4 is an exemplary machine vision method 400 for automatically generating one or more machine vision jobs based on a region of interest (ROI) of a digital image, according to aspects (embodiments) described herein. The machine vision jobs can be deployed to and implemented on an imaging camera (e.g., imaging device 104), such as any one or more of the VS-SERIES smart cameras offered by ZEBRA TECHNOLOGIES CORP., e.g., the VS70 MACHINE VISION SMART CAMERA device. For example, in one aspect, the machine vision job can be configured such that deployment to the imaging camera reads or scans an image of a barcode of a product, such as a computer circuit board, as shown in FIG. 3. In general, the machine vision method 400 represents an algorithm executable by one or more processors (e.g., processors 108, 118 and / or 158 of the machine vision system 100), which can be implemented as computing instructions stored on a tangible, non-transitory computer readable medium (e.g., a computer readable medium) as described herein.
[0050] 4, at block 402, the machine vision method 400 includes configuring a machine vision tool for capturing an image ID. For example, in the example of FIG. 4, the application interface 300 may be used to create an empty project with a single configuration tool for capturing a barcode representing an image ID. The machine vision tool may be configured to operate, access, or perform an OCR reader, a bar reader, image analysis (e.g., counting the number of pixels in an area), such as those performed by the imaging device 104 or other components described for the machine vision system 100. Each tool performs a specific processing function.
[0051] At block 404, the machine vision method 400 includes loading a number of training images (e.g., a training set of images), each training image indicating an image ID. The training images may be selected and saved in a folder or library (e.g., additional images 320) that contains a set of captured images for the project. Each image may be read and identified according to the captured image ID.
[0052] At block 406, the machine vision method 400 includes labeling each of the multiple training images to indicate a success or failure status of an object depicted in each training image. For example, in some aspects, constructing a machine vision job may include selecting and labeling (e.g., label 308L) an ROI within an image, such as the location of a computer chip (e.g., ROI 308) to indicate success (e.g., success status) or failure (e.g., failure status).
[0053] In some aspects, the images may be stored in a memory (e.g., one or more memories 110, 120 and / or 160) or an image database may be managed by a user. Images may be marked with a success or failure status. For example, if a component (e.g., a computer chip) is found to be defective in the field (e.g., in a manufacturing facility) or by testing, it is marked with a failure status in the ROI (e.g., ROI 308). By default, each image that is not marked as a failure is assumed to be an example of success, but this may be configured by user preference, for example, via application interface 300. In some aspects, an indication of success may include quality control. For example, an indication of success may include an indication that a particular product or component (e.g., a computer circuit board and / or computer chip shown in image 302) passed quality control. The product may be identified by an image ID (e.g., a barcode in ROI 306).
[0054] A failure status may also be indicated by failure to read a barcode or a quality control failure (e.g., scanning or imaging a computer circuit board may indicate a quality control failure such as a lead on the circuit board not being connected, a computer chip being missing, etc.). In such an embodiment, the barcode (e.g., identified by ROI 306) may uniquely identify which product has failed. In some embodiments, one or more training images of the plurality of training images may be labeled (e.g., label 308L) to indicate a failure status, and such labeling may include a graphic border region (e.g., ROI 308) that indicates a visually defective area or portion of an object depicted in the training image. For example, when marking an image (e.g., image 302) to represent or indicate a failure status or condition, a user may draw a polygon around the visually defective area to help the learning process identify the failure area (e.g., ROI 308, where, for example, a computer chip may be missing from the computer circuit board depicted in image 302).
[0055] 4, at block 408, the machine vision method 400 includes extracting one or more candidate image features from a plurality of training images. Each image may be read and identified according to a captured image ID (e.g., a barcode as shown in ROI 306). The candidate features may be extracted and cross-compared from the collection of images to generate a set of candidate regions for the job (e.g., ROI 308 indicative of a computer chip or relevant region). The candidate features may correspond to indicators of success and / or failure as previously described.
[0056] At block 410, the machine vision method 400 includes generating one or more candidate ROIs (eg, ROI 308) based on the candidate image features.
[0057] At block 412, the machine vision method 400 includes selecting a training set of ROIs from one or more candidate ROIs, where each ROI in the training set of ROIs is designated as an inclusion ROI or an exclusion ROI. In this manner, ROIs can be defined to include or exclude specific regions from the learning process. For example, a particular region / ROI of a circuit board may include ROIs that define sensitive regions of the image (e.g., critical leads or regions where quality control issues typically arise). In contrast, excluded regions may include regions that are different and therefore not indicative of quality, such as (indicative of) different processor types (INTEL or AMD). Such candidate regions may then be presented to a user, for example via the exemplary application interface 300, and the user may select whether such regions should be included or excluded from the project. Where region types can be determined from the content of the entire image, as in the case of barcodes and OCR, default values are entered to properly configure the new tool. In this manner, the application interface 300 provides an automated or assisted way to implement supervised learning and training of images, for example, by flagging selectable important image features, as described with respect to block 414, which can be used to train a visual learning model.
[0058] At block 414, the machine vision method 400 includes training a visual learning model using the training set of ROIs and the plurality of training images. The visual learning model may be configured to output a machine vision job. That is, images annotated or selected with inclusion and / or exclusion ROIs and / or success or failure status may be trained with a machine learning algorithm to generate or output a machine vision job based on the exemplary training set of images. For each image, candidate (success) features may be extracted and cross-compared with the failure set. In this manner, the machine vision method 400 automatically prepares a job that would otherwise be created manually.
[0059] In various embodiments, the visual learning model may be trained using a supervised or unsupervised machine learning program or algorithm. The machine learning program or algorithm may use a neural network, which may be a convolutional neural network, a deep learning neural network, or a composite learning module or program that learns on two or more features or feature datasets in a particular region of interest. The machine learning program or algorithm may include natural language processing, semantic analysis, automated reasoning, regression analysis, support vector machine (SVM) analysis, decision tree analysis, random forest analysis, K-nearest neighbor analysis, naive Bayes analysis, clustering, reinforcement learning, and / or other machine learning algorithms and / or techniques. Machine learning may include identifying and recognizing patterns in existing data (such as pixels in a labeled or otherwise identified ROI) to facilitate predictions or output for subsequent data (output of a machine vision job to predict or otherwise detect similar ROIs in additional or similar images).
[0060] To make valid and reliable predictions for new inputs, such as test-level or production (production) level data or inputs, a machine learning model, such as a visual learning model, can be created and trained based on example inputs or data (e.g., "training data") (which may be referred to as "features" and "labels").
[0061] In supervised machine learning, a machine learning program running on a server, computing device, or other processor may be provided with example inputs (e.g., "features") and their associated or observed outputs (e.g., "labels"), and by determining and / or assigning weights and other metrics to the model across the model's various feature categories, the machine learning program or algorithm may determine or discover rules, relationships, or other machine learning "models" that map such inputs (e.g., "features") to outputs (e.g., "labels"). Such rules, relationships, or other models may then be provided with subsequent inputs, and the model running on the server, computing device, or other processor may predict a predicted output based on the discovered rules, relationships, or models.
[0062] In unsupervised machine learning, a server, computing device, or other processor may be required to find its own structure in unlabeled example inputs; for example, multiple training iterations may be performed by the server, computing device, or other processor to train multiple generations of models to generate a satisfactory model (e.g., a model that provides sufficient predictive accuracy when given test-level or production (production)-level data or inputs).
[0063] Supervised learning and / or unsupervised machine learning may include retraining, relearning, or otherwise updating a model with new or different information, which may include information received, captured, generated, or otherwise used over time. The disclosure herein may use either or both of such supervised or unsupervised machine learning techniques.
[0064] For example, with respect to the example of Figure 3, image 302 may include training images that show ROI 308 in a failed state having an unconnected electrical lead, or a broken or missing computer chip, etc. Once training is complete, the visual learning model may be able to detect similar defects in new or additional images.
[0065] In an additional aspect, the visual learning model is further trained using the training set of ROIs and the plurality of training images to output a quality score indicative of the quality of the objects depicted in the training images, for example, a computer circuit board may have a low quality score based on defects.
[0066] In some aspects, at least one of the training set of ROIs may include a critical ROI. The critical ROI may cause the visual learning model to output at least one of: (a) a quality score indicative of a high quality of the object depicted in the training image; or (b) a quality score indicative of a low quality of the object depicted in the training image. In such aspects, training the visual learning model may include identifying a critical pattern ROI to be added to the training image. In general, a critical pattern may be an ROI that is automatically identified and causes the model to generate a high score among all passing instances and a low score among failing instances.
[0067] 3, the failure instances of the computer circuit board may include ROIs of the circuit board where cracks are most likely to occur, ROIs of the circuit board where processors or chips on the circuit board are typically found missing (but missing or partially missing), ROIs of the circuit board where any other components are not soldered correctly, or ROIs of the circuit board where capacitors are blown (e.g., brown on top), or any other failures or problems experienced or known to occur during or after the manufacturing process of the product. In some aspects, the ideal critical pattern may be an ROI that matches 100% for all passing instances and 0% for all failing instances (i.e., an ROI that indicates 100% passing or 100% failing).
[0068] In some aspects, the vision learning model may comprise an ensemble model including multiple artificial intelligence models. In such aspects, each of the multiple artificial intelligence models may be trained with a subset of the training set of ROIs to output a quality score for a particular ROI in a digital image depicting an object. In such aspects, training images with ROIs and / or critical patterns may be used to train the ensemble model. This may include additional training or learning, such as boosting, which utilizes the ROIs as weak learners to generate an improved vision learning model for a given machine vision job. The model output from this process may then assign defect scores to new or additional example images provided by the camera.
[0069] More generally, the visual learning model may include multiple machine learning models, each trained on and configured to detect a different ROI for each image. In such an embodiment, each model may be configured to analyze a single ROI (each ROI having a particular pixel), and each model may output a prediction score. The scores may be averaged into an overall score or an ensemble score. Some models may be segmented models using unsupervised learning.
[0070] 4, at block 416, the machine vision method 400 may include deploying the visual learning model. For example, the machine vision job may be configured to be electronically deployed to an imaging device (e.g., imaging device 104). In such an aspect, the imaging device (e.g., imaging device 104) performing the machine vision job may be configured to detect the success or failure status of additional images depicting the object (e.g., a computer circuit board) when the object is stationary or when the object moves on a conveyor belt for quality control detection and / or other problem detection of the product during the manufacturing process.
[0071] Additional Considerations
[0072] The foregoing description refers to block diagrams in the accompanying drawings. Alternative implementations of the embodiments represented by the block diagrams include one or more additional or alternative elements, processes and / or devices. Additionally or alternatively, one or more of the exemplary blocks in the diagrams may be combined, divided, rearranged, or omitted. The components represented by the blocks in the diagrams may be implemented by hardware, software, firmware, and / or any combination of hardware, software, and / or firmware. In some examples, at least one of the components represented by the blocks is implemented by a logic circuit. As used herein, the term "logic circuit" is expressly defined as a physical device including at least one hardware component configured to control one or more machines and / or perform the operations of one or more machines (e.g., via operation according to a predetermined configuration and / or via execution of stored machine-readable instructions). Examples of logic circuits include one or more processors, one or more coprocessors, one or more microprocessors, one or more controllers, one or more digital signal processors (DSPs), one or more application-specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs), one or more microcontroller units (MCUs), one or more hardware accelerators, one or more special-purpose (dedicated) computer chips, and one or more system-on-chip (SoC) devices. Some exemplary logic circuits, such as an ASIC or FPGA, are hardware that is specifically configured to perform an operation (e.g., one or more operations described herein and, if present, represented by the flowcharts of this disclosure). Some exemplary logic circuits are hardware that executes machine-readable instructions (instructions) to perform an operation (e.g., one or more operations described herein and, if present, represented by the flowcharts of this disclosure).Some exemplary logic circuits include a combination of specially configured hardware and hardware that executes machine-readable instructions. The foregoing description refers to various operations described herein and flowcharts that may be attached hereto to illustrate the flow of those operations. Any such flowcharts represent exemplary methods disclosed herein. In some examples, the methods represented by the flowcharts implement the apparatus represented by the block diagrams. Alternative implementations of the exemplary methods disclosed herein may include additional or alternative operations. Furthermore, operations of alternative implementations of the methods disclosed herein may be combined, divided, rearranged, or omitted. In some examples, the operations described herein are implemented by machine-readable instructions (e.g., software and / or firmware) stored on a medium (e.g., a tangible machine-readable medium) for execution by one or more logic circuits (e.g., processors). In some examples, the operations described herein are performed by one or more configurations of one or more specially designed logic circuits (e.g., ASICs). In some examples, the operations described herein are implemented by a combination of one or more logic circuits specially designed for execution by the one or more logic circuits and machine-readable instructions stored on a medium (e.g., a tangible machine-readable medium).
[0073] As used herein, each of the terms "tangible machine-readable medium," "non-transitory machine-readable medium," and "machine-readable storage device" is expressly defined as a storage medium (e.g., a hard disk drive, a digital versatile disk (DVD), a compact disk (CD), flash memory, a read-only memory (ROM), a random access memory (RAM), etc.) on which machine-readable instructions (e.g., program code in the form of software and / or firmware) are stored for any suitable period of time (e.g., permanently, for an extended period (e.g., while a program associated with the machine-readable instructions is being executed), and / or for a short period (e.g., while the machine-readable instructions are cached and / or during a buffering process). Furthermore, as used herein, each of the terms "tangible machine-readable medium," "non-transitory machine-readable medium," and "machine-readable storage device" is expressly defined to exclude (an aspect of) a propagating signal. That is, as used in the claims, none of the terms "tangible machine-readable medium," "non-transitory machine-readable medium," and "machine-readable storage device" may be read as being implemented by a propagating signal.
[0074] In the foregoing specification, certain aspects (embodiments) are described. However, those skilled in the art will appreciate that various modifications and changes may be made without departing from the scope of the present invention as set forth in the claims. Thus, the specification and drawings should be understood in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present teachings. Furthermore, the described aspects (embodiments) / examples / implementations should not be construed as mutually exclusive, but instead should be understood as potentially combinable where such combination is in any way permissible. In other words, any feature disclosed in any of the foregoing aspects (embodiments) / examples / implementations may be included in any of the other foregoing aspects (embodiments) / examples / implementations.
[0075] Benefits, advantages, solutions to problems, and any elements that may cause or make more noticeable any benefit, advantage, or solution are not to be construed as critical, necessary, or essential features or elements of any or all of the claims. The claimed invention is defined solely by the appended claims, including any amendments made during the pendency of this application, and all equivalents of the claims as issued.
[0076] Additionally, in this document, related terms such as first and second, above and below, etc. may be used only to distinguish one entity or operation from another entity or operation and may not necessarily require or imply an actual relationship or order between such entities or operations. The terms "comprises," "comprising," "has," "having," "include," "including," "contains," "containing," or any other variations thereof, are intended to cover a non-exclusive inclusion. A list of elements that a process, method, article, or apparatus refers to as comprising, having, including, or containing does not include only those elements, but may include other elements not expressly listed or other elements inherent to such process, method, article, or apparatus. An element following "comprises ...a", "has ...", "includes ...a", or "contains ...a" does not, without further constraints, preclude the presence of additional identical elements in the process, method, article, or apparatus that comprises, has, contains, or contains the element. The terms "a" and "an" are defined as one or more, unless expressly stated otherwise. The terms "substantially", "essentially", "approximately", "about", or any other variation thereof, are defined as being close as understood by one of ordinary skill in the art, and in one non-limiting embodiment, the term is defined as within 10%, in another embodiment, within 5%, in another embodiment, within 1%, and in another embodiment, within 0.5%. As used herein, the term "coupled" is defined as connected, but not necessarily directly, and not necessarily mechanically. A device or structure that is "configured" in a certain way is configured in at least that way, but may be configured in ways not listed.
[0077] The Summary of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is presented with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. It may also be appreciated that in the foregoing Detailed Description, various features have been grouped together in various aspects (embodiments) for the purpose of facilitating the disclosure. This method of disclosure should not be interpreted as reflecting an intention that the claimed aspects (embodiments) require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed aspect (embodiment). The following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as separately claimed subject matter.
Claims
1. 1. A machine vision method for automatically generating one or more machine vision jobs based on a region of interest (ROI) of a digital image, comprising: configuring a machine vision tool to capture an image identifier (ID); loading a plurality of training images, each of which indicates an image ID; labeling each of the plurality of training images to indicate a success or failure status of an object depicted in each training image; extracting one or more candidate image features from the plurality of training images; generating one or more candidate ROIs based on the candidate image features; selecting a training set of ROIs from the one or more candidate ROIs, each ROI in the training set of ROIs being designated as an inclusion ROI or an exclusion ROI; training a visual learning model using the training set of ROIs and the plurality of training images; Equipped with the visual learning model is configured to output a machine vision job; the machine vision job is configured for electronic deployment to an imaging device; The imaging device performing the machine vision job is configured to detect the success or failure status of additional images depicting the object.
13. A machine vision method comprising:
2. Labeling a training image of the plurality of training images to indicate a failure status includes including a graphical border region to indicate a visually defective area or portion of the object depicted in the training image.
2. The machine vision method of claim 1.
3. The visual learning model is further trained using a training set of ROIs and the plurality of training images to output a quality score indicative of a quality of the object depicted in the training images.
2. The machine vision method of claim 1.
4. At least one of the training set of ROIs includes a critical ROI; The critical ROI is a function of the visual learning model, (a) a quality score indicative of a high quality of the object depicted in the training images; or (b) a quality score indicative of a poor quality of the object depicted in the training images; Output at least one of the following:
4. The machine vision method of claim 3.
5. The visual learning model is an ensemble model including a plurality of artificial intelligence models; Each of the plurality of artificial intelligence models is trained using a subset of the training set of ROIs to output a quality score for a particular ROI in the digital image depicting the object.
2. The machine vision method of claim 1.
6. 1. A machine vision system configured to automatically generate one or more machine vision jobs based on a region of interest (ROI) of a digital image, the machine vision system comprising: an imaging device configured to perform one or more machine vision jobs; one or more processors; a memory communicatively coupled to the one or more processors and configured to store computing instructions; Equipped with The computing instructions, when executed by the one or more processors, cause the one or more processors to: Configuring a machine vision tool to capture an image identifier (ID); Loading a number of training images, each of which indicates an image ID; labeling each of the plurality of training images to indicate a success or failure status of an object depicted in each training image; extracting one or more candidate image features from the plurality of training images; generating one or more candidate ROIs based on the candidate image features; selecting a training set of ROIs from the one or more candidate ROIs; and training a visual learning model using the training set of ROIs and the plurality of training images; Each ROI in the training set of ROIs is designated as an inclusion ROI or an exclusion ROI; the visual learning model is configured to output a machine vision job; the machine vision job is configured for electronic deployment to the imaging device; The imaging device performing the machine vision job is configured to detect the success or failure status of additional images depicting the object.
1. A machine vision system comprising:
7. Labeling a training image of the plurality of training images to indicate a failure status includes including a graphical border region to indicate a visually defective area or portion of the object depicted in the training image.
7. The machine vision system of claim 6.
8. The visual learning model is further trained using a training set of ROIs and the plurality of training images to output a quality score indicative of a quality of the object depicted in the training images.
7. The machine vision system of claim 6.
9. At least one of the training set of ROIs includes a critical ROI; The critical ROI is a function of the visual learning model, (a) a quality score indicative of a high quality of the object depicted in the training images; or (b) a quality score indicative of a poor quality of the object depicted in the training images; Output at least one of the following:
9. The machine vision system of claim 8.
10. The visual learning model is an ensemble model including a plurality of artificial intelligence models; Each of the plurality of artificial intelligence models is trained using a subset of the training set of ROIs to output a quality score for a particular ROI in the digital image depicting the object.
7. The machine vision system of claim 6.
11. 1. A tangible, non-transitory, computer-readable medium storing computing instructions for automatically generating one or more machine vision jobs based on a region of interest (ROI) of a digital image, the method comprising: The computing instructions, when executed by one or more processors, cause the one or more processors to: Configuring a machine vision tool to capture an image identifier (ID); Loading a number of training images, each of which indicates an image ID; labeling each of the plurality of training images to indicate a success or failure status of an object depicted in each training image; extracting one or more candidate image features from the plurality of training images; generating one or more candidate ROIs based on the candidate image features; selecting a training set of ROIs from the one or more candidate ROIs; and training a visual learning model using the training set of ROIs and the plurality of training images; Each ROI in the training set of ROIs is designated as an inclusion ROI or an exclusion ROI; the visual learning model is configured to output a machine vision job; the machine vision job is configured for electronic deployment to an imaging device; The imaging device performing the machine vision job is configured to detect the success or failure status of additional images depicting the object.
16. A tangible, non-transitory computer-readable medium comprising:
12. Labeling a training image of the plurality of training images to indicate a failure status includes including a graphical border region to indicate a visually defective area or portion of the object depicted in the training image.
12. The tangible, non-transitory computer readable medium of claim 11.
13. The visual learning model is further trained using a training set of ROIs and the plurality of training images to output a quality score indicative of a quality of the object depicted in the training images.
12. The tangible, non-transitory computer readable medium of claim 11.
14. At least one of the training set of ROIs includes a critical ROI; The critical ROI is a function of the visual learning model, (a) a quality score indicative of a high quality of the object depicted in the training images; or (b) a quality score indicative of a poor quality of the object depicted in the training images; Output at least one of the following:
14. The tangible, non-transitory computer readable medium of claim 13.
15. The visual learning model is an ensemble model including a plurality of artificial intelligence models; Each of the plurality of artificial intelligence models is trained using a subset of the training set of ROIs to output a quality score for a particular ROI in the digital image depicting the object.
12. The tangible, non-transitory computer readable medium of claim 11.
Citation Information
Patent Citations
Learning systems and methods
US20150055855A1