A Keypoint Based Object Detection Algorithm