Automatic identification and display of edges, shapes and unique objects in images

The method automates the determination of items of interest and tool selection in machine vision systems, addressing the inefficiency of current systems by reducing user input and improving task accuracy and efficiency.

JP7649845B2Active Publication Date: 2025-03-21ZEBRA TECHNOLOGIES CORP
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2023506183
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-07-31
Filing Date
2021-06-22
Publication Date
2025-03-21
Estimated Expiration
2041-06-22

AI Technical Summary

Technical Problem

Current machine vision systems require extensive user input to define items of interest and select appropriate tools for tasks, making the process tedious and inefficient, especially for large numbers of tasks.

Method used

A method that automatically determines items of interest in an image file and suggests appropriate tools for processing, by analyzing the image using pixel analysis or edge detection, and displaying the image, instructions for the item of interest, and tool recommendations on a display screen.

Benefits of technology

This approach significantly reduces the need for user interaction, saves time, and minimizes the likelihood of inappropriate tools being used, thereby enhancing the efficiency and accuracy of machine vision tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007649845000001
    Figure 0007649845000001
  • Figure 0007649845000002
    Figure 0007649845000002
  • Figure 0007649845000003
    Figure 0007649845000003
Patent Text Reader

Abstract

Disclosed herein are systems and methods for automatically identifying and displaying edges, shapes, and unique objects in images used for machine vision job setup. An exemplary method includes receiving, by one or more processors, an image file. The method further includes automatically determining, by the one or more processors, an item of interest in the image file. The method further includes analyzing, by the one or more processors, the item of interest to determine an appropriate tool for processing the item of interest. The method further includes displaying, by the one or more processors, on a display screen: (i) an image corresponding to the image file; (ii) an indication of the item of interest; and (iii) an indication of the appropriate tool.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Current machine vision systems require a lot of user input to operate successfully. For example, current systems require the user to define items of interest through a variety of techniques before performing a particular machine vision task. This can be tedious, especially when a user wants to complete multiple machine vision tasks.

[0002] Thus, there is a need for improved and streamlined machine vision tasks. Summary of the Invention

[0003] In one aspect, a method for facilitating creation of an image analysis job is provided that may include receiving, by one or more processors, an image file and automatically determining, by the one or more processors, an item of interest within the image file. The method may further include analyzing, by the one or more processors, the item of interest to determine an appropriate tool for processing the item of interest. The method may further include displaying, by the one or more processors, on a display screen: (i) an image corresponding to the image file, (ii) an indication of the item of interest, and (iii) an indication of the appropriate tool.

[0004] In one variation on this embodiment, the indication of the item of interest includes a box surrounding the item of interest.

[0005] In another variation, displaying the indication of the item of interest includes displaying a line or set of lines around the item of interest in a first color. The method may further include determining that the item of interest is no longer found within the line or set of lines, and changing the first color to a second color in response to determining that the item of interest is no longer found within the line or set of lines, where the first color may be different from the second color.

[0006] In another variation, the suitable tool includes a barcode scanning tool, a pattern matching tool, an edge detection tool, or a measurement tool.

[0007] In yet another variation, the item of interest includes a physical object. In another implementation, the item of interest includes a barcode or a quick response (QR) code.

[0008] In yet another variation, the method may further include determining, by the one or more processors, that the item of interest includes a barcode, and in response to determining that the item of interest includes a barcode, determining, by the one or more processors, that the appropriate tool corresponds to a barcode scanning tool.

[0009] In yet another variation, the method may further comprise determining, by the one or more processors, that the item of interest does not include a barcode, and in response to determining that the item of interest does not include a barcode, determining, by the one or more processors, that the appropriate tool corresponds to a pattern matching tool or an edge detection tool.

[0010] In yet another variation, the method may further comprise determining, by the one or more processors, that the item of interest includes a physical object, and in response to determining that the item of interest includes a physical object, determining, by the one or more processors, that the appropriate tool corresponds to a measurement tool.

[0011] In one implementation, the one or more processors receive the images from a camera, hi another implementation, the one or more processors receive the images from a database.

[0012] In yet another variation, automatically determining the items of interest within the image file is performed by analyzing the image file using pixel analysis.

[0013] In some implementations, the step of automatically determining the item of interest is performed by performing edge detection on the image file, the edge detection indicating that the item of interest includes a two-dimensional object, and in response to an indication that the item of interest includes a two-dimensional object, the one or more processors determine that the appropriate tool corresponds to an edge detection tool.

[0014] In some implementations, the step of automatically determining the item of interest is performed by performing edge detection on the image file, the edge detection indicating that the item of interest includes a three-dimensional object, and in response to an indication that the item of interest includes a three-dimensional object, the one or more processors determine that the appropriate tool corresponds to a pattern matching tool.

[0015] In another aspect, a computer system for facilitating creation of an image analysis job is provided, the computer system comprising one or more processors, the computer system may further comprise a non-transitory program memory communicatively coupled to the one or more processors and storing executable instructions that, when executed by the one or more processors, may cause the computer system to receive an image file, automatically determine an item of interest in the image file, analyze the item of interest, determine an appropriate tool for processing the item of interest, and display on a display screen: (i) an image corresponding to the image file, (ii) an indication of the item of interest, and (iii) an indication of the appropriate tool.

