1. A computer implemented method of detecting an object of interest, the method comprising: generating, by a processor, a first signature for the object of interest based on an image of the object of interest; generating, by the processor, a second signature for a candidate object based on an image of the candidate object; calculating, by the processor, a similarity score by relating the first signature to the second signature; and determining, by the processor, if the candidate object is the object of interest based on the similarity score, wherein generating the first signature comprises: defining a first curve on the object of interest such that the curve crosses the object of interest; placing a first group of patches along the first curve; identifying a first group of key-point segments of patches having similar color and texture; and generating the first signature based on at least one key-point segment of the first group of key-point segments, and wherein generating the second signature comprises: defining a second curve on the candidate object such that the curve crosses the candidate object; placing a second group of patches along the second curve; identifying a second group of key-point segments of patches having similar color and texture; and generating the second signature based on at least one key-point segment of the second group of key-point segments.