Methods and systems for mobile-agent navigation
First Claim
1. A method for estimating motion, said method comprising:
- performing feature detection on a current image frame to identify a plurality of regions in said current image frame, wherein each region in said plurality of regions is associated with a key point in an image coordinate frame;
computing a feature descriptor for each region in said plurality of regions, thereby producing a plurality of feature descriptors for said current image frame;
performing feature matching between said plurality of feature descriptors for said current image frame and a plurality of feature descriptors computed for a key image frame, thereby producing a plurality of feature correspondences; and
when a number of feature correspondences in said plurality of feature correspondences meets a sufficiency criterion;
for each feature correspondence in said plurality of feature correspondences, computing a distance between said corresponding features; and
when said plurality of distances meet a first criterion;
for each feature correspondence in said plurality of feature correspondences, projecting said associated key points from said image coordinate frames to a world coordinate frame, thereby producing a plurality of pairs of world coordinates;
computing a motion estimate from said plurality of pairs of world coordinates;
generating a current camera pose in a global coordinate frame;
determining a motion trajectory from said current camera pose; and
updating said plurality of feature descriptors computed for said key image frame to said plurality of feature descriptors for said current image frame.
2 Assignments
0 Petitions
Accused Products
Abstract
Feature detection may be performed on an image. After feature descriptors for each detected feature are computed, feature matching between feature descriptors for the current image and for a key image frame is performed. If a sufficient number of good matches are identified, key points associated with the feature correspondences may be projected from image coordinates to world coordinates. A distance, in the world coordinate frame, between each feature correspondence may he computed. When the computed distances indicate sufficient movement of the mobile agent to ensure accurate motion estimation, a motion estimate may he computed from the pairs of world coordinates associated with the feature correspondences. A current camera pose in a global coordinate frame may be generated. A motion trajectory may then be determined and feature descriptors for the key image may be updated to the feature descriptors for the current image frame.
-
Citations
20 Claims
-
1. A method for estimating motion, said method comprising:
-
performing feature detection on a current image frame to identify a plurality of regions in said current image frame, wherein each region in said plurality of regions is associated with a key point in an image coordinate frame; computing a feature descriptor for each region in said plurality of regions, thereby producing a plurality of feature descriptors for said current image frame; performing feature matching between said plurality of feature descriptors for said current image frame and a plurality of feature descriptors computed for a key image frame, thereby producing a plurality of feature correspondences; and when a number of feature correspondences in said plurality of feature correspondences meets a sufficiency criterion; for each feature correspondence in said plurality of feature correspondences, computing a distance between said corresponding features; and when said plurality of distances meet a first criterion; for each feature correspondence in said plurality of feature correspondences, projecting said associated key points from said image coordinate frames to a world coordinate frame, thereby producing a plurality of pairs of world coordinates; computing a motion estimate from said plurality of pairs of world coordinates; generating a current camera pose in a global coordinate frame; determining a motion trajectory from said current camera pose; and updating said plurality of feature descriptors computed for said key image frame to said plurality of feature descriptors for said current image frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A mobile agent comprising:
-
a rigidly mounted camera; a processor component; and a non-transitory computer-readable medium encoded with a computer program code for causing said processor component to execute a method for estimating motion, said method comprising; performing feature detection on a current image frame to identify a plurality of regions in said current image frame, wherein each region in said plurality of regions is associated with a key point in an image coordinate frame; computing a feature descriptor for each region in said plurality of regions, thereby producing a plurality of feature descriptors for said current image frame; performing feature matching between said plurality of feature descriptors for said current image frame and a plurality of feature descriptors computed for a key image frame, thereby producing a plurality of feature correspondences; and when there are a sufficient number of feature correspondences in said plurality of feature correspondences; for each feature correspondence in said plurality of feature correspondences, computing a distancing between said corresponding features; and when said plurality of distances meet a first criterion; for each feature correspondence in said plurality of feature correspondences, projecting said associated key points from said image coordinate frames to a world coordinate frame, thereby producing a plurality of pairs of world coordinates; computing a motion estimate from said plurality of pairs of world coordinates; generating a current camera pose in a global coordinate frame; determining a motion trajectory from said current camera pose; and updating said plurality of feature descriptors computed for said key image frame to said plurality of feature descriptors for said current image frame. - View Dependent Claims (14, 15)
-
-
16. A non-transitory computer-readable medium encoded with a computer program code for causing a processor to execute a method for adding a waypoint to an ordered plurality of waypoints, said method comprising:
-
receiving a new waypoint; adding said new waypoint to a terminal end of an ordered plurality of waypoints associated with a mobile-agent path; determining if a mobile agent is running; and when said mobile agent is not running; updating a target waypoint to said new waypoint; and driving toward said target waypoint.
-
-
17. A non-transitory computer-readable medium encoded with a computer program code for causing a processor to correct for drift, said method comprising:
-
computing a current position and a current heading of a mobile agent; determining if said mobile agent is close to a target waypoint; and when said mobile agent is determined to be close to said target waypoint; determining if said target waypoint is associated with a machine-readable code; and when said target waypoint is determined to be associated with a machine-readable code; identifying said machine-readable code; computing a position of said mobile agent relative to said machine-readable code; determining an actual position and an actual heading of said mobile agent based on said position of said mobile agent relative to said two-dimensional machine-readable code; updating said current position to said actual position; and updating said current heading to said actual heading. - View Dependent Claims (18)
-
-
19. A non-transitory computer-readable medium encoded with a computer program code for causing a processor to optimize a camera parameter, said method comprising:
-
receiving a plurality of camera parameter values; causing a mobile agent to traverse a known path from a known starting point to a known ending point; recording a plurality of image frames while said mobile agent traverses said known path; estimating an endpoint of said mobile agent using said plurality of image frames and said plurality of camera parameter values; computing a difference between said known ending point and said endpoint; and when said difference meets a first criterion; optimizing said camera parameters thereby producing a plurality of optimized camera parameter values; and replacing said plurality of camera parameter values with said plurality of optimized camera parameter values. - View Dependent Claims (20)
-
Specification