EP4677507A1 - Alphanumeric recognizer for unique identifiers of articles of manufacture - Google Patents
Alphanumeric recognizer for unique identifiers of articles of manufactureInfo
- Publication number
- EP4677507A1 EP4677507A1 EP24715318.2A EP24715318A EP4677507A1 EP 4677507 A1 EP4677507 A1 EP 4677507A1 EP 24715318 A EP24715318 A EP 24715318A EP 4677507 A1 EP4677507 A1 EP 4677507A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- identifier
- possible identifier
- image
- article
- manufacture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
- G06V20/63—Scene text, e.g. street names
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/12—Detection or correction of errors, e.g. by rescanning the pattern
Definitions
- This disclosure relates generally to techniques for correctly identifying a unique identifier and, more specifically, to correctly identifying unique identifiers which may be stamped, embossed, or otherwise disposed on a surface of an article of manufacture in a way that makes the unique identifier difficult to read.
- Manufacturing industries generally associate a unique identifier (e.g., serial number, part number, VIN number) with a manufactured article. Such unique identifiers may be indicative of specific characteristics of the manufactured article.
- these manufactured articles may be components that can be included in systems including, but not limited to, vehicles, industrial machines, computing devices, appliances and other various systems that are known in the art.
- industrial machines such as, but not limited to, earth moving machines, construction machines, and mining machines can include components that may require regular servicing or maintenance to achieve a desired level or type of operational performance.
- a numeric identifier for example, a serial number, a part number, a vehicle identification number (VIN) may be required in order to identify correct replacement components, settings, or files. For instance, when servicing engine injectors, technicians may be required to obtain a software configuration file for the specific injector being serviced and/or replaced.
- VIN vehicle identification number
- an alphabetic, numeric, or alphanumeric identifier for the specific injector must be determined.
- the identifier is determined by visual inspection of the injector by the technician.
- injector identifiers are typically embossed, engraved, crimped, or printed on a surface of the injector itself, the identifiers may get obscured or become illegible for service technicians. Since indentations would be formed into a material of the substrate, especially in cases where the alphabetic and/or serial identifiers are embossed, engraved or crimped, the presence of these indentations may be hard to determine.
- these indentations may have little to no visibility unless seen under changing exposure of light between the indentations and a remainder of the substrate’s outer surface, for example, the outer surface of the injector.
- these indentations may not be detected unless one manually runs their finger and experiences a haptic response.
- the identifiers it is common for the identifiers to be misprinted due to errors during the serial number labeling process, as well as for the serial numbers to become obscured or otherwise illegible due to wear and tear, stains, or scratches during use.
- technicians may incorrectly assume what the identifier could possibly be and such assumption may, therefore, lead to obtaining incorrect software configuration file(s) for the specific injector.
- the injector’s performance may be sub-optimal and consequently, the associated machine may experience a number of undesired issues including, but not limited to, reduced fuel economy, poor engine performance, and may consequentially lead to irreversible engine damage.
- the ’768 reference describes a process associated with serial number identification.
- the ’768 reference describes techniques for identifying a workpiece product serial number based on a Tesseract-OCR (Optical Character Recognition) engine, including training a Tesseract-OCR model, and using the same to identify a text part in a workpiece serial number image.
- The’768 reference also describes a process for screening out the serial number to detect, position, and identify the serial number.
- the ‘768 reference describes a process that may be used for serial number identification using an OCR engine
- the described process requires using a single OCR engine for identifying a serial number.
- downstream operations using the process of the ’768 reference may suffer from incorrect identifications of a component identifier.
- a system includes a processor and memory communicatively coupled to the processor.
- the memory stores instructions that, when executed by the processor, causes the processor to perform operations.
- the operations may include, in some examples, receiving, from a computing device, image data associated with an image of an article of manufacture and a unique identifier disposed on the article of manufacture, the unique identifier represented by a string of alphanumeric characters; generating, based on the image data, a first possible identifier and a second possible identifier; generating a third possible identifier based at least in part on the first possible identifier by replacing a first alphanumeric character included in the first possible identifier with a second alphanumeric character, the first alphanumeric character mapped to the second alphanumeric character in a confusing alphanumeric characters map; determining whether one of the first possible identifier, the second possible identifier, or the third possible identifier matches with the unique identifier disposed on the article of manufacture; and based at least
- a method may include receiving, from a computing device, image data associated with an image of an article of manufacture and a unique identifier disposed on the article of manufacture, the unique identifier represented by a string of alphanumeric characters; generating, based at least in part on the image data, a first possible identifier and a second possible identifier; generating a third possible identifier based at least in part on the first possible identifier by replacing a first alphanumeric character included in the first possible identifier with a second alphanumeric character, the first alphanumeric character mapped to the second alphanumeric character in a confusing alphanumeric characters map; determining whether one of the first possible identifier, the second possible identifier, or the third possible identifier matches the unique identifier associated with the article of manufacture; and based at least in part on the first possible identifier, the second possible identifier, or the third possible identifier matching the unique identifier, providing, to the computing device, a
- a non-transitory computer- readable medium may store thereon processor-executable instructions that, when executed by one or more processors of a system, cause the one or more processors to perform certain operations.
- the operations may include receiving, from a computing device, image data associated with an image of an article of manufacture and a unique identifier disposed on the article of manufacture, the unique identifier represented by a string of alphanumeric characters; generating, based at least in part on the image data, a first possible identifier and a second possible identifier; generating a third possible identifier based at least in part on the first possible identifier by replacing a first alphanumeric character included in the first possible identifier with a second alphanumeric character, the first alphanumeric character mapped to the second alphanumeric character in a confusing alphanumeric characters map; determining whether one of the first possible identifier, the second possible identifier, or the third possible identifier matches the unique identifier associated with the
- FIG. 3 is a pictorial flow diagram illustrating an example process associated with generating possible identifier combinations based on outputs of different OCR engines.
- the possible identifier combinations may be generated based at least in part on the confusing characters map.
- FIG. 4 is a flowchart illustrating an example method for identifying a unique identifier in accordance with the techniques described herein.
- FIG. 5 is a system diagram illustrating an example architecture that may be used to implement aspects of the various technologies disclosed herein.
- a unique identifier may include, but is not limited to, a serial number, part number, vehicle identification number (VIN) number, a stock keeping unit (SKU) number, a universal product code (UPC) number, a global trading item number (GTIN), and/or trademarks.
- VIN vehicle identification number
- SKU stock keeping unit
- UPC universal product code
- GTIN global trading item number
- the ways in which these unique identifiers are disposed on articles of manufacture may vary, including, but not limited to, being printed, etched, scribed, embossed, stamped, engraved, cut, and/or adhered to the article of manufacture.
- FIG. 1 is a pictorial flow diagram illustrating an example process 100 for identifying a unique identifier disposed on an article of manufacture according to the techniques described herein.
- a computing device 102 being used to capture an image 104 of a component 106, which may be an injector. While the computing device 102 is illustrated in FIG. 1 as representing a smart phone, other computing devices may be used to generate the image 104, such as a tablet or a digital camera.
- the image 104 of the component 106 may be taken such that a unique identifier 108 (e.g., serial number, part number, lot number) associated with the component 106 is included in the image 104.
- a unique identifier 108 e.g., serial number, part number, lot number
- the component 106 may be composed primarily of a metallic material and the unique identifier 108 associated with the component 106 may be embossed, crimped, stamped, or engraved onto the component 106.
- the image 104 may be taken such that the unique identifier 108 is emphasized in the image 104 (e.g., zoomed in on the unique identifier 108 such that only a portion of the component 106 is in the image 104).
- the unique identifier 108 is a string of alphanumeric characters.
- alphanumeric characters include the numbers 0-9 and letters A-Z, both uppercase and lowercase. However, other unique identifier combinations are possible other than strings of alphanumeric characters.
- a unique identifier could be a strictly numeric string, strictly alphabetic string, lower case letters, upper case letters, symbols, logograms, hieroglyphics, cuneiform, symbols, non-alphanumeric characters (e.g., other characters on a keyboard that aren't letters or numbers, including, but not limited to, commas, brackets, asterisks, dashes, periods, slashes).
- the computing device 102 may provide the image data 110 to an image processing pipeline 112.
- the image processing pipeline 112 may include various algorithms, processes, machine-learned models, and the like for receiving an input image and/or image data that includes a unique identifier and outputting one or more possible identifier(s) (e.g., predicted identifiers, guessed identifiers) that, under ideal circumstances, match the unique identifier in the image.
- the image processing pipeline 112 shown in FIG. 1 includes a pre-processing component 114, a text localization component 116, and one or more OCR (optical character recognition) component(s) 118.
- OCR optical character recognition
- the components of the image processing pipeline 112, such as the pre-processing component 114, the text localization component 116, and the one or more OCR component(s) 118 may be executable software components stored in a memory that is accessible to the image processing pipeline 112 (e.g., or to a server computer that is running the image processing pipeline 112.
- the pre-processing component 114 may be configured to perform one or multiple pre-processing functions with respect to the image data 110. For instance, the pre-processing component 114 may perform de-skewing function(s) for de-skewing the image 104 and/or the unique identifier 108 represented in the image 104. Additionally, or alternatively, the pre-processing component 114 may perform padding to, for instance, add leading and/or trailing zeros to the unique identifier 108. As an example, the unique identifier 108 shown in FIG. 1 is equal to “B363S9NL5,” which is nine characters long.
- the image padding function may pad the unique identifier with three leading and/or trailing zeros to make the unique identifier twelve characters long.
- the pre-processing component 114 may also perform other functions, such as image enhancement, restoration, segmentation, compression, and/or translation.
- the text localization component 116 can be configured to localize areas of interest within the image 104, such as the unique identifier 108 and/or other strings of alphanumeric characters or barcodes.
- the text localization component 116 may include an Efficient and Accurate Scene Text (EAST) detector, which may utilize a neural network and/or other machine-learning methods to localize areas of interest within an image.
- EAST Efficient and Accurate Scene Text
- other text localization methods may additionally, or alternatively, be used as well, such as Character-Region Awareness for Text (CRAFT) detection.
- CRAFT Character-Region Awareness for Text
- the OCR component(s) 118 may, in some examples, include two or more OCR components (e.g., OCR engines) running in parallel, and these OCR components may each generate their own predict! on(s) 120 based on the image data 110 and/or the text-localized data from the text localization component 116.
- the OCR component(s) 118 may include a first OCR component that is running a Tesseract OCR algorithm and a second OCR component that is running a Textract OCR algorithm.
- other OCR algorithms may also be used in addition to, or alternatively to, the algorithms noted above, such as Grooper, Doculayer, or Palamardocs.
- the image processing pipeline 112 may generate one or more prediction(s) 120.
- the prediction(s) 120 may include one or more possible identifiers, such as a first possible identifier 122(1) (“B363S9NL5”) and a second possible identifier 122(2) (““B36359NL5”).
- the first possible identifier 122(1) may be determined by the first OCR component and the second possible identifier 122(2) may be determined by the second OCR component of the image processing pipeline 112.
- the first possible identifier 122(1) and the second possible identifier 122(2) may be the same (e.g., every alphanumeric character in the first string and the second string may be identical). In other examples, such as shown in FIG.
- the first possible identifier 122(1) and the second possible identifier 122(2) may be different (e.g., one or more alphanumeric characters in the first string may not match those same characters in the second string).
- the first possible identifier 122(1) is an exact match to the unique identifier 108, but the second possible identifier 122(2) does not match as the second OCR component determined the character “S” to be a “5,” erroneously.
- confidence scores may be determined and assigned to the possible identifiers output by the image processing pipeline 112. For instance, a first confidence score may be determined and assigned to the first possible identifier 122(1) and a second confidence score may be determined and assigned to the second possible identifier 122(2). In some examples, confidence scores may be assigned for every character of a possible identifier. Take, for example, the scenario shown in FIG. 1 in which each character in the first possible identifier 122(1) and the second possible identifier 122(2) are the same (e.g., matching) except for one character (e.g., “S” and “5”). In such a scenario, higher confidence scores may be assigned for all of the matching characters and a lower confidence score may be assigned for the mis-matching characters “S” and “5” since those were the characters that the two OCR components did not agree on.
- the prediction(s) 120 may be provided to a misread character recognition component 124, which may be a hardware or software component.
- the misread character recognition component 124 may be configured to generate or otherwise determine additional possible identifiers based at least in part on the first possible identifier 122(1) and the second possible identifier 122(2) received as outputs from the image processing pipeline 112. For instance, a third possible identifier may be generated based at least in part on the first possible identifier 122(1) and/or the second possible identifier 122(2).
- the misread character recognition component 124 may generate an additional possible identifier for every possible combination of characters included in the first possible identifier 122(1) and/or the second possible identifier 122(2) that are mapped to a confusing character in a confusing characters map, which will be discussed in more detail below in FIG. 2.
- these additional possible identifiers may be generated by replacing alphanumeric characters (e.g., the original alphanumeric characters) included in the first possible identifier 122(1) or the second possible identifier 122(2) with other alphanumeric characters that the original alphanumeric characters are mapped to in the confusing characters map. Further detail about this process will be discussed below in FIG. 3.
- the misread character recognition component 124 may further be configured to search a unique identifier and/or software configuration file database 126 to determine whether the first possible identifier 122(1), the second possible identifier 122(2), or any of the additional possible identifier(s) match the unique identifier 108 associated with the component 106.
- which possible identifier matches the unique identifier 108 associated with the component 106 may be determined by the misread character recognition component 124 recursively searching the unique identifier and/or software configuration file database 126 for the various possible identifiers.
- an indication of a positive match may be determined between the first possible identifier 122(1) and the unique identifier 108.
- a software configuration file 128 (e.g., software file, firmware file) associated with the component 106 may be obtained by the misread character recognition component 124 from the unique identifier/software configuration file database 126.
- the software configuration file 128 may be provided back to the computing device 102.
- the computing device 102 may be executing an application and/or an instance of an application, and the image 104 and/or image data 110 may be uploaded over a network to one or more servers that are associated with the application.
- the image processing pipeline 112, the misread character recognition component 124, and/or the unique identifier/ software configuration file database 126 may all be associated with the application and running or stored on computing resources (e.g., servers) that are allocated to host workloads associated with the application.
- the application may be configured to receive an uploaded image from the computing device 102, determine and/or recognize the unique identifier 108 in the uploaded image, and provide a prediction of the unique identifier and/or the software configuration file 128 to the computing device 102 in response.
- the configuration could also be network configuration, for example, enabling one of Bluetooth, Wi-Fi, long range wireless, and other types of network configurations (e.g., take for instance the case of networking related products (e.g., routers, switches).
- networking related products e.g., routers, switches.
- the process 100 illustrated in FIG. 1, as well as the various data and components described and included in FIG. 1, may be utilized to identify a unique identifier that is embossed onto a surface of an injector associated with an industrial machine.
- a software configuration file associated with the injector can be provided to a technician who is servicing the injector and/or the industrial machine.
- FIG. 2 illustrates at least a portion of an exemplary confusing characters map 200 which may be utilized by a system and/or computing device to perform aspects of the technologies disclosed herein.
- the confusing characters map 200 may be utilized by the misread character recognition component 124 described above and herein.
- the confusing characters maps described herein should not be limited by the exemplary confusing characters map 200 illustrated in FIG. 2.
- more or less confusing character mappings may be included in a confusing characters map than those shown in FIG. 2. That is, other mappings between characters may be possible, such as a mapping between the number “3” and the number “8” and/or the letter “B ”
- FIG. 3 is a pictorial flow diagram illustration an example process 300 associated with generating possible identifier combinations 302 based on outputs of different OCR engines.
- the possible identifier combinations 302 may be generated based at least in part on the confusing characters map 200.
- the image 104 of the unique identifier 108 associated with the component 106 may be input to the image processing pipeline 112, and a first OCR component 118(1) of the image processing pipeline 112 may generate a first possible identifier 122(1).
- a first possible identifier 122(1) may be equal to “8363S9NL5.”
- a second OCR component 118(2) of the image processing pipeline 112 may generate a second possible identifier 122(1) based on the input image 104.
- such an example second possible identifier 122(1) may be equal to “8B36359NL5.”
- the example mis-identified or otherwise incorrect characters of the unique identifier 108 are shown underlined in the first possible identifier 122(1), the second possible identifier 122(2), as well as in the possible identifier combinations 302.
- the first possible identifier 122(1) and the second possible identifier 122(2) are then fed into the misread character recognition component 124.
- the misread character recognition component may then utilize the first possible identifier 122(1), the second possible identifier 122(2), and the confusing characters map 200 to determine the possible identifier combinations 302.
- the misread character recognition component 124 may determine the character location(s) within the first possible identifier 122(1) and the second possible identifier 122(2) that include characters that are included in the confusing characters map 200 shown in FIG. 2.
- the misread character recognition component 124 may determine that three character locations within the first possible identifier 122(1) and the second possible identifier 122(2) include characters that are include in the confusing characters map 200, those being the first character location (e.g., “8” in the first possible identifier 122(1) and “B” in the second possible identifier 122(2)), the fifth character location (e.g., “S” in the first possible identifier 122(1) and “5” in the second possible identifier 122(2)), and the ninth character location (e.g., “5” in both the first possible identifier 122(1) and the second possible identifier 122(2)).
- the first character location e.g., “8” in the first possible identifier 122(1) and “B” in the second possible identifier 122(2)
- the fifth character location e.g., “S” in the first possible identifier 122(1) and “5” in the second possible identifier 122(2)
- the ninth character location e.g., “5” in
- the misread character recognition component may utilize the confusing characters map to generate the possible identifier combinations 302 for every possible combination of characters. For example, because there are three character locations in the possible identifiers that are occupied by characters mapped to exactly one corresponding confusing character, the misread character recognition component 124 may generate a total of eight (e.g., 2 3 ) possible identifier combinations 302, as shown.
- different confidence scores may be associated or otherwise assigned to the different identifiers of the possible identifier combinations 302.
- the first possible identifier 122(1) and the second possible identifier 122(2) (in row 1, column 1 and column 2) may be assigned the highest confidence scores because those were the initial outputs of the OCR components 118.
- the possible identifiers in row 1, columns 3 & 4 of the possible identifier combinations 302 may be assigned a next-highest confidence score (e.g., lower than the highest confidence score but not the absolute lowest) because the replaced characters were still correct in one version of the outputs of the OCR components 118.
- FIG. 4 is a flow diagram illustrating an example method 400 for identifying a unique component identifier in accordance with the techniques described herein.
- some or all of the method 400 can be implemented by the example architecture 500 described below or by an application that includes or otherwise utilizes the image processing pipeline 112, the misread character recognition component 124, and the unique identifier/configuration file database 126.
- the method 400 is not limited to being performed by such a system or application or components thereof.
- the method 400 is discussed with reference to the components discussed above, the systems and techniques described herein are not limited to use with such systems.
- the method 400 begins at operation 402, which includes receiving image data associated with an image of an article of manufacture and a string of alphanumeric characters disposed on the article of manufacture, the string of alphanumeric characters representing a unique identifier associated with the article of manufacture.
- a unique identifier recognition application 510 may receive the image data 110 that is associated with the image 104 of the component 106 that is embossed with the string of alphanumeric characters representing the unique identifier 108 associated with the component 106.
- the method 400 includes inputting the image data into an image processing pipeline.
- the unique identifier recognition application 510 may input the image data 110 into the image processing pipeline 112.
- the method 400 includes receiving, as an output of the image processing pipeline, a first possible identifier and a second possible identifier.
- the unique identifier recognition application 510 may receive the predict! on(s) 120, including the first possible identifier 122(1) and the second possible identifier 122(2), as an output from the image processing pipeline 112.
- the method 400 includes generating additional possible identifiers based at least in part on at least one of the first possible identifier or the second possible identifier.
- the misread character recognition component 124 may be utilized by the unique identifier recognition application 510 to generate or otherwise determine the possible identifier combinations 302 as the additional possible identifiers based on the first possible identifier 122(1) and/or the second possible identifier 122(2).
- the process 300 shown in FIG. 3 describes techniques for generating these additional possible identifiers using the initial OCR outputs and a confusing letters map.
- the method 400 includes determining whether the first possible identifier, the second possible identifier, or one of the additional possible identifiers matches the unique identifier associated with the article of manufacture.
- the misread character recognition component 124 may also be utilized to determine whether the first possible identifier 122(1), the second possible identifier 122(2), or any of the possible identifier combinations 302 matches the unique identifier 108 associated with the component 106.
- a determination is made that one of the possible identifiers matches the unique identifier associated with the article of manufacture, the method 400 may proceed to operation 412.
- the method 400 includes providing a software file related to the unique identifier associated with the article of manufacture.
- the unique identifier recognition application 510 may provide the software configuration file 128 corresponding with the unique identifier 108 to the computing device 102.
- the computing device may be associated with a technician attempting to recognize the unique identifier.
- the method 400 includes performing some other action.
- the other action may include the unique identifier recognition application 510 sending an indication to the computing device 102 that the unique identifier 108 of the component 106 cannot be recognized, sending a request to the computing device 102 to provide another image 104 of the unique identifier, an indication that the unique identifier 108 does not correspond with any known identifiers (e.g., indicating a non-OEM component).
- FIG. 5 is a system diagram illustrating an example architecture 500 that may be used to implement aspects of the various technologies disclosed herein.
- the architecture 500 includes a data center 502, one or more network(s) 512, and the computing device 102.
- the computing device 102 may communicate with the data center 502 and, ultimately, the unique identifier recognition application 510 over the one or more network(s) 512, which may include the internet, local area network(s), wide area network(s).
- the data center 502 may be a physical facility storing one or more server computer(s) 504.
- the server computer(s) 504 may include one or more processor(s) 506 and memory 508 that is communicatively coupled to the one or more processor(s) 506.
- the server computer(s) 504 may be running one or more application workloads.
- the memory 508 of the server computer(s) 504 stores a workload associated with a unique identifier recognition application 510.
- the unique identifier recognition application 510 may include the image processing pipeline 112, the misread character recognition component 124, and the unique identifier/configuration file database 126, as described herein.
- the processor(s) 506 can be any suitable processor capable of executing instructions to process data and perform operations as described herein.
- the processor(s) 506 can comprise one or more Central Processing Units (CPUs), Graphics Processing Units (GPUs), or any other device or portion of a device that processes electronic data to transform that electronic data into other electronic data that can be stored in registers and/or memory.
- CPUs Central Processing Units
- GPUs Graphics Processing Units
- integrated circuits e.g., ASICs
- gate arrays e.g., FPGAs
- other hardware devices can also be considered processors in so far as they are configured to implement encoded instructions.
- Memory 508 may be non-transitory computer-readable media.
- Memory 508 can store an operating system and one or more software applications (e.g., the unique identifier recognition application 510), instructions, programs, and/or data to implement the methods described herein and the functions attributed to the various systems.
- the memory 508 can be implemented using any suitable memory technology, such as static random-access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type of memory capable of storing information.
- SRAM static random-access memory
- SDRAM synchronous dynamic RAM
- Flash-type memory any other type of memory capable of storing information.
- the architectures, systems, and individual elements described herein can include many other logical, programmatic, and physical components, of which those shown in the accompanying figures are merely examples that are related to the discussion herein.
- the network 512 may be a local area network (“LAN”), a larger network such as a wide area network (“WAN”), or a collection of networks, such as the Internet. Protocols for network communication, such as transmission control protocol/Internet protocol (TCP/IP), may be used to implement the network 512. Although examples are described herein as using a network such as the Internet, other distribution techniques may be implemented that transmit information via memory cards, flash memory, or other portable memory devices.
- LAN local area network
- WAN wide area network
- IP transmission control protocol/Internet protocol
- the architecture 500 is illustrated as including separate components, functionality of the various systems may be attributed differently than discussed. Moreover, fewer or more systems and components may be utilized to perform the various functionalities described herein. Furthermore, though depicted in FIG. 5 as residing in memory 508 for illustrative purposes, it is contemplated that the unique identifier recognition application 510 and its associated components may additionally, or alternatively, be accessible to, or otherwise stored by, the computing device 102 for offline use (e.g., stored in memory of the computing device 102 so that the unique identifier recognition techniques described herein can be performed at least partially while the computing device lacks network connectivity).
- a unique identifier disposed on the article of manufacture may be determined by a local instance of the unique identifier recognition application this is installed on the computing device 102 instead of sending the image over the network(s) 512 and to the data center 502.
- This disclosure describes systems and methods for identifying a unique identifier of a component that may not otherwise be readily recognized by a human due to the unique identifier being illegible.
- a technician servicing a component of an industrial machine can use the technologies disclosed herein to upload a picture of the component and/or unique identifier to an application and receive, from the application, an indication of the correct identifier and/or a software configuration file (e.g., software file, firmware file) associated with the unique identifier and/or other information.
- the technologies disclosed herein make it possible to recognize unique identifiers by generating every possible combination for the identifier, which would not be possible by human technicians.
- the number of possible combinations for a serial number is equal to 2 N , where N is equal to the number of characters included in the serial number that are mapped to a confusing character in a confusing characters map.
- N is equal to the number of characters included in the serial number that are mapped to a confusing character in a confusing characters map.
- a single alphanumeric character is mapped to multiple different characters in the confusing characters map (e.g., the character “I” may be mapped to the characters “1,” “7,” “T,” and “J”).
- the techniques described herein can identify the correct serial number in a fraction of seconds and retrieve the correct software configuration file, if needed.
- the systems and methods disclosed herein improve the operation of image processing and character recognition techniques. For instance, by running multiple OCR engines in parallel, the confidence of an OCR output can be enhanced and checked. Additionally, by generating additional character strings based on the OCR outputs and the confusing characters map, the likelihood of determining the correct string of characters is increased by checking the outputs in context.
- image data 110 associated with an image 104 of a component 106 that is embossed with a string of alphanumeric characters representing a unique identifier 108 associated with the component 106 is received from a computing device 102.
- the image data 110 is input into an image processing pipeline 112.
- a first possible identifier 122(1) and a second possible identifier 122(2) is received as an output of the image processing pipeline 112.
- a misread character recognition component 124 generates possible identifier combinations 302 based at least in part on the first possible identifier 122(1), the possible identifier combinations 302 including at least a third possible identifier.
- the third possible identifier is generated by replacing a first alphanumeric character included in the first possible identifier 122(1) with a second alphanumeric character that the first alphanumeric character is mapped to in a confusing characters map 200.
- a determination is made regarding whether the first possible identifier 122(1), the second possible identifier 122(2), or the third possible identifier matches the unique identifier 108 associated with the component 106.
- the computing device 102 is provided with a software configuration file 128 associated with the component 106.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Multimedia (AREA)
- Operations Research (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Finance (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Accounting & Taxation (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Character Discrimination (AREA)
- General Factory Administration (AREA)
- Automatic Assembly (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Techniques for determining a unique identifier (108). In examples, an image (104) of a string of alphanumeric characters representing a unique identifier (108) disposed on an article of manufacture (106) may be input into an image processing pipeline (112) that is configured to determine a first possible identifier (122) and a second possible identifier (122). The techniques may also include generating a third possible identifier (122) by replacing a first character included in the first possible identifier (122) or the second possible identifier (122) with a second character that the first character is mapped to in a confusing alphanumeric characters map (200). The techniques may also include determining whether the first possible identifier (122), the second possible identifier (122), or the third possible identifier (122) matches the unique identifier (108) disposed on the article of manufacture (106). Based at least in part on a determination that the first possible identifier (122) matches the unique identifier (108), a software file (126) related to the article of manufacture (106) may be obtained.
Description
Description
ALPHANUMERIC RECOGNIZER FOR UNIQUE IDENTIFIERS OF ARTICLES OF MANUFACTURE
Technical Field
This disclosure relates generally to techniques for correctly identifying a unique identifier and, more specifically, to correctly identifying unique identifiers which may be stamped, embossed, or otherwise disposed on a surface of an article of manufacture in a way that makes the unique identifier difficult to read.
Background
Manufacturing industries generally associate a unique identifier (e.g., serial number, part number, VIN number) with a manufactured article. Such unique identifiers may be indicative of specific characteristics of the manufactured article. In some instances, these manufactured articles may be components that can be included in systems including, but not limited to, vehicles, industrial machines, computing devices, appliances and other various systems that are known in the art. For example, industrial machines such as, but not limited to, earth moving machines, construction machines, and mining machines can include components that may require regular servicing or maintenance to achieve a desired level or type of operational performance. Typically, different machines utilize different components and, in some cases, to properly service these components it may be required to determine at least one of a numeric identifier, an alphabetic identifier, or an alphanumeric identifier associated with the component, or a sub-assembly of components, an assembly consisting of two or more sub-assemblies and/or the machine itself. The determination of these identifiers, for example, a serial number, a part number, a vehicle identification number (VIN) may be required in order to identify correct replacement components, settings, or files.
For instance, when servicing engine injectors, technicians may be required to obtain a software configuration file for the specific injector being serviced and/or replaced. In many cases, to obtain the configuration file, an alphabetic, numeric, or alphanumeric identifier (e.g., serial number) for the specific injector must be determined. Generally, the identifier is determined by visual inspection of the injector by the technician. However, because injector identifiers are typically embossed, engraved, crimped, or printed on a surface of the injector itself, the identifiers may get obscured or become illegible for service technicians. Since indentations would be formed into a material of the substrate, especially in cases where the alphabetic and/or serial identifiers are embossed, engraved or crimped, the presence of these indentations may be hard to determine. For example, these indentations may have little to no visibility unless seen under changing exposure of light between the indentations and a remainder of the substrate’s outer surface, for example, the outer surface of the injector. In another example, these indentations may not be detected unless one manually runs their finger and experiences a haptic response.
For instance, it is common for the identifiers to be misprinted due to errors during the serial number labeling process, as well as for the serial numbers to become obscured or otherwise illegible due to wear and tear, stains, or scratches during use. When the correct identifier for an injector cannot be determined or is incorrectly guessed, technicians may incorrectly assume what the identifier could possibly be and such assumption may, therefore, lead to obtaining incorrect software configuration file(s) for the specific injector. Further, when the incorrect software configuration file is used, the injector’s performance may be sub-optimal and consequently, the associated machine may experience a number of undesired issues including, but not limited to, reduced fuel economy, poor engine performance, and may consequentially lead to irreversible engine damage.
Chinese patent application CN114399768A (hereinafter referred to as “the ’768 reference”) describes a process associated with serial number identification. Specifically, the ’768 reference describes techniques for
identifying a workpiece product serial number based on a Tesseract-OCR (Optical Character Recognition) engine, including training a Tesseract-OCR model, and using the same to identify a text part in a workpiece serial number image. The’768 reference also describes a process for screening out the serial number to detect, position, and identify the serial number.
While the ‘768 reference describes a process that may be used for serial number identification using an OCR engine, the described process requires using a single OCR engine for identifying a serial number. As such, there is no way to confirm whether an incorrect result or output is received from the Tesseract-OCR engine described in the ’768 reference. As a result, downstream operations using the process of the ’768 reference may suffer from incorrect identifications of a component identifier.
Hence, in order to overcome the aforementioned shortcomings, there is a need for a system and a method to reliably determine unique identifiers that are disposed on components and/or other articles of manufacture.
Summary
In an aspect of the present disclosure, a system includes a processor and memory communicatively coupled to the processor. The memory stores instructions that, when executed by the processor, causes the processor to perform operations. The operations may include, in some examples, receiving, from a computing device, image data associated with an image of an article of manufacture and a unique identifier disposed on the article of manufacture, the unique identifier represented by a string of alphanumeric characters; generating, based on the image data, a first possible identifier and a second possible identifier; generating a third possible identifier based at least in part on the first possible identifier by replacing a first alphanumeric character included in the first possible identifier with a second alphanumeric character, the first alphanumeric character mapped to the second alphanumeric character in a confusing alphanumeric characters map; determining whether one of the first possible identifier, the second possible identifier, or the third possible identifier matches
with the unique identifier disposed on the article of manufacture; and based at least in part on the first possible identifier, the second possible identifier, or the third possible identifier matching the unique identifier, providing, to the computing device, a software file related to the article of manufacture.
In another aspect of this disclosure, a method may include receiving, from a computing device, image data associated with an image of an article of manufacture and a unique identifier disposed on the article of manufacture, the unique identifier represented by a string of alphanumeric characters; generating, based at least in part on the image data, a first possible identifier and a second possible identifier; generating a third possible identifier based at least in part on the first possible identifier by replacing a first alphanumeric character included in the first possible identifier with a second alphanumeric character, the first alphanumeric character mapped to the second alphanumeric character in a confusing alphanumeric characters map; determining whether one of the first possible identifier, the second possible identifier, or the third possible identifier matches the unique identifier associated with the article of manufacture; and based at least in part on the first possible identifier, the second possible identifier, or the third possible identifier matching the unique identifier, providing, to the computing device, a software file related to the article of manufacture.
In yet another aspect of this disclosure, a non-transitory computer- readable medium may store thereon processor-executable instructions that, when executed by one or more processors of a system, cause the one or more processors to perform certain operations. The operations may include receiving, from a computing device, image data associated with an image of an article of manufacture and a unique identifier disposed on the article of manufacture, the unique identifier represented by a string of alphanumeric characters; generating, based at least in part on the image data, a first possible identifier and a second possible identifier; generating a third possible identifier based at least in part on the first possible identifier by replacing a first alphanumeric character included in the first possible identifier with a second alphanumeric character, the first
alphanumeric character mapped to the second alphanumeric character in a confusing alphanumeric characters map; determining whether one of the first possible identifier, the second possible identifier, or the third possible identifier matches the unique identifier associated with the article of manufacture; and based at least in part on the first possible identifier, the second possible identifier, or the third possible identifier matching the unique identifier, providing, to the computing device, a software file related to the article of manufacture.
Brief Description of the Drawings
FIG. 1 is a pictorial flow diagram illustrating an example process for identifying a unique identifier, in accordance with an embodiment of the present disclosure.
FIG. 2 is an illustration of at least a portion of a confusing characters map which may be utilized by a system and/or computing device to perform aspects of the technologies disclosed herein.
FIG. 3 is a pictorial flow diagram illustrating an example process associated with generating possible identifier combinations based on outputs of different OCR engines. The possible identifier combinations may be generated based at least in part on the confusing characters map.
FIG. 4 is a flowchart illustrating an example method for identifying a unique identifier in accordance with the techniques described herein.
FIG. 5 is a system diagram illustrating an example architecture that may be used to implement aspects of the various technologies disclosed herein.
Detailed Description
This disclosure generally relates to systems and methods for determining a unique identifier that is disposed on an article of manufacture. As used herein, a “unique identifier” may include, but is not limited to, a serial number, part number, vehicle identification number (VIN) number, a stock
keeping unit (SKU) number, a universal product code (UPC) number, a global trading item number (GTIN), and/or trademarks. In some examples, the ways in which these unique identifiers are disposed on articles of manufacture may vary, including, but not limited to, being printed, etched, scribed, embossed, stamped, engraved, cut, and/or adhered to the article of manufacture. Although much of the present disclosure is described in connection with industrial machines, the systems and techniques described herein may be useful in a vast amount of other implementations in which it is desirable to determine a unique identifier disposed on an article of manufacture, such as determining unique identifiers disposed on components designed for use in industrial machines, automobiles, prime movers (e.g., engines or motors), locomotives, aircraft, rotorcraft, watercraft, spacecraft, computing devices, appliances, and/or electronics. Wherever possible throughout this disclosure, the same reference numbers will be used through the drawings to refer to the same or like features.
FIG. 1 is a pictorial flow diagram illustrating an example process 100 for identifying a unique identifier disposed on an article of manufacture according to the techniques described herein. In examples, a computing device 102 being used to capture an image 104 of a component 106, which may be an injector. While the computing device 102 is illustrated in FIG. 1 as representing a smart phone, other computing devices may be used to generate the image 104, such as a tablet or a digital camera. The image 104 of the component 106 may be taken such that a unique identifier 108 (e.g., serial number, part number, lot number) associated with the component 106 is included in the image 104. For instance, the component 106 may be composed primarily of a metallic material and the unique identifier 108 associated with the component 106 may be embossed, crimped, stamped, or engraved onto the component 106. In some examples, the image 104 may be taken such that the unique identifier 108 is emphasized in the image 104 (e.g., zoomed in on the unique identifier 108 such that only a portion of the component 106 is in the image 104). In FIG. 1, the unique identifier 108 is a string of alphanumeric characters. As used herein, “alphanumeric characters” include the numbers 0-9 and letters A-Z, both
uppercase and lowercase. However, other unique identifier combinations are possible other than strings of alphanumeric characters. For instance, a unique identifier could be a strictly numeric string, strictly alphabetic string, lower case letters, upper case letters, symbols, logograms, hieroglyphics, cuneiform, symbols, non-alphanumeric characters (e.g., other characters on a keyboard that aren't letters or numbers, including, but not limited to, commas, brackets, asterisks, dashes, periods, slashes).
In examples, the computing device 102 may provide the image data 110 to an image processing pipeline 112. In examples, the image processing pipeline 112 may include various algorithms, processes, machine-learned models, and the like for receiving an input image and/or image data that includes a unique identifier and outputting one or more possible identifier(s) (e.g., predicted identifiers, guessed identifiers) that, under ideal circumstances, match the unique identifier in the image. For instance, the image processing pipeline 112 shown in FIG. 1 includes a pre-processing component 114, a text localization component 116, and one or more OCR (optical character recognition) component(s) 118. The components of the image processing pipeline 112, such as the pre-processing component 114, the text localization component 116, and the one or more OCR component(s) 118 may be executable software components stored in a memory that is accessible to the image processing pipeline 112 (e.g., or to a server computer that is running the image processing pipeline 112.
In some examples, the pre-processing component 114 may be configured to perform one or multiple pre-processing functions with respect to the image data 110. For instance, the pre-processing component 114 may perform de-skewing function(s) for de-skewing the image 104 and/or the unique identifier 108 represented in the image 104. Additionally, or alternatively, the pre-processing component 114 may perform padding to, for instance, add leading and/or trailing zeros to the unique identifier 108. As an example, the unique identifier 108 shown in FIG. 1 is equal to “B363S9NL5,” which is nine characters long. However, if the unique identifiers are supposed to be twelve characters long, the image padding function may pad the unique identifier with
three leading and/or trailing zeros to make the unique identifier twelve characters long. In additional or alternative examples, the pre-processing component 114 may also perform other functions, such as image enhancement, restoration, segmentation, compression, and/or translation.
In examples, the text localization component 116 can be configured to localize areas of interest within the image 104, such as the unique identifier 108 and/or other strings of alphanumeric characters or barcodes. For instance, the text localization component 116 may include an Efficient and Accurate Scene Text (EAST) detector, which may utilize a neural network and/or other machine-learning methods to localize areas of interest within an image. In some examples, other text localization methods may additionally, or alternatively, be used as well, such as Character-Region Awareness for Text (CRAFT) detection.
The OCR component(s) 118 may, in some examples, include two or more OCR components (e.g., OCR engines) running in parallel, and these OCR components may each generate their own predict! on(s) 120 based on the image data 110 and/or the text-localized data from the text localization component 116. In some examples, the OCR component(s) 118 may include a first OCR component that is running a Tesseract OCR algorithm and a second OCR component that is running a Textract OCR algorithm. Additionally, in some examples, other OCR algorithms may also be used in addition to, or alternatively to, the algorithms noted above, such as Grooper, Doculayer, or Palamardocs.
In examples, the image processing pipeline 112 may generate one or more prediction(s) 120. The prediction(s) 120 may include one or more possible identifiers, such as a first possible identifier 122(1) (“B363S9NL5”) and a second possible identifier 122(2) (““B36359NL5”). As noted above, the first possible identifier 122(1) may be determined by the first OCR component and the second possible identifier 122(2) may be determined by the second OCR component of the image processing pipeline 112. In some examples, the first possible identifier 122(1) and the second possible identifier 122(2) may be the
same (e.g., every alphanumeric character in the first string and the second string may be identical). In other examples, such as shown in FIG. 1, the first possible identifier 122(1) and the second possible identifier 122(2) may be different (e.g., one or more alphanumeric characters in the first string may not match those same characters in the second string). For instance, the first possible identifier 122(1) is an exact match to the unique identifier 108, but the second possible identifier 122(2) does not match as the second OCR component determined the character “S” to be a “5,” erroneously.
In some examples, confidence scores may be determined and assigned to the possible identifiers output by the image processing pipeline 112. For instance, a first confidence score may be determined and assigned to the first possible identifier 122(1) and a second confidence score may be determined and assigned to the second possible identifier 122(2). In some examples, confidence scores may be assigned for every character of a possible identifier. Take, for example, the scenario shown in FIG. 1 in which each character in the first possible identifier 122(1) and the second possible identifier 122(2) are the same (e.g., matching) except for one character (e.g., “S” and “5”). In such a scenario, higher confidence scores may be assigned for all of the matching characters and a lower confidence score may be assigned for the mis-matching characters “S” and “5” since those were the characters that the two OCR components did not agree on.
In examples, the prediction(s) 120 may be provided to a misread character recognition component 124, which may be a hardware or software component. The misread character recognition component 124 may be configured to generate or otherwise determine additional possible identifiers based at least in part on the first possible identifier 122(1) and the second possible identifier 122(2) received as outputs from the image processing pipeline 112. For instance, a third possible identifier may be generated based at least in part on the first possible identifier 122(1) and/or the second possible identifier 122(2). In examples, the misread character recognition component 124 may generate an additional possible identifier for every possible combination of
characters included in the first possible identifier 122(1) and/or the second possible identifier 122(2) that are mapped to a confusing character in a confusing characters map, which will be discussed in more detail below in FIG. 2. In some examples, these additional possible identifiers may be generated by replacing alphanumeric characters (e.g., the original alphanumeric characters) included in the first possible identifier 122(1) or the second possible identifier 122(2) with other alphanumeric characters that the original alphanumeric characters are mapped to in the confusing characters map. Further detail about this process will be discussed below in FIG. 3.
In some examples, the misread character recognition component 124 may further be configured to search a unique identifier and/or software configuration file database 126 to determine whether the first possible identifier 122(1), the second possible identifier 122(2), or any of the additional possible identifier(s) match the unique identifier 108 associated with the component 106. In some examples, which possible identifier matches the unique identifier 108 associated with the component 106 may be determined by the misread character recognition component 124 recursively searching the unique identifier and/or software configuration file database 126 for the various possible identifiers. In examples, at least partially responsive to searching the unique identifier/software configuration file database 126, an indication of a positive match may be determined between the first possible identifier 122(1) and the unique identifier 108.
In some examples, responsive to determining the match and identifying the correct unique identifier for the component 106, a software configuration file 128 (e.g., software file, firmware file) associated with the component 106 may be obtained by the misread character recognition component 124 from the unique identifier/software configuration file database 126. In some instances, the software configuration file 128 may be provided back to the computing device 102. For example, the computing device 102 may be executing an application and/or an instance of an application, and the image 104 and/or image data 110 may be uploaded over a network to one or more servers
that are associated with the application. For instance, the image processing pipeline 112, the misread character recognition component 124, and/or the unique identifier/ software configuration file database 126 may all be associated with the application and running or stored on computing resources (e.g., servers) that are allocated to host workloads associated with the application. In examples, the application may be configured to receive an uploaded image from the computing device 102, determine and/or recognize the unique identifier 108 in the uploaded image, and provide a prediction of the unique identifier and/or the software configuration file 128 to the computing device 102 in response. Although a software configuration file is mentioned herein, the configuration could also be network configuration, for example, enabling one of Bluetooth, Wi-Fi, long range wireless, and other types of network configurations (e.g., take for instance the case of networking related products (e.g., routers, switches).
In examples, the process 100 illustrated in FIG. 1, as well as the various data and components described and included in FIG. 1, may be utilized to identify a unique identifier that is embossed onto a surface of an injector associated with an industrial machine. When the unique identifier is correctly identified, a software configuration file associated with the injector can be provided to a technician who is servicing the injector and/or the industrial machine.
FIG. 2 illustrates at least a portion of an exemplary confusing characters map 200 which may be utilized by a system and/or computing device to perform aspects of the technologies disclosed herein. For instance, the confusing characters map 200 may be utilized by the misread character recognition component 124 described above and herein. The confusing characters maps described herein should not be limited by the exemplary confusing characters map 200 illustrated in FIG. 2. For instance, more or less confusing character mappings may be included in a confusing characters map than those shown in FIG. 2. That is, other mappings between characters may be possible, such as a mapping between the number “3” and the number “8” and/or the letter “B ”
FIG. 3 is a pictorial flow diagram illustration an example process 300 associated with generating possible identifier combinations 302 based on outputs of different OCR engines. The possible identifier combinations 302 may be generated based at least in part on the confusing characters map 200.
For instance, the image 104 of the unique identifier 108 associated with the component 106 may be input to the image processing pipeline 112, and a first OCR component 118(1) of the image processing pipeline 112 may generate a first possible identifier 122(1). As shown for illustrative purposes in FIG. 3, such an example first possible identifier 122(1) may be equal to “8363S9NL5.” Additionally, a second OCR component 118(2) of the image processing pipeline 112 may generate a second possible identifier 122(1) based on the input image 104. As shown for illustrative purposes in FIG. 3, such an example second possible identifier 122(1) may be equal to “8B36359NL5.” In FIG. 3, the example mis-identified or otherwise incorrect characters of the unique identifier 108 are shown underlined in the first possible identifier 122(1), the second possible identifier 122(2), as well as in the possible identifier combinations 302.
The first possible identifier 122(1) and the second possible identifier 122(2) are then fed into the misread character recognition component 124. The misread character recognition component may then utilize the first possible identifier 122(1), the second possible identifier 122(2), and the confusing characters map 200 to determine the possible identifier combinations 302. For instance, the misread character recognition component 124 may determine the character location(s) within the first possible identifier 122(1) and the second possible identifier 122(2) that include characters that are included in the confusing characters map 200 shown in FIG. 2. For instance, the misread character recognition component 124 may determine that three character locations within the first possible identifier 122(1) and the second possible identifier 122(2) include characters that are include in the confusing characters map 200, those being the first character location (e.g., “8” in the first possible identifier 122(1) and “B” in the second possible identifier 122(2)), the fifth character location (e.g., “S” in the first possible identifier 122(1) and “5” in the
second possible identifier 122(2)), and the ninth character location (e.g., “5” in both the first possible identifier 122(1) and the second possible identifier 122(2)).
In some examples, the misread character recognition component may utilize the confusing characters map to generate the possible identifier combinations 302 for every possible combination of characters. For example, because there are three character locations in the possible identifiers that are occupied by characters mapped to exactly one corresponding confusing character, the misread character recognition component 124 may generate a total of eight (e.g., 23) possible identifier combinations 302, as shown.
In examples, different confidence scores may be associated or otherwise assigned to the different identifiers of the possible identifier combinations 302. For instance, the first possible identifier 122(1) and the second possible identifier 122(2) (in row 1, column 1 and column 2) may be assigned the highest confidence scores because those were the initial outputs of the OCR components 118. Next, the possible identifiers in row 1, columns 3 & 4 of the possible identifier combinations 302 may be assigned a next-highest confidence score (e.g., lower than the highest confidence score but not the absolute lowest) because the replaced characters were still correct in one version of the outputs of the OCR components 118. In other words, all of the characters that the two OCR components 118 agreed on remained constant, and only the characters the OCR components 118 did not agree on were replaced or changed. Next, even lower confidence scores may be assigned to all of the possible identifiers in row 2 of the possible identifier combinations 302 because the ninth character location, which both OCR components 118 agreed on, has been changed.
According to the process 300 shown in FIG. 3, a comprehensive list of every possible identifier can be determined for a possible identifier that includes confusing characters. This ensures that a possible identifier is not missed during a search for the correct unique identifier, as well as for determining the proper software configuration file or other software information associated with the unique identifier.
FIG. 4 is a flow diagram illustrating an example method 400 for identifying a unique component identifier in accordance with the techniques described herein. For example, and without limitation, some or all of the method 400 can be implemented by the example architecture 500 described below or by an application that includes or otherwise utilizes the image processing pipeline 112, the misread character recognition component 124, and the unique identifier/configuration file database 126. However, the method 400 is not limited to being performed by such a system or application or components thereof. Moreover, although the method 400 is discussed with reference to the components discussed above, the systems and techniques described herein are not limited to use with such systems.
The method 400 begins at operation 402, which includes receiving image data associated with an image of an article of manufacture and a string of alphanumeric characters disposed on the article of manufacture, the string of alphanumeric characters representing a unique identifier associated with the article of manufacture. For instance, a unique identifier recognition application 510 (described in more detail below in FIG. 5) may receive the image data 110 that is associated with the image 104 of the component 106 that is embossed with the string of alphanumeric characters representing the unique identifier 108 associated with the component 106.
At operation 404, the method 400 includes inputting the image data into an image processing pipeline. For instance, the unique identifier recognition application 510 may input the image data 110 into the image processing pipeline 112. At operation 406, the method 400 includes receiving, as an output of the image processing pipeline, a first possible identifier and a second possible identifier. For instance, the unique identifier recognition application 510 may receive the predict! on(s) 120, including the first possible identifier 122(1) and the second possible identifier 122(2), as an output from the image processing pipeline 112.
At operation 408, the method 400 includes generating additional possible identifiers based at least in part on at least one of the first possible
identifier or the second possible identifier. For instance, the misread character recognition component 124 may be utilized by the unique identifier recognition application 510 to generate or otherwise determine the possible identifier combinations 302 as the additional possible identifiers based on the first possible identifier 122(1) and/or the second possible identifier 122(2). As an example, the process 300 shown in FIG. 3 describes techniques for generating these additional possible identifiers using the initial OCR outputs and a confusing letters map.
At operation 410, the method 400 includes determining whether the first possible identifier, the second possible identifier, or one of the additional possible identifiers matches the unique identifier associated with the article of manufacture. For instance, the misread character recognition component 124 may also be utilized to determine whether the first possible identifier 122(1), the second possible identifier 122(2), or any of the possible identifier combinations 302 matches the unique identifier 108 associated with the component 106. At operation 410, a determination is made that one of the possible identifiers matches the unique identifier associated with the article of manufacture, the method 400 may proceed to operation 412.
At operation 412, the method 400 includes providing a software file related to the unique identifier associated with the article of manufacture. For instance, the unique identifier recognition application 510 may provide the software configuration file 128 corresponding with the unique identifier 108 to the computing device 102. In some examples, the computing device may be associated with a technician attempting to recognize the unique identifier. At operation 414, the method 400 includes performing some other action. For instance, the other action may include the unique identifier recognition application 510 sending an indication to the computing device 102 that the unique identifier 108 of the component 106 cannot be recognized, sending a request to the computing device 102 to provide another image 104 of the unique identifier, an indication that the unique identifier 108 does not correspond with any known identifiers (e.g., indicating a non-OEM component).
FIG. 5 is a system diagram illustrating an example architecture 500 that may be used to implement aspects of the various technologies disclosed herein. The architecture 500 includes a data center 502, one or more network(s) 512, and the computing device 102. For instance, the computing device 102 may communicate with the data center 502 and, ultimately, the unique identifier recognition application 510 over the one or more network(s) 512, which may include the internet, local area network(s), wide area network(s).
The data center 502 may be a physical facility storing one or more server computer(s) 504. The server computer(s) 504 may include one or more processor(s) 506 and memory 508 that is communicatively coupled to the one or more processor(s) 506. In examples, the server computer(s) 504 may be running one or more application workloads. For instance, the memory 508 of the server computer(s) 504 stores a workload associated with a unique identifier recognition application 510. The unique identifier recognition application 510 may include the image processing pipeline 112, the misread character recognition component 124, and the unique identifier/configuration file database 126, as described herein.
The processor(s) 506 can be any suitable processor capable of executing instructions to process data and perform operations as described herein. By way of example and not limitation, the processor(s) 506 can comprise one or more Central Processing Units (CPUs), Graphics Processing Units (GPUs), or any other device or portion of a device that processes electronic data to transform that electronic data into other electronic data that can be stored in registers and/or memory. In some examples, integrated circuits (e.g., ASICs), gate arrays (e.g., FPGAs), and other hardware devices can also be considered processors in so far as they are configured to implement encoded instructions.
Memory 508 may be non-transitory computer-readable media. Memory 508 can store an operating system and one or more software applications (e.g., the unique identifier recognition application 510), instructions, programs, and/or data to implement the methods described herein and the functions attributed to the various systems. In various implementations, the
memory 508 can be implemented using any suitable memory technology, such as static random-access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type of memory capable of storing information. The architectures, systems, and individual elements described herein can include many other logical, programmatic, and physical components, of which those shown in the accompanying figures are merely examples that are related to the discussion herein.
The network 512 may be a local area network (“LAN”), a larger network such as a wide area network (“WAN”), or a collection of networks, such as the Internet. Protocols for network communication, such as transmission control protocol/Internet protocol (TCP/IP), may be used to implement the network 512. Although examples are described herein as using a network such as the Internet, other distribution techniques may be implemented that transmit information via memory cards, flash memory, or other portable memory devices.
Although the architecture 500 is illustrated as including separate components, functionality of the various systems may be attributed differently than discussed. Moreover, fewer or more systems and components may be utilized to perform the various functionalities described herein. Furthermore, though depicted in FIG. 5 as residing in memory 508 for illustrative purposes, it is contemplated that the unique identifier recognition application 510 and its associated components may additionally, or alternatively, be accessible to, or otherwise stored by, the computing device 102 for offline use (e.g., stored in memory of the computing device 102 so that the unique identifier recognition techniques described herein can be performed at least partially while the computing device lacks network connectivity). That is, if an image of an article of manufacture is captured using a camera of the computing device 102, a unique identifier disposed on the article of manufacture may be determined by a local instance of the unique identifier recognition application this is installed on the computing device 102 instead of sending the image over the network(s) 512 and to the data center 502.
Industrial Applicability
This disclosure describes systems and methods for identifying a unique identifier of a component that may not otherwise be readily recognized by a human due to the unique identifier being illegible. For instance, a technician servicing a component of an industrial machine can use the technologies disclosed herein to upload a picture of the component and/or unique identifier to an application and receive, from the application, an indication of the correct identifier and/or a software configuration file (e.g., software file, firmware file) associated with the unique identifier and/or other information. The technologies disclosed herein make it possible to recognize unique identifiers by generating every possible combination for the identifier, which would not be possible by human technicians. For instance, it would be impossible for a human being to generate all possible combinations for a serial number or other unique identifier in scenarios where the alphanumeric characters can be misread by human. For instance, the number of possible combinations for a serial number is equal to 2N, where N is equal to the number of characters included in the serial number that are mapped to a confusing character in a confusing characters map. And in many cases, a single alphanumeric character is mapped to multiple different characters in the confusing characters map (e.g., the character “I” may be mapped to the characters “1,” “7,” “T,” and “J”). As an example, in the case of a unique identifier that is 12 characters long and every character in the unique identifier is mapped to exactly one confusing character, then the number of possible combinations is 212, or 4,096 combinations. However, in such scenarios, the techniques described herein can identify the correct serial number in a fraction of seconds and retrieve the correct software configuration file, if needed.
Furthermore, the systems and methods disclosed herein improve the operation of image processing and character recognition techniques. For instance, by running multiple OCR engines in parallel, the confidence of an OCR output can be enhanced and checked. Additionally, by generating additional character strings based on the OCR outputs and the confusing characters map, the
likelihood of determining the correct string of characters is increased by checking the outputs in context.
According to some implementations, image data 110 associated with an image 104 of a component 106 that is embossed with a string of alphanumeric characters representing a unique identifier 108 associated with the component 106 is received from a computing device 102. The image data 110 is input into an image processing pipeline 112. In examples, a first possible identifier 122(1) and a second possible identifier 122(2) is received as an output of the image processing pipeline 112. A misread character recognition component 124 generates possible identifier combinations 302 based at least in part on the first possible identifier 122(1), the possible identifier combinations 302 including at least a third possible identifier. The third possible identifier is generated by replacing a first alphanumeric character included in the first possible identifier 122(1) with a second alphanumeric character that the first alphanumeric character is mapped to in a confusing characters map 200. In examples, a determination is made regarding whether the first possible identifier 122(1), the second possible identifier 122(2), or the third possible identifier matches the unique identifier 108 associated with the component 106. Based at least in part on the first possible identifier 122(1) matching the unique identifier 108, the computing device 102 is provided with a software configuration file 128 associated with the component 106.
While aspects of the present disclosure have been particularly shown and described with reference to the examples above, it will be understood by those skilled in the art that various additional implementations may be contemplated by the modification of the disclosed machines, systems and methods without departing from the spirit and scope of what is disclosed. Such implementations should be understood to fall within the scope of the present disclosure as determined based upon the claims and any equivalents thereof. For example, although the present disclosure is described in connection with industrial machines and identifying serial numbers on injectors, the systems and techniques described herein may be useful in other implementations as well in
which it is desirable to correctly recognize a unique identifier that is embossed into a metallic surface, obscured, or otherwise not readily legible.
Claims
1. A system (500) comprising: a processor (506); and a non-transitory computer-readable medium (508) having stored thereon instructions that, when executed by the processor (506), configures the processor (506) to: receive, from a computing device (102), image (104) data 110 associated with an image (104) of an article of manufacture (106) and a unique identifier (108) disposed on the article of manufacture (106), the unique identifier (108) represented by a string of alphanumeric characters (122); generate, based on the image (104) data 110, a first possible identifier (122, 302) and a second possible identifier (122, 302); generate a third possible identifier (122, 302) based at least in part on the first possible identifier (122, 302) by replacing a first alphanumeric character (122) included in the first possible identifier (122, 302) with a second alphanumeric character (122), the first alphanumeric character (122) mapped to the second alphanumeric character (122) in a confusing alphanumeric characters map (200); determine whether one of the first possible identifier (122, 302), the second possible identifier (122, 302), or the third possible identifier (122, 302) matches with the unique identifier (108) disposed on the article of manufacture (106); and based at least in part on the first possible identifier (122, 302), the second possible identifier (122, 302), or the third possible identifier (122, 302) matching the unique identifier (108), providing, to the computing device (102), a software file (126) related to the article of manufacture (106).
2. The system (500) of claim 1, wherein the non-transitory computer-readable medium (508), when executed by the processor (506), further
configures the processor (506) to confirm proper operation of the article based on installation of the software file (126) together with the article.
3. The system (500) of claim 1, wherein generating the first possible identifier (122, 302) and the second possible identifier (122, 302) comprises: inputting, by the processor (506), the image (104) data 110 into an image (104) processing pipeline (112), the image (104) processing pipeline (112) comprising: a text localization component (116) that is configured to localize the string of alphanumeric characters (122) within the image (104) data 110; a first optical character recognition (OCR) component 118 that is configured to determine the first possible identifier (122, 302) based at least in part on the localized string of alphanumeric characters (122) within the image (104) data 110; and a second OCR component 118 that is configured to determine the second possible identifier (122, 302) based at least in part on the localized string of alphanumeric characters (122) within the image (104) data 110; and receiving, as an output from the image (104) processing pipeline (112), the first possible identifier (122, 302) and the second possible identifier (122, 302).
4. The system (500) of claim 1, wherein determining whether the first possible identifier (122, 302), the second possible identifier (122, 302), or the third possible identifier (122, 302) matches the unique identifier (108) disposed on the article of manufacture (106) comprises searching, by the processor (506), a database of unique identifier (108)s for the first possible identifier (122, 302), the second possible identifier (122, 302), and the third possible identifier (122, 302).
5. The system (500) of claim 1, wherein the non-transitory computer-readable medium (508), when executed by the processor (506), further configures the processor (506) to assign confidence scores to each one of the first possible identifier (122, 302), the second possible identifier (122, 302), and the third possible identifier (122, 302), wherein determining whether the first possible identifier (122, 302), the second possible identifier (122, 302), or the third possible identifier (122, 302) matches the unique identifier (108) disposed on the article of manufacture (106) is based at least in part on values of the confidence scores.
6. The system (500) of claim 1, wherein the non-transitory computer-readable medium (508), when executed by the processor (506), further configures the processor (506) to generate an additional possible identifier (122, 302) for each alphanumeric character included in the first possible identifier (122, 302) or the second possible identifier (122, 302) that is mapped to a confusing alphanumeric character in the confusing alphanumeric characters map (200).
7. A method comprising: receiving, from a computing device (102), image (104) data 110 associated with an image (104) of an article of manufacture (106) and a unique identifier (108) disposed on the article of manufacture (106), the unique identifier (108) represented by a string of alphanumeric characters (122); generating, based at least in part on the image (104) data 110, a first possible identifier (122, 302) and a second possible identifier (122, 302); generating a third possible identifier (122, 302) based at least in part on the first possible identifier (122, 302) by replacing a first alphanumeric character (122) included in the first possible identifier (122, 302) with a second alphanumeric character (122), the first alphanumeric character (122) mapped to the second alphanumeric character (122) in a confusing alphanumeric characters map (200);
determining whether one of the first possible identifier (122, 302), the second possible identifier (122, 302), or the third possible identifier (122, 302) matches the unique identifier (108) associated with the article of manufacture (106); and based at least in part on the first possible identifier (122, 302), the second possible identifier (122, 302), or the third possible identifier (122, 302) matching the unique identifier (108), providing, to the computing device (102), a software file (126) related to the article of manufacture (106).
8. The method of claim 7, wherein generating the first possible identifier (122, 302) and the second possible identifier (122, 302) comprises: inputting the image (104) data 110 into an image (104) processing pipeline (112), the image (104) processing pipeline (112) comprising: a text localization component (116) that is configured to localize the string of alphanumeric characters (122) within the image (104); a first optical character recognition (OCR) component 118 that is configured to determine the first possible identifier (122, 302) based at least in part on the text localization component (116) localizing the string of alphanumeric characters (122) within the image (104); and a second OCR component 118 that is configured to determine the second possible identifier (122, 302) based at least in part on the text localization component (116) localizing the string of alphanumeric characters (122) within the image (104); and receiving, as an output of the image (104) processing pipeline (112), the first possible identifier (122, 302) and the second possible identifier (122, 302).
9. The method of claim 7, wherein determining whether the first possible identifier (122, 302), the second possible identifier (122, 302), or the third possible identifier (122, 302) matches the unique identifier (108) disposed on the article of manufacture (106) comprises searching a database of unique
identifier (108)s for the first possible identifier (122, 302), the second possible identifier (122, 302), and the third possible identifier (122, 302).
10. The method of claim 9, further comprising: based at least in part on searching the database, receiving an indication of a match between the first possible identifier (122, 302) and the unique identifier (108); and determining that the first possible identifier (122, 302) is the unique identifier (108) disposed on the article of manufacture (106) based at least in part on the indication.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN202311015671 | 2023-03-09 | ||
| PCT/US2024/016973 WO2024186490A1 (en) | 2023-03-09 | 2024-02-23 | Alphanumeric recognizer for unique identifiers of articles of manufacture |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4677507A1 true EP4677507A1 (en) | 2026-01-14 |
Family
ID=90571521
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24715318.2A Pending EP4677507A1 (en) | 2023-03-09 | 2024-02-23 | Alphanumeric recognizer for unique identifiers of articles of manufacture |
Country Status (3)
| Country | Link |
|---|---|
| EP (1) | EP4677507A1 (en) |
| AU (1) | AU2024231533A1 (en) |
| WO (1) | WO2024186490A1 (en) |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5519786A (en) * | 1994-08-09 | 1996-05-21 | Trw Inc. | Method and apparatus for implementing a weighted voting scheme for multiple optical character recognition systems |
| FR2898709B1 (en) * | 2006-03-17 | 2008-09-26 | Solystic Sas | METHOD FOR MERGING POSTAL OCR OPERATING FUNCTIONS OF BELIEF |
| KR101486495B1 (en) * | 2006-09-08 | 2015-02-04 | 구글 인코포레이티드 | Feature Clustering in Post Optical Character Recognition |
| KR101860569B1 (en) * | 2011-09-08 | 2018-07-03 | 삼성전자주식회사 | Recognition device for text and barcode reconizing text and barcode simultaneously |
| CN114399768A (en) | 2022-01-11 | 2022-04-26 | 南京工业大学 | Method, device and system for identifying serial number of workpiece product based on Tesseract-OCR engine |
-
2024
- 2024-02-23 WO PCT/US2024/016973 patent/WO2024186490A1/en not_active Ceased
- 2024-02-23 AU AU2024231533A patent/AU2024231533A1/en active Pending
- 2024-02-23 EP EP24715318.2A patent/EP4677507A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| AU2024231533A1 (en) | 2025-10-02 |
| WO2024186490A1 (en) | 2024-09-12 |
| WO2024186490A9 (en) | 2025-03-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6366024B2 (en) | Method and apparatus for extracting text from an imaged document | |
| US10949661B2 (en) | Layout-agnostic complex document processing system | |
| US10521654B2 (en) | Recognition of handwritten characters in digital images using context-based machine learning | |
| US9189694B2 (en) | Image processing device and image processing method | |
| US10977513B2 (en) | Method, system and computer readable storage medium for identifying information carried on sheet | |
| US20190188729A1 (en) | System and method for detecting counterfeit product based on deep learning | |
| US9129327B1 (en) | Screenshot-based e-commerce | |
| AU2017410934B2 (en) | Detecting orientation of textual documents on a live camera feed | |
| US11741685B2 (en) | Commodity identification device, non-transitory computer-readable storage medium, and learning method | |
| US20210374455A1 (en) | Utilizing machine learning and image filtering techniques to detect and analyze handwritten text | |
| US11645022B1 (en) | Dynamic configuration of a printer for a printing operation | |
| CN112115921A (en) | Authenticity identification method, device and electronic device | |
| CN110851349B (en) | Page abnormity display detection method, terminal equipment and storage medium | |
| CN119068235A (en) | A seal recognition method, device, equipment, storage medium and product | |
| CN111680680B (en) | Target code positioning method and device, electronic equipment and storage medium | |
| US9665786B2 (en) | Confirming automatically recognized handwritten answers | |
| AU2024231533A1 (en) | Alphanumeric recognizer for unique identifiers of articles of manufacture | |
| CN111476090B (en) | Watermark identification method and device | |
| US11593591B2 (en) | Optical character recognition systems and methods | |
| US7133556B1 (en) | Character recognition device and method for detecting erroneously read characters, and computer readable medium to implement character recognition | |
| CN112070092A (en) | Verification code parameter acquisition method and device | |
| WO2020240160A1 (en) | Systems and methods for printed code inspection | |
| CN117152760A (en) | Image processing method, terminal equipment and storage medium | |
| CN115203364A (en) | Software fault feedback processing method, device, equipment and readable storage medium | |
| Su et al. | Enhancing the Mongolian historical document recognition system with multiple knowledge-based strategies |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20250812 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |