dopt = opt['train'] print "load cues" eX = vigra.impex.readHDF5(dopt['ragFeatures'], 'edgeFeatures') nX = vigra.impex.readHDF5(dopt['ragFeatures'], 'nodeFeatures') print "load sizes" eSize = vigra.impex.readHDF5(dopt['ragL1EdgeSize'], 'data') nSize = vigra.impex.readHDF5(dopt['ragL1NodeSize'], 'data') print "load label file" eY = vigra.impex.readHDF5(dopt['ragL1EdgeGt'], 'data') print "load rag" rag = graphs.loadGridRagHDF5(dopt['ragL1'], 'data') graphData = learning.GraphData(rag=rag, eX=eX, nX=nX, eSize=eSize, nSize=nSize) rfFolder = dopt['activeRfDir'].encode('ASCII') treeCount = 1000 noise = 0.010 if False: print "do active initial learning" learner = learning.ActiveGraphLearning(treeCount=treeCount, noise=noise) rf0Path = rfFolder + 'rf0.h5' rf0Path = rf0Path.encode('ASCII') learner.initialTraining(graphData=graphData, eY=eY, rfPath=rf0Path)
segData.append([seg, "seg"]) gridGraph = graphs.gridGraph(seg.shape[0:3]) print "make rag" # get region adjacency graph from super-pixel labels rag = graphs.regionAdjacencyGraph(gridGraph, seg, isDense=False) print "save rag to file" rag.writeHDF5(opt['ragL0'], 'data') if False: print "accumulate edge weights and save them" print "load rag" # get region adjacency graph from super-pixel labels rag = graphs.loadGridRagHDF5(opt['ragL0'], 'data') gridGraph = rag.baseGraph print "read dmap" tmap = vigra.impex.readHDF5(opt['thinnedDistTransformPMap1'], 'data') tmap = numpy.require(tmap, dtype=numpy.float32) grayData.append([tmap, "tmap"]) print "extract" ggTmap = graphs.implicitMeanEdgeMap(gridGraph, tmap) ewDmap = rag.accumulateEdgeFeatures(ggTmap) vigra.impex.writeHDF5(ewDmap, opt['ragEdgeDmap'], "data") print "read pmap" pmap = boundaryP1 = vigra.impex.readHDF5(
# get region adjacency graph from super-pixel labels rag = graphs.regionAdjacencyGraph(gridGraph, seg, isDense=False) print "save rag to file" rag.writeHDF5(opt['ragL0'],'data') if False: print "accumulate edge weights and save them" print "load rag" # get region adjacency graph from super-pixel labels rag = graphs.loadGridRagHDF5(opt['ragL0'],'data') gridGraph = rag.baseGraph print "read dmap" tmap = vigra.impex.readHDF5(opt['thinnedDistTransformPMap1'], 'data') tmap = numpy.require(tmap, dtype=numpy.float32) grayData.append([tmap, "tmap"]) print "extract" ggTmap = graphs.implicitMeanEdgeMap(gridGraph, tmap) ewDmap = rag.accumulateEdgeFeatures(ggTmap) vigra.impex.writeHDF5(ewDmap, opt['ragEdgeDmap'], "data") print "read pmap" pmap = boundaryP1 = vigra.impex.readHDF5(opt['boundaryP1'],'exported_data').view(numpy.ndarray)[:, :, :, 0]
data = numpy.random.rand(*shape).astype(numpy.float32) data = vigra.taggedView(data, "xyz") if False: labels = numpy.random.randint(5, size=shape[0] * shape[1] * shape[2]) labels = labels.reshape(shape).astype(numpy.uint32) labels = vigra.analysis.labelVolume(labels) adjListGraph = graphs.listGraph() gridGraph = graphs.gridGraph(shape) rag = graphs.regionAdjacencyGraph(gridGraph, labels) rag.writeHDF5("bla.h5", "dset") else: # load the region adjacency graph rag = graphs.loadGridRagHDF5("bla.h5", "dset") print rag.labels.shape, rag.labels.dtype, type(rag.labels) print "accumulate edge and node features" edgeCuesMean = rag.accumulateEdgeFeatures(iEdgeMap(rag.baseGraph, data)) edgeCuesMean = numpy.array([edgeCuesMean, edgeCuesMean]).T nodeCuesMean = rag.accumulateNodeFeatures(data) nodeCuesMean = numpy.array([nodeCuesMean, nodeCuesMean]).T mergeGraph = graphs.mergeGraph(rag) featureManager = graphs.NeuroDynamicFeatures(rag, mergeGraph)
data = numpy.random.rand(*shape).astype(numpy.float32) data = vigra.taggedView(data,"xyz") if False: labels = numpy.random.randint(5, size=shape[0]*shape[1]*shape[2]) labels = labels.reshape(shape).astype(numpy.uint32) labels = vigra.analysis.labelVolume(labels) adjListGraph = graphs.listGraph() gridGraph = graphs.gridGraph(shape) rag = graphs.regionAdjacencyGraph(gridGraph, labels) rag.writeHDF5("bla.h5", "dset") else : # load the region adjacency graph rag = graphs.loadGridRagHDF5("bla.h5","dset") print rag.labels.shape, rag.labels.dtype ,type(rag.labels) print "accumulate edge and node features" edgeCuesMean = rag.accumulateEdgeFeatures( iEdgeMap(rag.baseGraph, data) ) edgeCuesMean = numpy.array([edgeCuesMean, edgeCuesMean]).T nodeCuesMean = rag.accumulateNodeFeatures(data) nodeCuesMean = numpy.array([nodeCuesMean, nodeCuesMean]).T
print "load cues" eX = vigra.impex.readHDF5(dopt['ragFeatures'], 'edgeFeatures') nX = vigra.impex.readHDF5(dopt['ragFeatures'], 'nodeFeatures') print "load sizes" eSize = vigra.impex.readHDF5(dopt['ragL1EdgeSize'], 'data') nSize = vigra.impex.readHDF5(dopt['ragL1NodeSize'], 'data') print "load label file" eY = vigra.impex.readHDF5(dopt['ragL1EdgeGt'], 'data') print "load rag" rag = graphs.loadGridRagHDF5(dopt['ragL1'],'data') graphData = learning.GraphData(rag=rag, eX=eX, nX=nX, eSize=eSize, nSize=nSize) rfFolder = dopt['activeRfDir'].encode('ASCII') treeCount = 1000 noise = 0.010 if False : print "do active initial learning"
print "load cues" edgeCues = vigra.impex.readHDF5(dopt["ragFeatures"], "edgeFeatures") nodeCues = vigra.impex.readHDF5(dopt["ragFeatures"], "nodeFeatures") print "load sizes" edgeSize = vigra.impex.readHDF5(dopt["ragL1EdgeSize"], "data") nodeSize = vigra.impex.readHDF5(dopt["ragL1NodeSize"], "data") print "load label file" edgeLabels = vigra.impex.readHDF5(dopt["ragL1EdgeGt"], "data") print "load rag" rag = graphs.loadGridRagHDF5(dopt["ragL1"], "data") gridGraph = rag.baseGraph print "get merge graph" mg = graphs.mergeGraph(rag) df = graphs.NeuroDynamicFeatures(rag, mg) # assign features df.assignEdgeCues(edgeCues) df.assignNodeCues(nodeCues) df.assignEdgeSizes(edgeSize) df.assignNodeSizes(nodeSize)