[0016] In yet another aspect, a tangible, non-transitory computer readable medium is provided that stores executable instructions for creating a machine vision job, the instructions, when executed by at least one processor of a computer system, cause the computer system to receive an image file, automatically determine items of interest within the image file, analyze the items of interest to determine an appropriate tool for processing the items of interest, and display on a display screen: (i) an image corresponding to the image file, (ii) an indication of the items of interest, and (iii) an indication of the appropriate tool.

[0017] The accompanying drawings, together with the following detailed description, are incorporated in and form a part of this specification and serve to further explain embodiments of the concepts comprising the claimed invention and to explain various principles and advantages of those embodiments, in which like reference numbers indicate identical or functionally similar elements throughout the different drawings. [Brief description of the drawings]

[0018] [Figure 1]FIG. 1 is an exemplary system for optimizing one or more imaging settings for a machine vision job according to embodiments described herein.

[0019] [Diagram 2] FIG. 2 is a perspective view of the imaging device of FIG. 1 according to an embodiment described herein.

[0020] [Diagram 3] FIG. 3 illustrates an example application interface that may be utilized to optimize one or more imaging settings for a machine vision job in accordance with embodiments described herein.

[0021] [Figure 4A] 4A and 4B illustrate additional application interfaces that may be utilized to optimize one or more imaging settings for a machine vision job in accordance with embodiments described herein. [Figure 4B] 4A and 4B illustrate additional application interfaces that may be utilized to optimize one or more imaging settings for a machine vision job in accordance with embodiments described herein.

[0022] [Diagram 5] FIG. 5 illustrates an additional application interface for automatically identifying items of interest and suggesting corresponding tools.

[0023] [Figure 6] FIG. 6 illustrates an additional application interface for automatically identifying items of interest and suggesting first and second recommended tools.

[0024] [Figure 7] FIG. 7 is a flow diagram of an exemplary method for creating an image analysis job according to embodiments described herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0025] 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 elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.

[0026] 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 the embodiments of the invention so as not to obscure the disclosure with respect to those details which will be readily apparent to those skilled in the art having the benefit of the descriptions herein.

[0027] The present disclosure provides techniques for facilitating machine vision and image analysis jobs. In particular, in some embodiments, items of interest are determined from image data, and tools for a machine vision job or image analysis job are selected based on the determined items of interest. Advantageously, automatic identification of items of interest and subsequent utilization of the identified items of interest to determine suitable tools for a machine vision job or image analysis job saves a user's time and requires less interaction between the user and the system. Furthermore, this facilitates tool recommendations without requiring excessive human input. Furthermore, the techniques of the present disclosure reduce the likelihood that inappropriate tools are added to a machine vision job, reducing the cost and inefficiency of implementing machine vision.

[0028] FIG. 1 illustrates an exemplary smart imaging system 100 configured to analyze pixel data of an image of a target object to optimize one or more imaging settings for a machine vision job, according to various embodiments disclosed herein. In the exemplary embodiment of FIG. 1, the smart imaging system 100 includes a user computing device 102 and an imaging device 104 communicatively coupled to the user computing device 102 via a network 106. Generally speaking, the user computing device 102 is configured to enable a user / operator to create a machine vision job for execution on the imaging device 104. Once created, the user / operator can transmit / upload the machine vision job via the network 106 to the imaging device 104 where it is interpreted and executed. 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 interface 114, and a smart imaging application 116.

[0029] The imaging device 104 is connected to the user computing device 102 via the network 106 and is configured to interpret and execute 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 a trigger that causes the imaging device 104 to capture an image of a target object according to the configuration established via the one or more job scripts. Once it has been captured and / or analyzed, the imaging device 104 may transmit the image and any associated data to the user computing device 102 via the network 106 for further analysis and / or storage. In various embodiments, the imaging device 104 may be a “smart” camera and / or may be configured to automatically perform the full functionality of the imaging device 104 and may retrieve, interpret, and execute a job script defining a machine vision job, such as any one or more job scripts contained in one or more job files retrieved from the user computing device 102.

[0030] In general, 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. 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 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.

[0031] In any case, the imaging device 104 may include one or more processors 118, one or more memories 120, a networking interface 122, an input / output 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 image analysis tasks, as described herein. For example, the digital camera and / or digital video camera of the imaging assembly 126 may be configured to film, capture, or otherwise generate digital images and, in at least some embodiments, store such images in memory (e.g., one or more memories 110, 120) of the respective device (e.g., user computing device 102, imaging device 104).

[0032] For 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 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 embodiments, the photorealistic camera of the imaging assembly 126 may capture a 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 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.

[0033] In some embodiments, the imaging assembly 126 may be configured to capture images of a surface or region of a predefined search space or a target object within the predefined 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 embodiments, the imaging assembly 126 may be configured to capture other sets of image data, in addition to the 2D / 3D image data, such as grayscale image data or amplitude image data, each of which may be depth-aligned with the 2D / 3D image data.

[0034] 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.

[0035] Each of the one or more memories 110, 120 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., the 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., a standard random access memory (RAM), an optical disk, a 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 (e.g., operating in conjunction with a respective operating system in one or more memories 110, 120) 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, or the like).

