reload(latent_svm)
from rwsegment import svm_worker
reload(svm_worker)
from rwsegment import loss_functions
reload(loss_functions)
from rwsegment.rwsegment import BaseAnchorAPI
from segmentation_utils import load_or_compute_prior_and_mask
from segmentation_utils import compute_dice_coef
import svm_rw_api
reload(svm_rw_api)
from svm_rw_api import SVMRWMeanAPI
from svm_rw_api import MetaAnchor, MetaLaplacianFunction
from rwsegment import mpi

from rwsegment import utils_logging
logger = utils_logging.get_logger('learn_svm_batch',utils_logging.DEBUG)

class SVMSegmenter(object):

    def __init__(self,
            use_parallel=True, 
            **kwargs
            ):
    
        ## paths
        self.dir_reg = config.dir_reg
        self.dir_inf = config.dir_inf
        self.dir_svm = config.dir_svm
        self.training_vols = config.vols

        ## params
import numpy as np
from scipy import ndimage

from rwsegment import io_analyze
from rwsegment import rwsegment_prior
from rwsegment import rwsegment_pca_prior
from rwsegment import loss_functions
reload(rwsegment_prior)
reload(rwsegment_pca_prior)
reload(loss_functions)

import config
reload(config)

from rwsegment import utils_logging
logger = utils_logging.get_logger('segmentation_utils',utils_logging.DEBUG)


def compute_losses(z,y,mask):
    ## loss 0 : 1 - Dice(y,z)
    loss0 = loss_functions.ideal_loss(z,y,mask=mask)
    logger.info('Tloss = {}'.format(loss0))
    
    ## loss2: squared difference with ztilde
    loss1 = loss_functions.anchor_loss(z,y,mask=mask)
    logger.info('SDloss = {}'.format(loss1))
    
    ## loss3: laplacian loss
    loss2 = loss_functions.laplacian_loss(z,y,mask=mask)
    logger.info('LAPloss = {}'.format(loss2))
Example #3
0
import numpy as np
import sys
from rwsegment import rwsegment
from rwsegment.rwsegment import BaseAnchorAPI
from rwsegment import loss_functions
reload(rwsegment)
reload(loss_functions)

from rwsegment import utils_logging
logger = utils_logging.get_logger('svm_rw_api',utils_logging.DEBUG)

## combine all prior models
class MetaAnchor():
    def __init__(
            self, 
            prior, 
            prior_models,
            prior_weights,
            loss=None,
            loss_weight=None,
            image=None,
            ):
        self.prior = prior
        self.prior_models = prior_models
        self.prior_weights = prior_weights
        self.loss = loss
        self.loss_weight = loss_weight
        self.image = image        
        self.labelset = prior['labelset']
        
    def get_labelset(self):
Example #4
0
                np.testing.assert_allclose(w, w_gold, err_msg='w mismatch')
                np.testing.assert_allclose(xi, xi_gold, err_msg='xi mismatch')
            except Exception as e:
                print str(type(e)) + ', ' + e.message
            else:
                print 'PASS: learning tests'

        else:
            w = np.loadtxt(outdir + 'w.test.txt')

        self.w = w

        ## inference
        self.run_svm_inference(test, w)

    def process_all_samples(self, sample_list):
        for test in sample_list:
            self.process_sample(test)


##------------------------------------------------------------------------------

from rwsegment import utils_logging
logger = utils_logging.get_logger('learn_svm_batch', utils_logging.DEBUG)

if __name__ == '__main__':
    ''' start script '''
    svm_segmenter = SVMSegmenter()
    sample_list = ['01/']
    # sample_list = config.vols
    svm_segmenter.process_all_samples(sample_list)
Example #5
0
import numpy as np
from scipy import ndimage

from rwsegment import io_analyze
from rwsegment import rwsegment_prior
from rwsegment import rwsegment_pca_prior
from rwsegment import loss_functions
reload(rwsegment_prior)
reload(rwsegment_pca_prior)
reload(loss_functions)

import config
reload(config)

from rwsegment import utils_logging
logger = utils_logging.get_logger('segmentation_utils', utils_logging.DEBUG)


