pr0ntools:cfcv:pr0nsweeper
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
pr0ntools:cfcv:pr0nsweeper [2015/07/13 06:55] – [Global operations] mcmaster | pr0ntools:cfcv:pr0nsweeper [2015/07/16 06:20] (current) – [Running] mcmaster | ||
---|---|---|---|
Line 3: | Line 3: | ||
This page is about the pr0nsweeper Python GUI that allows a human to quickly review and fix CV results. | 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. | + | Proof of concept stage / not intended |
====== Keyboard and mouse quick summary ====== | ====== Keyboard and mouse quick summary ====== | ||
- | |||
- | Tile types: | ||
- | * Blue metal: " | ||
- | * White void: no material present | ||
- | * Orange unknown: could not decide if metal or void | ||
Left click: metal operation | Left click: metal operation | ||
Line 34: | Line 30: | ||
====== Introduction ====== | ====== 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. | ||
+ | |||
+ | Can we do better? | ||
+ | * The system is now regenerative: | ||
+ | * 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 ====== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | At startup, the left area has the raw CV result and the right has the original image with the CV result overlaid on top. You'll notice there are a few different tile colors on the left: | ||
+ | * Blue metal: " | ||
+ | * White void: no material present | ||
+ | * Orange unknown: could not decide if metal or void | ||
+ | |||
+ | In most images there will be a large amount of blue and white with a number of orange tiles. | ||
+ | |||
+ | The reason why most warnings are metal is because the thresholding algorithm currently used has a hard time dealing with vias. Future versions will hopefully handle them better. | ||
+ | |||
====== Clicking ====== | ====== Clicking ====== | ||
Left clicking is metal oriented: it turns tiles into metal. | Left clicking is metal oriented: it turns tiles into metal. | ||
+ | |||
+ | You may click on either the grid on the left or the image on the right. | ||
+ | |||
{{: | {{: | ||
Line 63: | Line 85: | ||
{{: | {{: | ||
- | Above: | + | Above: |
If the grid is detected incorrectly it will disrupt metal detection. | If the grid is detected incorrectly it will disrupt metal detection. | ||
Line 84: | Line 106: | ||
There' | There' | ||
+ | |||
+ | ====== Running ====== | ||
+ | |||
+ | Ubuntu 12.04x64 | ||
+ | |||
+ | sudo apt-get install -y python-qt4 python-imaging python-pyicu | ||
+ | |||
+ | git clone https:// | ||
+ | |||
+ | cd cf/sweeper | ||
+ | |||
+ | python sweeper.py --host sketchyurl.com | ||
+ | |||
+ | ====== Backend ====== | ||
+ | |||
+ | This is for informational purposes only. Its not required to use the pr0nsweeper GUI. | ||
+ | |||
+ | Data is collected using [[mcmaster: | ||
+ | |||
+ | The core CV engine is in cfcv.py. | ||
+ | * Straighten image | ||
+ | * Determine design grid | ||
+ | * Calculate metal and void thresholds | ||
+ | * Apply thresholds to image | ||
+ | * Munge output to try to heuristically correct errors | ||
+ | |||
+ | cfcv_batch.py is a batch processor around the engine that allows, for example, running jobs in parallel. | ||
+ | |||
+ | Once cfcv_batch.py completes the output directory is fed into the pr0nsweeper job distribution server, server.py. | ||
Line 89: | Line 140: | ||
* [[https:// | * [[https:// | ||
+ | |||
+ |
pr0ntools/cfcv/pr0nsweeper.1436770546.txt.gz · Last modified: 2015/07/13 06:55 by mcmaster