[0036] The one or more memories 110, 120 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 accessible or otherwise communicatively coupled to the user computing device 102 via the network 106. The one or more memories 110, 120 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 for various flowcharts, illustrations, schematics, drawings, 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 the 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.

[0037] One or more processors 108, 118 may be connected to one or more memories 110, 120 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 the one or more memories 110, 120 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.

[0038] The one or more processors 108, 118 may interface with the one or more memories 110, 120 via a computer bus and may execute an operating system (OS). The one or more processors 108, 118 may also interface with the one or more memories 110, 120 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 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 the one or more memories 110, 120 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 the imaging device 104 in response to execution of a job script) and / or other suitable information.

[0039] The networking interfaces 112, 122 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 local terminals, via one or more external / network ports. In some embodiments, the networking interfaces 112, 122 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 may implement client-server platform technologies that may interact with one or more memories 110, 120 (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 flowcharts, illustrations, schematics, drawings, and / or other disclosures herein.

[0040] According to some embodiments, the networking interfaces 112, 122 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, which may be used to transmit and receive data via an external / network port connected to the network 106. In some embodiments, 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 embodiments, the network 106 may include a router, wireless switch, or other such wireless connection point that communicates with the user computing device 102 and the imaging device 104 via wireless communication based on any one or more of a variety of wireless standards, including, by way of non-limiting examples, IEEE 802.11a / b / c / g (WIFI), BLUETOOTH standards, and the like.

[0041] The input / output interfaces 114, 124 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 the user computing device 102 and / or the imaging device 104) that the user / operator may use to visualize any images, graphics, text, data, features, pixels, and / or other suitable visual images or information. For example, the user computing device 102 and / or the imaging device 104 may at least partially include, 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. The input / output interfaces 114, 124 may also include input / output components (e.g., ports, capacitive or resistive touch-sensitive input panels, keys, buttons, lights, LEDs). This may be directly / indirectly accessible via or directly / indirectly attached to the user computing device 102 and / or the imaging device 104. According to some embodiments, an administrator or user / operator may access the user computing device 102 and / or the imaging device 104 to build jobs, review images or other information, make changes, enter responses and / or selections, and / or perform other functions.

[0042] As previously described herein, in some embodiments, 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.

[0043] 2 is a perspective view of the imaging device 104 of FIG. 1 according to an embodiment described herein. 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.

[0044] 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.

[0045] The user interface label 206 may include a dome switch / button 208 and one or more LEDs 210, thereby enabling various interactive and / or indicating 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 actions 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 memories 110, 120) for use in later developed machine vision jobs, as described herein.

[0046] 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 memories 110, 120) for use in subsequently developed machine vision jobs, as described herein.

[0047] 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.

[0048] 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.

[0049] 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.

[0050] 3 illustrates an example application interface 300 that may be utilized to optimize one or more imaging settings for a machine vision job, according to embodiments described herein. In general, the example application interface 300 may represent an interface of a smart imaging application (e.g., smart imaging application 116) that a user may access via a user computing device (e.g., user computing device 102). In particular, the example application interface 300 may present a user with a list of all available devices (e.g., imaging devices 104) that the user may connect to and / or build a machine vision job with when the user selects a view devices tab 302. This allows the user to view a device selection list 304, which may display each connected device to which the user has access, and may further include information such as, but not limited to, the device name, device model number, IP address corresponding to the device, device serial number, device manufacture date, device firmware status, device online status, and / or any other suitable indication.

[0051] The user may then select a device indicated by a selected device indicator 306 from the device selection list 304 and may intend to configure and / or view some settings of the device. The selected device indicator 306 may display the device name and the online status of the device, and may additionally or alternatively include any other information related to the device. Upon selecting a device indicated by the selected device indicator 306, the smart imaging application 116 may additionally display a selected device configuration list 308 within the example application interface 300. The selected device configuration list 308 may include various information regarding the selected device, such as, but not limited to, a general overview of the selected device (e.g., firmware updates, library updates, etc.), a license overview of the selected device (e.g., DHCP timeout, IP address fallback, etc.), a communication overview of the selected device (e.g., available connection type, current connection type, etc.), a status overview of the selected device (e.g., lens type, lighting type, etc.), and / or any other suitable information, or combination thereof.

[0052] The selected device configuration list 308 may also include an indication of a machine vision job to be executed on, stored on, and / or otherwise associated with the selected device. For example, the selected device configuration list 308 may indicate that the selected device is configured to operate according to an initial machine vision job that was initially uploaded to the selected device (e.g., “uploaded at 10:00 AM on October 10, 2018”). The selected device configuration list 308 may additionally indicate that the initial machine vision job includes a first configuration of one or more imaging settings corresponding to the selected device and a second configuration of the one or more imaging settings corresponding to the selected device. Each of the one or more imaging settings included in the first and second configurations may additionally be displayed in the selected device configuration list 308.

[0053] The example application interface 300 may additionally include an add device function 310 to allow a user to add, for example, an additional device not found in the device selection list 304. When a user acquires a new device, such as an imaging device (e.g., imaging device 104), the user may click, swipe, and / or otherwise interact with the add device function 310 to add the new device to the device selection list 304. Additionally, once a new device is added, the user may interact with the setup device function 312A / B to configure and / or view settings corresponding to the new device. Thus, the user may interact with the setup device function 312A / B to adjust, view, or otherwise manage device settings at any time after the device is added to the device selection list 304.

