In [1]:
%matplotlib inline
%pylab inline
In [2]:
import menpo.io as mio
from menpo.landmark import labeller, ibug_face_66
from menpofast.utils import convert_from_menpo
path = '/data/'
group = 'ibug_face_66'
training_images = []
for i in mio.import_images(path + 'PhD/DataBases/faces/lfpw/trainset/',
verbose=True, max_images=None):
labeller(i, 'PTS', eval(group))
i.crop_to_landmarks_proportion_inplace(0.5, group='PTS')
i = i.rescale_landmarks_to_diagonal_range(150, group=group)
if i.n_channels == 3:
i = i.as_greyscale(mode='average')
training_images.append(i)
In [ ]:
for i in mio.import_images(path + 'PhD/DataBases/faces/helen/trainset/',
verbose=True, max_images=None):
# convert the image from menpo Image to menpofast Image (channels at front)
i = convert_from_menpo(i)
labeller(i, 'PTS', eval(group))
i.crop_to_landmarks_proportion_inplace(0.5, group='PTS')
i = i.rescale_landmarks_to_diagonal_range(150, group=group)
if i.n_channels == 3:
i = i.as_greyscale(mode='average')
training_images.append(i)
In [ ]:
for i in mio.import_images(path + 'PhD/DataBases/faces/ibug/',
verbose=True, max_images=None):
# convert the image from menpo Image to menpofast Image (channels at front)
i = convert_from_menpo(i)
labeller(i, 'PTS', eval(group))
i.crop_to_landmarks_proportion_inplace(0.5, group='PTS')
i = i.rescale_landmarks_to_diagonal_range(150, group=group)
if i.n_channels == 3:
i = i.as_greyscale(mode='average')
training_images.append(i)
In [3]:
from menpo.visualize import visualize_images
visualize_images(training_images)
In [9]:
from menpofast.feature import no_op, fast_dsift
features = fast_dsift
patch_shape = (17, 17)
diagonal = 100
scales = (1, .5)
max_shape_components = 25
max_appearance_components = 250
normalize_parts = False
In [10]:
from menpofit.transform import DifferentiablePiecewiseAffine
from alabortijcv2015.aam import GlobalAAMBuilder
from alabortijcv2015.utils import pickle_dump
aam = GlobalAAMBuilder(transform=DifferentiablePiecewiseAffine,
features=features,
diagonal=diagonal,
scales=scales,
max_shape_components=max_shape_components,
max_appearance_components=max_appearance_components).build(training_images,
group=group,
verbose=True)
pickle_dump(aam, path + 'PhD/Models/ijcv2015/exp1_' + aam.__class__.__name__ + '_' + 'PWA' + '_' + features.__name__)
In [ ]:
from menpofit.transform import DifferentiableThinPlateSplines
from alabortijcv2015.aam import GlobalAAMBuilder
from alabortijcv2015.utils import pickle_dump
aam = GlobalAAMBuilder(transform=DifferentiableThinPlateSplines,
features=features,
diagonal=diagonal,
scales=scales,
max_shape_components=max_shape_components,
max_appearance_components=max_appearance_components).build(training_images,
group=group,
verbose=True)
pickle_dump(aam, path + 'PhD/Models/ijcv2015/exp1_' + aam.__class__.__name__ + '_' + 'TPS' + '_' + features.__name__)
In [ ]:
from alabortijcv2015.aam import PatchAAMBuilder
from alabortijcv2015.utils import pickle_dump
aam = PatchAAMBuilder(patch_shape=patch_shape,
features=features,
diagonal=diagonal,
scales=scales,
max_shape_components=max_shape_components,
max_appearance_components=max_appearance_components).build(training_images,
group=group,
verbose=True)
pickle_dump(aam, path + 'PhD/Models/ijcv2015/exp1_' + aam.__class__.__name__ + '_' + features.__name__)
In [ ]:
from menpofit.transform import DifferentiablePiecewiseAffine
from alabortijcv2015.aam import LinearGlobalAAMBuilder
from alabortijcv2015.utils import pickle_dump
aam = LinearGlobalAAMBuilder(transform=DifferentiablePiecewiseAffine,
features=features,
diagonal=diagonal,
scales=scales,
max_shape_components=max_shape_components,
max_appearance_components=max_appearance_components).build(training_images,
group=group,
verbose=True)
pickle_dump(aam, path + 'PhD/Models/ijcv2015/exp1_' + aam.__class__.__name__ + '_' + 'PWA' + '_' + features.__name__)
In [ ]:
from menpofit.transform import DifferentiableThinPlateSplines
from alabortijcv2015.aam import LinearGlobalAAMBuilder
from alabortijcv2015.utils import pickle_dump
aam = LinearGlobalAAMBuilder(transform=DifferentiableThinPlateSplines,
features=features,
diagonal=diagonal,
scales=scales,
max_shape_components=max_shape_components,
max_appearance_components=max_appearance_components).build(training_images,
group=group,
verbose=True)
pickle_dump(aam, path + 'PhD/Models/ijcv2015/exp1_' + aam.__class__.__name__ + '_' + 'TPS' + '_' + features.__name__)
In [ ]:
from alabortijcv2015.aam import LinearPatchAAMBuilder
from alabortijcv2015.utils import pickle_dump
aam = LinearPatchAAMBuilder(patch_shape=patch_shape,
features=features,
diagonal=diagonal,
scales=scales,
max_shape_components=max_shape_components,
max_appearance_components=max_appearance_components).build(training_images,
group=group,
verbose=True)
pickle_dump(aam, path + 'PhD/Models/ijcv2015/exp1_' + aam.__class__.__name__ + '_' + features.__name__)
In [8]:
from alabortijcv2015.aam import PartsAAMBuilder
from alabortijcv2015.utils import pickle_dump
aam = PartsAAMBuilder(parts_shape=patch_shape,
features=features,
diagonal=diagonal,
normalize_parts=normalize_parts,
scales=scales,
max_shape_components=max_shape_components,
max_appearance_components=max_appearance_components).build(training_images,
group=group,
verbose=True)
aam_type = aam.__class__.__name__
pickle_dump(aam, path + 'PhD/Models/ijcv2015/exp1_' + aam_type + '_' + features.__name__)