Multi-tier PCBA integrity validation process

The system stores a first template which comprises an image of a first validated printed circuit board assembly (PCBA) and stores a first image of an unvalidated PCBA captured prior to shipping of the unvalidated PCBA from a first site to a second site. The system generates a second template which comprises an image of a second validated PCBA corresponding to the first validated PCBA. The system captures a second image of the unvalidated PCBA subsequent to arrival at the second location and a third image prior to installation into a computer system. The system detects an anomaly associated with the unvalidated PCBA based on comparisons between one or more of: the first template and the second template; the first image and the first template; the second image and the second template; the third image and the second template; the first image, the second image, and the third image.

BACKGROUND

Field

This disclosure is generally related to the field of production management. More specifically, this disclosure is related to multi-tier printed circuit board assembly (PCBA) integrity validation process.

DETAILED DESCRIPTION

The following description is presented to enable any person skilled in the art to make and use the aspects and examples, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects and applications without departing from the spirit and scope of the present disclosure. Thus, the aspects described herein are not limited to the aspects shown, but are to be accorded the widest scope consistent with the principles and features disclosed herein.

The production and assembly of a printed circuit board (PCB) and the final assembly of the PCB generally occur at different physical factories or sites. The PCB assembly can occur at a first site (e.g., a factory at which components are mounted onto the PCB to obtain a PCB assembly (PCBA) and the final assembly (FA) can occur at a second site (e.g., an FA factory). In general, the term “PCB” refers to a fabricated board without components mounted on the board, while the term “PCBA” refers to a fabricated board with components mounted on the board. In this disclosure, the terms PCB and PCBA may be used interchangeably. Between the two sites and at various stages of processing/shipping/handling during the supply chain, the PCBA may be subject to integrity breaches relating to humans, knowledge, technology, and processes. These breaches may involve both cyber or online security and physical security and may result in vulnerabilities based on attacks related to political or commercial use. PCBAs may be authenticated in several different areas, including: product and firmware authentication check; computer vision intelligence; electrical testing; impedance scan testing; and a run-time thermal scan.

The described aspects provide a system which uses computer vision intelligence to ensure integrity validation and perform detection of anomalies (e.g., PCBAs which do not conform to an expected template or standard). Computer vision intelligence systems can be used to perform intelligent analysis of components (e.g., packaging, count, identification, height), boards (e.g., via verification, connector verification, and estate occupancy), and images (e.g., surface-based landscape intelligence analysis, grid-based analysis, and color-greyscale analysis).

The described aspects leverage computer vision systems to ensure integrity validation and perform anomaly detection of PCBAs by using a “golden template” (an image of a validated PCBA taken at the first site using a first optical setup) and a “silver template” (image of the same or another validated PCBA taken at the second site using a second optical setup). Because environmental conditions such as air temperature and lighting and optical lens differences may not precisely match, it can be challenging to configure two optical setups in exactly the same manner, e.g., to obtain two identical images of a same physical object (such as a validated PCBA). As a result, the first and second optical setups can be configured to match as much or as closely as possible, but may vary by an amount less than a certain threshold.

Using the generated golden and silver templates, the described aspects can detect anomalies in an unvalidated PCBA by capturing multiple images of the unvalidated PCBA in various stages (e.g., using a computer vision system) and comparing the multiple images with the golden and silver templates and with each other. The multiple images of the unvalidated PCBA can include: a “first image” captured or taken prior to shipping from the first site to the second site; a “second image” captured or taken subsequent to arrival at the second site; and a “third image” captured or taken prior to installation in a computer system or assembly line, as described below in relation toFIGS.1,4B, and6A.

The described aspects can also use the computer vision system to perform the comparisons of the images for a given PCBA in multiple tiers, e.g., once for each of the following three tiers or layers based on: a percentage of space occupied and not occupied by components residing on the given PCBA; a number of components residing on the given PCBA; and a placement of tracks which run on the given PCBA.

By performing these comparisons of the images taken at different stages of the supply chain process and by using the multiple tiers for analysis, the described aspects can detect anomalies by identifying issues which may occur during production at the first site, transportation between the sites, and handling before installation at the second site.

Overview of Computer Vision Systems

In general, computer vision systems can involve image acquisition, image analysis, and result reporting. Image acquisition can be performed by hardware (including various optical setups) and can depend on sensor image quality, optical lens design and performance, and lighting reliability and repeatability. Image analysis can be performed by software and can include component verification, machine vision algorithm, and machine vision software. Result reporting can be performed by a system and can include integration (e.g., data correlation with manufacturing records) and outcome visualization (e.g., outlier identification, potential risk prediction, heat map generation, and alert/notification/investigation).

The system can perform model preparation and outcome visualization by performing various operations via modules.FIG.2Aillustrates a diagram200of modules for training a template and model preparation, in accordance with an aspect of the present application. Diagram200depicts how the system can take as input an image template202and perform macro feature extraction (module204), segmentation (module206), and micro feature extraction (module208). The macro and micro feature extraction can include, e.g., positive and negative image subtraction (module220), noise elimination, Red Green Blue (RGB) thresholding, and median filtering (module222), as well as determining the estate (occupied/unoccupied) of the PCB and information associated with a component or a color (respectively, modules224,226, and228). The system can perform classifier generation (module210), which can be based on a variety of classification methods or classifiers (module230), and can output information which can be used to prepare the model (module212).

FIG.2Billustrates a diagram240of modules for computer vision and analysis and for outcome visualization, in accordance with an aspect of the present application. Diagram240depicts how the system can take as input an image capture or perform the image capture (module242) and perform macro feature extraction (module244), which can include, e.g., positive and negative image subtraction (module260), noise elimination, RGB thresholding, and median filtering (module262), as well as edge analysis (module264). The system can perform segmentation (module246) and micro feature extraction (module248), which can include, e.g., contrast analysis, component analysis, via analysis, grid-based analysis, color-based analysis, and occupancy analysis (respectively, modules266,268,270,272,274, and276). The system can perform model classification (module250), e.g., based on differential analysis (module278), and can output information which can be used to perform outcome visualization (module252, as described below in relation toFIGS.5A and5B).

Diagram240depicts steps performed by a computer vision system. The described aspects provide a system which can perform image-to-image comparisons as well as image-to-data comparisons, using the golden template, the silver template, and multiple images of an unvalidated PCBA during various stages of a production/transportation/assembly process, as described below in relation toFIGS.1,4A,4B, and6A.

Environment which Facilitates a Multi-Tier PCBA Integrity Validation Process

FIG.1illustrates an environment100which facilitates a multi-tier PCBA integrity validation process, in accordance with an aspect of the present application. Environment100can include a first site110(e.g., a PCBA factory) and a second site150(e.g., a final assembly factory). Each site can include one or more optical setups used to capture images of validated and unvalidated PCBAs. These optical setups may exist in a same or different room or location in each site. As discussed above, even if an image of a physical object (such as a PCBA) is captured by the same optical setup, the variances in environmental conditions may result in challenges in obtaining two identical images of the same physical object. While the optical setups in the same site in environment100may occur in the same physical location, the optical setups are depicted as located in distinct locations or rooms for purposes of illustration and to indicate the above-described challenges.

Each optical setup can include a camera or other image-capturing device with a lens, which captures an image of a physical object and outputs a corresponding digital image. For example, site110can include a location120with an optical setup124, which captures an image of the physical object (a validated PCBA122) and outputs the corresponding digital image (a golden template126). Similarly, site110can include a location130with an optical setup134, which captures an image of the physical object (an unvalidated PCBA132prior to shipping) and outputs the corresponding digital image (image1136).

In addition, site150can include: a location160with an optical setup164, which captures an image of the physical object (a validated PCBA122/162) and outputs the corresponding digital image (a silver template166); a location170with an optical setup174, which captures an image of the physical object (unvalidated PCBA132upon arrival to site150) and outputs the corresponding digital image (image2176); and a location180with an optical setup184, which captures an image of the physical object (unvalidated PCBA132prior to installation into a computer system or an assembly line) and outputs the corresponding digital image (image3186). In site150, locations160and170(which can be identical locations, as described above) may be distinct from or identical to location180. For example, optical setups which capture arriving (validated or unvalidated PCBAs) may be located in an area152of site150, while optical setups which capture an unvalidated PCBA immediately prior to installation may be located in an area156which is different from area152. In addition, in site150, an unvalidated PCBA may pass through one or more separate areas154(as indicated by operations178), during which time the unvalidated PCBA may be handled and processed prior to installation of the unvalidated PCBA.

Specifically, at first site110, given a validated PCBA122(e.g., a “golden board”) and an unvalidated PCBA132which corresponds to validated PCBA122, the system can generate/store an image (golden template126) of validated PCBA122using optical setup124and also generate/store a first image (image1136) of unvalidated PCBA132captured prior to shipping unvalidated PCBA132. Unvalidated PCBA132(and in some cases, validated PCBA122) can be transported from first site110to second site150via a transport140(such as an airborne-vessel142, a land-based vehicle144, or a seaborne-vessel146).

Upon arrival at site150, the system can generate/store a second image (image2176) of unvalidated PCBA132using optical setup174. In some aspects, validated PCBA122may also arrive at site150. Regardless, given either validated PCBA122or another similarly validated PCBA162arriving or on site at site150, the system can generate/store an image (silver template166) of validated PCBA122/162using optical setup164. Subsequently, unvalidated PCBA132may be transported within site150from an arrival-related location (e.g.,152) to an assembly- or installation-related location (e.g.,156), through one or more other locations (e.g.,154). During the time between arrival and installation, unvalidated PCBA132may be handled by various operators or machines for processing prior to installation (e.g.,178). Prior to installing unvalidated PCBA132in a computer system (e.g., in a server or other computing device) or an assembly line, the system can generate/store a third image (image3186) of unvalidated PCBA132using optical setup184.

Each of the captured images (i.e., golden template126, image1136, silver template166, image2176, and image3186) can be generated, stored, managed, and analyzed by a computer vision system and by a data correlation system, as described below in relation toFIG.3.

FIG.3illustrates an environment300which facilitates a multi-tier PCBA integrity validation process, including inputs into a computer vision system, in accordance with an aspect of the present application. Environment300can include: a PCBA site310; a trusted data hub320; a final assembly site330; a computer vision and image intelligence system340; and a data correlation visualization and reporting system350. At PCBA site310, the system can generate a master template312(similar to golden template126) and an image of outgoing PCBA314(similar to image1136) and transmit these images312and314to systems340and350. Similarly, at final assembly site330, the system can generate a silver template332(similar to silver template166) and an image of incoming PCBA334(similar to image2176or image3186) and transmit these images332and334to systems340and350. Trusted data hub320can include, e.g.: work orders; build information; site information; shipping information; and component information. Furthermore, systems340and350can perform various processing and analysis of the incoming images, as described in relation toFIGS.2A,2B,5A, and5B.

Comparisons of Golden Template, Silver Template, and Images of Unvalidated PCBAs (Two or Three Images) for Anomaly Detection

FIG.4Aillustrates an exemplary process400which facilitates a multi-tier PCBA integrity validation process, including comparisons for anomaly detection, in accordance with an aspect of the present application. Given a golden template402(similar to golden template126), a silver template404(similar to silver template166), and an image of a board of interest (BOI)406(similar to any of images136,176, and186), process400can include: a first comparison420(ΔG) between golden template402and silver template404; a second comparison422(Δx) between golden template402and BOI image406; and a third comparison424(Δy) between silver template404and BOI image406. Process400can determine differences (operation426), which can include: a first difference (Δx′) between a result of the first comparison and a result of the second comparison (i.e., Δx−ΔG) (determination428); and a second difference between the result of the first comparison and a result of the third comparison (i.e., Δy−ΔG) (determination430).

An anomaly detection module410can detect an anomaly A (operation432) as: a function of the first comparison, the second comparison, and the third comparison (i.e., A=f (ΔG, Δx, Δy)) (determination434); or more specifically, by performing an exclusive OR on the first difference and the second difference to obtain a first operand (i.e., A=(Δx′ XOR Δy′)) (determination436). The result of determination436can be the first operand and can indicate whether an anomaly is present.

FIG.4Billustrates an exemplary process440which facilitates a multi-tier PCBA integrity validation process, including comparisons for anomaly detection, in accordance with an aspect of the present application. In process440, BOI image406of process400is replaced by images of board of interest450, which can include three images: an image1452(similar to image1136and captured prior to shipping from the first site to the second site); an image2454(similar to image2176and captured subsequent to or upon arrival at the second site); and an image3456(similar to image3186and captured prior to installation in a computer system or on an assembly line).

Process440can include: a first comparison420(ΔG) between golden template402and silver template404; a second comparison422(Δx) between golden template402and image1452; a third comparison424(Δy) between silver template404and image2454; a fourth comparison462(Δz) between silver template404and image3456; a fifth comparison464(ΔD12) between image1452and image2454; a sixth comparison466(ΔD13) between image1452and image3456; and a seventh comparison468(ΔD23) between image2454and image3456.

Process440can determine differences (operation470), which can include: determining that no difference exists between a result of the fifth comparison and a result of the sixth comparison (i.e., ΔD12−ΔD13=0) (determination472); determining that no difference exists as a result of the seventh comparison (i.e., ΔD23=0) (determination474); determining a first difference (Δx′) between a result of the first comparison and a result of the second comparison (i.e., Δx−ΔG) (determination476); determining a second difference (Δy′) between the result of the first comparison and a result of the third comparison (i.e., Δy−ΔG) (determination478); and determining a third difference (Δz′) between the result of the first comparison and a result of the fourth comparison (i.e., Δz−ΔG) (determination480).

Anomaly detection module410can detect an anomaly A (operation482) as a function of the first comparison, the second comparison, the third comparison, and the fourth comparison (i.e., A=f (ΔG, Δx, Δy, Δz) (determination484). More specifically, anomaly detection module410can perform: an exclusive OR (XOR) operation on the first difference and the second difference to obtain a first operand (i.e., first operand=(Δx′ XOR Δy′); an exclusive OR (XOR) operation on the first difference and the third difference to obtain a second operation (i.e., second operand=(Δx′ XOR Δz′); and a logical AND (&&) operation on the first operand and the second operand to obtain a result which indicates whether an anomaly is present (i.e., first operand && second operand, or, more specifically, ((Δx′ XOR Δy′) && (Δx′ XOR Δz′)) (determination486).

Anomaly Detection by Performing Comparisons in Multiple Tiers and Outcome Visualization Screens

The described aspects can perform the anomaly detection described above in relation toFIGS.4A and4B(and below in relation toFIGS.6A, and6B) in multiple tiers or using a layered methodology. In a first tier or layer, the system can perform the comparisons based on the physical space or estate occupied by the components on a given PCBA, e.g., a percentage of space occupied and not occupied by components residing on the PCBAs in the first template, the second template, the first image, the second image, and the third image. In a second tier or layer, the system can perform the comparisons based on the number of components on the given PCBA, e.g., a number of components residing on the PCBAs in the first template, the second template, the first image, the second image, and the third image. In a third tier or layer, the system can perform the comparisons based on tracks which run on the given PCBA, e.g., a placement of tracks which run on the PCBAs in the first template, the second template, the first image, the second image, and the third image.

Based on the comparisons from these multiple tiers or layers, the system can detect an anomaly (e.g., possible fraud) and determine certain information such as: whether a component is different in one image versus another image; whether a solder associated with a component is not proper in one image versus another image; whether a component has shifted in one image versus another image; and whether the color of a track has changed, e.g., from a copper color to a black color, which can indicate that the track has been tempered or undergone a significant temperature change.

The system (e.g., computer vision and image intelligence system340and data correlation visualization and reporting system350ofFIG.3) can generate a color-coded map as well as specific layer maps for each tier (i.e., layer 1 estate, layer 2 component, and layer 3 PCB runner). The system can also use a heat map to identify different segments of a given PCBA or PCB/PCBA component. The system can further use machine learning to identify and classify components, features, characteristics, and anomalies.

FIG.5Apresents screens510and520which can be displayed to a user as part of anomaly detection, in accordance with an aspect of the present application. Screen510can include a left pane which displays a zoomed-in view514of a PCBA512(or other component), as shown in a right pane and indicated with a red outline. Zoomed-in view514can indicate faulty components or areas of PCBA512using visual indicators such as color, shading, or other distinguishing labels (e.g., as indicated with the overlaying red-colored portions in zoomed-in view514). Screen510can also include information relating to anomaly detection of a certain characteristic of the PCBA, e.g., a fault count for a number of components of 27 (element516) and a faulty estate percentage of 5.400% (element518). Screen510can include actionable elements as part of a graphical user interface which allows a user to select a faulty component or area in zoomed-in view514and can result in the display of screen520.

Screen520can include the left pane which displays a zoomed-in view of an identified or visually indicated faulty component530of PCBA522(as shown with a red outline in the right pane). The zoomed-in view of faulty component530can be divided into several segments, e.g., a 3×3 grid of nine squares indicated as squares532-548. Some of the squares may appear with the faulty visual indicator (e.g., the overlaying red color in squares536,538, and540) while others may appear without the faulty visual indicator (e.g., squares532,534,542,544,546, and548). The user may select one of the squares with the faulty visual indicator (e.g., square540with the overlaying red color), which can result in the display of screen550ofFIG.5B.

FIG.5Bpresents a screen550which can be displayed to a user as part of anomaly detection, in accordance with an aspect of the present application. Screen550can include the left pane which displays a zoomed-in view of a previously selected portion (square540shown with a red outline) of PCBA522(as shown in the right pane). In the left pane, the zoomed view of square540can further indicate, in greater detail, faulty components or areas in square540of PCBA512using visual indicator such as color, shading, or other distinguishing label (e.g., a red outline in a rectangular or circular shape). Further zoomed-in views which result in subsequent screens are possible (not shown). In addition, screens510,520, and550may display other information, including X-Y coordinates which indicate a location of the zoomed-in view in relation to the entire PCBA or selected component (e.g., a square), as well as information related to any analysis performed by the modules described above in relation toFIGS.2A and2B.

Methods which Facilitates a Multi-Tier PCBA Integrity Validation Process

FIG.6Apresents a flowchart600illustrating a method which facilitates a multi-tier PCBA integrity validation process, in accordance with an aspect of the present application. During operation, the system stores a first template which comprises an image of a first validated printed circuit board assembly (PCBA) (operation602). The system stores a first image of an unvalidated PCBA captured prior to shipping of the unvalidated PCBA from a first site to a second site (operation604). The system generates a second template which comprises an image of a second validated PCBA corresponding to the first validated PCBA (operation606). The second validated PCBA may be the same or a different board than the first validated PCBA. The system captures a second image of the unvalidated PCBA subsequent to arrival of the unvalidated PCBA at the second site (operation608). The system captures a third image of the unvalidated PCBA prior to installation of the unvalidated PCBA into a computer system or an assembly line (operation610). The system detects an anomaly associated with the unvalidated PCBA based on results of one or more of: a first comparison between the first template and the second template; a second comparison between the first image and the first template; a third comparison between the second image and the second template; a fourth comparison between the third image and the second template; a fifth comparison between the first image and the second image; a sixth comparison between the first image and the third image; and a seventh comparison between the second image and the third image (operation612). The system provides, to a user associated with the unvalidated PCBA at the first site or the second site, a notification of the detected anomaly (operation614). The system displays, based on the notification on a screen of a computing device associated with the user, a visual outcome of the detected anomaly in a graphical user interface (operation616). The operation continues at Label A ofFIG.6B.

FIG.6Bpresents a flowchart620illustrating a method which facilitates a multi-tier PCBA integrity validation process, in accordance with an aspect of the present application. Flowchart620illustrates how the system can detect an anomaly using the results of the comparisons described above inFIGS.4A,4B, and6A. The system determines a first difference between a result of the first comparison and a result of the second comparison (operation622). The system determines a second difference between the result of the first comparison and a result of the third comparison (operation624). The system performs an XOR operation on the first difference and the second difference to obtain a first operand (operation626). In some aspects, the first operand indicates whether an anomaly is present (as described above in relation toFIG.4A).

The system determines that no difference exists between a result of the fifth comparison and a result of the sixth comparison (operation628) and determines that no difference exists as a result of the seventh comparison (operation630). The system determines a third difference between the result of the first comparison and a result of the fourth comparison (operation632). The system performs an XOR operation on the first difference and the third difference to obtain a second operand (operation634). The system performs a logical AND operation on the first operand and the second operand to obtain a result which indicates whether an anomaly is present (operation636). The operation returns.

Computer System and Apparatus

FIG.7illustrates a computer system which facilitates a multi-tier PCBA integrity validation process, in accordance with an aspect of the present application. Computer system700includes a processor702, a volatile memory706, and a storage device708. Volatile memory706can include, e.g., random access memory (RAM), that serves as a managed memory, and can be used to store one or more memory pools. Storage device708can include persistent storage which can be managed or accessed via processor702. Furthermore, computer system700can be coupled to peripheral input/output (I/O) user devices710, e.g., a display device711, a keyboard712, and a pointing device714. Storage device708can store an operating system716, a content-processing system718, and data736. Computer system700may include fewer or more modules than those shown inFIG.7.

Content-processing system718can include instructions, which when executed by computer system700, can cause computer system700or processor702to perform methods and/or processes described in this disclosure. Specifically, content-processing system718can include instructions for receiving and transmitting data packets and instructions relating to images, notifications, and anomalies (communication module720).

Content-processing system718can further include instructions for storing a first template which comprises an image of a first validated PCBA (golden template-managing module722). Content-processing system718can include instructions for storing a first image of an unvalidated PCBA captured prior to shipping of the unvalidated PCBA from a first site to a second site (first image-managing module726). Content-processing system718can include instructions for generating a second template which comprises an image of a second validated PCBA corresponding to the first validated PCBA (silver template-managing module724). Content-processing system718can include instructions for capturing a second image of the unvalidated PCBA subsequent to arrival of the unvalidated PCBA at the second site (second image-managing module728). Content-processing system718can include instructions for capturing a third image of the unvalidated PCBA prior to installation of the unvalidated PCBA into a computer system or an assembly line (third image-managing module730). Content-processing system718can also include instructions for detecting an anomaly associated with the unvalidated PCBA based on results of one or more of: a first comparison between the first template and the second template; a second comparison between the first image and the first template; a third comparison between the second image and the second template; a fourth comparison between the third image and the second template; a fifth comparison between the first image and the second image; a sixth comparison between the first image and the third image; and a seventh comparison between the second image and the third image (anomaly-detecting module732).

Content-processing system718can additionally include instructions for providing, to a user associated with the unvalidated printed circuit board at the first site or the second site, a notification of the detected anomaly, and displaying, based on the notification on a screen of a computing device associated with the user, a visual outcome of the detected anomaly in a graphical user interface (visual information-managing/displaying module734) (as described above in relation toFIGS.5A and5B).

Data736can include any data that is required as input or generated as output by the methods and/or processes described in this disclosure. Specifically, data736can store at least: a template; an image; an image of a validated or an unvalidated PCBA; an image of an unvalidated PCBA at three different times (e.g., first, second, and third images as described in relation toFIGS.1and4B); an indicator of an anomaly; a comparison between template, images, and a template and an image; a result of a comparison; an indicator of an optical setup; a site identifier; a difference; a result of an exclusive OR or a logical AND operation; a percentage of space occupied and not occupied by components residing on a PCBA; a number of components residing on a PCBA; an indicator of a placement of tracks which run on a PCBA; a notification of a detected anomaly; and information to be displayed as a visual outcome of a detected anomaly.

FIG.8illustrates an apparatus800which facilitates a multi-tier PCBA integrity validation process, in accordance with an aspect of the present application. Apparatus800can comprise a plurality of units or apparatuses which may communicate with one another via a wired, wireless, quantum light, or electrical communication channel. Apparatus800may be realized using one or more integrated circuits, and may include fewer or more units or apparatuses than those shown inFIG.8. Furthermore, apparatus800may be integrated in a computer system, or realized as a separate device or devices capable of communicating with other computer systems and/or devices.

Apparatus800may also include a non-volatile storage system or a memory management unit. Apparatus800can comprise modules or units802-816which are configured to perform functions or operations similar to modules720-734of computer system700ofFIG.7, including: a communication unit802; a golden template-managing unit804; a silver template-managing unit806; a first image-managing unit808; a second image-managing unit810; a third image-managing unit812; an anomaly-detecting unit814; and a visual information-managing/displaying unit816.

In general, the disclosed aspects provide a system for facilitating a multi-tier PCBA integrity validation process. As described above, the terms “PCB” and “PCBA” are used interchangeably in this disclosure. In one aspect, during operation, the system stores a first template which comprises an image of a first validated printed circuit board assembly (PCBA). The system stores a first image of an unvalidated PCBA captured prior to shipping of the unvalidated PCBA from a first site to a second site. The system generates a second template which comprises an image of a second validated PCBA corresponding to the first validated PCBA. The system captures a second image of the unvalidated PCBA subsequent to arrival of the unvalidated PCBA at the second site. The system captures a third image of the unvalidated PCBA prior to installation of the unvalidated PCBA into a computer system or an assembly line. The system detects an anomaly associated with the unvalidated PCBA based on results of one or more of: a first comparison between the first template and the second template; a second comparison between the first image and the first template; a third comparison between the second image and the second template; a fourth comparison between the third image and the second template; a fifth comparison between the first image and the second image; a sixth comparison between the first image and the third image; and a seventh comparison between the second image and the third image.

In a variation on this aspect, the first template is generated by capturing the image of the first validated PCBA based on a first optical setup at the first site, and the second template is generated by capturing the image of the second validated circuit board based on a second optical setup at the second site. The first and second optical setup may be configured to match as closely as possible.

In a further variation on this aspect, the system ships the first validated PCBA from the first site to the second site, and the second validated PCBA comprises the first validated PCBA.

In a further variation, the system detects the anomaly further based on: determining a first difference between a result of the first comparison and a result of the second comparison; determining a second difference between the result of the first comparison and a result of the third comparison; and performing an exclusive OR on the first difference and the second difference to obtain a first operand, wherein the first operand indicates whether an anomaly is present.

In a further variation, the system detects the anomaly further based on: determining that no difference exists between a result of the fifth comparison and a result of the sixth comparison; and determining that no difference exists as a result of the seventh comparison.

In a further variation, the system detects the anomaly further based on: determining a third difference between the result of the first comparison and a result of the fourth comparison; performing an exclusive OR on the first difference and the third difference to obtain a second operand; and performing a logical AND on the first operand and the second operand to obtain a result which indicates whether an anomaly is present.

In a further variation, the system detects the anomaly further based on performing the comparisons in multiple tiers, based on each of: a percentage of space occupied and not occupied by components residing on the PCBAs in the first template, the second template, the first image, the second image, and the third image; a number of components residing on the PCBAs in the first template, the second template, the first image, the second image, and the third image; and a placement of tracks which run on the PCBAs in the first template, the second template, the first image, the second image, and the third image.

In a further variation, detecting the anomaly is performed by a computer vision system. The system provides, by the computer vision system to a user associated with the unvalidated PCBA at the first site or the second site, a notification of the detected anomaly. The system displays, based on the notification on a screen of a computing device associated with the user, a visual outcome of the detected anomaly in a graphical user interface.

Furthermore, the methods and processes described above can be included in hardware devices or apparatus. For example, the hardware devices or apparatus can include, but are not limited to, application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), dedicated or shared processors that execute a particular software program or a piece of code at a particular time, and other programmable-logic devices now known or later developed. When the hardware devices or apparatus are activated, the hardware modules perform the methods and processes included within them.

The foregoing descriptions of aspects have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the aspects described herein to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the aspects described herein. The scope of the aspects described herein is defined by the appended claims.