[0054] Additionally or alternatively, when a user interacts with the setup device functionality 312A / B, the smart imaging application 116 may generate / render a new interface that allows the user to configure a machine vision job for a selected device (e.g., as indicated by the selected device indicator 306). The user may additionally cause the smart imaging application 116 to generate / render the new interface by interacting with the job creation tab 314. In this manner, a user may leave the example application interface 300 to configure a machine vision job corresponding to a selected device through interaction with either the setup device functionality 312A / B or the job creation tab 314.

[0055] 4 illustrates additional application interfaces that may be utilized to optimize one or more imaging settings for a machine vision job, in accordance with embodiments described herein. For example, after interacting with a job creation tab (e.g., job creation tab 314) and / or setup device functions (e.g., setup device functions 312A / B), a smart imaging application (e.g., smart imaging application 116) may transition a user to a job construction application interface 400. In general, a user may utilize the job construction application interface 400 to organize and configure machine vision tools into a particular sequence that defines a respective machine vision job. A user may additionally utilize the job construction application interface 400 to upload the respective machine vision job to an imaging device (e.g., imaging device 104) for interpretation and execution.

[0056] To build a machine vision job, a user may select a tool configured to perform a machine vision function. The user may select a tool by clicking, swiping, dragging, and / or otherwise interacting with available tools list 402. Each tool may be included in a drop-down list of available tools list 402 (as shown) or may be readily visible to the user on available tools list 402. In either case, the user may select the desired tool and navigate to job flow build section 404 to begin building the machine vision job. In job flow build section 404, the user may organize each selected tool into an optimal / preferred order based on the requirements of the machine vision job. Additionally, the user may configure each tool to more precisely meet the requirements of the machine vision job. For example, the user may configure a barcode scanning tool selected from available tools list 402 to scan a larger / smaller area of ​​an image captured by a selected device (e.g., imaging device 104).

[0057] The user may also select a representative image from the job slide (film strip) 406 to complete the configuration of the selected tool. The job slide 406 may include real-time images from the selected device or may be stored images (e.g., in one or more memories 110, 120) that represent (correspond to) ideal image capture for the machine vision job. Additionally or alternatively, the smart imaging application 116 may automatically populate the job slide 406 based on the selected tool in the job flow construction section 404. Once selected, the representative image may appear in a larger section on the job slide 406, which allows the user to place a tool ROI 408 over the representative image. The tool ROI 408 indicates an area of ​​the representative image that the tool represented by the tool ROI 408 may analyze using machine vision techniques. For example, if the tool ROI 408 represents the ROI of a barcode scanning tool, the barcode scanning tool will scan a barcode within the area of ​​the representative image indicated by the tool ROI 408.

[0058] If the user is unable to determine an appropriate tool for a machine vision job, the user may click, swipe, and / or otherwise interact with the job build application interface 400 and the smart imaging application 116 may generate / render the tool information region 410. The smart imaging application 116 may provide the user with commonly used tool suggestions, tool type suggestions, a description of each tool included in the tool information region 410, and / or any other suitable information combinations thereof. For example, the smart imaging application 116 may provide the user with options in the tool information region 410 and may search for a particular tool by typing, speaking, and / or otherwise indicating the name, function, or other representative quality of the tool.

[0059] Once a user has selected and / or ordered one or more tools to create a machine vision job, a job deployment toggle 412 allows the user to upload the machine vision job to a selected device (e.g., imaging device 104). The smart imaging application 116 may register the user's interaction with the job deployment toggle 412 and convert the machine vision job into a job file that may then be transmitted (e.g., via network 106) to the selected device. The machine vision job may also be stored in memory (e.g., one or more memories 110, 120). The user may additionally toggle the uploaded machine vision job for active / inactive use by interacting with the job deployment toggle 412. The user may then access the machine vision job to adjust configurations / settings associated with the machine vision job by interacting with one or more tools in the available tools list 402 and / or job build flow section 404, the images in the job slide 406, the tool ROI 408, and / or the options in the tool information area 410.

[0060] In various embodiments, the job construction application interface 400 allows a user to construct multiple machine vision jobs that are executed sequentially on a selected device (e.g., imaging device 104). For example, the job construction application interface 400 allows a user to construct a first machine vision job that includes a first toolset that adjusts the configuration of the selected device to a first configuration. The first configuration may include one or more imaging settings of the selected device, such as, for example, but not limited to, aperture size, exposure length, ISO value, and / or any other suitable value or combination thereof. The job construction application interface 400 also allows a user to construct a second machine vision job that includes a second toolset that adjusts the configuration of the selected device to a second configuration. The second toolset may be the same or different from the first toolset, and the second configuration may be the same or different from the first configuration. In either case, the smart imaging application 116 may send both machine vision jobs to the selected device and store both machine vision jobs in memory (e.g., one or more of memories 110, 120). The selected device may then automatically execute the first and second machine vision jobs in sequence, e.g., capture at least one image according to the first configuration, automatically adjust to the second configuration, and capture at least one image according to the second configuration.

