An ultrasound imaging system with enhanced ultrasound imaging probe tracking comprising: an ultrasound imaging probe providing an image data stream of sequential image frames on image planes; an inertial tracking unit rigidly fixed to the ultrasound probe and providing an inertial data stream; a real-time pose estimation unit receiving and processing the image data stream and the inertial data stream to estimate a ultrasound probe pose for a successive image frame, characterised by: estimating in-plane translations and rotation between an initial image frame and a successive image frame from the image data stream by registering the successive frame to the initial frame; dividing the initial image frame and the registered successive image frame into a matrix of sub-planes; estimating out of plane distances for each sub-plane using speckle decorrelation analysis; estimating out of plane rotations between successive image frames from the inertial data stream; and determining an out-of-plane translation between successive image frames by iteratively selecting planes with the estimated out-of-plane rotations by varying an out-of-plane offset, calculating the motion of each sub-plane for the estimated out-of-plane rotations and the selected plane, computing the differences between the sub-plane distances computed by speckle analysis and those calculated from the inertial data derived rotation and selected plane, and minimizing for the root mean square of the differences for all selected planes. an ultrasound imaging probe providing an image data stream of sequential image frames on image planes; an inertial tracking unit rigidly fixed to the ultrasound probe and providing an inertial data stream; a real-time pose estimation unit receiving and processing the image data stream and the inertial data stream to estimate a ultrasound probe pose for a successive image frame, characterised by: estimating in-plane translations and rotation between an initial image frame and a successive image frame from the image data stream by registering the successive frame to the initial frame; dividing the initial image frame and the registered successive image frame into a matrix of sub-planes; estimating out of plane distances for each sub-plane using speckle decorrelation analysis; estimating out of plane rotations between successive image frames from the inertial data stream; and determining an out-of-plane translation between successive image frames by iteratively selecting planes with the estimated out-of-plane rotations by varying an out-of-plane offset, calculating the motion of each sub-plane for the estimated out-of-plane rotations and the selected plane, computing the differences between the sub-plane distances computed by speckle analysis and those calculated from the inertial data derived rotation and selected plane, and minimizing for the root mean square of the differences for all selected planes. estimating in-plane translations and rotation between an initial image frame and a successive image frame from the image data stream by registering the successive frame to the initial frame; dividing the initial image frame and the registered successive image frame into a matrix of sub-planes; estimating out of plane distances for each sub-plane using speckle decorrelation analysis; estimating out of plane rotations between successive image frames from the inertial data stream; and determining an out-of-plane translation between successive image frames by iteratively selecting planes with the estimated out-of-plane rotations by varying an out-of-plane offset, calculating the motion of each sub-plane for the estimated out-of-plane rotations and the selected plane, computing the differences between the sub-plane distances computed by speckle analysis and those calculated from the inertial data derived rotation and selected plane, and minimizing for the root mean square of the differences for all selected planes.