US 12,230,042 B2
Method and system for implementing adaptive feature detection for vSLAM systems
Kevin Chen, Palo Alto, CA (US)
Assigned to GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD., Guangdong (CN)
Filed by GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD., Guangdong (CN)
Filed on Sep. 8, 2022, as Appl. No. 17/940,455.
Application 17/940,455 is a continuation of application No. PCT/CN2021/076064, filed on Feb. 8, 2021.
Claims priority of provisional application 62/987,028, filed on Mar. 9, 2020.
Prior Publication US 2023/0005172 A1, Jan. 5, 2023
Int. Cl. G06T 7/579 (2017.01); G06T 7/246 (2017.01); G06V 10/44 (2022.01); G06V 10/74 (2022.01); G06V 20/20 (2022.01); G06V 20/64 (2022.01)
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
OG exemplary drawing
 
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.