/graph-extraction-networks

Extraction of graphs from skeletonised images.

Primary LanguagePython

graph-extraction-networks

Extraction of graphs from skeletonised images — a TensorFlow implementation.


Related: data generation, sample GUI implementation

The graph extraction consists of a node extraction part, an edge extraction part and a combination scheme for the edge predictions.

Node Extraction

The nodes as well as their attributes are extracted using a model based on the U-Net.

Positions Degrees Types
0, 1, 2, 3, 4 end, crossing, border

Current best model: b_16_d2 [id: pqphq89g] (wandb) (yaml) (h5)

Training

  1. Define configuration:
  2. Set config filepath in nodes_nn.py (L7)
  3. Run nodes_nn.py.
    nohup python nodes_nn.py > nodes_nn_log.txt &
    

Testing

  1. Initialise variables:
    • Set network type to NetworkType.NODES_NN in evaluate.py (L5).
    • Populate model_ids list with the IDs of the model(s) to be tested in evaluate.py (L6).
    • Ensure that eval_nodes_nn.yaml is set in the second argument of run.get_configs in evaluate.py (L11).
  2. Model configuration and weights — ensure that these files exist:
  3. Choose the type of evaluation to be done, modify/comment out what's not needed:
  4. Run evaluate.py.

Edge Extraction

Prediction of the existence of an edge between a pair of nodes using a VGG-based model.

Current best model: baseline (wandb) (yaml) (h5)

Combination Scheme

Parallel batched edge predictions.