A method comprising: receiving first image data that is captured at a first time by an imager device disposed on a moving body; receiving second image data that is captured by the imager device at a second time that is subsequent to the first time; receiving inertial measurement data sensed by an inertial measurement unit disposed on the moving body, the inertial measurement data corresponding to sensed motion of the moving body between the first time and the second time; registering the first image data to the second image data based on the received inertial measurement data to produce first registered image data; in response to identifying that image features are common to both the first registered image data and the second image data: registering the first registered image data to the second image data based on the identified features that are common to both the first registered image data and the second image data to produce second registered image data; and outputting the second registered image data as output registered image data; and outputting the first registered image data as the output registered image data in response to determining that no image features are common to both the first registered image data and the second image data; wherein registering the first image data to the second image data based on the received inertial measurement data comprises applying translation and rotation operations to pixel locations of the first image data based on the received inertial measurement data. receiving first image data that is captured at a first time by an imager device disposed on a moving body; receiving second image data that is captured by the imager device at a second time that is subsequent to the first time; receiving inertial measurement data sensed by an inertial measurement unit disposed on the moving body, the inertial measurement data corresponding to sensed motion of the moving body between the first time and the second time; registering the first image data to the second image data based on the received inertial measurement data to produce first registered image data; in response to identifying that image features are common to both the first registered image data and the second image data: registering the first registered image data to the second image data based on the identified features that are common to both the first registered image data and the second image data to produce second registered image data; and outputting the second registered image data as output registered image data; and outputting the first registered image data as the output registered image data in response to determining that no image features are common to both the first registered image data and the second image data; registering the first registered image data to the second image data based on the identified features that are common to both the first registered image data and the second image data to produce second registered image data; and outputting the second registered image data as output registered image data; and outputting the first registered image data as the output registered image data in response to determining that no image features are common to both the first registered image data and the second image data; wherein registering the first image data to the second image data based on the received inertial measurement data comprises applying translation and rotation operations to pixel locations of the first image data based on the received inertial measurement data.