In [1]:
%matplotlib inline
%pylab inline


Populating the interactive namespace from numpy and matplotlib

Load training data


In [2]:
import menpo.io as mio
from menpo.landmark import labeller, ibug_face_49
from menpofast.utils import convert_from_menpo

path = '/data/'
group = 'ibug_face_49'

training_images = []
for i in mio.import_images(path + 'PhD/DataBases/faces/lfpw/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(200, group=group)
    
    if i.n_channels == 3:
        i = i.as_greyscale(mode='average')
    training_images.append(i)


- Loading 811 assets: [====================] 100%

In [3]:
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(200, group=group)
    
    if i.n_channels == 3:
        i = i.as_greyscale(mode='average')
    training_images.append(i)


- Loading 2000 assets: [====================] 100%

In [4]:
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(200, group=group)
    
    if i.n_channels == 3:
        i = i.as_greyscale(mode='average')
    training_images.append(i)


- Loading 135 assets: [====================] 100%

In [5]:
from menpo.visualize import visualize_images

visualize_images(training_images)


Active Appearance Models

Build and Save


In [6]:
from menpofast.feature import no_op, fast_dsift
from alabortcvpr2015.aam import PartsAAMBuilder
from alabortcvpr2015.utils import pickle_dump

#n_images = [pow(2,i) for i in range(5, 12)]

#for j, limit in enumerate(n_images):

#    aam = PartsAAMBuilder(parts_shape=(17, 17),
#                     features=fast_dsift,
#                     diagonal=100,
#                     normalize_parts=False,
#                     scales=(1, .5),
#                     max_shape_components=25,
#                     max_appearance_components=500).build(training_images[:limit],
#                                                          group=group,
#                                                          verbose=True)
    
#    pickle_dump(aam, path + 'PhD/Models/aam_lfpw_fast_dsift' + str(j))
    
#    del aam
    
aam = PartsAAMBuilder(parts_shape=(17, 17),
                     features=fast_dsift,
                     diagonal=100,
                     normalize_parts=False,
                     scales=(1, .5),
                     max_shape_components=25,
                     max_appearance_components=500).build(training_images,
                                                          group=group,
                                                          verbose=True)
    
pickle_dump(aam, path + 'PhD/Models/aam_lfpw_fast_dsift' + str(7))


- Building models
  - Level 0: Done
  - Level 1: Done