diff --git a/.gitignore b/.gitignore index 10137734..734c9222 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,20 @@ matlab_version/experiments_JANUS/all_fit_cvpr/ matlab_version/experiments_JANUS/cfss_fit/ matlab_runners/Feature Point Experiments/out_dclm/ matlab_runners/Feature Point Experiments/300VW_features_dclm/ +exe/FaceLandmarkVid/Debug/ +lib/3rdParty/dlib/Debug/ +lib/local/FaceAnalyser/Debug/ +lib/local/LandmarkDetector/Debug/ +matlab_version/experiments_menpo/menpo_fit_clnf/ +matlab_version/experiments_menpo/menpo_fit_dclm/ +matlab_version/experiments_menpo/menpo_fit_dclm_bbox_corr/ +matlab_version/experiments_menpo/menpo_fit_dclm_more_hyp/ +matlab_version/experiments_menpo/menpo_fit_ceclm/ +matlab_version/experiments_menpo/menpo_fit_ceclm_test_profile/ +matlab_version/experiments_menpo/menpo_fit_ceclm_test_semifrontal/ +matlab_version/experiments_menpo/menpo_fit_dclm_pdm_cen/ +matlab_version/experiments_menpo/menpo_fit_dclm_pdm_cen_2/ +matlab_version/experiments_menpo/out_profile/ +matlab_version/experiments_menpo/out_semifrontal/ +matlab_version/pdm_generation/menpo_pdm/old_models/ +matlab_version/pdm_generation/menpo_pdm/ diff --git a/matlab_version/models/dpn/create_dpn_experts_2017_02_02.m b/matlab_version/models/dpn/create_dpn_experts_2017_02_02.m index 75bab417..bbd528df 100644 --- a/matlab_version/models/dpn/create_dpn_experts_2017_02_02.m +++ b/matlab_version/models/dpn/create_dpn_experts_2017_02_02.m @@ -50,15 +50,14 @@ for s=scales rel_id = mirrorInds(mirrorInds(:,1)==i,2); end if(~visiIndex(c, rel_id)) - break; + continue; end if(c == frontalView) rel_file = sprintf('D:/deep_experts/2017-02-02/rmses/MultiGeneral_arch4general_%s_frontal_%d_512.mat', s{1}, rel_id); - else - rel_file = sprintf('D:/deep_experts/2017-02-02/rmses/MultiGeneral_arch4general_%s_profile%d_%d_512.mat', s{1}, c-1, rel_id); + + mirror = true; + load(rel_file); end - mirror = true; - load(rel_file); end patch_experts.correlations(c, i) = correlation_2; patch_experts.rms_errors(c, i) = rmse; @@ -107,6 +106,6 @@ for s=scales end end trainingScale = str2num(s{1}); - save(['dpn_patches_', s{1} '_general2.mat'], 'trainingScale', 'centers', 'visiIndex', 'patch_experts', 'normalisationOptions'); - write_patch_expert_bin(['dpn_patches_', s{1} '_general2.dat'], trainingScale, centers, visiIndex, patch_experts); + save(['dpn_patches_', s{1} '_general_v2.mat'], 'trainingScale', 'centers', 'visiIndex', 'patch_experts', 'normalisationOptions'); +% write_patch_expert_bin(['dpn_patches_', s{1} '_general_v2.dat'], trainingScale, centers, visiIndex, patch_experts); end \ No newline at end of file diff --git a/matlab_version/models/pdm/pdm_68_aligned_menpo.mat b/matlab_version/models/pdm/pdm_68_aligned_menpo.mat new file mode 100644 index 00000000..3d40bba3 Binary files /dev/null and b/matlab_version/models/pdm/pdm_68_aligned_menpo.mat differ diff --git a/matlab_version/pdm_generation/PDM_helpers/Rot2Euler.m b/matlab_version/pdm_generation/PDM_helpers/Rot2Euler.m index 470bcf99..2721212c 100644 --- a/matlab_version/pdm_generation/PDM_helpers/Rot2Euler.m +++ b/matlab_version/pdm_generation/PDM_helpers/Rot2Euler.m @@ -1,12 +1,16 @@ function [euler] = Rot2Euler(R) q0 = sqrt( 1 + R(1,1) + R(2,2) + R(3,3) ) / 2; - q1 = (R(3,2) - R(2,3)) / (4*q0) ; - q2 = (R(1,3) - R(3,1)) / (4*q0) ; - q3 = (R(2,1) - R(1,2)) / (4*q0) ; + if(q0 ~= 0) + q1 = (R(3,2) - R(2,3)) / (4*q0) ; + q2 = (R(1,3) - R(3,1)) / (4*q0) ; + q3 = (R(2,1) - R(1,2)) / (4*q0) ; - yaw = asin(2*(q0*q2 + q1*q3)); - pitch= atan2(2*(q0*q1-q2*q3), q0*q0-q1*q1-q2*q2+q3*q3); - roll = atan2(2*(q0*q3-q1*q2), q0*q0+q1*q1-q2*q2-q3*q3); - - euler = [pitch, yaw, roll]; + yaw = asin(2*(q0*q2 + q1*q3)); + pitch= atan2(2*(q0*q1-q2*q3), q0*q0-q1*q1-q2*q2+q3*q3); + roll = atan2(2*(q0*q3-q1*q2), q0*q0+q1*q1-q2*q2-q3*q3); + + euler = [pitch, yaw, roll]; + else + euler = [0, 0, 0]; + end \ No newline at end of file diff --git a/matlab_version/pdm_generation/PDM_helpers/fit_PDM_ortho_proj_to_2D.m b/matlab_version/pdm_generation/PDM_helpers/fit_PDM_ortho_proj_to_2D.m index c331ec16..803158ea 100644 --- a/matlab_version/pdm_generation/PDM_helpers/fit_PDM_ortho_proj_to_2D.m +++ b/matlab_version/pdm_generation/PDM_helpers/fit_PDM_ortho_proj_to_2D.m @@ -319,13 +319,13 @@ function [non_rigid, rigid] = CalcReferenceUpdate(params_delta, current_non_rigi -wy, wx, 1]; % Make sure R_delta is orthonormal - R_delta = OrthonormaliseRotation(R_delta); + R_delta = double(OrthonormaliseRotation(R_delta)); % Combine rotations R_final = R * R_delta; % Extract euler angle - euler = Rot2Euler(R_final); + euler = real(Rot2Euler(R_final)); rigid(2:4) = euler; diff --git a/matlab_version/pdm_generation/Readme.txt b/matlab_version/pdm_generation/Readme.txt index d48124fa..1f0669a5 100644 --- a/matlab_version/pdm_generation/Readme.txt +++ b/matlab_version/pdm_generation/Readme.txt @@ -1,6 +1,7 @@ Creating the Point Distribution Model. -To create a model from wild data use the Matlab script: +--------------------------------------------------------------- +To create a model from 300W training data use the Matlab script: ./Wild_data_pdm/Create_pdm_wild.m (This might take up to a couple of hours, depending on the machine used, and if you compiled computeH - see readme in nrsfm-em folder) @@ -8,17 +9,42 @@ You need the training data which can be acquired from (http://ibug.doc.ic.ac.uk/ The script will produce "./Wild_data_pdm/pdm_68_aligned_wild.mat" and "./Wild_data_pdm/pdm_68_aligned_wild.txt" which can be used for landmark detection. +--------------------------------------------------------------- +To create a model from Menpo + 300W training data use the Matlab script: + +First convert menpo to train/validation folds (PDM training is done on training fold): +'./menpo_pdm/split_menpo_data.m' + +Followed by: +Collect_menpo_annotations; +Collect_menpo_annotations_valid; + +To train the actual PDM: +'./menpo_pdm/Create_pdm_wild.m' (This might take up to a couple of hours, depending on the machine used, and if you compiled computeH - see readme in nrsfm-em folder) + +You need the training data which can be acquired from (https://ibug.doc.ic.ac.uk/resources/300-W/, and https://ibug.doc.ic.ac.uk/resources/2nd-facial-landmark-tracking-competition-menpo-ben/), to run the script from scratch. Alternatively the data is collected in 'menpo_68_pts.mat', so you can skip the Collect_wild_annotations step. + +The script will produce "./menpo_pdm/pdm_68_aligned_menpo.mat" and "./menpo_pdm/pdm_68_aligned_menpo.txt" which can be used for landmark detection. + +------- +As Menpo challenge expects profile faces to have chin outline, so to learn the conversion to Menpo format use "menpo_chin/learn_menpo_profile_mapping.m" (to get data you will also need to run Collect_menpo_annotations_profile_train.m, Collect_menpo_annotations_profile_valid.m) + +--------------------------------------------------------------- To visualise the results use: visualise_PDMs.m The PDM triangulation was created using the Delaunay triangulation algorithm, with manual hole cutting for eyes and mouth. Same can be done on any other annotated face dataset. -The pdm used in "in-the-wild" experiments is already included as: +The pdm used in "in-the-wild" and "menpo" experiments is already included as: ./Wild_data_pdm/pdm_68_aligned_wild ./Wild_data_pdm/pdm_68_aligned_wild.txt +./menpo_pdm/pdm_68_aligned_menpo.mat +./menpo_pdm/pdm_68_aligned_menpo.txt + The same model should be generated using the Matlab script as well (overwriting the data). +-------------------------------------------------------------- We use the non-rigid structure from motion approach by Lorenzo Torresani, Aaron Hertzmann, Chris Bregler, "Learning Non-Rigid 3D Shape from 2D Motion", NIPS 16, 2003 http://cs.stanford.edu/~ltorresa/projects/learning-nr-shape/ Please cite their work and ours if you use this code. \ No newline at end of file diff --git a/matlab_version/pdm_generation/menpo_pdm/Analyze_orient_distribution_wmp.m b/matlab_version/pdm_generation/menpo_pdm/Analyze_orient_distribution_wmp.m deleted file mode 100644 index d3c5f126..00000000 --- a/matlab_version/pdm_generation/menpo_pdm/Analyze_orient_distribution_wmp.m +++ /dev/null @@ -1,42 +0,0 @@ -clear -load('menpo_68_pts_valid.mat'); -addpath('../PDM_helpers'); - -xs = all_pts(1:end/2,:); -ys = all_pts(end/2+1:end,:); -num_imgs = size(xs, 1); - -rots = zeros(3, num_imgs); -errs = zeros(1,num_imgs); - -% pdmLoc = ['../../models/pdm/pdm_68_aligned_wild.mat']; -pdmLoc = ['pdm_68_aligned_menpo_v5.mat']; - -load(pdmLoc); - -pdm = struct; -pdm.M = double(M); -pdm.E = double(E); -pdm.V = double(V); -errs_poss = []; -for i=1:num_imgs - - labels_curr = cat(2, xs(i,:)', ys(i,:)'); - labels_curr(labels_curr==-1) = 0; - - [ a, R, T, ~, l_params, err, shapeOrtho] = fit_PDM_ortho_proj_to_2D(pdm.M, pdm.E, pdm.V, labels_curr); - errs(i) = err/a; - rots(:,i) = Rot2Euler(R); - - if(errs(i) < 0 || errs(i) > 4) - fprintf('i - %d, err - %.3f\n', i, errs(i)); - errs_poss = cat(1, errs_poss, i); - end -end - -% 300W PDM error is 1.5373 -% Menpo PDM leads to 1.2140 error (100 iters, 50% rem, 25 dof, mirror, annealing 60) -% Menpo PDM v2 leads to 1.1488 error (25 dof, 20% rem, 200 iters, annealing 60) -% Menpo PDM v3 leads to 1.1546 error (25 dof, 10% rem, 300 iters, annealing 60) -% Menpo PDM v4 leads to 1.1263 error (30 dof, no rem, 200 iters, annealing const 100) -% Menpo PDM v5 leads to 1.1312 (30 dof, no rem, 200 iters, annealing const 100) \ No newline at end of file diff --git a/matlab_version/pdm_generation/menpo_pdm/Collect_menpo_annotations.m b/matlab_version/pdm_generation/menpo_pdm/Collect_menpo_annotations.m index 1e0a65d4..1f2da08b 100644 --- a/matlab_version/pdm_generation/menpo_pdm/Collect_menpo_annotations.m +++ b/matlab_version/pdm_generation/menpo_pdm/Collect_menpo_annotations.m @@ -1,10 +1,11 @@ % collect the training data annotations (from the menpo challenge) clear -train_data_loc = 'C:\Users\tbaltrus\Documents\menpo_data_orig/'; +train_data_loc = 'D:\Datasets\menpo/'; dataset_locs = {[train_data_loc, '/train/'];}; - +% Mapping all the points (profile and semi-frontal) to the same 68 point +% annotation scheme left_to_frontal_map = [17,28; 18,29; 19,30; 20,31; 21,34; 22,32; 23,39; 24,38; 25,37; 26,42; 27,41; 28,52; 29,51; 30,50; 31,49; 32,60; 33,59; 34,58; @@ -23,7 +24,7 @@ add_flip = true; mirror_inds = [1,17;2,16;3,15;4,14;5,13;6,12;7,11;8,10;18,27;19,26;20,25;21,24;22,23;... 32,36;33,35;37,46;38,45;39,44;40,43;41,48;42,47;49,55;50,54;51,53;60,56;59,57;... 61,65;62,64;68,66]; -ps = [401;407;650;862;870;890;1274;1298;1347;1962;2058;2390;2996;3012;3410;4534;4767;5053;5911]; + for i=1:numel(dataset_locs) landmarkLabels = dir([dataset_locs{i} '\*.pts']); landmarkImgs = dir([dataset_locs{i} '\*.jpg']); @@ -33,127 +34,7 @@ for i=1:numel(dataset_locs) img = imread([dataset_locs{i}, landmarkImgs(p).name]); landmarks = landmarks.data; landmark_labels = -ones(68,2); - - if(strcmp(landmarkImgs(p).name, 'aflw__face_42138.jpg')) - landmarks(23:27,:) = landmarks(27:-1:23,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_65193.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_65158.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_65153.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_65119.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_64862.jpg')) - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_64849.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_64833.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_64806.jpg')) - landmarks([18:22],:) = landmarks(22:-1:18,:); - end - if(strcmp(landmarkImgs(p).name, 'aflw__face_64744.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - if(strcmp(landmarkImgs(p).name, 'aflw__face_64292.jpg')) - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - if(strcmp(landmarkImgs(p).name, 'aflw__face_64170.jpg')) - landmarks([1:12],:) = landmarks(12:-1:1,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_64167.jpg')) - landmarks([1:12],:) = landmarks(12:-1:1,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_63590.jpg')) - landmarks([18:22],:) = landmarks(22:-1:18,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_63190.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - if(strcmp(landmarkImgs(p).name, 'aflw__face_63118.jpg')) - landmarks([1:12],:) = landmarks(12:-1:1,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_62990.jpg')) - landmarks([18:22],:) = landmarks(22:-1:18,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_62534.jpg')) - landmarks([18:22],:) = landmarks(22:-1:18,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_47686.jpg')) - landmarks([64,63,62,61,68,67,66,65],:) = landmarks(61:68,:); - end - if(strcmp(landmarkImgs(p).name, 'aflw__face_47687.jpg')) - landmarks([64,63,62,61,68,67,66,65],:) = landmarks(61:68,:); - end - if(strcmp(landmarkImgs(p).name, 'aflw__face_45522.jpg')) - outline = landmarks(1:17,:); - outline(12:13,:) = []; - outline = iterate_piece_wise(outline, 17); - - landmarks(1:17,:) = outline; - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_43536.jpg')) - landmarks(17:22,:) = landmarks(22:-1:17,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_42898.jpg')) - landmarks(28:31,:) = landmarks(31:-1:28,:); - end - - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_41716.jpg')) - landmarks(23:27,:) = landmarks(27:-1:23,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_41487.jpg')) - landmarks(28:34,:) = landmarks(34:-1:28,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_41364.jpg')) - landmarks(37:48,:) = landmarks([43:48, 37:42],:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_63080.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_63001.jpg')) - landmarks(18:27,:) = landmarks([23:27, 18:22],:); - end - + if(size(landmarks,1) == 39) % Determine if the points are clock-wise or counter clock-wise % Clock-wise points are facing left, counter-clock-wise right @@ -205,8 +86,16 @@ for i=1:numel(dataset_locs) end end +all_pts_old = all_pts; +%% +xs = squeeze(all_pts(:,1,:)); +ys = squeeze(all_pts(:,2,:)); + +all_pts = cat(2,xs,ys)'; +save('menpo_68_pts', 'all_pts'); %% +all_pts = all_pts_old ; all_pts = cat(3, all_pts, mirr_pts); xs = squeeze(all_pts(:,1,:)); diff --git a/matlab_version/pdm_generation/menpo_pdm/Collect_menpo_annotations_valid.m b/matlab_version/pdm_generation/menpo_pdm/Collect_menpo_annotations_valid.m index 858fa7a9..a56e4dda 100644 --- a/matlab_version/pdm_generation/menpo_pdm/Collect_menpo_annotations_valid.m +++ b/matlab_version/pdm_generation/menpo_pdm/Collect_menpo_annotations_valid.m @@ -1,6 +1,6 @@ % collect the training data annotations (from the menpo challenge) clear -train_data_loc = 'C:\Users\tbaltrus\Documents\menpo_data_orig/'; +train_data_loc = 'D:\Datasets\menpo/'; dataset_locs = {[train_data_loc, '/valid/'];}; @@ -27,54 +27,7 @@ for i=1:numel(dataset_locs) img = imread([dataset_locs{i}, landmarkImgs(p).name]); landmarks = landmarks.data; landmark_labels = -ones(68,2); - - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_63514.jpg')) - % The annotation style is quite different - continue; - end - - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_65249.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_64866.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - end - - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_64771.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_64735.jpg')) - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_64238.jpg')) - landmarks(18:22,:) = landmarks(22:-1:18,:); - end - - if(strcmp(landmarkImgs(p).name, 'aflw__face_43770.jpg')) - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_63080.jpg')) - landmarks(1:12,:) = landmarks(12:-1:1,:); - landmarks(13:16,:) = landmarks(16:-1:13,:); - end - - % Problem with the labels - if(strcmp(landmarkImgs(p).name, 'aflw__face_63001.jpg')) - landmarks(18:27,:) = landmarks([23:27, 18:22],:); - end - if(size(landmarks,1) == 39) % Determine if the points are clock-wise or counter clock-wise % Clock-wise points are facing left, counter-clock-wise right diff --git a/matlab_version/pdm_generation/menpo_pdm/Create_pdm_menpo.m b/matlab_version/pdm_generation/menpo_pdm/Create_pdm_menpo.m index 2b8cbea2..af175ffe 100644 --- a/matlab_version/pdm_generation/menpo_pdm/Create_pdm_menpo.m +++ b/matlab_version/pdm_generation/menpo_pdm/Create_pdm_menpo.m @@ -2,13 +2,11 @@ clear; addpath('../PDM_helpers/'); -% load('menpo_68_pts.mat'); - -% Reconstruct_Torresani; +Reconstruct_Torresani; %% Create the PDM using PCA, from the recovered 3D data clear -load('Torr_wild_200_no_rem_wild_menpo.mat'); +load('Torr_menpo_wild.mat'); % need to still perform procrustes though @@ -94,7 +92,10 @@ end V = V_aligned; M = M_aligned; -save('pdm_68_aligned_menpo_v5.mat', 'E', 'M', 'V'); - -writePDM(V, E, M, 'pdm_68_aligned_wild.txt'); +save('pdm_68_aligned_menpo.mat', 'E', 'M', 'V'); +writePDM(V, E, M, 'pdm_68_aligned_menpo.txt'); +% also save this to model location +if(exist('../../models/pdm/', 'file')) + save('../../models/pdm/pdm_68_aligned_menpo.mat', 'E', 'M', 'V'); +end diff --git a/matlab_version/pdm_generation/menpo_pdm/Reconstruct_Torresani.m b/matlab_version/pdm_generation/menpo_pdm/Reconstruct_Torresani.m index e2b3e839..bd988e3e 100644 --- a/matlab_version/pdm_generation/menpo_pdm/Reconstruct_Torresani.m +++ b/matlab_version/pdm_generation/menpo_pdm/Reconstruct_Torresani.m @@ -1,6 +1,19 @@ +% This is the final model used for 3D PDM, it contains both Menpo and 300W +% data clear +% Combining 300W and Menpo data for PDM load('menpo_68_pts_flip'); +num_pts = size(all_pts,1)/2; +xs_m = all_pts(1:num_pts,:); +ys_m = all_pts(num_pts+1:end,:); + +load('wild_68_pts'); +num_pts = size(all_pts,1)/2; +xs_w= all_pts(1:num_pts,:); +ys_w = all_pts(num_pts+1:end,:); + +all_pts = cat(1, xs_m, xs_w, ys_m, ys_w); pdmLoc = ['../../models/pdm/pdm_68_aligned_wild.mat']; load(pdmLoc); @@ -64,9 +77,9 @@ ys = all_pts(num_pts+1:end,:); % Randperm the data, as a test -% xs_f = xs(frontal,:); -% ys_f = ys(frontal,:); -% scatter(xs_f(:), -ys_f(:)); +xs_f = xs(frontal,:); +ys_f = ys(frontal,:); +scatter(xs_f(:), -ys_f(:)); %% Perform NRSFM by Torresani addpath('../nrsfm-em'); @@ -84,7 +97,7 @@ MD = all_pts(1:end/2,:)==-1; [P3, S_hat, V, RO, Tr, Z] = em_sfm(all_pts, MD, K, use_lds, tol, max_em_iter); -save('Torr_wild_100_no_rem', 'P3', 'S_hat', 'V', 'RO', 'Tr', 'Z'); +save('Torr_menpo_wild', 'P3', 'S_hat', 'V', 'RO', 'Tr', 'Z'); %% % xs = P3(1:num_pts,:); diff --git a/matlab_version/pdm_generation/menpo_pdm/Reconstruct_Torresani_m_and_w.m b/matlab_version/pdm_generation/menpo_pdm/Reconstruct_Torresani_m_and_w.m deleted file mode 100644 index 8fb0433d..00000000 --- a/matlab_version/pdm_generation/menpo_pdm/Reconstruct_Torresani_m_and_w.m +++ /dev/null @@ -1,110 +0,0 @@ -% This is the final model used for 3D PDM, it contains both Menpo and 300W -% data -clear - -% Combining 300W and Menpo data for PDM -load('menpo_68_pts_flip'); -num_pts = size(all_pts,1)/2; -xs_m = all_pts(1:num_pts,:); -ys_m = all_pts(num_pts+1:end,:); - -load('wild_68_pts'); -num_pts = size(all_pts,1)/2; -xs_w= all_pts(1:num_pts,:); -ys_w = all_pts(num_pts+1:end,:); - -all_pts = cat(1, xs_m, xs_w, ys_m, ys_w); - -pdmLoc = ['../../models/pdm/pdm_68_aligned_wild.mat']; -load(pdmLoc); -% Before plugging into NRSFM, align the points in 2D -num_pts = size(all_pts,1)/2; - -num_lmks = numel(M) / 3; -m = reshape(M, num_lmks, 3)'; -width_model = max(m(1,:)) - min(m(1,:)); -height_model = max(m(2,:)) - min(m(2,:)); - -for i=1:size(all_pts,1)/2 - - shape2D = cat(2, all_pts(i,:)', all_pts(i+num_pts,:)'); - - M_n = M; - - if(sum(shape2D(:)==-1) > 0) - - hidden = true; - % which indices to remove - inds_to_rem = shape2D(:,1) == -1 | shape2D(:,2) == -1; - - shape2D = shape2D(~inds_to_rem,:); - - inds_to_rem = repmat(inds_to_rem, 3, 1); - - M_n = M(~inds_to_rem); - - end - - % To deal with really extreme cases of roll - M2D = cat(2, M_n(1:end/3), M_n(end/3+1:2*end/3)); - [ A, t, error, alignedShape, s ] = AlignShapesWithScale(M2D, shape2D); - R = A/s; - - % Transform the shape - shape2D(:,1) = shape2D(:,1) - t(1); - shape2D(:,2) = shape2D(:,2) - t(2); - - shape2D = (R' * shape2D')/s; - shape2D = shape2D'; - - all_pts(i,all_pts(i,:)~=-1) = shape2D(:,1); - all_pts(i+num_pts,all_pts(i+num_pts,:)~=-1) = shape2D(:,2); -end - -%% -% to_rem = randperm(round(0.1*num_pts)); % Remove 10% to break some symmetry -% all_pts([to_rem, to_rem+num_pts],:) = []; -num_pts = size(all_pts,1)/2; - -left_ids = all_pts(1:num_pts,10) == -1; -right_ids = all_pts(1:num_pts,8) == -1; -frontal = true(num_pts,1); -frontal(left_ids | right_ids) = false; - -%% -xs = all_pts(1:num_pts,:); -ys = all_pts(num_pts+1:end,:); - -% Randperm the data, as a test - -xs_f = xs(frontal,:); -ys_f = ys(frontal,:); -scatter(xs_f(:), -ys_f(:)); - -%% Perform NRSFM by Torresani -addpath('../nrsfm-em'); -% (T is the number of frames, J is the number of points) - -J = size(all_pts,2); -T = size(all_pts,1)/2; - -use_lds = 0; % not modeling a linear dynamic system here -max_em_iter = 200; -tol = 0.001; -K = 30; % number of deformation shapes - -MD = all_pts(1:end/2,:)==-1; - -[P3, S_hat, V, RO, Tr, Z] = em_sfm(all_pts, MD, K, use_lds, tol, max_em_iter); - -save('Torr_wild_200_no_rem_wild_menpo', 'P3', 'S_hat', 'V', 'RO', 'Tr', 'Z'); - -%% -% xs = P3(1:num_pts,:); -% ys = P3(num_pts+1:2*num_pts,:); -% zs = P3(2*num_pts+1:end,:); -% % -% xs_f = xs(left_ids,:); -% ys_f = ys(left_ids,:); -% zs_f = zs(left_ids,:); -% scatter3(xs_f(:), ys_f(:), zs_f(:)); \ No newline at end of file diff --git a/matlab_version/pdm_generation/menpo_pdm/Analyze_orient_distribution.m b/matlab_version/pdm_generation/menpo_pdm/helpers/Analyze_orient_distribution.m similarity index 53% rename from matlab_version/pdm_generation/menpo_pdm/Analyze_orient_distribution.m rename to matlab_version/pdm_generation/menpo_pdm/helpers/Analyze_orient_distribution.m index 198a569d..50c3f82f 100644 --- a/matlab_version/pdm_generation/menpo_pdm/Analyze_orient_distribution.m +++ b/matlab_version/pdm_generation/menpo_pdm/helpers/Analyze_orient_distribution.m @@ -1,6 +1,8 @@ +% A script for visualizing the orientations in the menpo data, allows to +% see the distributions of the data clear -load('menpo_68_pts.mat'); -addpath('../PDM_helpers'); +load('../menpo_68_pts.mat'); +addpath('../../PDM_helpers'); xs = all_pts(1:end/2,:); ys = all_pts(end/2+1:end,:); @@ -9,8 +11,7 @@ num_imgs = size(xs, 1); rots = zeros(3, num_imgs); errs = zeros(1,num_imgs); -% pdmLoc = ['../../models/pdm/pdm_68_aligned_wild.mat']; -pdmLoc = ['pdm_68_aligned_menpo_v3.mat']; +pdmLoc = ['../pdm_68_aligned_menpo.mat']; load(pdmLoc); @@ -28,14 +29,6 @@ for i=1:num_imgs errs(i) = err/a; rots(:,i) = Rot2Euler(R); - if(errs(i) < 0 || errs(i) > 4) - fprintf('i - %d, err - %.3f\n', i, errs(i)); - errs_poss = cat(1, errs_poss, i); - end end -% Current error is 2.1728 on the training data -% After cleanup and smaller steps it is 1.5388 -% After training on it we have 1.1999 -% V2 - 1.1392 -% V3 - 1.1406 \ No newline at end of file +hist(rots', 100); \ No newline at end of file diff --git a/matlab_version/pdm_generation/menpo_pdm/Collect_wild_imgs_train.m b/matlab_version/pdm_generation/menpo_pdm/helpers/Collect_wild_imgs_train.m similarity index 100% rename from matlab_version/pdm_generation/menpo_pdm/Collect_wild_imgs_train.m rename to matlab_version/pdm_generation/menpo_pdm/helpers/Collect_wild_imgs_train.m diff --git a/matlab_version/pdm_generation/menpo_pdm/Evaluate_pdm.m b/matlab_version/pdm_generation/menpo_pdm/helpers/Evaluate_pdm.m similarity index 62% rename from matlab_version/pdm_generation/menpo_pdm/Evaluate_pdm.m rename to matlab_version/pdm_generation/menpo_pdm/helpers/Evaluate_pdm.m index 366cedb0..04ae0fc2 100644 --- a/matlab_version/pdm_generation/menpo_pdm/Evaluate_pdm.m +++ b/matlab_version/pdm_generation/menpo_pdm/helpers/Evaluate_pdm.m @@ -1,6 +1,6 @@ clear -load('menpo_68_pts_valid.mat'); -addpath('../PDM_helpers'); +load('../menpo_68_pts_valid.mat'); +addpath('../../PDM_helpers'); xs = all_pts(1:end/2,:); ys = all_pts(end/2+1:end,:); @@ -9,8 +9,7 @@ num_imgs = size(xs, 1); rots_menpo = zeros(3, num_imgs); errs_menpo = zeros(1,num_imgs); -% pdmLoc = ['../../models/pdm/pdm_68_aligned_wild.mat']; -pdmLoc = ['pdm_68_aligned_menpo_v5.mat']; +pdmLoc = ['../pdm_68_aligned_menpo.mat']; load(pdmLoc); @@ -48,16 +47,8 @@ for i=1:num_imgs errs_wild(i) = err/a; rots_wild(:,i) = Rot2Euler(R); - if(errs_wild(i) < 0 || errs_wild(i) > 4) - fprintf('i - %d, err - %.3f\n', i, errs_wild(i)); - errs_poss = cat(1, errs_poss, i); - end end errs = cat(2, errs_wild, errs_menpo); fprintf('%.3f, %.3f, %.3f\n', mean(errs_menpo), mean(errs_wild), mean(errs)); % 300W PDM error is 1.537, 1.017, 1.285 -% Menpo PDM v1 leads to 1.214, 1.184, 1.200 error (100 iters, 50% rem, 25 dof, mirror, annealing 60) -% Menpo PDM v2 leads to 1.149, 1.138, 1.144 error (25 dof, 20% rem, 200 iters, annealing 60) -% Menpo PDM v3 leads to 1.155, 1.137, 1.146 error (25 dof, 10% rem, 300 iters, annealing 60) -% Menpo PDM v4 leads to 1.126, 1.066, 1.097 error (30 dof, no rem, 200 iters, annealing const 100) -% Menpo PDM v5 leads to 1.133, 0.986, 1.062 (30 dof, no rem, 200 iters, annealing const 100) \ No newline at end of file +% Menpo+300W PDM error is 1.130, 0.985, 1.060 \ No newline at end of file diff --git a/matlab_version/pdm_generation/menpo_pdm/Prepare_annotations_autoenc.m b/matlab_version/pdm_generation/menpo_pdm/helpers/Prepare_annotations_autoenc.m similarity index 98% rename from matlab_version/pdm_generation/menpo_pdm/Prepare_annotations_autoenc.m rename to matlab_version/pdm_generation/menpo_pdm/helpers/Prepare_annotations_autoenc.m index 96148296..2bce6a45 100644 --- a/matlab_version/pdm_generation/menpo_pdm/Prepare_annotations_autoenc.m +++ b/matlab_version/pdm_generation/menpo_pdm/helpers/Prepare_annotations_autoenc.m @@ -1,3 +1,5 @@ +% If a different type of PDM is to be trained, prepare training data here + clear load('menpo_68_pts_flip.mat'); addpath('../PDM_helpers'); diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_68_pts.mat b/matlab_version/pdm_generation/menpo_pdm/menpo_68_pts.mat index 211368a9..af5063c5 100644 Binary files a/matlab_version/pdm_generation/menpo_pdm/menpo_68_pts.mat and b/matlab_version/pdm_generation/menpo_pdm/menpo_68_pts.mat differ diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_68_pts_valid.mat b/matlab_version/pdm_generation/menpo_pdm/menpo_68_pts_valid.mat index fe0a5be3..75faa470 100644 Binary files a/matlab_version/pdm_generation/menpo_pdm/menpo_68_pts_valid.mat and b/matlab_version/pdm_generation/menpo_pdm/menpo_68_pts_valid.mat differ diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_chin/Collect_menpo_annotations_profile_train.m b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/Collect_menpo_annotations_profile_train.m new file mode 100644 index 00000000..57f93f2d --- /dev/null +++ b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/Collect_menpo_annotations_profile_train.m @@ -0,0 +1,77 @@ +% collect the training data annotations (from the menpo challenge) +clear +train_data_loc = 'C:\Users\tbaltrus\Documents\menpo_data_orig/'; + +dataset_locs = {[train_data_loc, '/train/'];}; + + +left_to_frontal_map = [17,28; 18,29; 19,30; 20,31; + 21,34; 22,32; 23,39; 24,38; 25,37; 26,42; 27,41; + 28,52; 29,51; 30,50; 31,49; 32,60; 33,59; 34,58; + 35,63; 36,62; 37,61; 38,68; 39,67]; + +right_to_frontal_map = [17,28; 18,29; 19,30; 20,31; + 21,34; 22,36; 23,44; 24,45; 25,46; 26,47; 27,48; + 28,52; 29,53; 30,54; 31,55; 32,56; 33,57; 34,58; + 35,63; 36,64; 37,65; 38,66; 39,67]; + +all_pts_left = []; +all_pts_right = []; +all_pts_orig_left = []; +all_pts_orig_right = []; + +for i=1:numel(dataset_locs) + landmarkLabels = dir([dataset_locs{i} '\*.pts']); + landmarkImgs = dir([dataset_locs{i} '\*.jpg']); + + for p=1:numel(landmarkLabels) + landmarks = importdata([dataset_locs{i}, landmarkLabels(p).name], ' ', 3); + img = imread([dataset_locs{i}, landmarkImgs(p).name]); + landmarks = landmarks.data; + landmark_labels = -ones(68,2); + + if(size(landmarks,1) == 39) + % Determine if the points are clock-wise or counter clock-wise + % Clock-wise points are facing left, counter-clock-wise right + sum = 0; + for k=1:11 + step = (landmarks(k+1,1) - landmarks(k,1)) * (landmarks(k+1,2) + landmarks(k,2)); + sum = sum + step; + end + + if(sum > 0) + % First need to resample the face outline as there are 9 + % points in the near-frontal and 10 points in profile for + % the outline of the face + + outline = iterate_piece_wise(landmarks(1:10,:), 9); + brow = iterate_piece_wise(landmarks(13:16,:), 5); + landmark_labels(1:9,:) = outline; + landmark_labels(18:22,:) = brow; + landmark_labels(left_to_frontal_map(:,2),:) = landmarks(left_to_frontal_map(:,1),:); + + all_pts_orig_right = cat(3, all_pts_orig_right, landmarks); + all_pts_right = cat(3, all_pts_right, landmark_labels); + else + outline = iterate_piece_wise(landmarks(10:-1:1,:), 9); + brow = iterate_piece_wise(landmarks(16:-1:13,:), 5); + + landmark_labels(9:17,:) = outline; + landmark_labels(23:27,:) = brow; + + landmark_labels(right_to_frontal_map(:,2),:) = landmarks(right_to_frontal_map(:,1),:); + + all_pts_orig_left = cat(3, all_pts_orig_left, landmarks); + all_pts_left = cat(3, all_pts_left, landmark_labels); + end + end + + if(mod(p,50) == 0) + fprintf('%d/%d\n', p, numel(landmarkLabels)) + end + end +end + +%% + +save('menpo_68_pts_train_profile', 'all_pts_orig_right', 'all_pts_right', 'all_pts_orig_left', 'all_pts_left'); diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_chin/Collect_menpo_annotations_profile_valid.m b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/Collect_menpo_annotations_profile_valid.m new file mode 100644 index 00000000..fb6013d2 --- /dev/null +++ b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/Collect_menpo_annotations_profile_valid.m @@ -0,0 +1,77 @@ +% collect the training data annotations (from the menpo challenge) +clear +train_data_loc = 'C:\Users\tbaltrus\Documents\menpo_data_orig/'; + +dataset_locs = {[train_data_loc, '/valid/'];}; + + +left_to_frontal_map = [17,28; 18,29; 19,30; 20,31; + 21,34; 22,32; 23,39; 24,38; 25,37; 26,42; 27,41; + 28,52; 29,51; 30,50; 31,49; 32,60; 33,59; 34,58; + 35,63; 36,62; 37,61; 38,68; 39,67]; + +right_to_frontal_map = [17,28; 18,29; 19,30; 20,31; + 21,34; 22,36; 23,44; 24,45; 25,46; 26,47; 27,48; + 28,52; 29,53; 30,54; 31,55; 32,56; 33,57; 34,58; + 35,63; 36,64; 37,65; 38,66; 39,67]; + +all_pts_left = []; +all_pts_right = []; +all_pts_orig_left = []; +all_pts_orig_right = []; + +for i=1:numel(dataset_locs) + landmarkLabels = dir([dataset_locs{i} '\*.pts']); + landmarkImgs = dir([dataset_locs{i} '\*.jpg']); + + for p=1:numel(landmarkLabels) + landmarks = importdata([dataset_locs{i}, landmarkLabels(p).name], ' ', 3); + img = imread([dataset_locs{i}, landmarkImgs(p).name]); + landmarks = landmarks.data; + landmark_labels = -ones(68,2); + + if(size(landmarks,1) == 39) + % Determine if the points are clock-wise or counter clock-wise + % Clock-wise points are facing left, counter-clock-wise right + sum = 0; + for k=1:11 + step = (landmarks(k+1,1) - landmarks(k,1)) * (landmarks(k+1,2) + landmarks(k,2)); + sum = sum + step; + end + + if(sum > 0) + % First need to resample the face outline as there are 9 + % points in the near-frontal and 10 points in profile for + % the outline of the face + + outline = iterate_piece_wise(landmarks(1:10,:), 9); + brow = iterate_piece_wise(landmarks(13:16,:), 5); + landmark_labels(1:9,:) = outline; + landmark_labels(18:22,:) = brow; + landmark_labels(left_to_frontal_map(:,2),:) = landmarks(left_to_frontal_map(:,1),:); + + all_pts_orig_right = cat(3, all_pts_orig_right, landmarks); + all_pts_right = cat(3, all_pts_right, landmark_labels); + else + outline = iterate_piece_wise(landmarks(10:-1:1,:), 9); + brow = iterate_piece_wise(landmarks(16:-1:13,:), 5); + + landmark_labels(9:17,:) = outline; + landmark_labels(23:27,:) = brow; + + landmark_labels(right_to_frontal_map(:,2),:) = landmarks(right_to_frontal_map(:,1),:); + + all_pts_orig_left = cat(3, all_pts_orig_left, landmarks); + all_pts_left = cat(3, all_pts_left, landmark_labels); + end + end + + if(mod(p,50) == 0) + fprintf('%d/%d\n', p, numel(landmarkLabels)) + end + end +end + +%% + +save('menpo_68_pts_valid_profile', 'all_pts_orig_right', 'all_pts_right', 'all_pts_orig_left', 'all_pts_left'); diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_chin/compute_error_menpo_prof.m b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/compute_error_menpo_prof.m new file mode 100644 index 00000000..fa24d4f2 --- /dev/null +++ b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/compute_error_menpo_prof.m @@ -0,0 +1,34 @@ +function [ error_per_image, frontal_ids ] = compute_error_menpo_prof( ground_truth_all, detected_points_all ) +%compute_error +% compute the average point-to-point Euclidean error normalized by the +% inter-ocular distance (measured as the Euclidean distance between the +% outer corners of the eyes) +% +% Inputs: +% grounth_truth_all, size: num_of_points x 2 x num_of_images +% detected_points_all, size: num_of_points x 2 x num_of_images +% Output: +% error_per_image, size: num_of_images x 1 + + +num_of_images = numel(ground_truth_all); +error_per_image = zeros(num_of_images,1); +frontal_ids = true(num_of_images,1); + +for i =1:num_of_images + detected_points = detected_points_all{i}; + ground_truth_points = ground_truth_all{i}; + num_of_points = size(ground_truth_points,1); + + normalization = (max(ground_truth_points(:,1))-min(ground_truth_points(:,1)))+... + (max(ground_truth_points(:,2))-min(ground_truth_points(:,2))); + normalization = normalization / 2; + + sum=0; + for j=1:num_of_points + sum = sum+norm(detected_points(j,:)-ground_truth_points(j,:)); + end + error_per_image(i) = sum/(num_of_points*normalization); +end + +end diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_chin/conversion.mat b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/conversion.mat new file mode 100644 index 00000000..6f293347 Binary files /dev/null and b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/conversion.mat differ diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_chin/learn_menpo_profile_mapping.m b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/learn_menpo_profile_mapping.m new file mode 100644 index 00000000..7ab03f09 --- /dev/null +++ b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/learn_menpo_profile_mapping.m @@ -0,0 +1,75 @@ +clear +load('menpo_68_pts_train_profile'); + +vis_pts_left = all_pts_left(:,1,1) ~= -1; +xs = all_pts_left(vis_pts_left,:,:); +xs = squeeze(cat(1, xs(:,1,:), xs(:,2,:))); + +ys = squeeze(cat(1, all_pts_orig_left(:,1,:), all_pts_orig_left(:,2,:))); + +a_left = ys /xs; +a_left(abs(a_left)<0.001) = 0; +transformed_left = a_left * xs; +xs_pred_left = transformed_left(1:end/2,:); +ys_pred_left = transformed_left(end/2+1:end,:); + +vis_pts_right = all_pts_right(:,1,1) ~= -1; +xs = all_pts_right(vis_pts_right,:,:); +xs = squeeze(cat(1, xs(:,1,:), xs(:,2,:))); + +ys = squeeze(cat(1, all_pts_orig_right(:,1,:), all_pts_orig_right(:,2,:))); + +a_right = ys /xs; +a_right(abs(a_right)<0.001) = 0; +transformed_right = a_right * xs; +xs_pred_right = transformed_right(1:end/2,:); +ys_pred_right = transformed_right(end/2+1:end,:); +% pred_left = cat(2,transformed_left + +%% +num = 110; +plot(all_pts_orig_right(:,1,num), -all_pts_orig_right(:,2,num), '.r'); +hold on; +plot(xs_pred_right(:,num), -ys_pred_right(:,num), '.b'); +hold off; + +%% Evaluate on the validation data (see how much error is added) + +load('menpo_68_pts_valid_profile'); + +xs = all_pts_left(vis_pts_left,:,:); +xs = squeeze(cat(1, xs(:,1,:), xs(:,2,:))); + +transformed_left = a_left * xs; +xs_pred_left = transformed_left(1:end/2,:); +ys_pred_left = transformed_left(end/2+1:end,:); + +shapes = cell(size(ys_pred_left,1),1); +labels = cell(size(ys_pred_left,1),1); + +for i=1:numel(shapes) + shapes{i} = cat(2, xs_pred_left(:,i), ys_pred_left(:,i)); + labels{i} = all_pts_orig_left(:,:,i); +end + +errors_left = compute_error_menpo_prof(labels, shapes); + + +xs = all_pts_right(vis_pts_right,:,:); +xs = squeeze(cat(1, xs(:,1,:), xs(:,2,:))); + +transformed_right = a_right * xs; +xs_pred_right = transformed_right(1:end/2,:); +ys_pred_right = transformed_right(end/2+1:end,:); + +shapes = cell(size(ys_pred_right,1),1); +labels = cell(size(ys_pred_right,1),1); + +for i=1:numel(shapes) + shapes{i} = cat(2, xs_pred_right(:,i), ys_pred_right(:,i)); + labels{i} = all_pts_orig_right(:,:,i); +end + +errors_right = compute_error_menpo_prof(labels, shapes); +save('conversion', 'a_left', 'a_right', 'vis_pts_left', 'vis_pts_right'); +% Try with scaling diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_chin/menpo_68_pts_train_profile.mat b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/menpo_68_pts_train_profile.mat new file mode 100644 index 00000000..da27454e Binary files /dev/null and b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/menpo_68_pts_train_profile.mat differ diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_chin/menpo_68_pts_valid_profile.mat b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/menpo_68_pts_valid_profile.mat new file mode 100644 index 00000000..ce495747 Binary files /dev/null and b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/menpo_68_pts_valid_profile.mat differ diff --git a/matlab_version/pdm_generation/menpo_pdm/menpo_chin/readme.txt b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/readme.txt new file mode 100644 index 00000000..3f8e30de --- /dev/null +++ b/matlab_version/pdm_generation/menpo_pdm/menpo_chin/readme.txt @@ -0,0 +1 @@ +This includes scripts necessary to learn the mapping from the detected points using our PDM to the points expected in menpo (the different face outline and chin points in profile). \ No newline at end of file diff --git a/matlab_version/pdm_generation/menpo_pdm/pdm_68_aligned_menpo_v5.mat b/matlab_version/pdm_generation/menpo_pdm/pdm_68_aligned_menpo_v5.mat deleted file mode 100644 index bab5e601..00000000 Binary files a/matlab_version/pdm_generation/menpo_pdm/pdm_68_aligned_menpo_v5.mat and /dev/null differ diff --git a/matlab_version/pdm_generation/menpo_pdm/pdm_68_aligned_wild.txt b/matlab_version/pdm_generation/menpo_pdm/pdm_68_aligned_wild.txt deleted file mode 100644 index dcf28a55..00000000 --- a/matlab_version/pdm_generation/menpo_pdm/pdm_68_aligned_wild.txt +++ /dev/null @@ -1,421 +0,0 @@ -# The mean values of the components (in mm) -204 -1 -6 --72.957569 --72.790558 --70.871761 --66.831804 --59.448919 --48.080739 --33.832453 --17.838100 --0.010106 -17.387457 -32.876924 -46.722555 -57.850941 -65.203250 -69.301098 -71.232056 -71.431519 --57.560424 --48.976494 --37.799113 --26.110444 --15.352715 -15.354187 -26.154473 -37.691865 -48.736613 -57.124426 -0.348903 -0.435330 -0.533328 -0.639297 --14.936522 --7.611648 -0.435787 -8.445935 -15.497456 --45.289862 --36.981135 --27.916315 --19.874480 --28.304740 --37.236112 -19.855229 -27.969805 -36.928263 -45.033371 -37.289251 -28.498230 --27.475945 --17.157145 --6.452818 -0.447889 -7.498765 -17.971501 -27.895450 -18.688252 -8.710833 -0.373495 --7.865124 --18.034598 --23.970633 --6.953296 -0.426526 -7.904330 -24.471046 -8.124865 -0.345312 --7.314243 --30.889604 --12.665900 -5.926763 -24.187268 -40.563703 -54.206297 -64.996338 -72.851454 -75.255674 -72.622259 -64.613328 -53.790915 -40.161067 -23.763312 -5.490077 --13.067600 --31.275711 --51.350644 --58.056846 --60.520739 --59.487462 --55.958185 --56.092704 --59.766953 --60.889299 --58.461411 --51.840887 --39.223014 --28.700588 --18.593816 --8.160504 -3.919133 -5.800681 -6.649958 -5.733313 -3.854472 --36.643045 --41.214510 --41.332710 --35.628204 --33.719887 --33.829829 --35.846858 --41.651966 --41.540380 --37.013378 --34.196447 --33.981514 -27.451758 -22.337733 -19.143868 -20.762136 -19.110756 -22.296212 -27.247954 -35.232280 -39.782700 -40.779943 -39.884184 -35.403198 -27.722249 -25.805493 -26.561872 -25.749741 -27.553858 -31.126043 -32.053655 -31.208948 -54.183375 -50.965902 -47.818113 -44.116655 -37.698773 -27.933197 -15.198874 -1.501238 --7.011294 -0.687352 -13.495502 -26.000721 -35.976559 -42.922230 -47.156260 -50.812657 -54.616630 -11.534080 -4.983904 --1.434412 --7.091812 --11.694770 --11.874007 --7.795857 --2.480679 -3.755996 -10.099855 --13.774893 --21.256864 --28.971320 --36.653755 --18.293956 --23.177443 --26.247199 --23.312260 --18.546073 -7.254469 -2.213472 --0.235708 -0.587214 --0.441350 -2.009948 --0.000295 --0.977536 -1.338488 -6.428877 -1.152072 --1.117445 --7.174301 --16.106530 --22.347647 --23.561368 --22.416222 --16.128115 --7.298468 --14.363859 --19.787955 --21.164948 --19.525090 --14.137779 --8.914601 --19.710792 --21.252549 --19.750011 --9.023398 --18.668917 --20.129951 --18.590983 -# The principal components (eigenvectors) of identity or combined identity and expression model -204 -30 -6 -0.131000 -0.130552 0.089423 -0.053781 0.004657 -0.054775 -0.012357 -0.025496 0.082858 -0.126211 0.091977 0.005194 0.041269 -0.081311 -0.060633 0.004523 -0.052243 0.096304 0.077820 -0.083946 -0.098513 0.182733 -0.155459 0.017432 0.081802 0.008507 -0.081162 -0.008473 -0.025458 -0.019720 -0.115364 -0.126433 0.094817 -0.027277 -0.020686 -0.051915 -0.017736 -0.008234 0.054350 -0.132171 0.049937 -0.009887 0.049972 -0.053017 -0.034696 0.057242 -0.010454 0.055370 0.061877 -0.034280 -0.078294 0.057551 -0.118920 0.044175 0.080022 -0.001560 -0.062444 -0.001926 0.097419 -0.046021 -0.100034 -0.128392 0.109316 0.009746 -0.042428 -0.047152 -0.019368 0.008715 0.026194 -0.121356 0.009365 -0.009096 0.044589 -0.022735 0.014639 0.091590 0.045279 0.017624 0.044269 0.045814 -0.056627 -0.065402 -0.064766 0.070601 0.056775 0.010314 -0.045997 -0.001886 0.186356 -0.068462 -0.086793 -0.129564 0.114761 0.051813 -0.046701 -0.017164 -0.009835 0.011946 0.008575 -0.087736 -0.027875 0.017706 0.015608 0.000864 0.082867 0.097761 0.098016 -0.005552 0.027238 0.113549 0.012621 -0.135885 0.035692 0.055584 0.002885 0.035535 -0.013320 -0.004765 0.156147 -0.052844 -0.059721 -0.116027 0.094173 0.104355 -0.039262 0.032101 0.006363 0.023790 -0.002056 -0.005908 -0.038421 0.050006 -0.024162 0.011646 0.140333 0.079667 0.118686 -0.017389 0.015720 0.147384 0.103153 -0.113630 0.115588 0.022112 -0.055636 0.028606 0.002730 -0.017969 -0.013690 0.014229 -0.027944 -0.085450 0.058306 0.136968 -0.036214 0.065977 0.013986 0.040896 -0.010685 0.102869 0.003141 0.067018 -0.061664 0.022892 0.150815 0.035808 0.108932 -0.038607 0.009000 0.151103 0.139141 -0.036196 0.140794 -0.011306 -0.091725 -0.013719 0.028225 -0.029264 -0.167119 0.046116 -0.004996 -0.040088 0.026824 0.121130 -0.033564 0.067139 0.019032 0.062829 -0.005547 0.193545 0.071544 0.069094 -0.081254 0.055273 0.106692 -0.030068 0.068158 -0.072580 0.009322 0.126033 0.102785 0.036717 0.090226 -0.035507 -0.079112 -0.057653 0.050979 0.014436 -0.201196 0.024758 --0.004486 -0.007966 0.009112 0.063763 -0.030671 0.030437 -0.005595 0.066568 0.027348 0.244705 0.173817 0.080566 -0.070269 0.089164 0.006247 -0.117501 0.038415 -0.085082 0.044192 0.076545 0.045171 0.068874 0.024907 -0.044591 -0.056441 -0.059591 0.044388 0.100246 -0.061007 -0.056956 -0.010148 -0.006714 0.001314 -0.003406 -0.024425 -0.025639 -0.048345 0.035074 0.062468 0.230966 0.252671 0.097712 -0.026944 0.100550 -0.087439 -0.136193 0.033910 -0.074112 0.069669 0.023126 0.027556 0.001363 -0.008006 -0.055136 -0.053023 -0.030220 0.018383 0.110400 0.083293 -0.103159 -0.003647 0.000224 -0.010085 -0.069230 -0.019370 -0.073463 -0.083502 -0.012165 0.090508 0.127544 0.224084 0.073648 0.023379 0.075750 -0.133042 -0.051614 0.032855 -0.068137 0.024881 0.008799 0.006448 -0.114657 -0.004451 -0.034518 0.003911 0.009283 -0.026383 0.070362 0.056194 -0.002159 -0.027106 0.035431 -0.031037 -0.119530 0.001070 -0.093986 -0.080690 -0.021907 0.105573 0.031113 0.151971 0.019279 0.035706 0.027726 -0.149488 0.037775 0.024234 -0.099875 -0.043297 0.054224 -0.061722 -0.164228 0.009605 -0.002670 0.107323 0.044538 -0.029139 0.050187 -0.024412 0.099770 -0.057987 0.077353 -0.060974 -0.125712 0.019978 -0.072790 -0.067080 -0.011513 0.108119 -0.004287 0.068853 -0.037940 0.019857 -0.001346 -0.141945 0.065850 -0.000700 -0.130889 -0.087888 0.078396 -0.111414 -0.119664 0.012973 -0.019905 0.174764 0.082617 0.022343 0.010916 -0.061510 0.087908 -0.091960 0.099667 -0.093230 -0.087333 0.040720 -0.023370 -0.045298 -0.011108 0.076036 -0.010780 -0.015859 -0.064913 -0.007321 -0.027982 -0.105441 0.057128 -0.016374 -0.127413 -0.090495 0.064123 -0.083063 -0.017687 0.002362 -0.055105 0.164410 0.110353 0.076661 -0.043398 -0.073078 -0.014882 -0.115122 0.105511 -0.110277 -0.031381 0.060428 0.032891 -0.012582 -0.015828 0.026891 0.018579 -0.072101 -0.055134 -0.036099 -0.043018 -0.045001 0.033931 -0.028658 -0.083380 -0.044621 0.003766 0.001487 0.092818 -0.032010 -0.074212 0.092356 0.132619 0.098303 -0.068394 -0.045108 -0.113215 -0.123086 0.101173 -0.103024 0.013147 0.063638 0.065384 0.007137 -0.019362 -0.011225 0.057962 -0.085434 -0.031784 -0.046444 -0.040408 0.017556 0.016136 -0.041152 -0.005544 0.020995 -0.077645 0.054744 0.132591 -0.086760 -0.046483 -0.009690 0.086281 0.072697 -0.055625 -0.008422 -0.129465 -0.132799 0.097653 -0.085408 0.050833 0.049749 0.074328 0.008299 0.001513 -0.039437 0.095856 -0.077976 -0.018602 -0.032812 -0.023734 0.054908 -0.001652 -0.052673 0.060442 0.047895 -0.130532 0.056178 0.086905 -0.124387 0.015626 -0.092170 0.001976 0.025809 -0.033228 0.049757 -0.072699 -0.144926 0.098093 -0.075406 0.079346 0.029923 0.077582 0.001420 0.028720 -0.060867 0.135325 -0.057029 -0.017750 -0.009716 -0.008598 0.065269 -0.011931 -0.062278 0.105316 0.063903 -0.166859 0.060008 0.015669 -0.136936 0.070752 -0.146831 -0.088800 -0.007746 -0.029924 0.117461 0.014301 -0.020962 0.004442 0.020102 -0.131928 0.222046 -0.004865 0.057660 -0.092237 0.170520 -0.013927 -0.004065 0.069215 0.018130 0.043252 0.006342 -0.018743 -0.049510 -0.017166 -0.194541 -0.079718 0.135770 0.189148 0.050285 0.006011 -0.055052 -0.114091 -0.011054 0.017055 -0.017235 0.168622 --0.003321 -0.002101 0.024981 -0.092666 0.184187 -0.016551 0.004409 -0.153042 0.150889 0.072888 -0.055672 0.093688 -0.025259 -0.006160 0.026106 -0.045958 -0.040799 0.035704 -0.219942 -0.030219 0.108597 0.054213 -0.000328 0.028840 -0.041588 -0.102863 0.020591 -0.044217 0.017585 0.082863 --0.023198 -0.025560 0.038565 -0.061130 0.101813 -0.057220 -0.087484 -0.161381 0.095316 0.153777 -0.102682 0.009330 -0.051278 -0.048824 0.010514 -0.073260 -0.027954 0.068664 -0.154554 0.006496 0.098289 -0.037266 -0.023442 0.032017 0.051528 -0.046961 0.033231 -0.026782 -0.022985 0.017342 --0.044689 -0.044519 0.049370 -0.045554 0.015640 -0.095247 -0.165322 -0.132779 0.035695 0.200910 -0.140974 -0.107909 -0.057514 -0.050269 -0.015489 -0.093860 -0.012175 0.086411 -0.057241 0.016583 0.122035 -0.067475 -0.026356 0.038470 0.163100 0.008375 0.052190 0.008480 -0.079922 -0.046113 --0.065390 -0.053553 0.055674 -0.030049 -0.059897 -0.125592 -0.216561 -0.082414 -0.020384 0.216137 -0.166720 -0.196444 -0.048967 -0.018694 -0.035643 -0.096529 0.013375 0.099751 0.024071 0.014926 0.155957 -0.062985 -0.020022 0.045828 0.250010 0.044531 0.075596 0.023565 -0.118653 -0.115071 --0.054943 0.052981 -0.058816 0.051071 0.031448 0.127045 0.132467 0.071848 0.179573 -0.166609 0.133795 0.175469 0.079125 0.100614 0.148934 -0.047969 0.064393 0.018175 0.017209 0.051965 0.071133 -0.105350 -0.097843 -0.010563 0.225571 -0.005753 -0.065043 -0.072606 -0.073144 -0.202777 --0.029784 0.038087 -0.047453 0.063057 -0.039836 0.103266 0.075313 0.140013 0.168726 -0.127792 0.113768 0.088884 0.078262 0.036680 0.136933 -0.046209 0.052647 0.033044 -0.039913 0.062313 0.100935 -0.075692 -0.063857 -0.014831 0.170606 -0.008788 -0.040396 -0.040159 -0.040067 -0.106729 --0.005852 0.018304 -0.034915 0.074542 -0.114508 0.076484 0.003493 0.182764 0.144790 -0.084920 0.070502 -0.014054 0.058398 -0.041456 0.107886 -0.057372 0.019830 0.036627 -0.088616 0.057087 0.103430 -0.061968 -0.039866 -0.042605 0.080241 0.004104 -0.021389 0.049864 -0.033601 0.033739 -0.015044 -0.002120 -0.022053 0.103793 -0.181190 0.050317 -0.074052 0.187131 0.100863 -0.034909 -0.006602 -0.090213 0.024845 -0.114741 0.056543 -0.095262 -0.016606 0.044321 -0.112045 0.049919 0.056226 -0.083936 -0.053566 -0.060897 -0.041563 0.003680 -0.025312 0.132356 -0.027269 0.155327 -0.043148 -0.007039 -0.019885 0.143232 -0.198663 0.048926 -0.106913 0.132608 0.061425 0.001893 -0.088250 -0.058853 -0.024431 -0.130062 0.012112 -0.126018 -0.034261 0.070034 -0.104998 0.048906 -0.040375 -0.148336 -0.099210 -0.053709 -0.169071 -0.002444 -0.028940 0.097905 0.010401 0.189628 --0.086058 0.013732 -0.007880 0.004210 -0.005079 0.001352 -0.016516 0.005435 0.022266 0.010770 -0.009652 -0.000058 -0.001986 0.035484 -0.025237 0.019631 0.024679 -0.052284 0.046254 0.013603 0.013536 0.018064 -0.048009 0.045267 -0.002341 -0.006140 -0.001186 0.015426 -0.013964 -0.008141 --0.091615 0.012875 -0.007676 0.000628 -0.008006 -0.002659 -0.009918 -0.000985 -0.002450 -0.000239 -0.009933 0.000274 -0.007619 0.034044 -0.030785 0.037516 0.039639 -0.095546 0.047182 0.033948 0.034390 0.021669 -0.087858 0.052310 -0.019368 0.005736 0.009975 0.020179 0.006726 -0.010513 --0.099565 0.011942 -0.007129 -0.002797 -0.012585 -0.006433 -0.004573 -0.007583 -0.025751 -0.007845 -0.005832 0.001149 -0.012219 0.030117 -0.035529 0.049857 0.052643 -0.134291 0.048846 0.050900 0.058893 0.028134 -0.134129 0.059750 -0.034025 0.015771 0.020837 0.027809 0.028928 -0.017383 --0.109673 0.011088 -0.006420 -0.006400 -0.017833 -0.010453 0.000611 -0.014171 -0.051682 -0.014026 0.000969 0.001214 -0.016962 0.022742 -0.039328 0.060393 0.063763 -0.169622 0.048802 0.065541 0.082207 0.034393 -0.177978 0.066226 -0.049953 0.025067 0.033073 0.036280 0.053501 -0.027231 --0.058577 0.037115 0.039243 -0.039519 0.007187 0.019225 0.072197 0.046445 -0.033099 -0.007554 -0.019407 -0.043005 -0.000612 -0.003227 0.008389 -0.013539 -0.044372 -0.144218 0.072579 0.109785 -0.076158 -0.025980 -0.164819 0.101922 -0.022903 -0.178287 0.328045 -0.111943 0.204815 -0.006547 --0.064274 0.026196 0.022375 -0.026930 -0.002925 0.012539 0.043069 0.020949 -0.041947 -0.009594 -0.016886 -0.031474 -0.009572 -0.004639 -0.015681 -0.004797 -0.015566 -0.135872 0.061275 0.084880 -0.018624 0.018864 -0.155231 0.075156 -0.049514 -0.095119 0.194121 -0.052930 0.164407 -0.021942 --0.069193 0.006059 -0.002883 -0.007862 -0.010448 -0.005624 0.013572 -0.014619 -0.050693 -0.025712 -0.003520 0.001182 -0.008993 0.008567 -0.031385 0.028405 0.036857 -0.113262 0.027511 0.025451 0.047961 0.051212 -0.146568 0.033374 -0.072475 0.040380 0.023333 -0.016406 0.112274 -0.032984 --0.065199 -0.012646 -0.027322 0.012006 -0.014914 -0.019803 -0.019617 -0.044602 -0.047196 -0.047259 -0.005633 0.031288 -0.007811 0.021350 -0.042991 0.048911 0.082232 -0.073207 -0.017249 -0.031051 0.117286 0.083435 -0.124753 -0.005327 -0.093516 0.172209 -0.153125 0.018302 0.048954 -0.021851 --0.059440 -0.023535 -0.042735 0.024821 -0.020935 -0.022850 -0.045302 -0.071191 -0.049659 -0.056801 -0.007378 0.045915 -0.013672 0.018260 -0.051270 0.067249 0.103687 -0.039449 -0.037970 -0.059817 0.158220 0.114096 -0.094343 -0.041057 -0.107766 0.268732 -0.291514 0.039236 -0.023495 -0.007542 --0.018777 0.028858 -0.018601 -0.085637 0.150962 -0.033036 0.048845 0.108053 0.056570 -0.012597 -0.007311 -0.133498 0.092186 0.040592 -0.097717 -0.016530 -0.039194 0.006970 0.083833 0.037340 -0.052066 0.039155 0.072018 0.031376 -0.099686 0.084783 0.015768 0.112134 -0.075144 0.020852 --0.025705 0.015393 -0.016938 -0.062830 0.108294 -0.026748 0.017555 0.075032 0.044309 0.007991 -0.024729 -0.126139 0.083602 0.082830 -0.063566 -0.009531 -0.012331 -0.002304 0.069652 -0.004198 -0.098715 -0.018354 0.078192 -0.040952 -0.134602 0.077484 -0.014209 0.058388 -0.049351 -0.020364 --0.026693 0.000729 0.007133 -0.031867 0.059985 -0.022862 -0.006528 0.050535 0.028092 0.021691 -0.034990 -0.127145 0.079429 0.083748 -0.041750 -0.015386 0.032944 -0.041214 0.057820 -0.053952 -0.155445 -0.064478 0.048474 -0.175445 -0.106568 -0.012379 -0.064799 -0.019022 -0.008945 -0.048957 --0.034284 -0.020886 0.021041 -0.019148 0.007661 -0.029856 -0.034355 0.014232 0.011371 0.010426 -0.049164 -0.121316 0.057938 0.109189 -0.000734 -0.024256 0.050874 -0.046719 0.027099 -0.086228 -0.145675 -0.099317 0.010709 -0.209495 -0.110265 -0.037331 -0.095975 -0.056057 0.049957 -0.070175 --0.024298 -0.001104 0.006394 -0.046601 0.056493 -0.030818 -0.005080 0.058995 0.023872 0.000691 -0.043118 -0.132706 0.074189 0.111250 -0.043970 -0.035142 0.022109 -0.025587 0.050843 -0.050972 -0.118756 -0.054840 0.047739 -0.143818 -0.125737 0.007749 -0.049329 0.008702 0.008978 -0.056757 --0.022940 0.016268 -0.017518 -0.078839 0.111871 -0.032259 0.024737 0.080385 0.042053 -0.015500 -0.036211 -0.129036 0.081245 0.104190 -0.066226 -0.028255 -0.024321 0.004270 0.071774 0.000859 -0.071321 -0.010155 0.074588 -0.027038 -0.141303 0.083177 -0.009058 0.080409 -0.024851 -0.025504 --0.022126 0.043057 -0.037268 0.037498 0.016584 0.052997 0.023830 0.006082 0.051405 -0.063334 -0.057053 0.107654 -0.050161 0.039845 -0.097809 -0.011027 -0.047469 0.035788 0.109922 0.050976 -0.014526 0.109115 0.191076 0.159879 0.037447 0.050162 0.093474 0.081820 -0.020441 0.020910 --0.014483 0.018328 -0.023446 0.053005 -0.035134 0.040931 -0.014477 -0.014788 0.056434 -0.043632 -0.061022 0.106376 -0.076312 0.071786 -0.074381 0.000313 -0.038367 0.029828 0.106428 0.005546 -0.045051 0.066286 0.218095 0.131739 0.007779 0.007958 0.050006 0.040229 0.020606 0.018624 --0.013586 0.003526 0.000015 0.084532 -0.082796 0.047949 -0.042421 -0.038530 0.053939 -0.036151 -0.080362 0.102396 -0.076704 0.069383 -0.046856 -0.009111 -0.005939 0.002923 0.079649 -0.057796 -0.096812 0.024988 0.173400 0.000676 0.024727 -0.091741 -0.014982 -0.036389 0.035672 0.026798 --0.007679 -0.011126 0.001625 0.106346 -0.124803 0.058806 -0.070916 -0.076221 0.042620 -0.029910 -0.097302 0.114825 -0.080038 0.085439 0.009158 -0.019488 0.010508 0.005862 0.024450 -0.111452 -0.106802 -0.009631 0.092059 -0.065139 -0.019156 -0.111981 -0.062148 -0.090257 0.054777 0.033284 --0.010883 0.001936 0.001932 0.099854 -0.086791 0.056402 -0.042897 -0.044681 0.040581 -0.039569 -0.100655 0.096829 -0.067320 0.063788 -0.063016 -0.045004 0.007406 -0.007779 0.071625 -0.059567 -0.101045 0.024408 0.157191 -0.019651 0.022581 -0.110975 -0.016584 -0.030929 0.047766 0.009573 --0.012612 0.020095 -0.021252 0.068123 -0.032446 0.052521 -0.008920 -0.023552 0.044101 -0.048340 -0.082806 0.102471 -0.059663 0.055081 -0.092289 -0.038598 -0.028845 0.014126 0.105685 0.004437 -0.056316 0.067882 0.197195 0.092678 0.015653 -0.028947 0.040351 0.040453 0.040892 0.007191 -0.055707 0.091848 0.160163 -0.030792 0.073410 0.016481 0.113383 0.151011 -0.088752 0.026874 -0.031113 0.046167 -0.081590 -0.073069 0.015990 0.042353 0.049181 0.057492 0.027032 -0.090950 -0.025584 -0.039941 0.090546 -0.026323 0.075516 0.114630 0.038365 -0.150095 0.009626 0.124146 -0.005211 0.072911 0.091554 0.007765 0.041908 -0.020616 0.085645 0.077247 -0.080717 0.012728 -0.000194 0.019111 -0.052035 -0.078416 -0.010525 0.025159 -0.061470 -0.013835 0.018266 -0.095378 0.022420 -0.058178 0.030517 0.018032 0.045611 0.064601 0.000230 -0.168287 -0.026580 0.041685 --0.031461 0.032381 0.034951 -0.008477 0.013455 -0.000052 0.054910 0.008764 -0.087509 -0.014759 0.009798 0.006254 -0.015284 -0.067245 0.018414 0.024479 -0.092413 -0.045841 0.020608 -0.079035 0.027551 -0.032200 -0.017540 0.041473 0.022722 0.047847 -0.031769 -0.114374 -0.029833 0.007309 --0.033566 0.002440 0.002947 -0.014424 -0.000628 -0.005225 0.037822 -0.021679 -0.090068 -0.029458 0.018857 0.003113 0.000944 -0.040216 0.023319 0.037309 -0.019837 0.005182 0.002460 -0.028846 -0.000686 0.021638 -0.043395 0.014070 -0.007997 0.012785 -0.009386 -0.046180 -0.005733 0.027669 --0.032749 -0.031772 -0.030253 -0.016119 -0.020712 -0.016656 0.010562 -0.047147 -0.086281 -0.030618 0.013462 -0.019815 0.021682 -0.025941 0.024379 0.059764 0.061462 0.061357 -0.005959 0.045818 -0.028073 0.075844 -0.065696 0.013690 -0.014943 -0.038450 0.002828 -0.002369 0.014012 0.062601 --0.000828 -0.079967 -0.078539 -0.030356 -0.041948 0.002133 -0.019796 -0.104943 -0.069491 -0.041689 0.032592 -0.032282 0.054733 -0.010828 0.055749 0.047969 0.042576 0.055628 -0.005414 0.097319 -0.063454 0.087683 -0.008112 -0.000238 -0.031642 -0.021686 -0.020163 -0.022537 0.008320 0.083870 -0.047816 -0.108076 -0.140135 0.006522 -0.054144 -0.030051 -0.032607 -0.172747 -0.053424 -0.064442 0.052360 -0.052810 0.075063 -0.019594 0.051122 0.019153 -0.056404 0.016462 -0.044332 0.132091 -0.069994 0.037322 0.098241 -0.043565 -0.062717 0.019659 -0.034297 -0.132602 -0.025950 0.060816 -0.008994 -0.089707 -0.097778 -0.021002 -0.033012 0.005562 -0.011694 -0.111783 -0.085405 -0.067657 0.041588 -0.009081 0.067473 -0.015155 0.033043 0.042215 0.040549 0.110150 -0.077369 0.041356 -0.061258 0.053313 0.035539 -0.068142 -0.014329 -0.033949 0.016640 0.020825 -0.054464 0.007575 --0.023369 -0.040730 -0.043264 -0.019895 -0.016061 -0.004013 0.018417 -0.055811 -0.108899 -0.068640 0.017128 0.009897 0.038698 -0.017965 0.021074 0.025968 0.057275 0.171987 -0.092219 -0.043502 -0.028026 0.061850 -0.004671 -0.081701 0.021528 -0.085123 0.044161 0.165767 -0.075259 -0.042131 --0.026044 0.002650 0.004014 -0.016449 -0.002922 -0.009915 0.048661 -0.025506 -0.115866 -0.047416 0.013116 0.002466 0.018134 -0.042652 0.034609 -0.021384 -0.059741 0.101823 -0.068398 -0.086991 -0.010473 -0.017066 0.034266 -0.010819 0.039418 -0.096632 -0.012305 0.143481 -0.038247 -0.075240 --0.023270 0.041955 0.050021 -0.010391 0.006129 -0.023308 0.071330 0.010846 -0.119790 -0.014019 0.001905 -0.021726 -0.001219 -0.070796 0.045899 -0.049793 -0.161820 0.022692 -0.036511 -0.096726 0.003227 -0.094579 0.077489 0.079898 0.068804 -0.107173 -0.070170 0.088039 0.006119 -0.083633 -0.013692 0.083713 0.113210 -0.005752 0.034809 -0.032149 0.096615 0.078617 -0.102151 0.017841 -0.005646 0.003244 -0.051982 -0.076163 0.034645 -0.011303 -0.096982 0.023376 -0.000381 -0.087089 -0.002427 -0.077146 0.100665 0.045422 0.073376 -0.019118 -0.030815 -0.014460 0.005987 0.022771 -0.057640 0.094585 0.164269 -0.025829 0.067710 0.004359 0.116302 0.150520 -0.096425 0.038517 -0.040410 0.034098 -0.089080 -0.109021 -0.018584 0.030143 0.068314 0.075327 0.034349 -0.045045 -0.033215 -0.049287 0.082197 -0.023198 0.050345 0.099084 0.012058 -0.131737 -0.008488 0.105946 --0.034321 0.032639 0.040082 -0.013085 0.007596 -0.002986 0.056017 0.012322 -0.097615 -0.011880 0.003858 -0.006437 -0.003183 -0.075468 0.026724 -0.003997 -0.121827 -0.020982 0.001311 -0.094253 0.020562 -0.063764 -0.007594 0.056909 0.026436 0.022740 -0.055542 -0.063473 -0.012771 -0.014601 --0.036867 0.003934 0.002591 -0.015678 -0.001283 -0.004912 0.042006 -0.021990 -0.096554 -0.035558 0.018367 0.003329 0.007601 -0.044546 0.027130 0.017604 -0.034561 0.033861 -0.018848 -0.049817 -0.000639 0.020231 -0.032764 0.009457 -0.006179 -0.012983 -0.013086 -0.004486 -0.006407 0.014991 --0.035258 -0.028982 -0.036035 -0.013887 -0.015613 -0.013499 0.015914 -0.050399 -0.089097 -0.046291 0.017986 -0.006990 0.021589 -0.021864 0.023757 0.050651 0.058728 0.098002 -0.031193 0.014976 -0.029283 0.099963 -0.045207 -0.017926 -0.017736 -0.060648 0.022628 0.041315 0.000992 0.048742 -0.049593 -0.110987 -0.142255 0.000053 -0.047294 -0.020652 -0.030355 -0.173904 -0.059446 -0.079064 0.064534 -0.040346 0.081427 0.010293 0.089076 0.035929 -0.072084 -0.002046 -0.057618 0.095210 -0.061392 0.053604 0.106873 -0.048059 -0.058574 0.041693 -0.002637 -0.163730 0.005446 0.097865 --0.034382 -0.034466 -0.044005 -0.019062 -0.016669 -0.007959 0.017679 -0.049120 -0.100243 -0.053918 0.020460 0.000144 0.027467 -0.020282 0.030448 0.056908 0.053081 0.146451 -0.069138 -0.020118 -0.038152 0.079704 -0.022678 -0.046703 0.007637 -0.088836 0.037056 0.107554 -0.035320 0.032147 --0.036057 0.004544 0.002892 -0.015629 -0.003315 -0.010044 0.045565 -0.024215 -0.106756 -0.038543 0.021351 0.003473 0.013468 -0.048088 0.037968 0.015155 -0.050387 0.073606 -0.050304 -0.072583 -0.012490 -0.002290 0.000173 0.004392 0.013133 -0.061704 -0.016479 0.068248 -0.037851 -0.013896 --0.032944 0.040344 0.048706 -0.007927 0.006361 -0.017964 0.063868 0.007750 -0.107164 -0.012976 0.006227 -0.013237 0.002142 -0.084862 0.042853 -0.013162 -0.147471 0.008838 -0.022260 -0.102527 0.004551 -0.083870 0.037854 0.075487 0.037182 -0.041922 -0.077197 0.006513 -0.036397 -0.054304 -0.063060 -0.018850 -0.017013 -0.041821 -0.102846 0.036090 0.196413 -0.139165 0.244423 0.007068 -0.214257 -0.068132 0.137748 -0.121363 -0.081485 0.233499 0.007606 -0.068111 0.152596 -0.037348 0.129106 -0.109823 0.039978 -0.027131 -0.030526 -0.089095 0.054500 0.137633 0.044574 -0.110978 --0.005113 -0.013619 -0.027525 -0.016374 -0.098129 0.019134 0.162986 -0.065726 0.216947 0.062361 -0.185296 -0.059394 0.078906 -0.087643 -0.008743 0.164555 0.000234 -0.030515 0.076093 -0.024777 0.038817 -0.046082 0.015580 0.026363 -0.007204 -0.057064 -0.010087 0.069178 -0.008242 -0.035981 --0.069444 -0.011635 -0.034613 0.000048 -0.081192 -0.001812 0.129279 -0.012689 0.197074 0.116445 -0.143253 -0.036722 0.014178 -0.053446 0.066590 0.076431 -0.019530 0.023729 0.006429 -0.018623 -0.043543 0.025088 -0.016879 0.052965 0.007609 -0.007014 -0.055005 -0.016511 -0.079790 0.029900 --0.118495 -0.012403 -0.043519 -0.000315 -0.058788 -0.027046 0.091881 0.027430 0.177615 0.144565 -0.080961 -0.016233 -0.039925 -0.017026 0.111890 0.001566 -0.038466 0.067747 -0.051224 -0.022908 -0.117856 0.094292 -0.047308 0.052385 0.024529 0.034890 -0.072652 -0.094513 -0.102613 0.067200 --0.141258 -0.018005 -0.048039 -0.026081 -0.028501 -0.060317 0.045586 0.058935 0.154784 0.128549 -0.013944 -0.005509 -0.073511 0.008268 0.112976 -0.067211 -0.036673 0.082441 -0.067067 -0.022082 -0.167755 0.113875 -0.049876 0.034077 0.040475 0.076357 -0.057082 -0.114419 0.000026 0.041713 --0.134342 -0.040455 -0.039172 -0.068326 0.012000 -0.092811 -0.003102 0.078919 0.134221 0.076008 0.043547 0.005122 -0.093852 0.008234 0.082148 -0.132166 -0.019786 0.089176 -0.035244 -0.012396 -0.140004 0.097917 -0.022414 0.008417 0.027652 0.086522 -0.019375 -0.079122 0.147435 -0.023970 --0.106396 -0.080536 -0.024180 -0.106649 0.061884 -0.108248 -0.048938 0.083646 0.109776 0.002162 0.080793 0.018935 -0.100955 -0.028516 0.041000 -0.176472 0.016714 0.094676 0.041467 -0.014136 -0.026491 0.058089 0.026687 -0.026944 -0.021815 0.042725 0.011193 -0.035590 0.232891 -0.087296 --0.060889 -0.125237 -0.012789 -0.134588 0.100348 -0.104158 -0.077917 0.069777 0.062168 -0.071717 0.081319 0.009993 -0.100993 -0.092517 0.009066 -0.151723 0.053620 0.056351 0.128278 -0.037341 0.140497 -0.018471 0.089918 -0.060474 -0.090058 -0.066281 0.023744 -0.039042 0.170465 -0.100634 --0.026426 -0.140592 -0.009775 -0.160970 0.131111 -0.088166 -0.069796 0.052685 0.029653 -0.141370 0.064013 -0.003585 -0.111347 -0.158450 0.010681 -0.052898 0.054867 0.006763 0.193657 -0.054376 0.216243 -0.067577 0.112273 -0.082889 -0.105224 -0.120622 0.005961 -0.062774 0.009219 -0.002330 -0.014201 -0.137228 -0.011378 -0.143389 0.124733 -0.114116 -0.030147 0.060160 -0.016206 -0.138627 0.014521 -0.017404 -0.129217 -0.122360 0.042735 0.048961 0.067119 -0.048979 0.132121 0.000252 0.132059 -0.091877 0.070301 0.020981 -0.068320 -0.164356 -0.032343 -0.050287 -0.118179 0.077269 -0.074054 -0.109895 -0.018513 -0.123186 0.100561 -0.128110 0.040663 0.069096 -0.060533 -0.118169 -0.027150 -0.015949 -0.155056 -0.043643 0.062325 0.082185 0.047468 -0.116319 0.030567 0.064359 0.000870 -0.075505 0.001376 0.073208 0.024129 -0.129284 -0.053228 0.063334 -0.175107 0.099775 -0.117331 -0.082211 -0.028005 -0.088349 0.051843 -0.117945 0.107858 0.061250 -0.096252 -0.058066 -0.059114 -0.017510 -0.153591 0.030506 0.070096 0.042104 0.024528 -0.152202 -0.052418 0.084250 -0.080572 -0.029974 -0.048422 0.063661 0.076694 -0.062741 -0.041851 0.111315 -0.133488 0.024334 -0.135437 -0.063243 -0.032135 -0.050748 0.002462 -0.091586 0.163705 0.034139 -0.128227 0.008403 -0.073996 -0.006869 -0.132350 0.068182 0.068856 -0.026830 0.021704 -0.149534 -0.091324 0.085837 -0.092672 0.021390 -0.058329 0.013850 0.069201 0.032723 -0.022391 0.091406 -0.040827 -0.102354 -0.119356 -0.051415 -0.026084 -0.029267 -0.044384 -0.067216 0.209287 -0.008060 -0.142187 0.065459 -0.054628 0.016178 -0.084859 0.073166 0.050875 -0.085982 0.029673 -0.105955 -0.071103 0.079801 -0.050713 0.043727 -0.047719 -0.023731 0.034745 0.092947 -0.005155 0.040651 0.032072 -0.158175 -0.076133 -0.035965 -0.016919 -0.033265 -0.093885 -0.047100 0.236205 -0.052378 -0.130498 0.096860 -0.002700 0.029857 0.003608 0.041777 -0.004116 -0.129936 0.034562 -0.044497 -0.028194 0.061139 0.009946 0.020922 -0.018747 -0.034131 0.007034 0.083222 0.000971 -0.000249 0.060733 -0.076774 -0.018108 -0.019870 -0.012713 -0.053031 -0.142451 -0.026878 0.245843 -0.107316 -0.099317 0.104250 0.064386 0.035459 0.110219 -0.005394 -0.087167 -0.156381 0.035312 0.015027 0.024693 0.032588 0.075098 -0.018696 0.028518 -0.050780 -0.010176 0.019610 0.023653 -0.031484 0.038986 0.053470 --0.044575 -0.005558 -0.005635 -0.081189 -0.179506 -0.008942 0.255100 -0.181790 -0.057669 0.097269 0.126044 0.049967 0.213453 -0.058239 -0.162097 -0.166127 0.026596 0.077190 0.088919 -0.003503 0.146921 -0.062235 0.069937 -0.084738 -0.032684 -0.035674 0.054446 -0.055785 -0.016766 0.182554 -0.032893 0.017488 -0.081075 -0.046572 -0.136276 -0.101032 -0.151242 0.245104 -0.123419 -0.092790 -0.144026 -0.129044 0.180977 0.231061 -0.042570 -0.107651 0.073435 -0.078235 0.070696 -0.128416 0.124385 0.181669 0.027911 0.055365 0.175353 -0.055823 -0.020375 -0.074700 -0.148549 0.034554 -0.051567 0.052772 -0.100834 -0.047754 -0.036272 -0.051617 -0.074440 0.151507 -0.053709 -0.108270 -0.139083 0.065982 0.146801 0.173952 0.009462 -0.115783 0.012922 -0.049741 0.008262 -0.068894 0.103809 0.103714 -0.020841 0.050206 0.012574 -0.064651 0.004993 -0.124429 -0.031270 0.060745 -0.065679 0.064456 -0.106213 -0.027816 0.014186 -0.033052 -0.064794 0.067812 -0.024093 -0.073930 -0.147863 0.181794 0.085807 0.067908 0.020112 -0.127193 -0.017447 -0.011166 -0.018759 0.017020 0.033173 -0.000274 -0.063228 0.032201 -0.066820 -0.037332 -0.003873 -0.127659 0.011635 0.058219 -0.063812 0.064224 -0.103356 -0.012037 0.023842 -0.032512 -0.095873 0.010647 -0.025292 -0.031935 -0.147258 0.209977 0.033265 -0.044729 0.007119 -0.139638 -0.037957 0.018008 0.012952 0.075927 -0.034336 -0.089551 -0.095849 0.001226 -0.076514 0.005948 -0.023772 -0.066365 -0.020877 0.058157 -0.051224 0.057107 -0.098058 -0.003785 0.006698 -0.040734 -0.139165 -0.027206 -0.041169 0.021608 -0.146923 0.167893 -0.008660 -0.168075 -0.028463 -0.160506 -0.067175 0.030189 0.086699 0.131947 -0.092174 -0.169825 -0.102231 -0.021430 -0.048722 0.039131 -0.051432 0.055825 -0.070391 0.066318 --0.024328 0.073926 -0.103746 -0.007946 0.000974 -0.046220 -0.131725 -0.036003 -0.067715 0.044417 -0.088704 0.192071 -0.018179 -0.195968 -0.025307 -0.028152 -0.073417 0.016763 0.130997 0.087487 -0.183458 -0.123720 -0.056293 -0.043362 -0.081091 0.049957 -0.033590 0.146562 -0.050776 -0.014389 --0.034223 0.082670 -0.109356 -0.023054 0.005114 -0.046077 -0.096576 0.001100 -0.047707 0.037018 -0.022181 0.239699 0.021707 -0.117808 0.045302 0.057545 -0.045879 0.021664 0.071207 0.033742 -0.129274 -0.063401 -0.024005 -0.023098 -0.039556 0.035041 0.009146 0.020869 -0.000340 -0.107138 --0.034669 0.079306 -0.109810 -0.045216 -0.012739 -0.056087 -0.075269 0.059950 -0.031606 0.046966 0.038976 0.216702 0.068446 -0.073497 0.096541 0.129187 -0.031374 0.004310 0.008441 -0.007980 -0.060555 0.004769 0.034788 0.002098 -0.001942 0.005618 0.047169 -0.048711 0.053499 -0.144368 --0.021961 0.058908 -0.099243 -0.071055 -0.069698 -0.077632 -0.096028 0.153965 -0.021464 0.067834 0.091432 0.105135 0.113834 -0.063590 0.133616 0.182894 -0.023141 -0.040699 -0.085652 -0.056231 0.028915 0.092570 0.120511 -0.010204 0.016377 -0.013075 0.086494 -0.027777 0.081619 -0.099586 --0.007807 0.018619 -0.074299 -0.076730 -0.170762 -0.121092 -0.178570 0.257734 -0.043960 0.109469 0.103602 -0.075679 0.127089 -0.105048 0.116068 0.191298 -0.008410 -0.090572 -0.207463 -0.111682 0.090348 0.185834 0.187281 -0.048822 -0.003173 -0.018267 0.089598 0.094500 0.069721 0.016742 -0.014984 0.132007 -0.075723 0.021997 0.084894 0.154135 0.048077 -0.027871 0.026003 -0.070613 0.052098 -0.013223 -0.052675 -0.231365 -0.084607 -0.081193 0.054812 -0.060724 0.144442 0.068137 0.017420 0.252462 0.034237 -0.215825 0.139949 0.021631 -0.029677 0.126688 -0.104519 0.054435 -0.010235 0.091794 -0.061964 0.083937 0.074043 0.085621 0.039617 -0.035484 0.016801 -0.040079 0.048888 -0.035536 -0.012986 -0.189341 -0.065359 -0.084935 0.136345 -0.068917 0.051734 0.000897 -0.010059 0.144173 0.052337 -0.040046 0.108711 0.018487 -0.103146 0.077186 -0.005914 0.034384 -0.005980 0.054151 -0.051541 0.143169 0.069195 0.014219 0.034861 -0.038369 0.009585 -0.010444 0.044360 -0.054329 0.030027 -0.147781 -0.054317 -0.085856 0.210708 -0.071714 -0.030430 -0.046401 -0.030940 0.036199 0.073623 0.149696 0.076954 0.013218 -0.161925 0.037749 0.106427 0.020823 -0.001699 0.018495 -0.041384 0.197266 0.067511 -0.058520 0.029072 -0.037207 0.000966 0.017896 0.037875 -0.070624 0.065507 -0.109782 -0.043793 -0.085449 0.276021 -0.068981 -0.104469 -0.095405 -0.043681 -0.060634 0.100458 0.341592 0.043360 0.010695 -0.224233 -0.004523 0.216737 0.007048 --0.000288 0.036029 0.047512 0.111354 0.014821 -0.013601 0.021702 -0.077821 0.014560 -0.046781 0.018367 -0.041376 0.033108 0.015736 0.071945 -0.087686 0.058987 -0.063258 -0.038491 -0.109893 -0.098160 0.007623 -0.014783 0.040039 -0.055049 -0.005971 0.248033 0.059188 -0.030868 -0.000807 --0.000175 0.009976 0.034939 0.124603 0.016960 -0.047884 0.000071 -0.097173 0.022198 -0.039257 0.030580 -0.037407 0.034882 0.003282 0.066026 -0.064695 0.111155 -0.065238 -0.044140 -0.177198 -0.054418 -0.040499 0.005398 0.052024 -0.053051 0.068387 0.136879 0.031940 -0.048830 0.004360 --0.003784 -0.022848 0.033883 0.134700 -0.003186 -0.085958 -0.038200 -0.116761 0.020717 -0.016786 0.038829 -0.058066 0.037146 -0.006413 0.065591 -0.053700 0.156663 -0.058659 -0.048534 -0.225885 -0.018935 -0.098165 0.003646 0.085989 -0.061058 0.089192 0.071551 0.006800 -0.072287 0.001279 --0.002463 0.010114 0.035693 0.122847 0.016155 -0.050748 -0.005759 -0.093489 0.036045 -0.012902 0.055713 -0.034960 0.031618 0.000429 0.069486 -0.037198 0.111565 -0.072918 -0.021239 -0.173167 -0.063233 -0.046171 -0.001743 0.063974 -0.047473 0.065854 0.125733 0.001284 -0.088620 0.041678 -0.002847 0.034013 0.047930 0.109398 0.015996 -0.021212 0.012139 -0.069713 0.044283 0.010370 0.063114 -0.042160 0.023228 0.004876 0.077960 -0.017926 0.067152 -0.089240 0.012443 -0.087220 -0.124483 -0.010810 -0.003469 0.059898 -0.041663 0.007023 0.227061 -0.021026 -0.110393 0.066120 -0.050969 0.038861 -0.022526 -0.030825 -0.063111 0.067202 -0.012793 -0.026960 -0.005228 -0.115737 -0.034509 -0.087599 -0.106155 0.153085 -0.024585 -0.074764 -0.021330 0.025234 -0.093910 -0.023541 0.073549 -0.041803 -0.044211 -0.026155 -0.029589 -0.041107 0.014127 -0.002474 0.061549 -0.005768 -0.046299 0.060858 -0.055729 -0.044887 -0.019849 0.079615 -0.003728 -0.019651 0.002482 -0.122350 -0.010519 -0.069159 -0.169250 0.149158 -0.068382 -0.051832 -0.058946 0.130873 -0.064183 0.061917 0.149602 -0.009708 0.001133 0.167296 -0.112503 0.130441 0.045506 0.059545 0.020095 -0.020104 -0.044001 0.060428 -0.057851 -0.038046 -0.015818 0.085156 -0.010816 -0.030492 0.006619 -0.105409 0.016564 -0.074052 -0.171409 0.102625 -0.073762 -0.036167 -0.052773 0.123209 -0.043264 0.062397 0.131280 -0.011508 0.004733 0.144218 -0.100695 0.132460 0.036231 0.058362 0.002203 -0.012258 -0.029445 0.056801 -0.032731 0.004739 -0.046488 0.096495 -0.021021 -0.043467 -0.005281 -0.066132 0.021290 -0.095627 -0.092289 0.030294 -0.043553 -0.049341 0.007945 -0.018937 -0.037418 -0.013084 -0.016168 -0.018752 -0.038939 -0.129027 0.020725 -0.069253 -0.029682 -0.004944 0.013580 0.013046 -0.037282 0.064589 -0.009453 0.008192 -0.051718 0.103060 -0.012682 -0.039998 -0.007202 -0.093893 0.011093 -0.088309 -0.130411 0.070248 -0.049388 -0.045630 -0.001269 -0.013498 -0.055802 -0.031682 -0.006046 -0.058598 -0.052340 -0.145393 0.033223 -0.107139 -0.043103 -0.035585 0.052091 0.019542 -0.043459 0.051527 0.000861 0.003043 -0.070795 0.085498 -0.018992 -0.039123 -0.011911 -0.099930 -0.011174 -0.093221 -0.126516 0.110611 -0.034462 -0.060081 -0.005597 0.000539 -0.084785 -0.040003 0.014215 -0.086169 -0.064423 -0.115466 0.010984 -0.107491 -0.040300 -0.045037 0.077069 0.002770 --0.005554 0.060156 -0.033665 -0.001320 -0.058094 0.082543 -0.026641 -0.041168 0.003622 -0.007982 0.091118 -0.088671 -0.095419 -0.003819 -0.018312 0.056327 0.008191 -0.007911 0.003581 -0.023303 -0.066465 -0.025156 -0.027560 -0.113103 0.042483 -0.078096 -0.033472 -0.029783 -0.025959 0.010504 --0.017903 0.067351 -0.061175 -0.046197 -0.033235 0.068359 -0.018621 -0.031304 0.018296 -0.024428 0.125103 -0.056474 -0.178084 0.053077 -0.041589 0.124352 -0.053531 0.139540 0.024795 0.045195 0.051837 -0.019074 0.039424 0.160365 -0.070332 0.125703 0.036105 0.037967 -0.043689 -0.038495 --0.019879 0.066375 -0.058013 -0.054912 -0.042789 0.055465 -0.018915 -0.016956 0.019313 0.004374 0.146202 -0.049222 -0.181219 0.067630 -0.024487 0.161760 -0.063088 0.147993 0.016488 0.041399 0.045966 -0.014853 0.053480 0.194026 -0.075438 0.128040 0.037593 0.014791 -0.035741 -0.038429 --0.028389 0.046445 -0.025286 -0.041779 -0.088554 0.040662 -0.032955 -0.024151 0.017020 0.035604 0.148530 -0.063853 -0.122244 0.065460 0.023017 0.161858 -0.030477 0.041699 -0.003590 -0.047252 -0.043948 -0.049713 0.016973 0.011685 0.019542 -0.042443 -0.007737 -0.075866 -0.027802 0.005228 --0.020987 0.057706 -0.002265 -0.007070 -0.089576 0.064520 -0.033497 -0.034364 0.012073 0.017570 0.130075 -0.072552 -0.136924 0.052244 0.003633 0.133870 -0.009326 0.014017 -0.001824 -0.058656 -0.087810 -0.092453 -0.018730 -0.086906 0.041486 -0.109590 -0.054497 -0.102953 0.006494 0.001851 --0.013685 0.069087 -0.011364 0.001367 -0.069195 0.085978 -0.023809 -0.034303 0.010229 -0.003482 0.116162 -0.077156 -0.134125 0.022440 -0.018271 0.102292 -0.002441 0.002646 0.009279 -0.048035 -0.084953 -0.066380 -0.018871 -0.127431 0.050271 -0.113275 -0.047119 -0.075842 0.006828 0.007729 -0.005004 0.019060 0.172854 -0.013555 0.019954 0.009317 -0.010804 0.011509 -0.050720 0.005121 -0.034243 0.008704 0.036326 0.099228 0.118429 -0.026668 -0.069962 0.064355 -0.029727 0.073707 -0.058016 0.049022 0.038089 -0.036308 0.075692 -0.043700 -0.043811 0.290328 0.111618 0.037792 --0.000519 0.031183 0.125501 0.106107 0.041814 -0.074835 0.016478 -0.004754 -0.020387 -0.030135 -0.010253 -0.003971 0.057481 0.054890 0.005018 -0.005013 -0.149887 0.037243 -0.044822 0.031486 0.052018 0.003643 -0.007235 -0.094011 0.031608 0.001491 -0.000762 0.091671 0.073666 -0.023477 --0.002590 0.023454 0.083665 0.164940 0.058096 -0.128167 0.023411 -0.000955 0.005869 -0.031314 0.018107 -0.015126 0.070466 0.017640 -0.069875 0.022616 -0.167562 0.015176 -0.036880 0.022298 0.117760 -0.034173 0.000032 -0.083584 0.014856 0.034198 0.012776 -0.032139 0.054508 -0.007431 --0.006576 0.019033 0.084649 0.170996 0.053951 -0.134147 0.007297 -0.008298 0.018894 -0.035902 0.025327 -0.008489 0.068096 -0.006076 -0.085685 0.039532 -0.155830 0.006842 -0.002529 0.045882 0.118754 -0.014708 -0.004225 -0.101796 0.010127 0.046911 -0.001213 -0.049214 0.007815 -0.005774 --0.009473 0.023523 0.083400 0.164301 0.055472 -0.130898 0.014780 0.002776 0.027166 -0.007411 0.024662 -0.018160 0.061727 0.021013 -0.073989 0.061506 -0.162375 -0.010047 -0.001861 0.035026 0.107807 -0.030555 -0.013747 -0.058223 0.017310 0.044615 -0.003635 -0.092531 0.035234 0.031004 --0.009652 0.029280 0.125882 0.106518 0.035306 -0.082518 -0.002808 0.008299 0.034563 0.036690 0.011651 -0.010248 0.041841 0.062518 -0.005719 0.091057 -0.126601 -0.020419 0.048807 0.067321 0.022415 0.017679 -0.043671 -0.033423 0.017242 0.030341 -0.040903 -0.086697 0.029625 0.102311 --0.017836 0.018250 0.171390 -0.009455 0.011734 0.003008 -0.035521 0.024177 0.026061 0.074212 -0.020262 0.002668 0.017157 0.133429 0.104182 0.101698 -0.041147 -0.019986 0.110649 0.100336 -0.078984 0.086404 -0.075504 0.052284 0.030125 -0.002056 -0.105486 0.054761 0.060825 0.208043 --0.011985 -0.088144 0.089188 -0.042716 0.023045 0.134314 -0.069828 0.017820 -0.027072 0.099257 -0.019381 0.003897 0.064845 0.047039 0.000688 0.092366 0.030856 -0.031057 0.030673 0.076338 -0.068287 0.000616 -0.036408 0.106438 -0.016072 -0.003785 -0.078506 -0.125712 -0.054833 0.051575 --0.017341 -0.140824 0.042004 -0.057843 0.043723 0.220158 -0.077047 0.007137 -0.052322 0.079515 -0.021869 0.039320 0.092757 0.000232 -0.055471 0.069908 0.090294 0.013315 -0.033569 0.009802 -0.053929 -0.023106 -0.031815 0.054508 -0.043117 0.023533 -0.021207 -0.146309 -0.122229 -0.087913 --0.021841 -0.142814 0.029298 -0.058288 0.055818 0.240020 -0.071244 0.003738 -0.063411 0.050582 -0.029047 0.051363 0.099278 -0.024334 -0.081185 0.042204 0.106819 0.051028 -0.050052 -0.008143 -0.032678 -0.007047 -0.030869 0.005757 -0.041511 0.027705 0.010489 -0.082442 -0.124668 -0.143969 --0.025247 -0.138231 0.040265 -0.056015 0.044047 0.224023 -0.070795 0.001904 -0.077071 0.046043 -0.041755 0.039389 0.105399 0.001569 -0.057001 0.001825 0.078139 0.055746 -0.084323 -0.021362 -0.039174 -0.026285 -0.018073 0.025423 -0.036454 -0.012203 0.002352 -0.022577 -0.079975 -0.195368 --0.020125 -0.084535 0.087220 -0.040879 0.025501 0.140874 -0.056505 0.006676 -0.079380 0.037405 -0.045407 0.007424 0.088559 0.036725 0.000098 -0.039225 -0.003676 0.062495 -0.077011 0.009889 -0.048024 -0.013692 0.023881 0.045537 0.014842 -0.072007 -0.027973 0.129537 0.026389 -0.167758 -0.002409 0.012683 0.153126 0.004773 0.028984 0.013473 -0.007530 0.002333 -0.045612 0.000626 -0.026540 0.011113 0.043644 0.078364 0.083758 -0.016046 -0.069828 0.056056 -0.025289 0.075388 -0.046279 0.043549 0.041834 -0.032173 0.059137 -0.038921 -0.031321 0.235316 0.085283 0.011438 --0.002550 0.032794 0.127345 0.133201 0.043865 -0.086011 -0.000773 -0.042634 0.013603 -0.049165 0.021906 -0.005259 0.056575 0.004567 -0.043557 0.003823 -0.083691 0.029316 -0.026562 0.102147 0.028181 0.086163 0.024682 -0.053403 -0.086981 -0.046317 -0.012184 -0.039516 -0.108356 -0.164582 --0.005746 0.031479 0.116639 0.142417 0.050241 -0.083155 -0.008059 -0.043870 0.024991 -0.053706 0.031026 -0.002619 0.052818 -0.025098 -0.061201 0.023122 -0.076747 0.021489 0.000322 0.108990 0.041765 0.113903 0.012966 -0.076070 -0.087939 -0.024497 -0.019545 -0.070212 -0.148161 -0.152758 --0.008376 0.032711 0.127322 0.132643 0.042715 -0.088371 -0.006419 -0.038661 0.032213 -0.028277 0.029898 -0.006219 0.050604 0.002851 -0.042796 0.045903 -0.079887 0.009238 0.004735 0.111462 0.021334 0.093404 0.000301 -0.034099 -0.095154 -0.039912 -0.033032 -0.090533 -0.133407 -0.117205 --0.016545 0.011622 0.152914 0.006812 0.021380 0.008854 -0.028868 0.015258 0.021865 0.060753 -0.013671 0.005140 0.030182 0.104487 0.070481 0.087516 -0.046045 -0.013547 0.092769 0.094204 -0.061661 0.078365 -0.066236 0.044969 0.008131 -0.005289 -0.086689 0.031159 0.044600 0.169201 --0.017756 -0.119324 -0.001786 -0.046587 0.081085 0.179452 -0.025877 0.032809 -0.043786 0.059919 -0.014619 0.034984 0.090126 0.023015 -0.075461 0.090445 -0.019296 0.009008 0.005628 -0.038741 0.050695 -0.071451 -0.030764 -0.029895 0.107703 0.090204 0.107953 -0.004577 0.098999 0.193262 --0.019716 -0.120266 -0.013932 -0.043952 0.094427 0.196859 -0.024926 0.037293 -0.052699 0.037813 -0.018350 0.042274 0.093777 -0.009638 -0.103153 0.067615 -0.010532 0.038914 0.000398 -0.046969 0.077046 -0.045886 -0.023881 -0.075143 0.122686 0.100629 0.130049 0.037072 0.097411 0.162025 --0.020560 -0.117608 -0.003096 -0.045533 0.081349 0.182426 -0.023296 0.029744 -0.059593 0.036531 -0.024235 0.034656 0.098988 0.019147 -0.077862 0.036233 -0.030913 0.041570 -0.027668 -0.061935 0.063904 -0.072703 -0.012647 -0.047507 0.124388 0.068880 0.129063 0.077294 0.121547 0.117669 --0.194113 0.187907 -0.096979 0.061978 0.063165 0.077443 -0.019118 -0.005309 -0.061329 -0.101675 -0.113529 -0.055581 0.008168 -0.032919 0.055039 0.066414 0.003528 -0.163491 -0.083104 0.048231 0.055387 -0.112995 0.167699 -0.108489 -0.025224 0.066949 0.074614 0.036972 0.076282 -0.080677 --0.209783 0.189574 -0.074998 0.021566 0.016419 0.026371 0.001549 -0.007306 -0.061907 -0.068723 -0.066438 -0.011537 0.038748 -0.011963 0.036807 0.067915 -0.001838 -0.061993 -0.030510 0.012211 0.062484 -0.059916 0.021708 0.006589 -0.015971 -0.046658 0.003954 0.054461 0.014745 0.004322 --0.211572 0.182064 -0.037551 -0.027479 -0.033275 -0.034490 0.015132 -0.017218 -0.054342 -0.008616 -0.020042 0.021554 0.060878 0.023397 0.010046 0.063032 0.024371 0.040048 0.028535 0.004073 0.060976 -0.025062 -0.076533 0.106307 -0.021745 -0.108945 -0.070841 0.062963 -0.034296 0.064061 --0.170697 0.147594 -0.002132 -0.085851 -0.074699 -0.091188 0.031837 -0.037343 -0.062127 0.055536 0.034385 0.029705 0.065929 0.047240 -0.017924 0.042212 0.070915 0.110595 0.049353 0.009835 0.041452 -0.028149 -0.075454 0.106404 -0.024018 -0.101694 -0.089247 0.013929 -0.055951 0.067957 --0.103889 0.104266 0.021961 -0.138699 -0.107724 -0.115782 0.048833 -0.057213 -0.077559 0.050560 0.072994 0.026275 0.055048 0.055665 -0.025378 0.009395 0.084793 0.110320 0.025538 0.006662 0.006800 -0.045909 -0.001108 0.034074 -0.018326 -0.009115 -0.057387 -0.038005 -0.008406 0.015845 --0.048269 0.060954 0.048126 -0.148376 -0.125255 -0.092308 0.071343 -0.054412 -0.078650 0.005505 0.056940 0.019882 0.036188 0.036141 -0.023302 -0.039744 0.062319 0.085431 -0.021635 0.018679 -0.019933 -0.036875 0.068717 -0.046728 -0.022171 0.071843 0.019030 -0.083452 0.011402 -0.031682 --0.017701 0.040744 0.081292 -0.129425 -0.123318 -0.019961 0.099099 -0.028736 -0.081026 -0.067342 -0.006124 0.019499 0.008398 -0.003315 -0.006419 -0.083373 0.002267 0.009298 -0.062993 0.054681 -0.030685 0.013617 0.089439 -0.056844 -0.002930 0.080823 0.061972 -0.088195 -0.033777 -0.017969 --0.014872 0.028259 0.117279 -0.115866 -0.128446 0.060508 0.081785 0.024463 -0.029537 -0.086277 -0.024868 0.015015 -0.014204 -0.054497 -0.024934 -0.101926 -0.079451 -0.073399 -0.058495 0.070006 -0.064271 0.058313 0.056426 0.040306 0.029695 0.076028 0.042315 -0.021520 -0.036599 0.012265 -0.001988 -0.040536 0.181724 -0.108374 -0.186241 0.077170 -0.036543 0.040869 0.017537 -0.045163 0.020003 -0.013400 -0.034849 -0.078133 -0.028941 -0.136691 -0.131454 -0.145339 -0.046308 -0.040362 -0.032220 -0.027598 0.006734 0.099472 -0.017159 0.040012 0.008193 0.049268 -0.093842 -0.027467 -0.043089 0.021836 0.111349 -0.115764 -0.123211 0.089046 0.039449 0.056460 0.121069 -0.017802 0.055004 0.049942 -0.017649 -0.124849 -0.068268 -0.065869 -0.083389 -0.129896 -0.025789 -0.005582 -0.023884 0.106796 -0.059521 0.074701 -0.026176 -0.016212 0.024472 0.057757 -0.015366 -0.043779 -0.063004 0.036884 0.061710 -0.117909 -0.114969 0.034870 0.034521 0.019551 0.182856 -0.006974 0.015310 0.053695 0.016853 -0.081610 -0.047575 0.012266 -0.005742 -0.072938 -0.006193 -0.056088 0.022519 0.091068 -0.090799 0.019134 -0.083785 -0.081915 0.017567 0.008906 -0.025625 -0.047991 -0.104328 0.047287 0.025526 -0.129884 -0.103482 -0.031857 0.026083 -0.018119 0.165523 -0.037409 -0.073280 0.022798 0.049468 -0.003762 -0.024490 0.063201 0.054618 0.003094 -0.031794 -0.060689 0.031008 0.020592 -0.060684 0.012498 -0.083016 -0.091273 -0.025506 0.002242 -0.038963 0.008812 -0.163775 0.073539 0.006250 -0.113919 -0.068653 -0.071611 0.012848 -0.028774 0.125832 -0.026527 -0.119658 0.005548 0.064286 0.049414 0.010102 0.073940 0.099803 0.078309 -0.042786 0.003363 0.010008 -0.021838 0.033200 0.011865 -0.052795 -0.039549 -0.036752 -0.004329 0.034048 -0.006748 -0.225029 0.096197 -0.007948 -0.061116 -0.023646 -0.073272 0.005365 -0.021962 0.059308 0.015330 -0.100717 0.006839 0.061730 0.070255 0.038347 0.055741 0.112794 0.114832 -0.025350 0.083709 -0.011069 -0.059823 0.115433 -0.001962 -0.013135 0.045992 0.010781 -0.026781 0.079340 -0.050698 -0.256332 0.120042 -0.032051 -0.000670 0.008082 -0.038354 -0.016932 -0.005039 0.003817 0.052397 -0.004742 0.013650 0.056257 0.059420 0.043367 0.038300 0.064030 0.085209 0.022603 0.086060 -0.002075 -0.073040 0.122202 0.001746 0.024329 0.077509 0.031602 -0.030080 0.067090 -0.027305 -0.244773 0.130180 -0.062311 0.048623 0.029672 0.012297 -0.047483 0.003253 -0.041628 0.082454 0.099038 -0.004699 0.054066 0.034143 0.020189 0.022165 -0.010388 0.031881 0.089870 -0.001239 0.025313 -0.049517 0.024832 0.022147 0.023312 -0.003006 0.006892 -0.013381 0.001397 0.008757 -0.223002 0.134942 -0.079219 0.087367 0.045008 0.047002 -0.078962 0.008953 -0.100372 0.109160 0.175857 -0.048121 0.061603 -0.000192 -0.013432 0.008530 -0.087753 0.001391 0.162509 -0.107497 0.049949 -0.006746 -0.102113 0.071817 -0.013496 -0.118045 -0.075051 0.053902 -0.055021 0.046214 -0.070930 -0.065741 0.043157 0.065231 -0.139690 -0.011656 -0.072571 0.090224 -0.065930 0.008265 0.035524 -0.164214 0.031625 -0.079200 -0.074315 -0.036785 0.029278 0.133486 0.221223 0.040244 -0.046498 0.088331 -0.016579 0.083058 0.059491 0.010124 0.042188 -0.023303 -0.034232 -0.057478 -0.065138 -0.054183 0.034559 0.042478 -0.043516 0.023168 -0.017634 0.072383 -0.010212 -0.025162 0.063101 -0.080896 0.059208 -0.042203 -0.042636 -0.029604 0.004618 0.102696 0.137710 -0.007853 -0.028258 0.036015 -0.029786 0.056386 -0.002926 0.008209 0.039602 -0.002478 -0.039162 -0.013707 -0.058205 -0.037835 0.025133 0.017398 0.034006 0.041658 0.021960 0.059774 0.028070 -0.046946 0.083231 -0.003662 0.074477 -0.013140 -0.011131 -0.017183 -0.018571 0.069480 0.067899 -0.045482 -0.015970 -0.005477 -0.040957 0.045950 -0.033930 0.013612 0.029705 0.006442 -0.066430 0.004737 -0.049990 -0.023731 0.017335 -0.008142 0.086582 0.048736 0.038930 0.040863 0.048838 -0.060043 0.093150 0.058537 0.076892 0.009289 0.015089 -0.008823 -0.048974 0.029991 -0.013550 -0.075810 -0.015171 -0.057453 -0.049842 0.045811 -0.072145 0.019914 0.009988 0.013225 -0.084584 -0.004240 -0.037349 -0.012293 0.016428 -0.040692 0.106081 0.044063 0.030403 0.009815 0.050266 -0.054483 0.093328 0.109611 0.063801 0.022618 0.050187 -0.002394 -0.087300 -0.014796 -0.093023 -0.102289 -0.047210 -0.124872 -0.053811 0.039992 -0.120342 0.030669 -0.014293 0.051055 -0.088320 -0.012412 --0.057091 0.005725 0.027288 -0.019729 0.108249 0.035147 0.006170 0.022790 0.044570 -0.057342 0.027637 0.075806 0.064148 0.149351 0.034558 -0.101694 -0.031810 0.013778 -0.060196 -0.035229 -0.031475 -0.106981 -0.001543 0.037315 0.044153 0.006101 -0.025163 0.017823 -0.086925 0.008880 --0.068247 0.001492 0.030165 0.000116 0.090308 0.048194 0.032216 0.050837 0.044700 -0.081605 0.031080 0.044433 0.061323 0.056179 0.014512 -0.059431 -0.005128 0.027254 -0.060425 -0.001472 -0.012072 -0.046248 0.009783 0.007508 0.018122 0.033739 0.024415 -0.021905 -0.028666 -0.015469 --0.071342 -0.009459 0.039439 0.016917 0.039669 0.048767 0.026213 0.071029 0.037813 -0.084390 0.011788 -0.006042 0.043415 -0.033369 -0.007395 -0.038917 0.007959 0.032760 -0.056789 0.038757 -0.013503 -0.004898 0.005783 -0.007801 -0.017638 0.058046 0.047409 -0.042199 0.007421 -0.002306 --0.073566 -0.023537 0.048147 0.038197 -0.033259 0.039336 -0.016195 0.085808 0.020107 -0.072973 -0.014969 -0.070088 0.008821 -0.117774 -0.032978 -0.029482 0.010317 0.032192 -0.066838 0.077482 -0.025308 0.008839 0.004036 -0.005155 -0.074847 0.074140 0.047937 -0.062811 0.018029 0.020971 --0.073230 -0.031653 0.054308 0.059449 -0.127178 0.021624 -0.075143 0.110898 -0.006992 -0.045259 -0.048965 -0.135067 -0.040290 -0.212424 -0.060696 -0.035695 0.003566 0.024025 -0.102748 0.105133 -0.023704 0.044734 0.013232 0.006297 -0.151859 0.071419 0.049154 -0.043146 0.020934 0.060432 --0.005321 0.057239 0.041960 -0.033979 0.165456 0.055086 -0.030714 -0.012489 -0.021850 0.050891 0.015810 -0.100851 0.026612 -0.009415 -0.058842 -0.033856 -0.041105 -0.051901 -0.081975 -0.019041 -0.135245 0.047727 0.048565 0.070401 -0.092383 -0.051697 -0.028608 -0.013846 -0.013839 0.030898 --0.000672 0.077029 0.043079 -0.040623 0.135654 0.087066 -0.037675 -0.023544 -0.024879 0.066383 0.007563 -0.106782 0.032519 -0.041385 -0.018590 -0.042478 -0.013962 -0.051612 -0.065224 0.082095 -0.065335 0.050638 0.055798 0.047454 -0.041666 -0.097560 -0.063540 -0.052125 0.022983 -0.005469 -0.003103 0.092563 0.040487 -0.045985 0.106270 0.114009 -0.047444 -0.034435 -0.026418 0.073606 0.003153 -0.107903 0.040293 -0.064630 0.031871 -0.047241 0.016143 -0.043454 -0.048849 0.167875 0.012069 0.038294 0.057831 0.028479 0.004205 -0.130654 -0.104734 -0.091470 0.065796 -0.037098 -0.006649 0.104560 0.029544 -0.041468 0.085208 0.133845 -0.049599 -0.035876 -0.026520 0.068953 0.006051 -0.112688 0.050378 -0.087474 0.067743 -0.051005 0.064069 -0.030535 -0.032905 0.249994 0.093569 0.023458 0.064450 0.043654 0.063256 -0.150605 -0.162487 -0.114627 0.130578 -0.064377 -0.006087 0.049919 0.023453 -0.023176 0.054426 0.021906 -0.047418 -0.084467 0.062834 -0.074373 -0.069414 0.009500 0.007381 0.098831 0.115965 -0.075428 0.073917 0.077512 0.133654 0.001556 0.003159 0.085993 0.029853 -0.041273 0.097808 0.104769 -0.046039 0.051999 -0.016375 0.072201 -0.001120 0.040262 0.064747 -0.051049 0.033686 0.022115 -0.061848 -0.097181 0.026395 -0.018982 -0.037566 -0.051363 0.003774 0.036438 0.189994 -0.079566 0.047369 0.007671 0.137275 -0.025584 0.021457 0.027327 -0.011743 -0.084972 0.032636 0.051256 0.062433 0.023553 -0.010656 0.015603 --0.000262 0.032006 0.090772 -0.069111 0.004096 0.021943 -0.087211 -0.126382 0.010898 0.009479 -0.020529 -0.100752 -0.016235 -0.013956 0.304453 -0.078686 0.047009 -0.028332 0.157991 -0.038740 0.060096 -0.045012 -0.102605 -0.053384 0.070093 0.039685 0.097784 -0.006673 -0.020441 -0.041365 --0.001983 0.039245 0.067086 -0.058909 0.037211 0.011724 -0.054445 -0.097799 0.005509 0.002603 0.021097 -0.049049 -0.016010 -0.029469 0.231057 -0.003683 0.044678 -0.023023 0.105520 -0.024487 0.017586 0.000185 -0.032286 -0.091059 -0.007052 0.086378 0.071258 0.034113 -0.009822 0.043800 --0.001723 0.048685 0.026197 -0.046378 0.064651 -0.000362 -0.012267 -0.081975 -0.010478 -0.033321 0.092153 0.022973 -0.028492 -0.032767 0.212416 0.073170 0.082620 0.007520 0.047557 -0.007723 -0.009254 0.047419 -0.030161 -0.105098 -0.053472 0.206928 0.004802 0.116734 0.045175 0.075945 -0.110551 -0.041357 0.068856 0.041377 -0.055460 0.010260 -0.052538 -0.085068 -0.014232 -0.026408 -0.037850 0.099661 -0.069515 -0.058739 0.026272 0.027802 -0.029567 0.003557 -0.071553 -0.068758 0.026068 0.102451 -0.013015 -0.090015 -0.000255 0.002306 0.044951 -0.050074 0.137017 -0.061148 -0.098804 -0.048044 0.053443 0.031667 -0.023532 -0.017963 -0.053215 -0.029587 -0.003423 0.010833 0.008906 0.102029 -0.044385 -0.028506 -0.067172 0.023341 0.007226 -0.058436 -0.083196 -0.050477 0.024523 0.058334 0.021771 -0.021583 0.022873 -0.013568 0.004678 0.018158 0.032517 0.010329 -0.090978 -0.060316 0.056114 0.019267 -0.018096 -0.039292 -0.078230 -0.024787 -0.007727 0.028473 0.028133 0.072207 -0.040111 -0.012970 -0.077860 0.018883 0.010592 -0.100347 -0.095342 -0.062937 0.024492 -0.013363 0.035293 -0.012011 0.005431 0.005029 -0.025240 0.035597 -0.020068 0.017309 -0.065063 -0.020726 0.025977 0.014485 0.015010 -0.028500 -0.058299 -0.004772 -0.001067 0.025736 0.034233 0.057818 -0.034568 -0.011009 -0.053878 0.014799 -0.024782 -0.062540 -0.063778 0.002053 0.010708 -0.004849 -0.005518 0.004661 -0.046315 0.010626 -0.054171 0.003722 0.015265 0.024427 -0.088435 -0.050051 0.056751 0.002729 -0.019844 -0.044948 -0.087183 -0.032563 -0.015287 0.030520 0.014284 0.064578 -0.060424 0.010490 -0.046701 0.032024 -0.015875 -0.073140 -0.092463 -0.054477 0.028243 -0.016240 0.022050 0.011868 -0.019965 0.015040 -0.033419 0.028825 0.021126 0.010657 -0.102786 -0.043466 0.055261 0.011743 -0.028322 -0.023922 -0.063454 -0.039608 -0.003184 0.009624 0.004373 0.096632 -0.064839 -0.009196 -0.042734 0.023219 -0.011770 -0.035678 -0.082753 -0.048825 0.035098 0.062306 0.013425 0.000992 -0.000564 0.004950 -0.007543 0.010816 0.062439 0.004184 --0.058956 0.005302 0.025567 0.020930 0.013550 -0.029823 -0.051977 -0.009928 -0.034397 -0.039408 -0.038144 0.025678 -0.005524 0.021106 -0.045041 0.016013 0.011377 -0.000495 0.000998 0.014140 -0.023313 -0.014948 -0.007300 -0.002045 0.017961 0.020696 -0.015427 0.035101 0.029323 -0.040786 --0.089129 -0.029950 0.052159 0.031161 -0.032247 -0.035635 -0.074373 -0.032197 -0.042914 -0.036431 -0.034437 0.045293 0.001232 0.053921 -0.096616 0.038282 0.045451 -0.067209 0.033871 -0.040518 -0.001177 -0.019998 0.013108 -0.037860 0.017715 -0.004965 0.021419 0.075541 -0.019197 -0.037451 --0.093874 -0.016322 0.050427 0.038901 -0.035571 -0.013436 -0.053907 -0.038658 -0.029325 -0.036613 -0.032481 0.093868 -0.036396 0.021379 -0.092279 0.042691 0.039867 -0.062158 0.026548 -0.031466 0.003479 0.040316 0.006294 -0.036209 0.073025 0.000684 0.013187 0.010326 -0.008531 -0.005083 --0.104244 -0.006709 0.067184 0.041289 -0.069241 0.012081 -0.075591 -0.089859 -0.002603 -0.023228 -0.014240 0.125765 -0.109929 0.003712 -0.029968 0.014433 -0.014119 -0.049355 0.046499 -0.085176 0.023721 0.068470 -0.048687 -0.048937 0.120813 0.007379 -0.041829 -0.122482 -0.067858 0.062213 --0.098423 -0.011771 0.052601 0.020651 -0.034896 -0.021175 -0.065152 -0.049145 -0.028881 -0.037319 -0.039151 0.087044 -0.064168 0.042731 -0.067294 0.053022 0.023839 -0.042707 0.029993 -0.028916 0.011079 0.032455 0.013155 -0.006472 0.061777 0.012999 -0.006873 0.010614 -0.004050 -0.011204 --0.086060 -0.021786 0.053949 0.013196 -0.031142 -0.043099 -0.085669 -0.038918 -0.044017 -0.027197 -0.045913 0.039160 -0.027725 0.076968 -0.067122 0.044150 0.021313 -0.039518 0.034774 -0.040416 0.000111 -0.028143 0.008737 -0.005983 0.003932 0.011395 0.001920 0.048028 0.008140 -0.040395 -0.023234 -0.151224 -0.158262 0.044921 -0.009732 0.000281 -0.001484 -0.070081 -0.023992 0.004264 0.062205 -0.039427 0.038098 0.032554 0.055525 -0.066996 -0.164944 -0.122724 0.013346 0.030357 0.020003 -0.032163 0.019982 0.073629 0.021368 -0.071433 -0.018389 0.003734 -0.016513 0.043226 --0.000995 -0.068801 -0.121336 0.072388 0.052784 -0.054867 0.032178 0.001244 -0.004833 -0.025828 0.009566 -0.015286 0.014651 0.010036 -0.015176 0.028930 -0.011269 0.006977 -0.027549 0.081052 -0.006338 -0.002885 -0.132402 0.005924 0.032534 -0.009681 0.028356 0.022311 0.035163 0.096200 --0.004191 -0.024081 -0.071313 0.090010 0.069773 -0.094666 0.033894 0.052375 0.001162 -0.003099 -0.004738 -0.015529 -0.013298 -0.011804 -0.070290 0.037494 0.098463 0.091632 -0.087569 0.072527 -0.000020 -0.032255 -0.102761 -0.028732 0.010823 -0.026462 0.070892 -0.014064 0.023862 0.043866 --0.015322 -0.024017 -0.054182 0.086743 0.060910 -0.101634 0.015786 0.057519 -0.002762 0.012999 0.000729 -0.023649 -0.035764 0.008028 -0.081935 0.022017 0.068587 0.090964 -0.058996 0.018408 -0.003382 -0.065054 -0.081165 -0.018146 0.054953 -0.029583 0.059280 -0.003811 -0.020414 0.000419 --0.025819 -0.024102 -0.072656 0.090267 0.065909 -0.095620 0.028049 0.048384 0.020203 0.015879 0.003299 -0.016853 -0.024716 -0.011856 -0.098542 0.022346 0.054071 0.127108 -0.035058 0.033226 -0.018163 -0.039842 -0.075770 0.004476 0.119650 -0.037430 0.037285 -0.012838 -0.017586 -0.027302 --0.028630 -0.075977 -0.114641 0.065261 0.041153 -0.056917 0.031445 -0.003049 0.034540 0.001182 0.018209 -0.030508 0.011536 -0.023990 -0.027811 0.007628 -0.058660 0.082643 0.021068 0.039513 -0.040660 -0.030634 -0.014500 0.008764 0.142474 0.046181 0.018696 -0.012111 0.041048 -0.020873 --0.057340 -0.155110 -0.147834 0.043518 -0.030786 0.001235 -0.002459 -0.078828 0.037715 -0.015356 0.008971 -0.076546 0.039114 0.012417 0.102079 -0.023242 -0.198315 -0.056443 0.067516 -0.015237 -0.005601 -0.021764 0.080017 0.069763 0.034826 0.048933 -0.014850 -0.038689 0.040787 -0.048334 --0.042943 -0.108650 -0.102366 0.023189 -0.010725 0.030229 0.068583 0.015128 0.022969 0.058778 -0.031171 -0.044495 -0.001699 -0.019406 0.036790 0.020578 -0.112566 0.009264 0.058955 -0.050722 0.000750 -0.006776 0.029042 -0.019202 0.064299 0.076581 -0.085961 0.008218 0.028521 -0.078822 --0.035161 -0.066110 -0.032050 0.021658 0.003153 0.025066 0.099954 0.086178 0.006060 0.105083 -0.073476 -0.013431 -0.062933 -0.011137 -0.008463 0.044662 -0.041029 0.015288 0.018520 -0.085740 0.025027 -0.028340 0.005094 -0.045253 0.029209 0.031682 -0.151561 0.022658 -0.024863 -0.088980 --0.017691 -0.069000 -0.017056 0.020545 -0.000723 0.010161 0.082301 0.100673 -0.018708 0.105667 -0.072642 -0.012585 -0.081805 0.028901 -0.017421 0.021910 -0.017603 -0.020619 0.017659 -0.091795 0.050986 -0.056081 -0.003138 -0.077547 -0.045882 0.045503 -0.131404 0.003944 -0.004661 -0.046965 -0.000842 -0.069922 -0.031110 0.019580 0.004919 0.020637 0.094320 0.088857 -0.016319 0.096731 -0.065463 -0.006683 -0.059096 0.046883 -0.005018 0.008960 0.020725 -0.026722 -0.001947 -0.031727 0.042259 -0.000859 -0.026021 -0.109897 -0.102234 0.062551 -0.106192 -0.024631 0.031769 0.029184 -0.011685 -0.107773 -0.105352 0.026528 0.003824 0.024236 0.066505 0.016072 -0.021701 0.046046 -0.022269 -0.019279 -0.010005 0.056022 0.031344 -0.000244 -0.043602 -0.069823 0.009639 0.014265 0.033485 0.010020 -0.039736 -0.064507 -0.051131 0.044598 -0.063073 0.001278 0.009848 0.098080 -0.014081 -0.145232 -0.172859 0.038795 0.006394 0.024457 0.003527 -0.061601 -0.028767 0.008573 0.052014 -0.034604 0.029274 0.037979 0.039823 -0.056170 -0.173607 -0.116545 0.053799 -0.002652 -0.003032 -0.018566 0.074668 0.074705 0.084561 -0.070069 -0.017802 0.003303 -0.022098 -0.000798 -0.004128 -0.026318 -0.048385 0.088799 0.062152 -0.062649 0.051018 0.040691 0.011967 0.000118 -0.006210 0.027329 -0.059771 0.047117 -0.071270 0.028075 0.115061 0.060203 -0.010964 0.084083 -0.064352 0.058946 -0.008933 -0.011132 0.010975 -0.099926 0.143810 -0.078143 -0.031049 0.024287 --0.016065 -0.023834 -0.031338 0.088382 0.053203 -0.078391 0.033235 0.057767 -0.004620 0.017680 -0.013553 -0.001928 -0.066816 0.014141 -0.063354 0.027828 0.054090 0.072914 -0.031292 0.013275 -0.054482 -0.003537 -0.050452 -0.020547 -0.009186 -0.078005 0.078837 -0.026306 -0.062501 -0.051943 --0.034367 -0.025663 -0.049240 0.086354 0.058280 -0.065883 0.062226 0.039226 0.009362 -0.006078 0.001675 0.021093 -0.052080 -0.010700 -0.047457 0.049514 0.054445 0.124857 -0.055582 0.029771 -0.060479 0.061865 -0.041608 -0.010528 -0.000334 -0.155128 0.113107 0.071186 -0.009910 -0.047118 --0.048879 -0.151838 -0.160016 0.030692 -0.012296 0.024678 0.007708 -0.065576 0.022316 -0.018020 0.021758 -0.064162 0.034039 0.002657 0.090064 -0.018113 -0.190986 -0.088212 0.042825 -0.014056 0.001530 0.006546 0.076036 0.055804 -0.017103 0.049034 0.004591 -0.030501 0.052720 0.028802 --0.038340 -0.063850 -0.059553 0.029051 0.047621 0.023365 0.105034 0.078003 0.000009 0.052377 -0.041481 0.029714 -0.078120 0.007371 -0.013626 0.050411 0.020254 0.052993 -0.010404 -0.057900 0.002028 0.046760 0.007269 -0.044843 -0.009151 -0.079503 0.034448 0.129386 0.043511 0.024506 --0.017756 -0.059748 -0.036850 0.028881 0.045562 0.014200 0.079001 0.099353 -0.021063 0.074300 -0.049978 0.009019 -0.093130 0.029110 -0.031071 0.029463 0.021463 0.011127 0.023461 -0.071087 0.004178 -0.007604 0.014745 -0.065257 -0.024042 -0.019514 0.002369 0.025211 -0.003778 0.021779 -0.004041 -0.065582 -0.057203 0.030295 0.051078 0.025285 0.094233 0.080360 -0.010665 0.060385 -0.038515 0.035509 -0.085684 0.065856 -0.038294 0.019563 0.077752 0.005082 0.039220 -0.005268 -0.007462 0.044494 0.050125 -0.050480 0.018069 -0.028114 0.067491 -0.029325 0.022104 0.094267 -# The variances of the components (eigenvalues) of identity or combined identity and expression model -1 -30 -6 -1097.284971 604.737272 330.509879 197.777415 158.903842 136.932869 98.869562 90.905660 77.964343 69.662131 64.452126 52.813284 46.277233 39.196537 36.560898 33.647765 27.169035 25.765754 24.865278 19.424782 17.704494 16.404349 15.949029 15.080271 12.805943 11.923468 10.033987 8.748427 8.551978 7.944364 diff --git a/matlab_version/pdm_generation/menpo_pdm/split_menpo_data.m b/matlab_version/pdm_generation/menpo_pdm/split_menpo_data.m index cb29fcd8..64c75839 100644 --- a/matlab_version/pdm_generation/menpo_pdm/split_menpo_data.m +++ b/matlab_version/pdm_generation/menpo_pdm/split_menpo_data.m @@ -1,34 +1,27 @@ -menpo_root = 'C:\Users\tbaltrus\Documents\menpo_data_orig/'; +% Script for internal menpo data split, convert the original training data +% to 2/3rds training and 1/3rd validation + +menpo_root = 'D:\Datasets\menpo/'; pts_files = dir([menpo_root, '/*.jpg']); jpg_files = dir([menpo_root, '/*.pts']); -% Split the menpo data into training (2/3rds) and validation (1/3rd) -rng(0); -indices = randperm(numel(pts_files)); -train_ind = indices(1:round(2*numel(pts_files)/3)); -valid_ind = indices(round(2*numel(pts_files)/3)+1:end); - % Do the actual copying to respective folders out_train = [menpo_root, '/train/']; out_valid = [menpo_root, '/valid/']; mkdir(out_train); mkdir(out_valid); -train_imgs = jpg_files(train_ind); -valid_imgs = jpg_files(valid_ind); +load('train_valid_split'); -train_pts = pts_files(train_ind); -valid_pts = pts_files(valid_ind); - -for i=1:numel(train_ind) +for i=1:numel(train_imgs) copyfile([menpo_root, train_pts(i).name], [out_train, train_pts(i).name]); copyfile([menpo_root, train_imgs(i).name], [out_train, train_imgs(i).name]); end -for i=1:numel(valid_ind) +for i=1:numel(valid_imgs) copyfile([menpo_root, valid_pts(i).name], [out_valid, valid_pts(i).name]); copyfile([menpo_root, valid_imgs(i).name], [out_valid, valid_imgs(i).name]); diff --git a/matlab_version/pdm_generation/menpo_pdm/train_valid_split.mat b/matlab_version/pdm_generation/menpo_pdm/train_valid_split.mat new file mode 100644 index 00000000..5abd545f Binary files /dev/null and b/matlab_version/pdm_generation/menpo_pdm/train_valid_split.mat differ diff --git a/matlab_version/pdm_generation/menpo_pdm/wild_68_pts.mat b/matlab_version/pdm_generation/menpo_pdm/wild_68_pts.mat new file mode 100644 index 00000000..39f0b195 Binary files /dev/null and b/matlab_version/pdm_generation/menpo_pdm/wild_68_pts.mat differ diff --git a/matlab_version/pdm_generation/visualise_PDMs.m b/matlab_version/pdm_generation/visualise_PDMs.m index 69ebe118..a7a2255e 100644 --- a/matlab_version/pdm_generation/visualise_PDMs.m +++ b/matlab_version/pdm_generation/visualise_PDMs.m @@ -3,14 +3,14 @@ load './Wild_data_pdm/pdm_68_aligned_wild.mat'; load('tri_68.mat', 'T'); % Visualise it -visualisePDM(M, E, V, T, 3, 3) +visualisePDM(M, E, V, T, 5, 5) %% Torresani visualisation of Menpo PDM -load './menpo_pdm/pdm_68_aligned_wild.mat'; +load './menpo_pdm/pdm_68_aligned_menpo_v5.mat'; load('tri_68.mat', 'T'); % Visualise it -visualisePDM(M, E, V, T, 3, 3) +visualisePDM(M, E, V, T, 7, 7) %% The multi-pie PDM visualisation load './Wild_data_pdm/pdm_68_multi_pie.mat'; load('tri_68.mat', 'T');