---
# System prepended metadata

title: 'MZKB05/Beyond Lambert: Reconstructing Specular Surfaces From Color'

---

---
breaks: False
---



# MZKB05/Beyond Lambert: Reconstructing Specular Surfaces From Color

Paper: http://www.eecs.harvard.edu/~zickler/download/photodiff_cvpr05_preprint.pdf

## Immediately arising questions

- MZKB say previous works model
  *homogeneous* dichromatic surfaces
  and begin by referencing Shafer... Shafer introduces
  dichromatic model and discusses
  "*inhomogeneous* surfaces that can be described by
  a dichromatic model", where "inhomogeneous",
  or "optically inhomogeneous",
  is expounded as characteristic
  that local surface normal deviates from
  macroscopic average normal. It's unclear
  what MZKB mean by "homogeneous",
  but I first thing think of "optical (in)homogeneity".
  
  So, if Dichromatic Model is designed for inhomogeneous
  surfaces, how come "previous works" model
  "*homogeneous dichromatic* surfaces"?
- How do I know the source color $S$?
- Basically, the paper just says,
  based on the assumption that material
  is dichromatic and specular component's
  color is approximately the lightsource's
  color,
  that ***if** we know specular component $S$
  then, well, we can remove it
  and use the orthogonal part to measure chromacity*.
  No wonder that just setting $S=(1,1,1)$ does not work...
  $S$ obviously need be estimated from data.

## Paper content discussion

**Dichromatic BRDF**:

$$f(\lambda, \theta) = g_d(\lambda) f_d(\theta) + f_s(\theta).$$

Additional assumption: [IOR](https://en.wikipedia.org/wiki/Refractive_index) of surface is constant,
"thus no $g_s(\lambda)$ factor".

This is kind of questionable, I thought $g_s(\lambda)$ --
the spectral power distribution component of BRDF -- encodes the color information, while refraction index is the part
that depends on angle $\theta$?

**Sensor response**:
$$I_k = (D_k f_d(\theta) + S_k f_s(\theta)) \langle N, L\rangle,$$
- $k$ -- channel;
- $D_k$ -- diffuse/body component of the color measured by $k$'th sensor?
- $S_k$ -- "effective source strength", measured with $k$'th filter and independent of surface;
- $C_k$ -- sensor's sensitivity function;
- $N$ -- surface normal;
- $L$ -- illumination direction.

**Pixel color**:
$$I = \begin{bmatrix}I_{\mathrm{R}}\\I_{\mathrm{G}}\\I_{\mathrm{B}}\end{bmatrix}.$$

## SUV transform

$$ I_{\mathrm{SUV}} = R I, $$
where $R$ is a rotation that aligns $S$
with the red axis.

$$\begin{split}I_{\mathrm{SUV}}
&= (RD f_d(\theta) + RS_k f_s(\theta))\langle N, L\rangle\\
&= (RD f_d(\theta) + \begin{bmatrix}1\\0\\0\end{bmatrix}
f_s(\theta))\langle N, L\rangle.\end{split}$$

$$I_U = R_{[2,:]}Df_d(\theta)\langle N, L\rangle,$$
$$I_V = R_{[3,:]}Df_d(\theta)\langle N, L\rangle.$$

In Lambertian case, $f_d(\theta)=\mathrm{const}$
and $R_{[2:,:]}Df_d$ are Lambertian albedos.