open source pkg v1
This commit is contained in:
59
pkg/OpenFace/matlab_version/fitting/PatchResponseCEN.m
Normal file
59
pkg/OpenFace/matlab_version/fitting/PatchResponseCEN.m
Normal file
@@ -0,0 +1,59 @@
|
||||
function [ responses ] = PatchResponseCEN(patches, patch_experts_class, visibilities, patchExperts, window_size)
|
||||
%PATCHRESPONSESVM Summary of this function goes here
|
||||
% Detailed explanation goes here
|
||||
|
||||
normalisationOptions = patchExperts.normalisationOptionsCol;
|
||||
patchSize = normalisationOptions.patchSize;
|
||||
|
||||
responses = cell(size(patches, 1), 1);
|
||||
empty = zeros(window_size(1)-patchSize(1)+1, window_size(2)-patchSize(2)+1);
|
||||
|
||||
for i = 1:numel(patches(:,1))
|
||||
responses{i} = empty;
|
||||
if visibilities(i)
|
||||
|
||||
col_norm = normalisationOptions.useNormalisedCrossCorr == 1;
|
||||
|
||||
smallRegionVec = patches(i,:);
|
||||
smallRegion = reshape(smallRegionVec, window_size(1), window_size(2));
|
||||
|
||||
patch = im2col_mine(smallRegion, patchSize)';
|
||||
|
||||
% Normalize
|
||||
if(col_norm)
|
||||
mean_curr = mean(patch, 2);
|
||||
patch_normed = patch - repmat(mean_curr, 1, patchSize(1)* patchSize(2));
|
||||
|
||||
% Normalising the patches using the L2 norm
|
||||
scaling = sqrt(sum(patch_normed.^2,2));
|
||||
scaling(scaling == 0) = 1;
|
||||
|
||||
patch_normed = patch_normed ./ repmat(scaling, 1, 11 * 11);
|
||||
|
||||
patch = patch_normed;
|
||||
end
|
||||
patch = patch';
|
||||
% Add bias
|
||||
patch_normed = cat(1, ones(1, size(patch,2)), patch);
|
||||
weights = patch_experts_class{i};
|
||||
% Where DNN will happen
|
||||
for w =1:numel(weights)/2
|
||||
|
||||
% mult and bias
|
||||
patch_normed = weights{(w-1)*2+1}' * patch_normed + repmat(weights{(w-1)*2+2}', 1, size(patch_normed,2));
|
||||
|
||||
if w < 3
|
||||
% patch_normed(patch_normed < 0) = 0;
|
||||
patch_normed = max(0, patch_normed);
|
||||
else
|
||||
patch_normed = 1./(1+exp(-patch_normed));
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
responses{i}(:) = reshape(patch_normed', window_size(1)-patchSize(1)+1, window_size(2)-patchSize(2)+1);
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user