Sunday, March 6th, 2011, 8:14 pm
Working With the FRGC 3-D Faces Database – Part I
Massive dataset explored
Example face with holes remaining in the data
Same as above, different angle
Summary: Notes, tips, code samples, and pointers relating to FRGC (an ongoing series of posts)
HIS 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.
February 6th, 2013 at 10:17 am
Very interesting. I will be very grateful if you can publish some code that do preprocessing and visualization of 3d faces.
Thanks
April 29th, 2019 at 9:01 am
please upload matlab code for preprocessing on FRGC .abs image file(range images )