[0061] However, the user may also wish to configure the specific functionality of each tool included within the job build flow section 404. Thus, the user may interact with the tools within the job build flow section 404 or other areas of the job build application interface 400 and the smart imaging application 116 may generate / render a tool configuration application interface 420. The tool configuration application interface 420 may allow the user to customize the specific functionality of each tool included in the machine vision job via user selectable options present in a tool configuration area 422. For example, the tool configuration area 422 may include tool configuration options such as, but not limited to, a tool model area type, a tool name, a tool fixture, a tool image type, a tool acceptance threshold, a tool rotation threshold, a tool timeout, and / or any other suitable tool configuration option. In this manner, the smart imaging application 116 allows the user to fully customize the selection, order, and individual configuration of each tool included in the machine vision job.

[0062] 5 illustrates an additional application interface utilized to automatically identify items of interest and suggest suitable tools for analyzing an image according to embodiments described herein. The job construction application interface 500 may be substantially similar to the job construction application interface 400 and may be displayed by the smart imaging application 116 when the smart imaging application 116 is operating in a job construction mode. The job construction application interface 500 may include an available tools list 502, a job flow construction section 504, a job slide 506, and a job deployment toggle 512, which are similar to the available tools list 402, the job flow construction section 404, the job slide 406, and the job deployment toggle 412, respectively. As described with reference to FIG. 4, in some embodiments, a user may select a representative image from the job slide 506, which causes the representative image to appear in a larger section on the job slide 506.

[0063] In some embodiments, the smart imaging application 116 automatically determines the items of interest. In the example of FIG. 5, the automatically determined items of interest may be physical objects, such as bottle caps 520, or indicia of information, such as bar codes 524, QR codes, text, among others. In some embodiments, the smart imaging application 116 automatically identifies the items of interest when it receives the image file. In other embodiments, other steps occur between receiving the image file and the automatic identification. For example, prior to the automatic identification of the items of interest, a user may specify an ROI such that the smart imaging application 116 only identifies items of interest within the user-specified ROI. In this regard, a user may indicate the ROI by clicking and dragging or drawing a box around a portion of a representative image using the job construction application interface 500, or by swiping or otherwise interacting with the job construction application interface 500. In this regard, the ROI indicates to the smart imaging application 116 the portion of the image that the user would like to analyze using the tools of the smart imaging application 116.

[0064] To identify an item of interest, the smart imaging application 116 may display a designation of the item of interest. For example, in the example of FIGURE 5, the smart imaging application 116 may designate bottle cap 520 as the designation of item of interest 522. And, the smart imaging application 116 may designate barcode 524 as the designation of item of interest 526.

[0065] In some embodiments, the indication of an item of interest is a box that surrounds or partially surrounds the item of interest, hi some embodiments, the indication of an item of interest is a series of lines and / or curves that surround or partially surround the item of interest.

[0066] In some implementations, the item of interest designation is displayed in a first color (e.g., green). In this manner, if the smart imaging application 116 later determines that it can no longer find the item of interest within the area of ​​the item of interest designation, the item of interest designation may change to a second color (e.g., red).

[0067] Following the determination of an item of interest, the item of interest may be used to determine a corresponding tool. Alternatively, the corresponding tool may be determined from a user-specified ROI. As described with reference to several examples below, a corresponding tool is a tool that the smart imaging application 116 recommends for processing an image (e.g., the corresponding tool is "corresponding" to the image). Such a tool may be "corresponding" if it is more likely to be suitable for analyzing the image compared to other available tools. The smart imaging application 116 may identify items of interest or may analyze a portion of the representative image using any suitable image analysis technique, such as pixel analysis, described below. Based on features identified in the image, the smart imaging application 116 may recommend a tool suitable for analyzing those features. For example, if the image includes a barcode or QR code (e.g., if the item of interest is a barcode or QR code), a barcode scanning tool may be the corresponding tool. Based on the number of edges included in the image (e.g., if the image includes one or two edges) or if the image depicts a two-dimensional object (e.g., if the item of interest is a two-dimensional object), an edge detection tool may be the corresponding tool. If the image includes a detectable pattern, if the image depicts a three-dimensional object (e.g., if the item of interest is a three-dimensional object), and / or if more than two edges are detected in the image, a pattern matching tool may be the corresponding tool.

[0068] Pixel analysis includes analyzing pixel data of a portion of the representative image. Pixel data includes individual points or squares of data in an image, with each point or square representing a single pixel in the image. Each pixel may be a specific location in the image. Additionally, each pixel may be a specific color (or lack thereof). The color of a pixel may be determined by a color format and associated channel data associated with a given pixel. For example, a common color format includes a Red-Green-Blue (RGB) format having red, green, and blue channels. That is, in an RGB format, a pixel's data is represented by three numerical RGB components (red, green, blue), which may be called channel data, to manipulate the color of a pixel region in an image. In some implementations, the three RGB components may be represented as three 8-bit numbers for each pixel. Three 8-bit bytes (one for each of RGB) are used to generate a 24-bit color. Each 8-bit RGB component can have 256 possible values ​​ranging from 0 to 255 (i.e., in a base-2 binary system, an 8-bit byte can contain one of 256 numeric values ​​ranging from 0 to 255). This channel data (R, G, and B) can be assigned values ​​from 0 to 255 and used to set the color of a pixel. For example, a triple value such as (250, 165, 0) could represent an orange pixel, meaning (Red=250, Green=165, Blue=0). As another example, (Red=255, Green=255, Blue=0) would mean that the red and green are each fully saturated (255 is the brightest possible for 8 bits), there is no blue (zero), and the resulting color is yellow. As yet another example, the color black has RGB values ​​of (Red=0, Green=0, Blue=0) and white has RGB values ​​of (Red=255, Green=255, Blue=255). Gray colors have the property of having equal or similar RGB values. Thus, (Red=220, Green=220, Blue=220) is a light gray color (closer to white) and (Red=40, Green=40, Blue=40) is a dark gray color (closer to black).

