IP Library Granted Patent US 12,524,936
Granted Patent B1
US 12,524,936 · App. 18/231,959 · Granted Jan 13, 2026

Circuit board image analysis

Inventors: Alexander Fafard (Rochester, NY); Austin Fletcher (Keego Harbor, MI)
Assignee: Two Six Labs, LLC
G06T11/206G06T7/0004G06T2207/30141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,524,936
App. No.
18/231,959
Granted
Jan 13, 2026
Kind
B1
Abstract

A circuit analysis application receives an imaged representation of a circuit, such as a schematic, circuit board image, scan result, or other similar electronic pixelated representation capable of raster (video screen renderable) visualization. The application iterates through a sequence of extraction and classification operations, including an object or component extraction for identifying discrete components of the circuit, traces denoting connections between the components, and component identification for determining a type, and hence the electrical properties, of each component and the connections to other components. The result is a graph of circuit components and connections to other components, normalized in a form suitable for comparison to other circuit representations and stored in a database for subsequent comparison and identification with other unknown circuit forms.

Claims (68)

1 . A method for analyzing a circuit representation for generating a graph of interconnected components, comprising:

scanning a functional rendering of a circuit for identifying a plurality of windows, each window depicting a location of a respective component of a plurality of components in the circuit;

scanning the functional rendering for identifying connections between the windows; and

generating a graph indicative of circuit elements and traces interconnecting the circuit elements based on coalescing the plurality of windows with the identified connections, coalescing including mapping each of the connections to a plurality of the windows, each of the mapped connections indicative of a trace between the components in the respective windows, mapping the connection including:

subtracting the windows from the functional rendering;

identifying traces in the functional rendering;

for each trace, computing connections based on a correspondence of a location of a window and a location of a termination of the trace, by:

computing a path defined by a trace:

identifying a closest window to the path, the window indicative of the corresponding component;

traversing a plurality of directions from the path;

determining if any of the plurality of directions connects to the window; and

determining connectivity of the trace based on an alignment of the path with the direction connecting to the window.

2 . The method of claim 1 further comprising identifying a plurality of connections, each connection extending from a first window of the plurality of windows to at least one other window of the plurality of windows.

3 . The method of claim 1 wherein mapping the connection includes:

determining an endpoint of the connection, and

computing a distance to a nearest component from the endpoint.

4 . The method of claim 1 further comprising:

computing connectivity based on a trace continuously extending between windows; and

storing the computed connectivity in a connectivity matrix of components based on the components located within the respective windows.

5 . The method of claim 1 wherein the traversed directions include an 8-way connected component analysis from a position on the path.

6 . The method of claim 1 wherein coalescing further comprises:

determining, for each connection, a plurality of endpoints corresponding to the connection;

determining, for each endpoint of the plurality of endpoints, a location of the endpoints of the connection; and

computing connectivity of a connection based on a correspondence between the location of the endpoint and the location of a respective window.

7 . The method of claim 1 further comprising:

identifying, for each window, a set of connected traces from the traces determined to connect to the window;

forming a stacked plane representation of each window and the connected traces;

determining connectivity between components based on a correspondence of a location of the connected traces between a plurality of the windows; and

storing an entry indicative of the connection between the components corresponding to the windows when a connected trace from the set of connected traces from two or more windows align.

8 . The method of claim 1 further comprising identifying, for each of the windows, a component type indicative of the component occupying the window.

9 . The method of claim 1 wherein the functional rendering includes a raster representation of an image, schematic, diagram, alphanumeric or symbolic representation of a plurality of components and at least one connection between the plurality of components.

10 . The method of claim 9 wherein the function rendering is a two dimensional depiction of a PCB (printed circuit board).

11 . The method of claim 8 further comprising:

determining, based on the component type, a polarity indicative of current flow to each respective connection; and

generating a directed graph indicative of a direction of current flow on each respective connection.

12 . The method of claim 1 further comprising:

determining an intersection between a first trace and a second trace;

concluding that the intersection defines an electrical conductivity between the traces; and

defining the intersection as a component and the intersection traces as connections to the defined component.

13 . A device for analyzing a circuit representation for generating a graph of interconnected components, comprising:

a scan interface for scanning a functional rendering of a circuit for identifying a plurality of windows each depicting a location of a respective component of a plurality of components in the circuit;

an application configured to:

identify, for each of the windows, a component type indicative of the component occupying the window;

analyze the scan of the functional rendering for identifying connections between the windows; and

generate a graph indicative of circuit elements and traces based on coalescing the plurality of windows with the identified connections, coalescing including mapping each of the connections to a plurality of the windows, each of the mapped connections indicative of a trace between the components in the respective windows, the application further configured to:

subtract the windows from the functional rendering;

identify traces in the functional rendering;

for each trace, compute connections based on a correspondence of a location of a window and a location of a termination of the trace, by:

compute a path defined by a trace;

identify a closest window to the path, the window indicative of the corresponding component;

traverse a plurality of directions from the path;

determine if any of the plurality of directions connects to the window; and

determine connectivity of the trace based on an alignment of the path with the direction connecting to the window; and

a rendering device for displaying the generated graph.

14 . The device of claim 13 , wherein the application is further configured to identify a plurality of connections, each connection extending from a first window of the plurality of windows to at least one other window of the plurality of windows.

15 . The device of claim 13 , further comprising a connectivity matrix for storing the identified connections between the components based on the components located within the respective windows.

16 . A computer program embodying program code on a non-transitory computer readable storage medium that, when executed by a processor, performs steps for implementing a method for analyzing a circuit representation for generating a graph of interconnected components, the method comprising:

scanning a functional rendering of a circuit for identifying a plurality of windows, each window depicting a location of a respective component of a plurality of components in the circuit;

scanning the functional rendering for identifying connections between the windows; and

generating a graph indicative of circuit elements and traces interconnecting the circuit elements based on coalescing the plurality of windows with the identified connections, coalescing including mapping each of the connections to a plurality of the windows, each of the mapped connections indicative of a trace between the components in the respective windows, mapping the connection further including:

subtracting the windows from the functional rendering;

identifying traces in the functional rendering;

for each trace, computing connections based on a correspondence of a location of a window and a location of a termination of the trace, by:

computing a path defined by a trace;

identifying a closest window to the path, the window indicative of the corresponding component;

traversing a plurality of directions from the path;

determining if any of the plurality of directions connects to the window; and

determining connectivity of the trace based on an alignment of the path with the direction connecting to the window.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 8, 2026
From: TWO SIX LABS, LLC; TWO SIX LABS HOLDINGS, INC.; THRESHER VENTURES, LLC
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 075719/0185 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2026
From: FAFARD, ALEXANDER; FLETCHER, AUSTIN
To: TWO SIX LABS, LLC
Reel/Frame 073401/0251 →
References Cited (8)
US 6112407A · Hagner · 2000 [cited by examiner]
US 6507670B1 · Moed · 2003 [cited by examiner]
US 20020170027A1 · Teig · 2002 [cited by examiner]
US 20140270480A1 · Boardman · 2014 [cited by examiner]
US 20180067996A1 · Virshup · 2018 [cited by examiner]
US 20230125477A1 · Gurumurthy · 2023 [cited by examiner]
Lakshman Naika R, Dinesh R, and Prabhanjan S.“Handwritten Electric Circuit Diagram Recognition: An Approach Based on Finite State Machine”. International Journal of Machine Learning and Computing, vol. 9, No. 3, Jun. 20… [cited by examiner]
Rabbani, Mahdi, et al. “Hand drawn optical circuit recognition.” Procedia Computer Science 84 (2016): 41-48. (Year: 2016). [cited by examiner]