The present invention generally relates to visual odometry, and more particularly to a system and method of selecting a keyframe for iterative closest point (ICP).
Visual odometry is a process adopted in robotics and computer vision to determine position and orientation of a robot by analyzing associated camera images, for example, captured by a RGB-D camera. The motion of the robot may be estimated by aligning a source to a target RGB-D frame using an iterative closest point (ICP) method.
The visual odometry system 100 is proposed to reduce computational cost, and reduce influence of outliers and noises. In the visual odometry system 100 of
Conventional frame-to-frame alignment method inherently accumulates drift, because there is always a small error caused by sensor noise in the estimate. In order to overcome the drift problem, Christian Kerl et al. discloses “Dense Visual SLAM for RGB-D Cameras,” 2013, Proc. of the Int. Conf. on Intelligent Robot Systems (IROS), the disclosure of which is incorporated herein by reference. Keyframe-based pose simultaneous localization and mapping (SLAM) method is adopted herein to limit local drift by estimating transformation between the current image and a keyframe. As long as the camera stays close enough to the keyframe, no drift is accumulated. The SLAM system needs to additionally perform keyframe selection, loop closure detection and validation, and map optimization.
In the conventional methods, a new keyframe is generated when a current image can no longer be matched against the latest keyframe. However, as a keyframe is selected after transformation of a current frame and the latest keyframe has been determined, keyframes with large error are likely generated, resulting in substantial tracking loss. A need has thus arisen to propose a novel scheme for preventing selecting keyframes with large error.
In view of the foregoing, it is an object of the embodiment of the present invention to provide a system and method of selecting a keyframe with fewer errors for iterative closest point (ICP) adaptable to constructing or updating a map of an unknown environment while simultaneously keeping track of an agent's location within it.
According to one embodiment, a system of selecting a keyframe for iterative closest point (ICP) includes a reference frame selector, an ICP loop unit and a keyframe update unit. The reference frame selector generates a reference frame according to a current frame and a current keyframe. The ICP loop unit performs ICP on the reference frame and the current frame, thereby generating a pose of the current frame. The keyframe update unit generates a new keyframe according to an offset condition between the pose of the current frame and a pose of the reference frame.
The blocks of the system 200 may be implemented by electrical circuits, computer software or their combination. For example, at least a portion of the system 200 may be performed in a digital image processor. As another example, at least a portion of the system 200 may be implemented by an instructions-controlled computer. In one exemplary embodiment, the system 200 may be adapted to an augmented reality (AR) device. Hardware components for the AR device may primarily include a processor (e.g., an image processor), a display (e.g., head-mounted display) and sensors (e.g., a color-depth camera such as RGB-D camera for red, green, blue plus depth). Specifically, the sensors or camera captures scenes to generate image frames (or simply frames), which are then fed to the processor that performs the operations of the system 200. Augmented reality is then rendered in the display.
In the embodiment, the system 200 may include a reference frame selector 21 that is configured to generate a reference frame S according to a current frame C and a current keyframe K. The current frame C may be provided, for example, by a camera such as a RGB-D camera.
Subsequently, in step 212, if an amount of inliers from a result of the performed ICP iteration is less than a predetermined value n (indicating that matching quality fails to reach a predetermined level), a current backup frame B is selected as the reference frame (i.e., S=B); otherwise the current keyframe K is selected as the reference frame (i.e., S=K). Conclusively speaking, if the current frame C is not substantially aligned to the current keyframe K (alternatively speaking, matching quality thereof fails to reach a predetermined level), the current backup frame B is used in the following ICP operation; otherwise the current keyframe K is kept for the following ICP operation.
To be more elaborate, in the embodiment, a pair of matched points is considered an inlier if its Euclidean distance falls within the percentage set of matching distances. Higher number of inliers is equivalent to higher matching quality, and vice versa. In the embodiment, the current backup frame B is a previous frame that has been temporarily stored in a storage such as a buffer.
The system 200 of the embodiment may include an ICP loop unit 22 that is configured to perform ICP on the reference frame S (outputted from the reference frame selector 21) and the current frame C. Accordingly, the ICP loop unit 22 generates, among others, a pose (i.e., location and orientation) of the current frame Pc and an error value. Detailed operations of the ICP loop unit 22 may be referred to the references mentioned above.
The system 200 of the embodiment may include a keyframe update unit 23 that is configured to generate a new keyframe K′ according to offset (or difference) between the pose of the current frame Pc and a pose of the reference frame Ps.
Translation (t)>η1
Rotation (Rθ)>η2
where t represents translation, θ represents rotation, R represents depth distance, and η1 and η2 are predetermined offset thresholds.
If the offset condition is satisfied (indicating that the current frame is no longer matched against the latest keyframe K), the current frame C is designated as the new keyframe K′ (i.e., K′=C); otherwise the reference frame S is designated as the new keyframe K′ (i.e., K′=S).
It is noted that the offset condition in step 231 includes two sub-conditions: (1) translation and (2) rotation. In one exemplary embodiment, offset condition is satisfied when at least one of the sub-conditions is satisfied. In another exemplary embodiment, offset condition is satisfied when both two sub-conditions are satisfied.
According to one aspect of the embodiment, the rotation sub-condition (i.e., Rotation (Rθ)>θ2) is carried out according to both depth R and rotation angle θ. The rationale for considering both depth R and rotation angle θ is that points with the same rotation angle θ but different depths feel or experience different extents of motion. That is, extents of closeness between points with different depths are different.
The system 200 of the embodiment may include a backup frame update unit 24 that is configured to provide a new backup frame B′. In the embodiment, the backup frame update unit 24 may include a storage, such as a buffer, that is configured to temporarily store the current frame as a new backup frame B′ for the next ICP iteration.
Although specific embodiments have been illustrated and described, it will be appreciated by those skilled in the art that various modifications may be made without departing from the scope of the present invention, which is intended to be limited solely by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
6970591 | Lyons | Nov 2005 | B1 |
20070263000 | Krupnik | Nov 2007 | A1 |
20120194644 | Newcombe | Aug 2012 | A1 |
20140085429 | Hebert | Mar 2014 | A1 |
20150035820 | Le | Feb 2015 | A1 |
20150278582 | Petyushko | Oct 2015 | A1 |
20160331278 | Sabiston | Nov 2016 | A1 |
20170094245 | Barakat | Mar 2017 | A1 |
20170278231 | Narasimha | Sep 2017 | A1 |
20180005015 | Hou | Jan 2018 | A1 |
20180082435 | Whelan | Mar 2018 | A1 |
20180139416 | Hirasawa | May 2018 | A1 |
20180198984 | Palma | Jul 2018 | A1 |
20180218513 | Ho | Aug 2018 | A1 |
20180341263 | Rust | Nov 2018 | A1 |
Number | Date | Country | |
---|---|---|---|
20190080190 A1 | Mar 2019 | US |