[0069] Thus, the combination of the three RGB values ​​produces the final color of a given pixel. In a 24-bit RGB color image using three bytes, there can be 256 shades of red, 256 shades of green, and 256 shades of blue. This provides 256x256x256, or 16.7 million possible combinations, or colors, for a 24-bit RGB color image. Thus, the RGB data value of a pixel indicates the "amount" of each of the red, green, and blue of which the pixel is composed. The three colors and intensity levels are combined at that image pixel, or pixel location on the display screen, to illuminate the display screen at that location with that color. It should be understood, however, that other bit sizes having fewer or more bits, e.g., 10 bits, can be used to provide fewer or more overall colors and ranges. It should also be understood that the pixel data can include additional or alternative color formats and channel data. For example, the pixel data may include color data represented in a Hue Saturation Value (HSV) format or a Hue Saturation Lightness (HSL) format.

[0070] Analyzing the portion of the representative image may further include performing edge detection, pattern recognition, object detection, etc., which may be performed using pixel analysis.

[0071] As an example of how the smart imaging application 116 may determine the corresponding tool, analyzing the portion of the representative image may include determining whether the portion of the representative image includes a barcode or a QR code. If so, the smart imaging application 116 may determine that the corresponding tool appropriate for analyzing the portion of the representative image corresponds to a barcode scanning tool. If not, the smart imaging application 116 may determine that the corresponding tool corresponds to a different tool, such as a pattern matching tool, an edge detection tool, a semantic segmentation tool, an object detection tool, a binarization filter, or an object tracking tool.

[0072] As another example, analyzing the portion of the representative image may include detecting at least one edge in the portion of the representative image and responsively determining that the corresponding tool corresponds to an edge detection tool. More generally, analyzing the portion of the representative image may include performing edge detection. Based on edge detection, the smart imaging application 116 may determine whether the portion of the image depicts a two-dimensional object or a three-dimensional object. In some embodiments, the smart imaging application 116 may use appropriate image analysis techniques in addition to or instead of edge detection to determine whether the portion of the image depicts a two-dimensional object or a three-dimensional object. If the portion of the image depicts a two-dimensional object, the smart imaging application 116 may determine that the corresponding tool corresponds to an edge detection tool. If the portion of the image depicts a three-dimensional object, the smart imaging application 116 may determine that the corresponding tool corresponds to a pattern matching tool.

[0073] As a further example, analyzing the representative image portion may include detecting colors contained in the image portion, and in response to detecting three or more colors, determining that a corresponding tool corresponds to a binarization filter, which may convert a multi-color image or a grayscale image to black and white.

[0074] If the smart imaging application 116 cannot determine a corresponding tool (e.g., if multiple tools are equally likely to be appropriate tools or if no tool appears to be optimal for analyzing the image features), the smart imaging application 116 may recommend a default tool, such as a pattern matching tool, as the corresponding tool. In some embodiments, a user may specify the default tool by interacting with an application interface of the smart imaging application 116.

[0075] As shown in the example of FIG. 6, the smart imaging application 116 may render a tool information region 510, which may include a list of suggested or recommended tools. The “most” appropriate tool (e.g., the tool that the smart imaging application 116 determines, compared to other available tools, is most likely to be the corresponding tool for the item of interest indicated in the item of interest indication 508 or the most likely to be the corresponding tool for analyzing a user-specified ROI in the image) may be listed at or near the top of the tool information region 510 as a recommended tool 514. In the example of FIG. 6, the recommended tool 514 is a binarization filter. In addition to or instead of placing the recommended tool 514 at or near the top of the tool information region 510, the job construction application interface 500 may highlight or otherwise indicate to the user that the recommended tool 514 is the “most” appropriate tool. For example, the job construction application interface 500 may label the recommended tools 514 as recommended tools using a text annotation, may highlight the recommended tools 514 using a color or graphic annotation, or may present the recommended tools 514 using a different font color.

[0076] In addition to determining the "most" appropriate tool, the smart imaging application 116 may determine other recommended tools for processing the portion of the image based on an item of interest or based on analyzing the portion of the image depicted within a user-specified ROI. For example, the smart imaging application 116 may determine a second recommended tool 516 that may correspond to the image and be appropriate for processing the image and display the second recommended tool 516 below the recommended tools 514. The second recommended tool 516 may be the "next best" appropriate tool for processing the portion of the image (e.g., second most likely to be an appropriate tool relative to other available tools). Furthermore, the smart imaging application 116 may display one or more commonly used tools 518 in addition to the recommended tools 514. The commonly used tools 518 may or may not be based on an analysis of the portion of the image and may be tools commonly used by users of the smart imaging application 116 or more generally by users of the smart imaging application 116 or (other) smart imaging applications.

