Skip to main content

Project Aria Glasses 2D Image Coordinate System Conventions

For any provided camera intrinsic calibration value, we use the convention that the color value of a pixel with integer coordinates (u,v)(u,v) is the average color of the square spanning from (u0.5,v0.5)(u-0.5,v-0.5) to (u+0.5,v+0.5)(u+0.5,v+0.5) in continuous coordinates.

This is visualized in the Figure 1, and has the following important consequences:

  • Checking in bound: A pixel (u,v)(u,v) is considered to be in bound if 0.5u<W0.5-0.5\leq u<W-0.5 and 0.5v<H0.5-0.5\leq v<H-0.5.
  • Interpolation: In bilinear interpolation, a point (u,v) can be interpolated of all four neighboring integer-valued pixel coordinates are in-bound. That requires 0uW10 \leq u \leq W-1 and 0vH10 \leq v \leq H-1.
  • Image down-sampling: When downsampling images by a factor of ss, every s×ss \times s pixel are squeezed into a single pixel. For example, the intensity at pixel s×ss \times s in the scaled image accounts for all the photons collected in the area [0.5,s0.5]×[0.5,s0.5][-0.5,s-0.5]\times[-0.5,s-0.5] (i.e. column 00 to s1s - 1, and row 00 to s1s-1 in the discrete coordinate) in the original image. In order to keep this assumption valid, the re-scaled point pscaledp_\text{scaled} not only needs to scale from the corresponding point in the original image poriginalp_\text{original} but also accounts for the (0.5,0.5)(0.5,0.5) translation accordingly by pscaled=s(poriginal+0.5)0.5p_\text{scaled} =s (p_\text{original}+0.5)-0.5

Visualization of 2D Image Coordinate System Conventions for Project Aria data


Figure 1: 2D Image Coordinate System Conventions

Go to the Project Aria FAQ for more calibration information and resources.