Exemplo n.º 1
0
 def test_gibbs(self):
     infname = 'gibbs'
     param = opengm.inferenceParameter(self.gm, alg=infname)
     param.set(steps=2000, burnInSteps=20,
               variableProposal=opengm.VariableProposal.cyclic)
     param.isAcyclic = opengm.Tribool.maybe
     self.runAlgTester(infname, parameter=param)
Exemplo n.º 2
0
 def test_astar(self):
    infname='astar'
    param=opengm.inferenceParameter(self.gm,alg=infname)
    param.set(heuristic=opengm.Heuristic.standard,maxHeapSize=2000000,numberOfOpt=1)
    self.runAlgTester(infname,optimal=True,parameter=param)
    param.heuristic=opengm.Heuristic.fast
    self.runAlgTester(infname,optimal=True,parameter=param)
    param.heuristic=opengm.Heuristic.default
    self.runAlgTester(infname,optimal=True,parameter=param) 
         for x4 in range(2):
            labelsum=x1+x2+x3+x4
            if labelsum is not 2 and labelsum is not 0 :
               fClosedness[x1,x2,x3,x4]=high          
fidClosedness=gm.addFunction(fClosedness)
# for each boundary in the grid, i.e. for each variable 
# of the model, add one 1st order functions 
# and one 1st order factor
# and for each junction of four inter-pixel edges on the grid, 
# one factor is added that connects the corresponding variable 
# indices and refers to the closedness-function
for yt in range(tGridSize[1]):
   for xt in range(tGridSize[0]):
      # unaries
      if (xt % 2 + yt % 2) == 1 :
         gradient = abs(  data[xt / 2, yt / 2]- data[xt/ 2 + xt % 2, yt / 2 + yt % 2])
         f=numpy.array([beta*gradient , (1.0-beta)*(1.0-gradient)],dtype=numpy.float32)
         print gm[gm.addFactor(gm.addFunction(f),[cToVi.convert(xt,yt)])].asNumpy()
      # high order factors (4.th order)   
      if xt % 2 + yt % 2 == 2 :
         vi=[cToVi.convert(xt + 1, yt),cToVi.convert(xt - 1, yt),cToVi.convert(xt, yt + 1), cToVi.convert(xt, yt - 1)]
         vi=sorted(vi);
         gm.addFactor(fidClosedness,vi)

param=opengm.inferenceParameter(gm=gm,alg="lf")
param.set(maxSubgraphSize=4)
inf=opengm.inferenceAlgorithm(gm=gm,alg="lf",parameter=param)
inf.infer(verbose=True)
arg=inf.arg()
printSolution(data,arg)
Exemplo n.º 4
0
 def test_bp(self):
    infname='libdai-bp'
    param=opengm.inferenceParameter(self.gm,alg=infname)
    self.runAlgTester(infname,parameter=param)   
Exemplo n.º 5
0
 def runAlgTester(self,algName,optimal=False,parameter=None):
    if parameter is None:
       parameter=opengm.inferenceParameter(self.gm,alg=algName)
    inf=opengm.inferenceAlgorithm(self.gm,alg=algName,parameter=parameter)
    checkInference(self.gm,inf,self.argOpt,optimal=optimal)
Exemplo n.º 6
0
 def test_lazyflipper(self):
    param=opengm.inferenceParameter(self.gm,alg='lf')
    param.maxSubgraphSize=2
    self.runAlgTester('lf',parameter=param)
    param.maxSubgraphSize=3
    self.runAlgTester('lf',parameter=param) 
Exemplo n.º 7
0
 def test_icm(self):
    param=opengm.inferenceParameter(self.gm,alg='icm')
    param.moveType=opengm.MoveType.variable
    self.runAlgTester('icm',parameter=param)
    param.moveType=opengm.MoveType.factor
    self.runAlgTester('icm',parameter=param)
Exemplo n.º 8
0
 def test_trbp(self):
    infname='trbp'
    param=opengm.inferenceParameter(self.gm,alg=infname)
    param.set(isAcyclic=opengm.Tribool.false,steps=100)
    param.isAcyclic=opengm.Tribool.maybe
    self.runAlgTester(infname,parameter=param)
Exemplo n.º 9
0
 def test_bp(self):
    infname='bp'
    param=opengm.inferenceParameter(self.gm,alg=infname)
    param.set(isAcyclic=opengm.Tribool.false)
    param.isAcyclic=opengm.Tribool.false
    self.runAlgTester(infname,parameter=param)
Exemplo n.º 10
0
 def test_cplex(self):
    infname='lpcplex'
    param=opengm.inferenceParameter(self.gm,alg=infname)
    param.set(integerConstraint=True)
    self.runAlgTester(infname,parameter=param)
Exemplo n.º 11
0
 def test_junction_tree(self):
    infname='libdai-jt'
    param=opengm.inferenceParameter(self.gm,alg=infname)
    param.set()
    self.runAlgTester(infname,parameter=param)
    param.set(updateRule=opengm.JunctionTreeUpdateRule.shsh,heuristic=opengm.JunctionTreeHeuristic.minfill)
Exemplo n.º 12
0
 def test_trbp(self):
    infname='libdai-trbp'
    param=opengm.inferenceParameter(self.gm,alg=infname)
    param.set(steps=100,updateRule=opengm.BpUpdateRule.parall,tolerance=0.0001,damping=0.01,ntrees=0)
    self.runAlgTester(infname,parameter=param)
Exemplo n.º 13
0
 def test_gibbs(self):
    infname='gibbs'
    param=opengm.inferenceParameter(self.gm,alg=infname)
    param.set(steps=2000)
    param.isAcyclic=opengm.Tribool.maybe
    self.runAlgTester(infname,parameter=param)
Exemplo n.º 14
0
   
   print "get regions pixels"   
   regionPixels=[ ]
   regionFeatures=numpy.ones([rag.numberOfRegions(),3],dtype=numpy.float64)
   for r in range(rag.numberOfRegions()):
      regionPixels.append(rag.regionPixels(r))

   

   
   print "build model"
   gm=buildGM(img=img,rag=rag,dataImage=seedMapTemp2,numLabels=numLabels,boundaryPixels=boundaryPixels,regionPixels=regionPixels,beta=beta,sigma=sigma,verbose=False)
   
   print "start inference"
   alg='trbp'
   param=opengm.inferenceParameter(gm=gm,alg=alg)
   param.set(steps=6,damping=0.1)
   #arg=inferAndWriteResult(printNth=1,alg=alg,param=param,img=imgRGB,rag=rag,prefix=outprefix,filename=basename,boundaryPixels=boundaryPixels,regionPixels=regionPixels,verbose=verboseInf)
   
   alg='bp'
   param=opengm.inferenceParameter(gm=gm,alg=alg)
   param.set(steps=1,damping=0.6)
   arg=inferAndWriteResult(printNth=1,alg=alg,param=param,img=imgRGB,rag=rag,prefix=outprefix,filename=basename,boundaryPixels=boundaryPixels,regionPixels=regionPixels,verbose=verboseInf)
   
   alg='icm'
   param=opengm.inferenceParameter(gm=gm,alg=alg)
   param.set()
   #arg=inferAndWriteResult(printNth=1000,alg=alg,param=param,img=imgRGB,rag=rag,prefix=outprefix,filename=basename,boundaryPixels=boundaryPixels,regionPixels=regionPixels,verbose=verboseInf,startingPoint=arg)
   
   alg='gibbs'
   param=opengm.inferenceParameter(gm=gm,alg=alg)