[0077] The recommended tool 514 may be displayed on the job construction application interface 500 as a user selectable option. The user may select a user selectable option corresponding to the recommended tool 514 to add the recommended tool 514 to the job flow of the machine vision job. For example, after the user selects the recommended tool 514, the recommended tool 514 may appear in the job flow construction section 504. After the smart imaging application 116 detects the selection of the recommended tool 514, the job construction application interface 500 may display options for configuring the recommended tool 514. The user may interact with these options to customize the settings of the recommended tool 514 for the user's particular machine vision job. Similarly, the second recommended tool 516 and / or the commonly used tool 518 may be displayed as similar user selectable options when determined and rendered on the job construction application interface 500.

[0078] After the user selects and / or orders one or more tools, which may include one or more of the recommended tool 514, the second recommended tool 516, or one or more of the commonly used tools 518, the user may select a job deployment toggle 512 to upload or otherwise deploy the machine vision job to a selected device (e.g., the imaging device 104). After detecting the selection of the job deployment toggle 512, the smart imaging application 116 may convert the machine vision job into a job file. The job file is then transmitted (e.g., via the network 106) to the selected device as described above. Converting the machine vision job may include generating a job script that the selected imaging device may execute to realize the machine vision job. The job script includes instructions corresponding to multiple tools in a job flow, including the recommended tool 514 if the user previously selected the recommended tool 514.

[0079] 7 is a flow diagram of an example method 700 for facilitating machine vision job creation. The method 700 may be implemented by one or more processors (e.g., one or more processors 108 of a user computing device 102).

[0080] At block 702, one or more processors may receive an image file. The image file may be received from an imaging device 104 (e.g., a camera), from a database of image files, or from any other suitable source.

[0081] At block 704, the one or more processors may automatically determine an item of interest in the image file. At block 706, the one or more processors may analyze the item of interest to determine an appropriate tool for processing the item of interest. For example, if the item of interest is a physical object, the appropriate tool may be a measurement tool. Additionally, analyzing the item of interest or the portion of the image may include performing edge detection. For example, analyzing the item of interest or the portion of the image may include detecting at least one edge in the item of interest or the portion of the image and responsively determining that the corresponding tool is an edge detection tool. As another example, analyzing the item of interest may include determining that the item of interest is a two-dimensional or three-dimensional object (e.g., by performing edge detection or other suitable image analysis techniques). In response to determining that the item of interest is a two-dimensional object, the method may include determining that the corresponding tool is an edge detection tool. In response to determining that the item of interest is a three-dimensional object, the method may include determining that the corresponding tool is an edge pattern matching tool.

[0082] Next, at block 708, the one or more processors may display on a display screen or interactive GUI: (i) an image corresponding to the image file; (ii) an indication of the item of interest; and (iii) an indication of an appropriate tool. Additionally, at block 708, the one or more processors may display within the interactive GUI a user selectable option for adding a corresponding tool to the machine vision job (e.g., a user selectable option for recommended tools 514). If the one or more processors detect a selection of a user selectable option, the one or more processors may add the corresponding tool to the job flow of the machine vision job and display the corresponding tool within the job flow (e.g., within the job flow build section 504 of the job build application interface 500). Additionally, the interactive GUI may include a user selectable option for deploying the machine vision job (e.g., a job deployment toggle 512). When the one or more processors detect a selection of a user-selectable option for deploying a machine vision job, the one or more processors may generate a job script executable by an imaging device (e.g., imaging device 104) to implement the machine vision job. The job script may include computer-readable instructions corresponding to multiple tools in a job flow, including the corresponding tools.

[0083] Additionally, it should be understood that each of the operations described in method 700 may be performed in any order, number of times, or in any other combination suitable to facilitate selection of an image analysis tool for a machine vision job. For example, some or all of the blocks of method 700 may be performed one full time, multiple full times, or not at all.

[0084] 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).

[0085] 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.

[0086] In the foregoing specification, specific embodiments have been 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 embodiments / examples / implementations should not be construed as mutually exclusive, but instead should be understood as potentially combinable where such combination is in any manner permissible. In other words, any feature disclosed in any of the foregoing embodiments / examples / implementations may be included in any of the other foregoing embodiments / examples / implementations.

[0087] 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.

[0088] 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 terms are 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 manner is at least configured in that manner, but may be configured in ways not listed.

[0089] 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 embodiments for the purpose of facilitating the disclosure. This method of disclosure should not be interpreted as reflecting an intention that the claimed 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 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. A method for facilitating machine vision job creation, comprising: the machine vision job is defined by at least one job script including computer readable instructions; The method comprises: receiving, by one or more processors, an image file; automatically determining, by the one or more processors, items of interest within the image files; analyzing, by the one or more processors, the item of interest to determine appropriate tools for processing the item of interest; displaying, by said one or more processors, on a display screen to provide an option for a user to add said appropriate tool to a job flow of said machine vision job; (i) an image corresponding to said image file; (ii) an indication of said items of interest; and (iii) an indication of the appropriate tool; A process of displaying the screen; A method comprising:

