A system, comprising: a light pattern generator comprising a plurality of light spots configured to illuminate a front surface and a back surface of a cornea of an eye with polarized light; one or more detectors positioned to receive a first plurality of spot images from light reflected off the front surface of the cornea and a second plurality of spot images from light reflected off the back surface of the cornea, the light reflected off the front surface of the cornea having a first polarization and the light reflected off the back surface of the cornea having a second polarization different from the first polarization; a polarization element disposed in an optical path between the back surface of the cornea of the eye and the one or more detectors, the polarization element being configured to attenuate an intensity of the light reflected off the front surface of the cornea by an amount greater than an amount by which it attenuates the light reflected off the back surface of the cornea; and a processor configured to determine a geometric characteristic of the cornea of the eye using at least the second plurality of spot images received by the one or more detectors, wherein the one or more detectors are configured to capture a plurality of images of the first and second spot images, wherein each captured image is captured with the polarization element oriented at different polarization angles, characterized in that the processor is configured to use image processing routines to calculate centroids locations for overlapping pairs of spots from the first and second plurality of spot images for each of the captured images captured by the detector at differing polarization angles of the polarization element. a light pattern generator comprising a plurality of light spots configured to illuminate a front surface and a back surface of a cornea of an eye with polarized light; one or more detectors positioned to receive a first plurality of spot images from light reflected off the front surface of the cornea and a second plurality of spot images from light reflected off the back surface of the cornea, the light reflected off the front surface of the cornea having a first polarization and the light reflected off the back surface of the cornea having a second polarization different from the first polarization; a polarization element disposed in an optical path between the back surface of the cornea of the eye and the one or more detectors, the polarization element being configured to attenuate an intensity of the light reflected off the front surface of the cornea by an amount greater than an amount by which it attenuates the light reflected off the back surface of the cornea; and a processor configured to determine a geometric characteristic of the cornea of the eye using at least the second plurality of spot images received by the one or more detectors, wherein the one or more detectors are configured to capture a plurality of images of the first and second spot images, wherein each captured image is captured with the polarization element oriented at different polarization angles, characterized in that the processor is configured to use image processing routines to calculate centroids locations for overlapping pairs of spots from the first and second plurality of spot images for each of the captured images captured by the detector at differing polarization angles of the polarization element.