Introduction About Site Map

XML
RSS 2 Feed RSS 2 Feed
Navigation

Main Page | Blog Index

Sunday, March 6th, 2011, 8:14 pm

Working With the FRGC 3-D Faces Database – Part I

Massive dataset explored

Raw face image with holes left

Example face with holes remaining in the data

Face - Phong method
Another example

Smoothed face with no holes or spikes
Same as above, different angle

Summary: Notes, tips, code samples, and pointers relating to FRGC (an ongoing series of posts)

THIS post provides some information of interest to those who may find themselves working with 70 GB of data and some programs [1, 2]. The latter is a FRGC Web site. The package comes with associated applications and scripts written in Java, C++, Perl, etc. The previous post about the dataset (FRGC ver2.0) offers a bit of background that is research-specific (relating to Dr. Ajmal Mian and his Ph.D. student Faisal R. Al-Osaimi), whereas the notes below are a bit more generic. This series of posts is not about statistical models of faces but only about the dataset. This recent message from Face Recognition Research Community contains MATLAB/Octave loader code for a data instance from the dataset, where each 3-D face weighs about 13 MB (compressed):

function [x, y, z, fl] = absload(fname) 
%ABSLOAD Read a UND database range image from file.
%   [X,Y,Z,FL] = ABSLOAD(FILENAME) reads the range image in FILENAME
%   into the variables X,Y,Z,FL.
%   FILENAME is a string that specifies the name of the file
%            to be openned
%   X,Y,Z are matrices representing the 3D co-ords of each point
%   FL    is the flags vector specifying if a point is valid

% open the file
fid = fopen(fname);

% read number of rows
r = fgetl(fid);
r = sscanf(r, '%d');

% read number of columns
c = fgetl(fid);
c = sscanf(c, '%d');

% read junk line
t = fgetl(fid); clear t;

% get flags
fl = fscanf(fid,'%d',[c r])';

% get x
x = fscanf(fid,'%f',[c r])';
% get y
y = fscanf(fid,'%f',[c r])';
% get z
z = fscanf(fid,'%f',[c r])';

% close the file
fclose(fid); 

This just handles one single image. There are many in the current collection:

find | grep .abs | wc
   4950    4950  257215

All of which are compressed:

find | grep .abs.gz | wc
   4950    4950  257215

To get a list of the 3-D faces:

find | grep .abs.gz | awk '/{print $1}' 1>~/files_list.txt

It yields something like the following:

