A method of object detection, comprising: receiving or capturing one or more images; performing object detection using greyscale versions of the one or more images in a staged process, including a plurality of stages, wherein each stage uses a dual threshold local binary pattern, LBP, operator and a corresponding range of gradient magnitudes defined by a set of two threshold values T1 and T2, the set of thresholds being different for each stage, wherein each stage of the plurality of stages includes: selecting gradient thresholds by selecting the threshold values T1 and T2 for each stage of the plurality of stages to extract features having corresponding gradients; extracting features corresponding to the selected gradients by applying the dual-threshold local binary pattern operator to pixels of the one or more images, wherein the dual-threshold local binary pattern operator returns a first binary value when operating on a variable in a range between the two threshold values T1 and T2 and returns a second binary value when operating on a variable outside of the range between the two threshold values T1 and T2; determining whether a matching condition is met between the extracted features and expected features of a target object using a supervised machine learning classification; and exiting the staged process and generating a signal indicating that the target object is not detected when the matching condition is not met otherwise, proceeding to the next stage of the plurality of stages; and generating a signal indicating that the target object is detected if the respective matching condition is met at all stages of the staged process. receiving or capturing one or more images; performing object detection using greyscale versions of the one or more images in a staged process, including a plurality of stages, wherein each stage uses a dual threshold local binary pattern, LBP, operator and a corresponding range of gradient magnitudes defined by a set of two threshold values T1 and T2, the set of thresholds being different for each stage, wherein each stage of the plurality of stages includes: selecting gradient thresholds by selecting the threshold values T1 and T2 for each stage of the plurality of stages to extract features having corresponding gradients; extracting features corresponding to the selected gradients by applying the dual-threshold local binary pattern operator to pixels of the one or more images, wherein the dual-threshold local binary pattern operator returns a first binary value when operating on a variable in a range between the two threshold values T1 and T2 and returns a second binary value when operating on a variable outside of the range between the two threshold values T1 and T2; determining whether a matching condition is met between the extracted features and expected features of a target object using a supervised machine learning classification; and exiting the staged process and generating a signal indicating that the target object is not detected when the matching condition is not met otherwise, proceeding to the next stage of the plurality of stages; and generating a signal indicating that the target object is detected if the respective matching condition is met at all stages of the staged process. selecting gradient thresholds by selecting the threshold values T1 and T2 for each stage of the plurality of stages to extract features having corresponding gradients; extracting features corresponding to the selected gradients by applying the dual-threshold local binary pattern operator to pixels of the one or more images, wherein the dual-threshold local binary pattern operator returns a first binary value when operating on a variable in a range between the two threshold values T1 and T2 and returns a second binary value when operating on a variable outside of the range between the two threshold values T1 and T2; determining whether a matching condition is met between the extracted features and expected features of a target object using a supervised machine learning classification; and exiting the staged process and generating a signal indicating that the target object is not detected when the matching condition is not met otherwise, proceeding to the next stage of the plurality of stages; and generating a signal indicating that the target object is detected if the respective matching condition is met at all stages of the staged process.