2. The representation of the item of interest includes a box surrounding the item of interest.

2. The method of claim 1 .

3. Displaying a representation of the item of interest on a screen includes displaying a line or a series of lines around the item of interest in a first color; The method further comprises: determining that the item of interest is no longer found within the line or set of lines; changing the first color to a second color in response to determining that the item of interest is no longer found within the line or set of lines; Equipped with The first color is different from the second color.

2. The method of claim 1 .

4. The suitable tools include a barcode scanning tool, a pattern matching tool, an edge detection tool, or a measurement tool.

2. The method of claim 1 .

5. The items of interest include physical objects.

2. The method of claim 1 .

6. The item of interest includes a barcode or a quick response (QR) code.

2. The method of claim 1 .

7. determining, by the one or more processors, that the item of interest includes a barcode; determining, by the one or more processors, in response to determining that the item of interest includes a barcode, that the appropriate tool corresponds to a barcode scanning tool; 2. The method of claim 1, further comprising:

8. determining, by the one or more processors, that the item of interest does not include a barcode; determining, by the one or more processors, in response to determining that the item of interest does not include a barcode, that the appropriate tool corresponds to a pattern matching tool or an edge detection tool; 2. The method of claim 1, further comprising:

9. determining, by the one or more processors, that the item of interest comprises a physical object; determining, by the one or more processors, in response to determining that the item of interest includes a physical object, that the appropriate tool corresponds to a measurement tool; 2. The method of claim 1, further comprising:

10. The one or more processors receive the images from a camera.

2. The method of claim 1 .

11. The one or more processors receive the images from a database.

2. The method of claim 1 .

12. The step of automatically determining the items of interest in the image file is performed by analyzing the image file using pixel analysis.

2. The method of claim 1 .

13. said step of automatically determining items of interest is performed by performing edge detection on said image files; the edge detection indicates that the item of interest includes a two-dimensional object; In response to an indication that the item of interest includes a two-dimensional object, the one or more processors determine that the appropriate tool corresponds to an edge detection tool.

2. The method of claim 1 .

14. said step of automatically determining items of interest is performed by performing edge detection on said image files; the edge detection indicates that the item of interest includes a three-dimensional object; In response to an indication that the item of interest includes a three-dimensional object, the one or more processors determine that the appropriate tool corresponds to a pattern matching tool.

2. The method of claim 1 .

15. A computer system for facilitating machine vision job creation, comprising: the machine vision job is defined by at least one job script including computer readable instructions; The computer system comprises: one or more processors; a non-transitory program memory communicatively coupled to the one or more processors and storing executable instructions; Equipped with The instructions, when executed by the one or more processors, cause the computer system to: Receive the image file, automatically determining items of interest within said image files; analyzing the item of interest to determine appropriate tools for processing the item of interest; on a display screen to provide an option for a user to add the appropriate tool to a job flow of the machine vision job; (i) an image corresponding to said image file; (ii) an indication of said items of interest; and (iii) an indication of the appropriate tool; Display on screen, 23. A computer system comprising:

16. The instructions cause the computer system to: displaying a representation of the item of interest on a screen by displaying a line or series of lines around the item of interest in a first color; The instructions further cause the computer system to: determining that the item of interest is no longer found within the line or set of lines; changing the first color to a second color in response to determining that the item of interest is no longer found within the line or set of lines; The first color is different from the second color.

16. The computer system of claim 15.

17. The suitable tools include a barcode scanning tool, a pattern matching tool, an edge detection tool, or a measurement tool.

16. The computer system of claim 15.

18. A tangible, non-transitory, computer-readable medium storing executable instructions for creating a machine vision job, the computer-readable medium comprising: the machine vision job is defined by at least one job script including computer readable instructions; The executable instructions, when executed by at least one processor of a computer system, cause the computer system to: Receive the image file, automatically determining items of interest within said image files; analyzing the item of interest to determine appropriate tools for processing the item of interest; on a display screen to provide an option for a user to add the appropriate tool to a job flow of the machine vision job; (i) an image corresponding to said image file; (ii) an indication of said items of interest; and (iii) an indication of the appropriate tool; Display on screen, 16. A tangible, non-transitory computer-readable medium comprising:

19. The instructions cause the computer system to: displaying a representation of the item of interest on a screen by displaying a line or series of lines around the item of interest in a first color; The instructions further cause the computer system to: determining that the item of interest is no longer found within the line or set of lines; changing the first color to a second color in response to determining that the item of interest is no longer found within the line or set of lines; The first color is different from the second color.

20. The tangible, non-transitory computer readable medium of claim 18.

20. The suitable tools include a barcode scanning tool, a pattern matching tool, an edge detection tool, or a measurement tool.

20. The tangible, non-transitory computer readable medium of claim 18.

Citation Information

Patent Citations

  • Image processor and image processing method

    JP2007026423A

  • Article recognition device and article recognition method

    JP2018129038A

  • Image processing apparatus, program and image data

    JP2019053461A

  • Projection measuring device

    JP2019132712A

  • Computer and method for generatiing edge detection commands of objects

    US20110161876A1