This is an old revision of the document!
Table of Contents
Confocal Imaging Computer Vision (CFCV) tookit
This page is about the pr0nsweeper Python GUI that allows a human to quickly review and fix CV results.
Although this page is public its not advertised. I would like to keep it low profile for the time being until the suite is more mature.
Keyboard and mouse quick summary
Tile types:
- Blue metal: “wires”
- White void: no material present
- Orange unknown: could not decide if metal or void
Left click: metal operation
- Void ⇒ metal
- Unknown ⇒ metal
- Metal ⇒ unknown
Right click: void operation
- Unknown ⇒ void
- Metal ⇒ void
- Void ⇒ unknown
Shift click: do above operation on all adjacent tiles (self inclusive) of the same tile type
Enter/return: submit
Escape: submit but flag for administrative review. Use when CV failed beyond reasonable human correction (ex: grid detected very poorly)
M: convert all unknowns to blue metal
W: convert all unknowns to white void
Introduction
An integrated circuit is composed of metal connecting various areas together to form nets. We want to recover netlists from various chips but so far all efforts have revolved around manually drawing polygons from microscope images. A few people have tried to do some computer vision (CV) approaches but ultimately fixing the errors takes longer than drawing the original polygons.
Can we do better? Sort of…we can cheat (“cheating is a valid engineering strategy”). We cheat by using a confocal microscope (or other high contrast imager) on a chip laid out in a grid. This simplifies the problem dramatically:
- The system is now regenerative: errors can be corrected
- Grid ⇒ simple algorithms determine if metal or not in that square
However, this computer vision process is still far from perfect and generates a lot of uncertainties.
GUI overview
Clicking
Left clicking is metal oriented: it turns tiles into metal. if the tile is already metal, it turns it into unknown. Similarly, right clicking is void oriented.
Above: before and after shift right clicking to remove entire upper left unknown group
Sometimes its useful to change entire clusters at once. This can be accomplished by shift clicking.
Global operations
Above: using “M” to turn all unknowns into metal
Often the entire remaining unknowns will below to one type or another. Hit “M” to change all unknowns to metal or “W” to change all unknowns to void.
Grid errors
Above: minor grid error
If the grid is detected incorrectly it will disrupt metal detection. In the above example, the Y grid offset is very poor (although the pitch is correct). Correct errors like above by biasing the grid to a particular direction, using the same bias for the entire image. For example, make the lower unknowns metal and the upper unknowns void. Suggest using this convention (lower ⇒ metal, upper ⇒ void) if its unclear which direction the correction should be applied.
For major errors (ex: grid detection failed) press Escape to skip this tile. It will be reviewed by an administrator.
Splash page
If you see this the server has no jobs available
NOTE: the splash page can be edited with standard mouse and keyboard shortcuts. Attempting to submit discards changes
Roadmap
The GUI frontend will become some sort of web app so that it can be used from a standard browser without installing any software.
There's still a lot that can be done with the computer vision preprocessing. The current suite is somewhat optimized for the references images: to be seen how well it will apply to other data sets (ex: SEM images).