IP Library Granted Patent US 12669863
Granted Patent B1
US 12669863 · App. 19/004,452 · Granted Jun 30, 2026

Method and tracking system for correcting tracking information

Inventors: Yu-Ming Chen (Taoyuan City, TW); Wen-Shan Yang (Taoyuan City, TW); Sheng-Hui Tao (Taoyuan City, TW)
Assignee: HTC Corporation
G06F3/011
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12669863
App. No.
19/004,452
Granted
Jun 30, 2026
Kind
B1
Abstract

Provided are a method for correcting tracking information and a tracking system. The method includes: during a tracking information correction process, obtaining, by a host, multiple host keyframes collected by the host within a first time interval; obtaining, by a tracker, multiple tracker keyframes and multiple tracker map points collected by the tracker within the first time interval; and correcting, by the host or tracker, the tracker keyframes and the tracker map points at least based on the host keyframes.

Claims (61)

1 . A method for correcting tracking information, comprising:

during a tracking information correction process, obtaining, by a host, a plurality of host keyframes collected by the host within a first time interval, wherein the plurality of host keyframes are obtained when a pose of camera of the host changes;

obtaining, by a tracker, a plurality of tracker keyframes and a plurality of tracker map points collected by the tracker within the first time interval, wherein the plurality of tracker keyframes are obtained when a pose of camera of the tracker changes; and

correcting, by the host or the tracker, the tracker keyframes and the tracker map points at least based on the host keyframes.

2 . The method according to claim 1 , further comprising:

obtaining, by the host, a tracker rotation and a tracker translation of the tracker, and obtaining a host rotation of the host;

estimating, by the host, a movement range based on the host rotation, the tracker rotation, and a plurality of reference lengths;

in response to determining that the tracker translation is not within the movement range, determining, by the host, that the tracking information correction process needs to be executed; and

in response to determining that the tracker translation is within the movement range, determining, by the host, that the tracking information correction process does not need to be executed.

3 . The method according to claim 2 , wherein the host is disposed at a first position on a subject, the tracker is disposed at a second position on the subject, a plurality of moving sections are connected between the first position and the second position, and the reference lengths are lengths of the moving sections respectively, and estimating the movement range based on the host rotation, the tracker rotation, and the reference lengths comprises:

executing an inverse kinematics algorithm based on the host rotation, the tracker rotation, and the reference lengths to estimate the movement range.

4 . The method according to claim 1 , wherein the host is disposed at a first position on a subject, the tracker is disposed at a second position on the subject, and the method further comprises:

during the tracking information correction process, requesting the subject to execute a specific action while maintaining a distance between the first position and the second position; and

using a time interval during which the subject executes the specific action as the first time interval.

5 . The method according to claim 4 , wherein correcting, by the host or the tracker, the tracker keyframes and the tracker map points at least based on the host keyframes comprises:

determining, by the host, a plurality of first host poses based on the host keyframes;

determining, by the host, a plurality of first tracker translations based on the tracker keyframes, wherein the first host poses correspond to the first tracker translations respectively;

estimating, by the host or the tracker, a reference scale based on the first host poses and the corresponding first tracker translations;

correcting, by the tracker, the tracker keyframes into a plurality of corrected keyframes based on the reference scale; and

correcting, by the tracker, the tracker map points based on the corrected keyframes.

6 . The method according to claim 5 , wherein correcting the tracker map points based on the corrected keyframes comprises:

executing, by the tracker, a bundle adjustment based on the corrected keyframes to correct the tracker map points.

7 . The method according to claim 1 , wherein correcting, by the host or the tracker, the tracker keyframes and the tracker map points at least based on the host keyframes comprises:

obtaining, by the host, a plurality of host keyframes and a plurality of host map points collected by the host within the first time interval; and

receiving, by the tracker, the host keyframes and the host map points from the host, and correcting the tracker keyframes and the tracker map points according to the host keyframes and the host map points.

8 . The method according to claim 7 , wherein correcting, by the host or the tracker, the tracker keyframes and the tracker map points at least based on the host keyframes comprises:

executing, by the tracker, a bundle adjustment according to the host keyframes and the host map points to correct the tracker keyframes and the tracker map points.

9 . The method according to claim 1 , further comprising:

tracking, by the tracker, a tracker pose of the tracker based on the corrected tracker keyframes and the corrected tracker map points.

10 . The method according to claim 1 , wherein the tracking information correction process is manually triggered.

11 . A tracking system, comprising:

a host; and

a tracker, connected to the host, wherein:

during a tracking information correction process, the host obtains a plurality of host keyframes collected by the host within a first time interval, wherein the plurality of host keyframes are obtained when a pose of camera of the host changes;

the tracker obtains a plurality of tracker keyframes and a plurality of tracker map points collected by the tracker within the first time interval, wherein the plurality of tracker keyframes are obtained when a pose of camera of the tracker changes; and

the host or the tracker corrects the tracker keyframes and the tracker map points at least based on the host keyframes.

12 . The tracking system according to claim 11 , wherein:

the host obtains a tracker rotation and a tracker translation of the tracker, and obtains a host rotation and a host translation of the host;

the host estimates a movement range based on the host rotation, the host translation, the tracker rotation, and a plurality of reference lengths;

in response to determining that the tracker translation is not within the movement range, the host determines that the tracking information correction process needs to be executed; and

in response to determining that the tracker translation is within the movement range, the host determines that the tracking information correction process does not need to be executed.

13 . The tracking system according to claim 12 , wherein the host is disposed at a first position on a subject, the tracker is disposed at a second position on the subject, a plurality of moving sections are connected between the first position and the second position, and the reference lengths are lengths of the moving sections respectively, and the host is configured to execute:

executing an inverse kinematics algorithm based on the host rotation, the tracker rotation, and the reference lengths to estimate the movement range.

14 . The tracking system according to claim 11 , wherein the host is disposed at a first position on a subject, and the tracker is disposed at a second position on the subject, wherein:

during the tracking information correction process, the host requests the subject to execute a specific action while maintaining a distance between the first position and the second position; and

the host and the tracker use a time interval during which the subject executes the specific action as the first time interval.

15 . The tracking system according to claim 14 , wherein:

the host determines a plurality of first host poses based on the host keyframes;

the host determines a plurality of first tracker translations based on the tracker keyframes, wherein the first host poses correspond to the first tracker translations respectively;

the host or the tracker estimates a reference scale based on the first host poses and the corresponding first tracker translations;

the tracker corrects the tracker keyframes into a plurality of corrected keyframes based on the reference scale; and

the tracker corrects the tracker map points based on the corrected keyframes.

16 . The tracking system according to claim 15 , wherein the tracker executes a bundle adjustment based on the corrected keyframes to correct the tracker map points.

17 . The tracking system according to claim 11 , wherein:

the host obtains a plurality of host keyframes and a plurality of host map points collected by the host within the first time interval; and

the tracker receives the host keyframes and the host map points from the host, and corrects the tracker keyframes and the tracker map points according to the host keyframes and the host map points.

18 . The tracking system according to claim 17 , wherein:

the tracker executes a bundle adjustment according to the host keyframes and the host map points to correct the tracker keyframes and the tracker map points.

19 . The tracking system according to claim 11 , wherein the tracker is further configured to execute:

tracking a tracker pose of the tracker based on the corrected tracker keyframes and the corrected tracker map points.

20 . The tracking system according to claim 11 , wherein the tracking information correction process is manually triggered.