A method implemented by a processor of a mobile device for estimating a current location of the mobile device within an indoor facility, the mobile device having a first camera mounted on a first side of the mobile device, the method comprising: receiving a first sequence of image frames captured by the first camera, the first sequence of image frames being captured when the first camera is substantially faced toward a ceiling of the indoor facility; for each pair of consecutive image frames in the first sequence: identifying a transformation between the pair of image frames, and correlating the transformation with an estimated change in position of the mobile device; obtaining a first sequence of displacements based on the estimated changes in position of the mobile device for the pairs of consecutive image frames in the first sequence; the method further comprising: receiving a second sequence of image frames captured by a second camera of the mobile device, the second camera being mounted on a second side of the mobile device opposite to the first side, each image frame of the second sequence being captured substantially simultaneously as a corresponding image frame of the first sequence; for each pair of consecutive image frames in the second sequence: identifying a transformation between the image frames; and correlating the transformation with an estimated change in position of the mobile device; and obtaining a second sequence of displacements based on the estimated changes in position of the mobile device for the pairs of consecutive image frames in the second sequence and; determining the current location of the mobile device within the indoor facility based on an initial location of the mobile device and the first and second sequences of displacements. receiving a first sequence of image frames captured by the first camera, the first sequence of image frames being captured when the first camera is substantially faced toward a ceiling of the indoor facility; for each pair of consecutive image frames in the first sequence: identifying a transformation between the pair of image frames, and correlating the transformation with an estimated change in position of the mobile device; identifying a transformation between the pair of image frames, and correlating the transformation with an estimated change in position of the mobile device; obtaining a first sequence of displacements based on the estimated changes in position of the mobile device for the pairs of consecutive image frames in the first sequence; the method further comprising: receiving a second sequence of image frames captured by a second camera of the mobile device, the second camera being mounted on a second side of the mobile device opposite to the first side, each image frame of the second sequence being captured substantially simultaneously as a corresponding image frame of the first sequence; for each pair of consecutive image frames in the second sequence: identifying a transformation between the image frames; and correlating the transformation with an estimated change in position of the mobile device; and obtaining a second sequence of displacements based on the estimated changes in position of the mobile device for the pairs of consecutive image frames in the second sequence and; determining the current location of the mobile device within the indoor facility based on an initial location of the mobile device and the first and second sequences of displacements. receiving a second sequence of image frames captured by a second camera of the mobile device, the second camera being mounted on a second side of the mobile device opposite to the first side, each image frame of the second sequence being captured substantially simultaneously as a corresponding image frame of the first sequence; for each pair of consecutive image frames in the second sequence: identifying a transformation between the image frames; and correlating the transformation with an estimated change in position of the mobile device; and identifying a transformation between the image frames; and correlating the transformation with an estimated change in position of the mobile device; and obtaining a second sequence of displacements based on the estimated changes in position of the mobile device for the pairs of consecutive image frames in the second sequence and; determining the current location of the mobile device within the indoor facility based on an initial location of the mobile device and the first and second sequences of displacements.