os.chdir(base_dir+'code\\')

# local imports
from sampling import DataLoader, CSVDataset
from sampling import transforms as tx
from models import create_unet_model2D


data_dir = base_dir + 'data_2D/'
results_dir = base_dir+'results_2D/'

input_tx = tx.MinMaxScaler((0,1)) # scale input images between 0 and 1
target_tx = tx.BinaryMask(cutoff=0.5) # convert target segmentation to a binary mask

# tx.Compose lets you string together multiple transforms
co_tx = tx.Compose([tx.ExpandDims(axis=-1), # expand from (128,128) to (128,128,1) -> RandomAffine and Keras expect that
                    tx.RandomAffine(rotation_range=(-15,15), # rotate btwn -15 & 15 degrees
                                    translation_range=(0.1,0.1), # translate btwn -10% and 10% horiz, -10% and 10% vert
                                    shear_range=(-10,10), # shear btwn -10 and 10 degrees
                                    zoom_range=(0.85,1.15), # between 15% zoom-in and 15% zoom-out
                                    turn_off_frequency=5) # how often to just turn off random affine transform (units=#samples)
                    ])

# use a co-transform, meaning the same transform will be applied to input+target images at the same time 
# this is necessary since Affine transforms have random parameter draws which need to be shared
dataset = CSVDataset(filepath=data_dir+'image_filemap.csv', 
                    base_path=data_dir, # this path will be appended to all of the filenames in the csv file
                    input_cols=['images'], # column in dataframe corresponding to inputs (can be an integer also)
                    target_cols=['masks'],# column in dataframe corresponding to targets (can be an integer also)
                    input_transform=input_tx, target_transform=target_tx, co_transform=co_tx)
예제 #2
0
data_dir = os.path.join(base_dir, 'data/')
results_dir = os.path.join(base_dir, 'results/')

# local imports
os.chdir(os.path.join(base_dir, 'src/training/'))
from sampling import DataLoader, CSVDataset
from sampling import transforms as tx
from models import create_unet_model3D

from keras import callbacks as cbks

# tx.Compose lets you string together multiple transforms
co_tx = tx.Compose([
    tx.TypeCast('float32'),
    tx.ExpandDims(axis=-1),
    tx.RandomAffine(
        rotation_range=(-15, 15),  # rotate btwn -15 & 15 degrees
        translation_range=(
            0.1, 0.1),  # translate btwn -10% and 10% horiz, -10% and 10% vert
        shear_range=(-10, 10),  # shear btwn -10 and 10 degrees
        zoom_range=(0.85, 1.15),  # between 15% zoom-in and 15% zoom-out
        turn_off_frequency=5,
        fill_value='min',
        target_fill_mode='constant',
        target_fill_value=0
    )  # how often to just turn off random affine transform (units=#samples)
])

input_tx = tx.MinMaxScaler((-1, 1))  # scale between -1 and 1
base_dir = '/users/ncullen/desktop/projects/unet-ants/'
os.chdir(base_dir + 'code/')

# local imports
from sampling import DataLoader, CSVDataset
from sampling import transforms as tx
from models import create_unet_model2D

data_dir = base_dir + 'data_2D/'
results_dir = base_dir + 'results_2D/'

# tx.Compose lets you string together multiple transforms
co_tx = tx.Compose([
    tx.MinMaxScaler((-1, 1)),
    tx.ExpandDims(
        axis=-1
    )  # expand from (128,128) to (128,128,1) -> RandomAffine and Keras expect that
])

# use a co-transform, meaning the same transform will be applied to input+target images at the same time
# this is necessary since Affine transforms have random parameter draws which need to be shared
dataset = CSVDataset(
    filepath=data_dir + 'image_filemap.csv',
    base_path=
    data_dir,  # this path will be appended to all of the filenames in the csv file
    input_cols=[
        'images'
    ],  # column in dataframe corresponding to inputs (can be an integer also)
    target_cols=[
        'images'
    ],  # column in dataframe corresponding to targets (can be an integer also)