./nd1/Spring2003range/04334d218.abs.gz
./nd1/Spring2003range/04419d182.abs.gz
./nd1/Spring2003range/04637d166.abs.gz
./nd1/Spring2003range/04522d243.abs.gz
./nd1/Spring2003range/04387d251.abs.gz
./nd1/Spring2003range/04584d112.abs.gz
./nd1/Spring2003range/04496d176.abs.gz
./nd1/Spring2003range/04422d196.abs.gz
./nd1/Spring2003range/04605d173.abs.gz
./nd1/Spring2003range/04533d187.abs.gz
./nd1/Spring2003range/04633d98.abs.gz
./nd1/Spring2003range/04382d130.abs.gz
./nd1/Spring2003range/04288d186.abs.gz
./nd1/Spring2003range/04211d339.abs.gz
./nd1/Spring2003range/04327d218.abs.gz
./nd1/Spring2003range/04589d154.abs.gz
./nd1/Spring2003range/04626d143.abs.gz
./nd1/Spring2003range/04256d313.abs.gz
./nd1/Spring2003range/04669d39.abs.gz
./nd1/Spring2003range/04337d228.abs.gz
./nd1/Spring2003range/04524d116.abs.gz
./nd1/Spring2003range/04530d233.abs.gz
./nd1/Spring2003range/04544d51.abs.gz
./nd1/Spring2003range/04496d170.abs.gz
./nd1/Spring2003range/04347d207.abs.gz
./nd1/Spring2003range/04391d32.abs.gz
./nd1/Spring2003range/04627d91.abs.gz
./nd1/Spring2003range/04446d199.abs.gz
./nd1/Spring2003range/04461d222.abs.gz
./nd1/Spring2003range/04203d346.abs.gz
./nd1/Spring2003range/04360d213.abs.gz
./nd1/Spring2003range/04226d329.abs.gz
./nd1/Spring2003range/04378d142.abs.gz
./nd1/Spring2003range/04431d242.abs.gz
./nd1/Spring2003range/04461d220.abs.gz
./nd1/Spring2003range/04481d211.abs.gz
./nd1/Spring2003range/04626d145.abs.gz
./nd1/Spring2003range/04350d201.abs.gz
./nd1/Spring2003range/04605d177.abs.gz
./nd1/Spring2003range/04437d182.abs.gz
./nd1/Spring2003range/02463d460.abs.gz
./nd1/Spring2003range/04531d200.abs.gz
./nd1/Spring2003range/04605d169.abs.gz
./nd1/Spring2003range/04530d225.abs.gz
./nd1/Spring2003range/04370d155.abs.gz
./nd1/Spring2003range/04229d358.abs.gz
./nd1/Spring2003range/04558d171.abs.gz
./nd1/Spring2003range/04557d249.abs.gz
./nd1/Spring2003range/04559d238.abs.gz
./nd1/Spring2003range/04626d149.abs.gz
./nd1/Spring2003range/04308d188.abs.gz
./nd1/Spring2003range/04219d345.abs.gz
./nd1/Spring2003range/04409d111.abs.gz
./nd1/Spring2003range/04575d226.abs.gz
./nd1/Spring2003range/04656d125.abs.gz
./nd1/Spring2003range/04504d71.abs.gz
./nd1/Spring2003range/04360d225.abs.gz
./nd1/Spring2003range/04339d188.abs.gz
./nd1/Spring2003range/04606d128.abs.gz
./nd1/Spring2003range/04464d53.abs.gz
./nd1/Spring2003range/04579d233.abs.gz
./nd1/Spring2003range/04576d34.abs.gz
./nd1/Spring2003range/04427d178.abs.gz
./nd1/Spring2003range/04261d255.abs.gz
./nd1/Spring2003range/04522d245.abs.gz
./nd1/Spring2003range/04316d210.abs.gz
./nd1/Spring2003range/04581d142.abs.gz
./nd1/Spring2003range/04343d236.abs.gz
./nd1/Spring2003range/04286d184.abs.gz
./nd1/Spring2003range/04347d215.abs.gz
./nd1/Spring2003range/04300d174.abs.gz
./nd1/Spring2003range/04449d140.abs.gz
./nd1/Spring2003range/04577d204.abs.gz
./nd1/Spring2003range/04372d198.abs.gz
./nd1/Spring2003range/04507d208.abs.gz
./nd1/Spring2003range/04606d132.abs.gz
./nd1/Spring2003range/04402d217.abs.gz
./nd1/Spring2003range/04374d193.abs.gz
./nd1/Spring2003range/04222d353.abs.gz
./nd1/Spring2003range/04456d185.abs.gz
./nd1/Spring2003range/04460d196.abs.gz
./nd1/Spring2003range/04203d344.abs.gz
./nd1/Spring2003range/04589d152.abs.gz
./nd1/Spring2003range/04653d28.abs.gz
./nd1/Spring2003range/04431d234.abs.gz
./nd1/Spring2003range/04589d160.abs.gz
./nd1/Spring2003range/04428d201.abs.gz
./nd1/Spring2003range/04525d144.abs.gz
./nd1/Spring2003range/04514d226.abs.gz
./nd1/Spring2003range/04361d143.abs.gz
./nd1/Spring2003range/04217d333.abs.gz
./nd1/Spring2003range/04400d220.abs.gz
./nd1/Spring2003range/04683d145.abs.gz
./nd1/Spring2003range/04600d163.abs.gz
./nd1/Spring2003range/04349d224.abs.gz
./nd1/Spring2003range/04414d218.abs.gz
./nd1/Spring2003range/04489d234.abs.gz
./nd1/Spring2003range/04407d184.abs.gz
./nd1/Spring2003range/04427d184.abs.gz
./nd1/Spring2003range/04484d135.abs.gz
./nd1/Spring2003range/04217d331.abs.gz
./nd1/Spring2003range/04425d170.abs.gz
./nd1/Spring2003range/04479d186.abs.gz
./nd1/Spring2003range/04243d338.abs.gz
./nd1/Spring2003range/04435d262.abs.gz
./nd1/Spring2003range/04387d253.abs.gz
./nd1/Spring2003range/04577d196.abs.gz
./nd1/Spring2003range/04592d39.abs.gz
./nd1/Spring2003range/04337d234.abs.gz
./nd1/Spring2003range/04506d160.abs.gz
./nd1/Spring2003range/04331d118.abs.gz
./nd1/Spring2003range/04374d187.abs.gz
./nd1/Spring2003range/04376d228.abs.gz
./nd1/Spring2003range/04656d129.abs.gz
./nd1/Spring2003range/04556d225.abs.gz
./nd1/Spring2003range/04456d187.abs.gz
./nd1/Spring2003range/04626d147.abs.gz
./nd1/Spring2003range/04309d87.abs.gz
./nd1/Spring2003range/04604d64.abs.gz
./nd1/Spring2003range/04506d158.abs.gz
./nd1/Spring2003range/04366d74.abs.gz
./nd1/Spring2003range/04651d100.abs.gz
./nd1/Spring2003range/04392d219.abs.gz
./nd1/Spring2003range/04407d182.abs.gz
./nd1/Spring2003range/04453d235.abs.gz
./nd1/Spring2003range/04323d159.abs.gz
./nd1/Spring2003range/04327d220.abs.gz
./nd1/Spring2003range/04315d191.abs.gz
./nd1/Spring2003range/04558d173.abs.gz
./nd1/Spring2003range/04523d254.abs.gz
./nd1/Spring2003range/04431d236.abs.gz
./nd1/Spring2003range/04402d221.abs.gz
./nd1/Spring2003range/04549d153.abs.gz
./nd1/Spring2003range/04239d302.abs.gz
./nd1/Spring2003range/04663d70.abs.gz
./nd1/Spring2003range/04221d349.abs.gz
./nd1/Spring2003range/04336d211.abs.gz
./nd1/Spring2003range/04349d228.abs.gz
./nd1/Spring2003range/04471d223.abs.gz
./nd1/Spring2003range/04343d230.abs.gz
./nd1/Spring2003range/04211d341.abs.gz
./nd1/Spring2003range/04618d134.abs.gz
./nd1/Spring2003range/04252d173.abs.gz
./nd1/Spring2003range/04513d229.abs.gz
./nd1/Spring2003range/04217d335.abs.gz
./nd1/Spring2003range/02463d458.abs.gz
./nd1/Spring2003range/04376d222.abs.gz
./nd1/Spring2003range/04201d304.abs.gz
./nd1/Spring2003range/04308d190.abs.gz
./nd1/Spring2003range/04484d133.abs.gz
./nd1/Spring2003range/04533d189.abs.gz
./nd1/Spring2003range/04414d216.abs.gz
./nd1/Spring2003range/04505d136.abs.gz
./nd1/Spring2003range/04637d162.abs.gz
./nd1/Spring2003range/04589d162.abs.gz
./nd1/Spring2003range/04372d202.abs.gz
./nd1/Spring2003range/04274d164.abs.gz
./nd1/Spring2003range/04435d254.abs.gz
./nd1/Spring2003range/04628d137.abs.gz
./nd1/Spring2003range/04496d174.abs.gz
./nd1/Spring2003range/04427d176.abs.gz
./nd1/Spring2003range/04380d241.abs.gz
./nd1/Spring2003range/04387d243.abs.gz
./nd1/Spring2003range/04631d98.abs.gz
./nd1/Spring2003range/04487d126.abs.gz
./nd1/Spring2003range/04659d12.abs.gz
./nd1/Spring2003range/04463d151.abs.gz
./nd1/Spring2003range/04553d198.abs.gz
./nd1/Spring2003range/04324d203.abs.gz
./nd1/Spring2003range/04374d195.abs.gz
./nd1/Spring2003range/04434d126.abs.gz
./nd1/Spring2003range/04279d235.abs.gz
./nd1/Spring2003range/04538d67.abs.gz
./nd1/Spring2003range/04334d216.abs.gz
./nd1/Spring2003range/04448d70.abs.gz
./nd1/Spring2003range/04436d232.abs.gz
./nd1/Spring2003range/04368d172.abs.gz
./nd1/Spring2003range/04622d148.abs.gz
./nd1/Spring2003range/04470d209.abs.gz
./nd1/Spring2003range/04349d232.abs.gz
./nd1/Spring2003range/04429d248.abs.gz
./nd1/Spring2003range/02463d464.abs.gz
./nd1/Spring2003range/04376d234.abs.gz
./nd1/Spring2003range/04349d226.abs.gz
./nd1/Spring2003range/04308d192.abs.gz
./nd1/Spring2003range/04646d33.abs.gz
./nd1/Spring2003range/04418d211.abs.gz
./nd1/Spring2003range/04525d140.abs.gz
./nd1/Spring2003range/04233d320.abs.gz
./nd1/Spring2003range/04539d157.abs.gz
./nd1/Spring2003range/04654d102.abs.gz
./nd1/Spring2003range/04397d248.abs.gz
./nd1/Spring2003range/04560d191.abs.gz
./nd1/Spring2003range/04456d183.abs.gz
./nd1/Spring2003range/04537d243.abs.gz
./nd1/Spring2003range/04385d241.abs.gz
./nd1/Spring2003range/04584d110.abs.gz
./nd1/Spring2003range/04485d202.abs.gz
./nd1/Spring2003range/04647d141.abs.gz
./nd1/Spring2003range/04514d238.abs.gz
./nd1/Spring2003range/04288d180.abs.gz
./nd1/Spring2003range/04495d216.abs.gz
./nd1/Spring2003range/04435d252.abs.gz
./nd1/Spring2003range/04316d216.abs.gz
./nd1/Spring2003range/04454d137.abs.gz
./nd1/Spring2003range/04514d228.abs.gz
./nd1/Spring2003range/04589d156.abs.gz
./nd1/Spring2003range/04489d238.abs.gz
./nd1/Spring2003range/04219d341.abs.gz
./nd1/Spring2003range/04444d168.abs.gz
./nd1/Spring2003range/04569d217.abs.gz
./nd1/Spring2003range/04221d347.abs.gz
./nd1/Spring2003range/04233d314.abs.gz
./nd1/Spring2003range/04360d223.abs.gz
./nd1/Spring2003range/04434d124.abs.gz
./nd1/Spring2003range/04444d164.abs.gz

