Metrology is the science of measurement. The word comes from "metron" and "logos".
Purpose
Metron is a tool for automatically obtaining useful information from printed circuit boards, like:
- High magnification live video with precise control of viewpoint.
- Super-resolution scanned images.
- Multidimensional super-resolution scanned images (multiple viewpoints from every location)
Such information is directly useful for manual inspection and reverse-engineering, but when combined with software that incorporates recently developed powerful computer vision and machine learning algorithms it can allow for nearly magical exploration of unknown electrical systems.
3D Models of PCBs
Taking advantage of two neat computer vision techniques called multiview reconstruction and depth-from-focus, Metron should be able to generate high resolution 3D scans of printed circuit boards. My hope is that these scans will be of sufficient resolution to distinguish the smallest of surface mount parts, pins of chips, vias, and the height difference between traces and bare board.
Extract Netlists
Once a high resolution 3D scan of a PCB is obtained it can be processed to extract useful information about the circuit structure of the PCB. Parts, pads, vias, and traces can be automatically segmented using a combination of visual and structural feature recognition. Some parts can be identified by reading their part numbers or matching them to known parts in a database. With all of the information put together candidate netlists for the circuit on the PCB can be generated and scored.
Semi-automatic Reverse Engineering
After as much information as possible has been extracted from the scans and run through machine intelligence the result will likely be very poor. Missing information caused by traces under parts, multilayer boards, mis-identified parts, scan errors, and many other factors will almost guarantee that the guessed netlists are very incorrect.
But an interactive system has some hope of reaching useful results. After the first run of processing a human can use the initial machine guesses to guide further analysis. For example, if the netlist is corrupted by traces being obscured under parts then the engineer can remove the parts and rescan those areas. With the new information better guesses can be generated and new analysis can be done. In that sort of feedback loop the errors in the shared human-machine understanding the target circuit can be quickly whittled down to zero.
I'm really excited about this project because a) it's awesome, and b) I've had an idea for a while of a machine to automatically disassemble PCBAs to salvage the parts. (The general idea I have so far is two opposable delta arms each equipped with a desoldering iron, tweezers, suction nozzle, jamming gripper, etc., with a controllable PCB vise in between.) I was thinking of possibly having it take data of some sort as it disassembles to enable reverse engineering, so I think my machine and yours would complement each other very well. They could even pass the board back and forth, removing parts and rescanning, like you said with a human.
Also, just a small thing: I think you're maybe a bit optimistic to hope to distinguish the height of the traces from the height of the board using depth-from-focus, because there's not much to focus on except the edges of the traces. But I'm not an expert on it, so if you can do that, that would be amazing.