A method of tracking an object across a stream of images comprising: a) determining a region of interest, ROI, bounding said object in an initial frame of said stream of images; b) providing a histogram of gradients, HOG, map for said ROI by: i) dividing said ROI into an array of MxN cells, each cell comprising a plurality of image pixels; ii) determining a HOG for each of said cells, each HOG comprising a plurality of q bins, each bin corresponding to a range of orientation angles, and each bin having a value being a function of a number instances of a pixel gradient in a cell corresponding to the bin; d) storing said HOG map as indicative of the features of said object, including providing a multi-layer neural network, at least a first layer of said network comprising neurons, each initially weighted according to the HOG map for said ROI from said initial frame; e) acquiring a subsequent frame from said stream of images; f) scanning at least a portion of said frame, ROI by ROI using said neural network to identify a candidate ROI having a HOG map best matching the stored HOG map features, said neural network providing an output proportional to the level of match between the HOG map values used for the weights of the first layer of neurons and the HOG map values provided for a candidate ROI; g) responsive to said match meeting a threshold, updating the stored HOG map indicative of the features of said object according to the HOG map for the best matching candidate ROI including updating the weights for said neurons according to the HOG map for the best matching candidate ROI from said subsequent frame; and h) repeating steps e) to g) until said match fails to meet said threshold. a) determining a region of interest, ROI, bounding said object in an initial frame of said stream of images; b) providing a histogram of gradients, HOG, map for said ROI by: i) dividing said ROI into an array of MxN cells, each cell comprising a plurality of image pixels; ii) determining a HOG for each of said cells, each HOG comprising a plurality of q bins, each bin corresponding to a range of orientation angles, and each bin having a value being a function of a number instances of a pixel gradient in a cell corresponding to the bin; i) dividing said ROI into an array of MxN cells, each cell comprising a plurality of image pixels; ii) determining a HOG for each of said cells, each HOG comprising a plurality of q bins, each bin corresponding to a range of orientation angles, and each bin having a value being a function of a number instances of a pixel gradient in a cell corresponding to the bin; d) storing said HOG map as indicative of the features of said object, including providing a multi-layer neural network, at least a first layer of said network comprising neurons, each initially weighted according to the HOG map for said ROI from said initial frame; e) acquiring a subsequent frame from said stream of images; f) scanning at least a portion of said frame, ROI by ROI using said neural network to identify a candidate ROI having a HOG map best matching the stored HOG map features, said neural network providing an output proportional to the level of match between the HOG map values used for the weights of the first layer of neurons and the HOG map values provided for a candidate ROI; g) responsive to said match meeting a threshold, updating the stored HOG map indicative of the features of said object according to the HOG map for the best matching candidate ROI including updating the weights for said neurons according to the HOG map for the best matching candidate ROI from said subsequent frame; and h) repeating steps e) to g) until said match fails to meet said threshold.