[....]

./nd1/Spring2004range/04734d194.abs.gz
./nd1/Spring2004range/04765d172.abs.gz
./nd1/Spring2004range/04776d103.abs.gz
./nd1/Spring2004range/04936d102.abs.gz

In a later post I will share some parts of the said program in addition to all sorts of code samples and tools for working with 3-D datasets. The MATLAB code for surfaces may be of use here for one to be using better 3-D visualisation (e.g. with lighting options). More on that will come in the next parts.

2 Responses to “Working With the FRGC 3-D Faces Database – Part I”

  1. elhocine Says:

    Very interesting. I will be very grateful if you can publish some code that do preprocessing and visualization of 3d faces.
    Thanks

  2. Anonymous Says:

    please upload matlab code for preprocessing on FRGC .abs image file(range images )

Technical Notes About Comments

Comments may include corrections, additions, citations, expressions of consent or even disagreements. They should preferably remain on topic.

Moderation: All genuine comments will be added. If your comment does not appear immediately (a rarity), it awaits moderation as it contained a sensitive word or a URI.

Trackbacks: The URI to TrackBack this entry is:

https://schestowitz.com/Weblog/archives/2011/03/06/massive-dataset/trackback/

Syndication: RSS feed for comments on this post RSS 2

    See also: What are feeds?, Local Feeds

Comments format: Line and paragraph breaks are automatic, E-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Back to top

Retrieval statistics: 21 queries taking a total of 0.122 seconds • Please report low bandwidth using the feedback form
Original styles created by Ian Main (all acknowledgements) • PHP scripts and styles later modified by Roy Schestowitz • Help yourself to a GPL'd copy
|— Proudly powered by W o r d P r e s s — based on a heavily-hacked version 1.2.1 (Mingus) installation —|