A system for determining heading that is mountable on a traveling vehicle, the system comprising: an image system that captures multiple distinctive features in an area of interest at a first point in time (t 1) and at a second point of time (t 2) during traveling of the traveling vehicle, matches the multiple distinctive features captured at the first point of time (t 1) and the second point of time (t 2), and determines a first unit-vector (x 1) associated with a given matched distinctive feature based on the first point in time (t 1) and a second unit-vector (x 2) associated with the given matched distinctive feature associated with the second point in time (t 2) for each of the multiple matched distinctive features; a global positioning system that determines a translation vector based on carrier phase information captured from the first point in time (t 1) to the second point in time (t 2); an inertial measurement system that provides an initial heading to a coupled processor; and the coupled processor, said coupled processor being configured to minimize an error δr in an epipolar equation for each of the multiple matched distinctive features based on the respective first and second unit-vectors (x 1, x 2), the initial heading provided by the inertial measurement system, and the translation vector to determine a corrected heading for each of the multiple matched distinctive features, wherein the coupled processor is a Kalman filter and the error of the epipolar equation is δr = T ×( x 1 × x 2)· φ +( x 1 × x 2)· δT, where x 1 is the first unit-vector, x 2 is the second unit-vector, T is the translation vector, where φ is an attitude error comprising tilt and heading errors and δT is a translation error which is measured by the GPS, such that the Kalman filter resolves the attitude error φ including the heading error for determining the corrected heading for each of the multiple matched distinctive features. an image system that captures multiple distinctive features in an area of interest at a first point in time (t 1) and at a second point of time (t 2) during traveling of the traveling vehicle, matches the multiple distinctive features captured at the first point of time (t 1) and the second point of time (t 2), and determines a first unit-vector (x 1) associated with a given matched distinctive feature based on the first point in time (t 1) and a second unit-vector (x 2) associated with the given matched distinctive feature associated with the second point in time (t 2) for each of the multiple matched distinctive features; a global positioning system that determines a translation vector based on carrier phase information captured from the first point in time (t 1) to the second point in time (t 2); an inertial measurement system that provides an initial heading to a coupled processor; and the coupled processor, said coupled processor being configured to minimize an error δr in an epipolar equation for each of the multiple matched distinctive features based on the respective first and second unit-vectors (x 1, x 2), the initial heading provided by the inertial measurement system, and the translation vector to determine a corrected heading for each of the multiple matched distinctive features, wherein the coupled processor is a Kalman filter and the error of the epipolar equation is δr = T ×( x 1 × x 2)· φ +( x 1 × x 2)· δT, where x 1 is the first unit-vector, x 2 is the second unit-vector, T is the translation vector, where φ is an attitude error comprising tilt and heading errors and δT is a translation error which is measured by the GPS, such that the Kalman filter resolves the attitude error φ including the heading error for determining the corrected heading for each of the multiple matched distinctive features.