A method for determining an estimated pupil region of an eye of a user, the method comprising: receiving an image of the eye of the user from one or more image sensors that captured the image, the image comprising a plurality of pixels; generating a rough pupil region using at least a subset of the plurality of pixels; extracting from the rough pupil region a plurality of pupil boundary point candidates; for each of the pupil boundary point candidates, weighting the pupil boundary point candidate based on color values of at least two neighbor pixels of the pupil boundary point candidate to generate weighted pupil boundary point candidates; fitting a parametric curve to the location of the weighted pupil boundary point candidates to determine the estimated pupil region of the eye of the user, wherein one or more weighted pupil boundary point candidates having weights below a low weight threshold are discarded, and/or wherein the fitting a parametric curve comprises determining a curve having a minimum cost function and elements contributing to the cost function include a weight of each of the weighted boundary point candidates; and outputting the estimated pupil region of the eye of the user to one or more of an eye-tracking system and an identification system; wherein weighting each of the pupil boundary point candidates based on color values of at least two neighbor pixels further comprises: determining a color value of each of a plurality of inner pixels located between the pupil boundary point candidate and an estimated center of the rough pupil region along a ray extending from the estimated center through the pupil boundary point candidate; determining a color value of each of a plurality of outer pixels located along the ray, the plurality of outer pixels located on an opposite side of the pupil boundary point candidate from the inner pixels; clustering the pupil boundary point candidates in a two-dimensional color space where one axis represents an average color value of their inner pixels and the other axis represents an average color value of their outer pixels; and assigning a weight to each of the pupil boundary point candidates based on a distance of each of the pupil boundary point candidates from a center of a dominant cluster in the two-dimensional color space. receiving an image of the eye of the user from one or more image sensors that captured the image, the image comprising a plurality of pixels; generating a rough pupil region using at least a subset of the plurality of pixels; extracting from the rough pupil region a plurality of pupil boundary point candidates; for each of the pupil boundary point candidates, weighting the pupil boundary point candidate based on color values of at least two neighbor pixels of the pupil boundary point candidate to generate weighted pupil boundary point candidates; fitting a parametric curve to the location of the weighted pupil boundary point candidates to determine the estimated pupil region of the eye of the user, wherein one or more weighted pupil boundary point candidates having weights below a low weight threshold are discarded, and/or wherein the fitting a parametric curve comprises determining a curve having a minimum cost function and elements contributing to the cost function include a weight of each of the weighted boundary point candidates; and outputting the estimated pupil region of the eye of the user to one or more of an eye-tracking system and an identification system; wherein weighting each of the pupil boundary point candidates based on color values of at least two neighbor pixels further comprises: determining a color value of each of a plurality of inner pixels located between the pupil boundary point candidate and an estimated center of the rough pupil region along a ray extending from the estimated center through the pupil boundary point candidate; determining a color value of each of a plurality of outer pixels located along the ray, the plurality of outer pixels located on an opposite side of the pupil boundary point candidate from the inner pixels; clustering the pupil boundary point candidates in a two-dimensional color space where one axis represents an average color value of their inner pixels and the other axis represents an average color value of their outer pixels; and assigning a weight to each of the pupil boundary point candidates based on a distance of each of the pupil boundary point candidates from a center of a dominant cluster in the two-dimensional color space. determining a color value of each of a plurality of inner pixels located between the pupil boundary point candidate and an estimated center of the rough pupil region along a ray extending from the estimated center through the pupil boundary point candidate; determining a color value of each of a plurality of outer pixels located along the ray, the plurality of outer pixels located on an opposite side of the pupil boundary point candidate from the inner pixels; clustering the pupil boundary point candidates in a two-dimensional color space where one axis represents an average color value of their inner pixels and the other axis represents an average color value of their outer pixels; and assigning a weight to each of the pupil boundary point candidates based on a distance of each of the pupil boundary point candidates from a center of a dominant cluster in the two-dimensional color space.