| CPC G06V 20/64 (2022.01) [G06T 7/246 (2017.01); G06T 7/579 (2017.01); G06V 10/44 (2022.01); G06V 10/443 (2022.01); G06V 10/761 (2022.01); G06V 20/20 (2022.01); G06T 2207/20016 (2013.01)] | 20 Claims |

|
1. A method implemented by a computer system, the method comprising:
receiving a first image by a visual simultaneous localization and mapping (vSLAM) unit, the first image being generated by an optical sensor in communication with the computer system;
receiving a motion dataset generated by an inertial measurement unit in communication with the vSLAM unit;
determining a motion level by the vSLAM unit using a motion monitor;
determining an initialization state by the vSLAM unit using an initializer;
determining a tracking level by the vSLAM unit using a tracking performance monitor; and
in a first condition, using a detection strategy processor of the vSLAM unit:
generating a first image pyramid;
detecting a plurality of features in the first image pyramid using a first detector threshold; and
generating a first set of detected keypoints from the plurality of features at least in part by keypoint fusion and selection;
in a second condition, using a detection strategy processor of the vSLAM unit:
generating a second image pyramid;
detecting the plurality of features in the second image pyramid using a second detector threshold, the second detector threshold being less restrictive than the first detector threshold; and
generating a second set of detected keypoints at least in part by keypoint fusion and selection; and
in a third condition, using a detection strategy processor of the vSLAM unit:
detecting the plurality of features in the first image according to the first detector threshold; and
generating a third set of detected keypoints.
|
|
17. One or more non-transitory computer-storage media storing instructions that, upon execution on a computer system, cause the computer system to perform operations comprising:
receiving a first image by a visual simultaneous localization and mapping (vSLAM) unit, the first image being generated by an optical sensor in communication with the computer system;
receiving a motion dataset generated by an inertial measurement unit in communication with the vSLAM unit;
determining a motion level by the vSLAM unit using a motion monitor;
determining an initialization state by the vSLAM unit using an initializer;
determining a tracking level by the vSLAM unit using a tracking performance monitor; and
in a first condition, using a detection strategy processor of the vSLAM unit:
generating a first image pyramid;
detecting a plurality of features in the first image pyramid using a first detector threshold; and
generating a first set of detected keypoints from the plurality of features at least in part by keypoint fusion and selection;
in a second condition, using a detection strategy processor of the vSLAM unit:
generating a second image pyramid;
detecting the plurality of features in the second image pyramid using a second detector threshold, the second detector threshold being less restrictive than the first detector threshold; and
generating a second set of detected keypoints at least in part by keypoint fusion and selection; and
in a third condition, using a detection strategy processor of the vSLAM unit:
detecting the plurality of features in the first image according to the first detector threshold; and
generating a third set of detected keypoints,
wherein:
the first condition is a determination that the initialization state is true and the motion level is true or the initialization state is false;
the second condition is a determination that the initialization state is true, the motion level is false, and the tracking level is false; and
the third condition is a determination that the initialization state is true, the motion level is false, and the tracking level is true.
|