STAF: Database of Time-Varying Surface Appearance


Database Organization 

The release of the database includes 3 parts for each example: the raw measurement, the fitted BRDF parameters, and the STAF factorization. Due to the space limitation, we can not release all the 1,280 raw measurements. Instead, we selected 1 view and 6 lighting directions (thus 6 measurement in total) for each example at each time step. The structure of the database, for example, tvBTF09, is as follows:

tvBTF09/
btfInfo/ 3d coordinates of the points on the sample
raw/ 6 measurements at each time step, raw data
TSparamNew/ fitted BRDF parameters
SIM/ STAF model parameters
tvBTF09-config.txt see below
tvBTF09-time.txt
tvBTF09-info.txt



Name Convention

There are 26 samples in this database. Each sample has a unique id, from "tvBTF09" to "tvBTF45" (see here for a list of the samples). Take tvBTF09 as an example, the name convention of the database will be given as follows, step by step:

  • tvBTF09-config.txt
  • This file saves some information of the path of the files, the number of time steps, the size of the images, and so on. It is used to process the data. It is extracted from tvBTF09-info.txt.

  • tvBTF09-time.txt
  • This file has the time information of each time step when we did the measurement. It is extracted from tvBTF09-info.txt

  • tvBTF09-info.txt
  • This file describes more information regarding the sample scan:
    1) Texture Size
    2) Exposure used
    3) Spectralon sample used for normalization
    4) Scan setting as seen from the SphereControl dome program
    5) Time stamp of each interval
  • btfInfo/
  • This folder has the information of the coordinates (2D and 3D) of the points on the sample. For example, the resolution of the images in tvBTF09 is 512x512. That means there are 512x512 points on the sample. The 3D coordinates of these points can be found in the file btfInfo/texturePoints3d.txt, and the 2D coordinates of these points from each of the 16 views can be found at btfInfo/texturePoints2d_xx.txt, where xx is the id of the view from 00 to 15.

  • raw/
  • This folder has the measurements (raw data) of this sample. As mentioned, due to the space limitation, we only provided 6 measurements (1 view and 6 lighting directions) at each time step. The name convention is as follows:

    norm_btf_LLL_VV_t_TT.exr

    where LLL is the light index (from 000 to 149), VV is the view index (from 00 to 15, see here for an explaination of the dome), and TT is the time index (form 00 to the time steps recorded for this sample). The image is in the EXR format. This is a format for HDR (high dynamic range) image. Please refer here for the information of this format.

    The raw data can be used in various ways. For example, in the BRDF fitting phase which will be explained right below, we do feel that neither the BRDF model we used nor the fitting method is perfect, especially for the specular parameters. One could try to use other types of BRDF models (e.g. Oren-Nayar + Full Torrance-Sparrow or Anisotropic Model), or other more robust fitting algorithm with these raw data.

  • TSparamNew/
  • This folder has the fitted BRDF parameters at each time step for this sample. In our work, the BRDF model we used is defined as follows:

    brdf model

    where there are 5 parameters: 3 for Kd (R,G,B), 1 for Ks, and 1 for Sigma. NOTE: Sigma defined in the above formula is different from the Sigma used in the original paper(Equation 1) for numerical reason. Their relationship is simple: Sigma_defined_here=1/(Sigma_in_paper)^2. So at each time step, we have 3 EXR images to represent these parameters:
    • tvBTF09-TT-xx-TSparam-Kd.exr
    • tvBTF09-TT-xx-TSparam-Ks.exr
    • tvBTF09-TT-xx-TSparam-Sigma.exr
    where TT is the time index. The first one is a color image with R/G/B three channels for Kd. The other two are grey level images for Ks and Sigma, respectively.

  • SIM/
  • This folder has the STAF model results. The STAF model we proposed is defined as follows:

    STAF model

    In this model, p(x,y,t) is one of the 5 BRDF parameters we have already fitted, and the variables in this model are the following 4 textures and 1 curve:
    • A(x,y): the scale factor in the amplitude axis
    • B(x,y): the scale factor in the time axis
    • C(x,y): the offset factor in the time axis
    • D(x,y): the offset factor in the amplitude axis
    • \phi(t):  the overall temporal curve

    For each of the 5 BRDF parameters, we did the above STAF factorization. The results, for example, for the Kd parameters, are saved in the following files under this directory:
    • tvBTF09-staf-Kd-A.exr
    • tvBTF09-staf-Kd-B.exr
    • tvBTF09-staf-Kd-C.exr
    • tvBTF09-staf-Kd-D.exr
    • tvBTF09-staf-Kd-phi.txt
    The 4 texture images are easy to understand. For the txt file for the curve \phi(t), for each curve we listed the name of the curve, the points on the curves, the order of the polynomial used to fit the curve, the bandwidth of the kernel. Then the followed two lines are the values of the points on the curves, at the time-axis and the amplitude-axis, respectively. The last line is the polynomial fitting results. For example, the curve of Kd in the red channel looks like:
    Red
    #point 100 #polynomial 7 bopt_r 0.065215

    strav_t_r: -0.121077 -0.108424 -0.095770 ......

    strav_r: 0.807958 0.790653 0.772969 ......

    pphi_r: 16.695722 -52.611800 58.813562 -26.188925 3.397970 -0.657741 0.635968
    We also included a figure to show these curves. For example, the R/G/B curves for Kd looks like this.

    Our implementation of the algorithm (in Matlab) to estimate the STAF model can be downloaded here (151KB).

    Note that there are few samples that can not get robust STAF factorization either for the specular BRDF parameters (Ks and Sigma), or for all the BRDF parameters The possible reasons are as follows:
    • The BRDF fitting for the specular parameters is not accurate.
    • The specularity is almost zero for these samples.
    • There are no obvious time variation in the appearance (i.e. the appearance remains almost constant over time).

    Below is the list of these samples:
    • No STAF for Ks/Sigma:  tvBTF20, tvBTF28, tvBTF38, tvBTF43
    • No STAF:  tvBTF34

Image Format

Images in this database are saved in EXR format. EXR can be viewed as a float-point image type, used to represent HDR (High Dynamic Range) images. Compared with directly writing float point  value to a raw file, EXR uses a "Half" type and has an internal compress algorithm to reduce the size of the image. More information about EXR format and library to read/write EXR images in C/C++ (and also a PhotonShop plugin) can be found at OpenEXR website. There is also a set of handy tools for EXR manipulation available here.

In our study, I only used it to write a 3-channel float-point value image (for grey level images, the values in the 3 channels are the same), and did not use any fancy features in OpenEXR. I wrote two simple matlab functions to read/write EXR images for this simple usage. Download here (790 KB). Micah Kimo Johnson also wrote a very nice Matlab tool for read/write EXR images here.

STAF Database Home
Contact: staf@lists.cs.columbia.edu
Last modified: 08/28/2006