def compute_losses(z, y, mask):
    ## loss 0 : 1 - Dice(y,z)
    loss0 = loss_functions.ideal_loss(z, y, mask=mask)
    logger.info('Tloss = {}'.format(loss0))

    ## loss2: squared difference with ztilde
    loss1 = loss_functions.anchor_loss(z, y, mask=mask)
    logger.info('SDloss = {}'.format(loss1))

    ## loss3: laplacian loss
    loss2 = loss_functions.laplacian_loss(z, y, mask=mask)
    logger.info('LAPloss = {}'.format(loss2))
Example #6
0
from rwsegment import io_analyze
from rwsegment import rwsegment
from rwsegment.rwsegment import BaseAnchorAPI
reload(rwsegment)

import segmentation_utils
reload(segmentation_utils)
from segmentation_utils import load_or_compute_prior_and_mask
from segmentation_utils import compute_dice_coef

import config
reload(config)

from rwsegment import utils_logging
logger = utils_logging.get_logger('autoseeds', utils_logging.DEBUG)


class Autoseeds(object):
    def __init__(self):

        self.labelset = np.asarray(config.labelset)
        self.nlabel = len(self.labelset)
        self.force_recompute_prior = False
        self.force_recompute_edges = False

        self.step = [5, 10, 10]
        self.sizex = 24

        self.params = {
            'beta': 50,  # contrast parameter
import segmentation_utils

reload(segmentation_utils)

from segmentation_utils import load_or_compute_prior_and_mask
from segmentation_utils import compute_dice_coef

from svm_rw_api import MetaAnchor

import config

reload(config)

from rwsegment import utils_logging

logger = utils_logging.get_logger("batch_rwpca", utils_logging.INFO)


class SegmentationBatch(object):
    def __init__(self, prior_weights, name="constant1"):

        self.labelset = np.asarray(config.labelset)
        self.force_recompute_prior = False
        self.model_name = name

        self.params = {
            "beta": 50,  # contrast parameter
            "return_arguments": ["image", "impca"],
            # optimization parameter
            "per_label": True,
            "optim_solver": "unconstrained",
reload(rwsegment)
reload(loss_functions)
reload(prior_models)


import segmentation_utils 
reload(segmentation_utils)

from segmentation_utils import load_or_compute_prior_and_mask
from segmentation_utils import compute_dice_coef
    
import config
reload(config)

from rwsegment import utils_logging
logger = utils_logging.get_logger('segmentation_batch',utils_logging.INFO)

class SegmentationBatch(object):
    
    def __init__(self, prior_weights=[1.,0,0], name='constant1'):
        self.labelset  = np.asarray(config.labelset)
        self.model_name = name
        self.force_recompute_prior = False
        
        self.params  = {
            'beta'             : 50,     # contrast parameter
            'return_arguments' :['image','y'],
            # optimization parameter
            'per_label': True,
            'optim_solver':'unconstrained',
            'rtol'      : 1e-6,
Example #9
0
from rwsegment import io_analyze
from rwsegment import rwsegment
from rwsegment.rwsegment import  BaseAnchorAPI
reload(rwsegment)

import segmentation_utils 
reload(segmentation_utils)
from segmentation_utils import load_or_compute_prior_and_mask
from segmentation_utils import compute_dice_coef
    
import config
reload(config)

from rwsegment import utils_logging
logger = utils_logging.get_logger('autoseeds',utils_logging.DEBUG)

class Autoseeds(object):
    
    def __init__(self):
        
        self.labelset  = np.asarray(config.labelset)
        self.nlabel = len(self.labelset)
        self.force_recompute_prior = False
        self.force_recompute_edges = False
        
        self.step = [5,10,10]
        self.sizex = 24
 
        self.params  = {
            'beta'             : 50,     # contrast parameter
Example #10
0
import numpy as np
import sys
from rwsegment import rwsegment
from rwsegment.rwsegment import BaseAnchorAPI
from rwsegment import loss_functions
reload(rwsegment)
reload(loss_functions)

from rwsegment import utils_logging
logger = utils_logging.get_logger('svm_rw_api', utils_logging.DEBUG)


## combine all prior models
class MetaAnchor():
    def __init__(
        self,
        prior,
        prior_models,
        prior_weights,
        loss=None,
        loss_weight=None,
        image=None,
    ):
        self.prior = prior
        self.prior_models = prior_models
        self.prior_weights = prior_weights
        self.loss = loss
        self.loss_weight = loss_weight
        self.image = image
        self.labelset = prior['labelset']