Method and tracking system for correcting tracking information
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.
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.