Eidors-logo    

EIDORS: Electrical Impedance Tomography and Diffuse Optical Tomography Reconstruction Software

EIDORS (mirror)
Main
Documentation
Tutorials
− Image Reconst
− Data Structures
− Applications
− FEM Modelling
− GREIT
− Old tutorials
Download
Contrib Data
GREIT
Browse Docs
Browse SVN

News
Mailing list
(archive)
FAQ
Developer
                       

 

Hosted by
SourceForge.net Logo

 

GREIT Test Parameters

During the GREIT development process, we developed a set of figures of merit to characterize the performance of an algorithm.

Figure: GREIT test parameters: Amplitude (AR), Position Error (PE), Resolution (RES), Shape Deformation (SD), Ringing (RNG)
EIDORS code to run the GREIT evaluation is shown

Simulate 3D object

% Simulate obj $Id: GREIT_test_params01.m 2167 2010-04-04 21:39:48Z aadler $

fmdl = ng_mk_cyl_models([2,1,0.08],[16,1],[0.05]); 
fmdl.stimulation = mk_stim_patterns(16,1,[0,1],[0,1],{},1);
imgs= mk_image( fmdl, 1);

show_fem(imgs);
print_convert('GREIT_test_params01a.png','-density 60');

view(0,0)
xlim([-.4,.4])
zlim(1+[-.4,.4])
print_convert('GREIT_test_params01b.png','-density 60');


Figure: Simulation Mesh (right) and close-up of the electrodes (left)

Simulate Sequence of Targets

% Simulate obj $Id: GREIT_test_params02.m 2240 2010-07-04 14:41:32Z aadler $

% Specify positions to simulate (only x-axis here)
r =  linspace(0,0.9,100);
xyzr = [r; zeros(1,100); ones(1,100);
     0.05*ones(1,100)];

[vh,vi] = simulate_movement(imgs, xyzr);

% Show GREIT images
i_gr = mk_common_gridmdl('GREITc1');
imgr = inv_solve(i_gr, vh, vi(:,1:5:100));
imgr.show_slices.img_cols = 5;
show_slices(imgr);

print_convert('GREIT_test_params02a.png','-density 60');


Figure: Illustration of the object locations in the simulation

Calculate the parameters

Image Reconstruction
% GREIT params eval $Id: GREIT_test_params03.m 2240 2010-07-04 14:41:32Z aadler $

% Reconstruct GREIT Images
imdl_gr = mk_common_gridmdl('GREITc1');
imgc{1} = inv_solve(imdl_gr, vh, vi);

% Reconstruct backprojection Images
imdl_bp = mk_common_gridmdl('backproj');
imgc{2} = inv_solve(imdl_bp, vh, vi);

fname_base = 'GREIT_test_params04';


Calculate performance
% GREIT params eval $Id: GREIT_test_params04.m 2240 2010-07-04 14:41:32Z aadler $

for i= 1:length(imgc);
   imgr = imgc{i};
   imgr.calc_colours.npoints = 32;
   params = eval_GREIT_fig_merit(imgr, xyzr);

   fname = sprintf('%s%c', fname_base, i+'a'-1);

   plot(r, params(1,:)); axis([0,0.9,0,2.0]);  ylabel('AR');
   print_convert([fname,'_ar.png'],  '-density 60',0.3);

   plot(r, params(2,:)); axis([0,0.9,-0.15,0.15]);  ylabel('PE');
   print_convert([fname,'_pe.png'],  '-density 60',0.3);

   plot(r, params(3,:)); axis([0,0.9,0,0.4]);  ylabel('RES');
   print_convert([fname,'_res.png'],  '-density 60',0.3);

   plot(r, params(4,:)); axis([0,0.9,0,0.3]);  ylabel('SD');
   print_convert([fname,'_sd.png'],  '-density 60',0.3);

   plot(r, params(5,:)); axis([0,0.9,0,0.6]);  ylabel('RNG');
   print_convert([fname,'_rng.png'],  '-density 60',0.3);
end







Figure: Evaluation of GREIT (right), and Sheffield Backprojection (left) GREIT parameters AR, PE, RES, SD, and RNG as a function of point radial position

Comment

There are several issues with this measurement, that should be kept in mind. This is an example of the use of the function, not a specification.
  • The object is just in one x position in the plane. It should be rotated to all x,y positions.
  • The various parameters are defined for a set of test positions for a given distance above and below the electrode plane, yet here we just test on the electrode plane.

Simulate Sequence of Targets above the plane (×25%)

% Simulate obj $Id: GREIT_test_params05.m 2167 2010-04-04 21:39:48Z aadler $

% Simulate positions that are 0.25 above the plane
r =  linspace(0,0.9,100);
xyzr = [r;
        zeros(1,100);
     1.25*ones(1,100);
     0.05*ones(1,100)];

[vh,vi] = simulate_movement(imgs, xyzr);

% Show GREIT images
i_gr = mk_common_gridmdl('GREITc1');
imgr = inv_solve(i_gr, vh, vi(:,1:5:100));
imgr.show_slices.img_cols = 5;
show_slices(imgr);

print_convert('GREIT_test_params05a.png','-density 60');


Figure: Illustration of the object locations in the simulation

Calculate the parameters

% GREIT params eval $Id: GREIT_test_params06.m 2240 2010-07-04 14:41:32Z aadler $

% Reconstruct GREIT Images
imdl_gr = mk_common_gridmdl('GREITc1');
imgc{1} = inv_solve(imdl_gr, vh, vi);

% Reconstruct backprojection Images
imdl_bp = mk_common_gridmdl('backproj');
imgc{2} = inv_solve(imdl_bp, vh, vi);

fname_base = 'GREIT_test_params06';

% GREIT params eval $Id: GREIT_test_params04.m 2240 2010-07-04 14:41:32Z aadler $

for i= 1:length(imgc);
   imgr = imgc{i};
   imgr.calc_colours.npoints = 32;
   params = eval_GREIT_fig_merit(imgr, xyzr);

   fname = sprintf('%s%c', fname_base, i+'a'-1);

   plot(r, params(1,:)); axis([0,0.9,0,2.0]);  ylabel('AR');
   print_convert([fname,'_ar.png'],  '-density 60',0.3);

   plot(r, params(2,:)); axis([0,0.9,-0.15,0.15]);  ylabel('PE');
   print_convert([fname,'_pe.png'],  '-density 60',0.3);

   plot(r, params(3,:)); axis([0,0.9,0,0.4]);  ylabel('RES');
   print_convert([fname,'_res.png'],  '-density 60',0.3);

   plot(r, params(4,:)); axis([0,0.9,0,0.3]);  ylabel('SD');
   print_convert([fname,'_sd.png'],  '-density 60',0.3);

   plot(r, params(5,:)); axis([0,0.9,0,0.6]);  ylabel('RNG');
   print_convert([fname,'_rng.png'],  '-density 60',0.3);
end







Figure: Evaluation for off plane object (25%) of GREIT (right), and Sheffield Backprojection (left) GREIT parameters AR, PE, RES, SD, and RNG as a function of point radial position

Last Modified: $Date: 2011-07-15 06:48:46 -0400 (Fri, 15 Jul 2011) $ by $Author: aadler $