1. A computer implemented method for estimating camera motion of a visual input scene, the method comprising: receiving visual input data captured by a stereo pair of cameras, the stereo pair of cameras being calibrated and the visual input data comprising a plurality of image frames; detecting points and lines in the received visual input data; finding point correspondences between the detected points and line correspondences between the detected lines in the visual input data; tracking the detected points and lines temporally across the plurality of the image frames; and estimating the camera motion using the detected points and lines in the visual input data, wherein estimating the camera motion comprises: forming a first trifocal tensor and a second trifocal tensor, the first trifocal tensor comprising the calibrated stereo pair of the cameras and a first camera of a corresponding stereo pair of cameras and the second trifocal tensor comprising the calibrated stereo pair of the cameras and a second camera of the corresponding stereo pair of cameras; selecting a three-feature combination of detected points and lines, the three-feature combination being at least one of: a combination of two detected points and one detected line or a combination of one detected point and two detected lines; and estimating a plurality of camera motion parameters associated with the first trifocal tensor and the second trifocal tensor from the selected combination of detected points and lines.