1. An apparatus, comprising: a depth-sensing camera; a memory having, stored therein, computer program code; and one or more processing units operatively coupled to the memory and configured to execute instructions in the computer program code that cause the one or more processing units to: receive a depth map of a scene containing one or more human hands from the depth-sensing camera, the depth map comprising a matrix of pixels, each pixel having a depth value; extract, from the depth map, features based on the depth values of the pixels in a plurality of patches distributed in respective positions over the one or more human hands, wherein the depth values of the pixels are normalized, such that the features are background-invariant; match the extracted features to previously-stored features; estimate a position of at least one of the one or more human hands based, at least in part, on stored information associated with the matched features; and track the position of the at least one of the one or more human hands, wherein the instructions to track comprise instructions to track bi-directionally along a z-axis of the scene.