Systems and methods of merging multiple maps for computer vision based tracking
Method, apparatus, and computer program product for merging multiple maps for computer vision based tracking are disclosed. In one embodiment, a method of merging multiple maps for computer vision based tracking comprises receiving a plurality of maps of a scene in a venue from at least one mobile device, identifying multiple keyframes of the plurality of maps of the scene, and merging the multiple keyframes to generate a global map of the scene.
1. A method of merging multiple maps for computer vision based tracking, comprising:
receiving a plurality of maps of a scene in a venue from at least one mobile device;
identifying multiple keyframes of the plurality of maps of the scene; and
merging the multiple keyframes to generate a global map of the scene, wherein merging the multiple keyframes to generate the global map of the scene comprises:
for each keyframe of the multiple keyframes,
determining a contribution score based on angular diversity of the keyframe and scale diversity of the keyframe, and
eliminating the keyframe in response to the contribution score being below a predetermined threshold.
2. The method of claim 1 , wherein receiving a plurality of maps of a scene in a venue comprises:
receiving the plurality of maps of the scene from multiple mobile devices.
3. The method of claim 2 further comprises:
evaluating the multiple keyframes from the plurality of maps of the scene from multiple mobile devices for redundancy; and
eliminating redundant keyframes.
4. The method of claim 2 , further comprising:
generating a simultaneous localization and mapping (SLAM) map using the plurality of maps of the scene from multiple mobile devices; and
sharing the SLAM map among the multiple mobile devices.
5. The method of claim 1 , wherein identifying the multiple keyframes of the plurality of maps of the scene comprises at least one of:
identifying the multiple keyframes representing multiple viewpoints of the scene from multiple angles; and
identifying the multiple keyframes representing multiple viewpoints of the scene with multiple scales;
wherein the multiple keyframes include common features, location coordinates, and appearances of the plurality of maps.
6. The method of claim 5 , wherein multiple scales comprise at least one of:
multiple distances between the at least one mobile device and the scene; and
multiple aspect ratios of the scene from the at least one mobile device.
7. The method of claim 1 , wherein determining a contribution score based on angular diversity and scale diversity of the keyframe comprises:
computing an angular diversity scoring metric by applying a first weight factor to the angular diversity of the keyframe;
computing a scale diversity scoring metric by applying a second weight factor to the scale diversity of the keyframe; and
combining the angular diversity scoring metric and the scale diversity scoring metric to generate the contribution score.
8. The method of claim 1 , wherein merging the multiple keyframes to generate a global map of the scene comprises:
for each keyframe of the multiple keyframes,
determining a contribution score based on angular diversity of the keyframe; and
eliminating the keyframe in response to the contribution score being below a predetermined threshold.
9. The method of claim 1 , wherein merging the multiple keyframes to generate a global map of the scene comprises:
for each keyframe of the multiple keyframes,
determining a contribution score based on scale diversity of the keyframe; and
eliminating the keyframe in response to the contribution score being below a predetermined threshold.
10. The method of claim 1 , wherein merging the multiple keyframes to generate a global map of the scene comprises:
tallying the multiple keyframes in an angular histogram, wherein the angular histogram includes a plurality of bins representing different viewing angles of the scene, and each bin in the plurality of bins includes a plurality of sections representing different viewing scales of the scene;
for each keyframe of the multiple keyframes in the angular histogram,
determining a contribution score based on angular diversity of the keyframe and scale diversity of the keyframe, and
eliminating the keyframe in response to the contribution score being below a predetermined threshold.
11. The method of claim 10 , wherein determining a contribution score based on angular diversity and scale diversity of the keyframe comprises:
computing an angular diversity scoring metric by applying a first weight factor to the angular diversity of the keyframe, wherein the first weight factor is based on number of keyframes in a bin the keyframe is in;
computing a scale diversity scoring metric by applying a second weight factor to the scale diversity of the keyframe, wherein the second weight factor is based on number of keyframes in a section the keyframe is in; and
combining the angular diversity scoring metric and the scale diversity scoring metric to generate the contribution score.
12. The method of claim 1 further comprises:
tracking location of the at least one mobile device in the venue.
13. An apparatus, comprising:
logic configured to receive a plurality of maps of a scene in a venue from at least one mobile device;
logic configured to identify multiple keyframes of the plurality of maps of the scene; and
logic configured to merge the multiple keyframes to generate a global map of the scene, wherein the logic configured to merge the multiple keyframes to generate the global map of the scene comprises:
for each keyframe of the multiple keyframes,
logic configured to determine a contribution score based on angular diversity of the keyframe and scale diversity of the keyframe, and
logic configured to eliminate the keyframe in response to the contribution score being below a predetermined threshold.
14. The apparatus of claim 13 , wherein logic configured to receive a plurality of maps of a scene in a venue comprises:
logic configured to receive the plurality of maps of the scene from multiple mobile devices.
15. The apparatus of claim 14 further comprises:
logic configured to evaluate the multiple keyframes from the plurality of maps of the scene from multiple mobile devices for redundancy; and
logic configured to eliminate redundant keyframes.
16. The apparatus of claim 14 , further comprising:
logic configured to generate a simultaneous localization and mapping (SLAM) map using the plurality of maps of the scene from multiple mobile devices; and
logic configured to share the SLAM map among the multiple mobile devices.
17. The apparatus of claim 13 , wherein logic configured to identify the multiple keyframes of the plurality of maps of the scene comprises at least one of:
logic configured to identify the multiple keyframes representing multiple viewpoints of the scene from multiple angles; and
logic configured to identify the multiple keyframes representing multiple viewpoints of the scene with multiple scales;
wherein the multiple keyframes include common features, location coordinates, and appearances of the plurality of maps.
18. The apparatus of claim 17 , wherein multiple scales comprise at least one of:
multiple distances between the at least one mobile device and the scene; and
multiple aspect ratios of the scene from the at least one mobile device.
19. The apparatus of claim 13 , wherein logic configured to determine a contribution score based on angular diversity and scale diversity of the keyframe comprises:
logic configured to compute an angular diversity scoring metric by applying a first weight factor to the angular diversity of the keyframe;
logic configured to compute a scale diversity scoring metric by applying a second weight factor to the scale diversity of the keyframe; and
logic configured to combine the angular diversity scoring metric and the scale diversity scoring metric to generate the contribution score.
20. The apparatus of claim 13 , wherein logic configured to merge the multiple keyframes to generate a global map of the scene comprises:
for each keyframe of the multiple keyframes,
logic configured to determine a contribution score based on angular diversity of the keyframe; and
logic configured to eliminate the keyframe in response to the contribution score being below a predetermined threshold.
21. The apparatus of claim 13 , wherein logic configured to merge the multiple keyframes to generate a global map of the scene comprises:
for each keyframe of the multiple keyframes,
logic configured to determine a contribution score based on scale diversity of the keyframe; and
logic configured to eliminate the keyframe in response to the contribution score being below a predetermined threshold.
22. The apparatus of claim 13 , wherein logic configured to merge the multiple keyframes to generate a global map of the scene comprises:
logic configured to tally the multiple keyframes in an angular histogram, wherein the angular histogram includes a plurality of bins representing different viewing angles of the scene, and each bin in the plurality of bins includes a plurality of sections representing different viewing scales of the scene;
for each keyframe of the multiple keyframes in the angular histogram,
logic configured to determine a contribution score based on angular diversity of the keyframe and scale diversity of the keyframe, and
logic configured to eliminate the keyframe in response to the contribution score being below a predetermined threshold.
23. The apparatus of claim 22 , wherein logic configured to determine a contribution score based on angular diversity and scale diversity of the keyframe comprises:
logic configured to compute an angular diversity scoring metric by applying a first weight factor to the angular diversity of the keyframe, wherein the first weight factor is based on number of keyframes in a bin the keyframe is in;
logic configured to compute a scale diversity scoring metric by applying a second weight factor to the scale diversity of the keyframe, wherein the second weight factor is based on number of keyframes in a section the keyframe is in; and
logic configured to combine the angular diversity scoring metric and the scale diversity scoring metric to generate the contribution score.
24. The apparatus of claim 13 further comprises:
logic configured to track location of the at least one mobile device in the venue.
25. A computer program product comprising a non-transitory medium storing instructions for execution by one or more computer systems, the instructions comprising:
instructions for receiving a plurality of maps of a scene in a venue from at least one mobile device;
instructions for identifying multiple keyframes of the plurality of maps of the scene; and
instructions for merging the multiple keyframes to generate a global map of the scene, wherein the instructions for merging the multiple keyframes to generate the global map of the scene comprises:
for each keyframe of the multiple keyframes,
instructions for determining a contribution score based on angular diversity of the keyframe and scale diversity of the keyframe, and
instructions for eliminating the keyframe in response to the contribution score being below a predetermined threshold.
26. The computer program product of claim 25 , wherein instructions for receiving a plurality of maps of a scene in a venue comprises:
instructions for receiving the plurality of maps of the scene from multiple mobile devices.
27. The computer program product of claim 26 further comprises:
instructions for evaluating the multiple keyframes from the plurality of maps of the scene from multiple mobile devices for redundancy; and
instructions for eliminating redundant keyframes.
28. The computer program product of claim 26 further comprising:
instructions for generating a simultaneous localization and mapping (SLAM) map using the plurality of maps of the scene from multiple mobile devices; and
instructions for sharing the SLAM map among the multiple mobile devices.
29. The computer program product of claim 25 , wherein instructions for identifying the multiple keyframes of the plurality of maps of the scene comprises at least one of:
instructions for identifying the multiple keyframes representing multiple viewpoints of the scene from multiple angles; and
instructions for identifying the multiple keyframes representing multiple viewpoints of the scene with multiple scales;
wherein the multiple keyframes include common features, location coordinates, and appearances of the plurality of maps.
30. The computer program product of claim 25 , wherein multiple scales comprise at least one of:
multiple distances between the at least one mobile device and the scene; and
multiple aspect ratios of the scene from the at least one mobile device.
31. The computer program product of claim 25 , wherein instructions for determining a contribution score based on angular diversity and scale diversity of the keyframe comprises:
instructions for computing an angular diversity scoring metric by applying a first weight factor to the angular diversity of the keyframe;
instructions for computing a scale diversity scoring metric by applying a second weight factor to the scale diversity of the keyframe; and
instructions for combining the angular diversity scoring metric and the scale diversity scoring metric to generate the contribution score.
32. The computer program product of claim 25 further comprises:
instructions for tracking location of the at least one mobile device in the venue.
33. A system, comprising:
means for receiving a plurality of maps of a scene in a venue from at least one mobile device;
means for identifying multiple keyframes of the plurality of maps of the scene; and
means for merging the multiple keyframes to generate a global map of the scene, wherein the means for merging the multiple keyframes to generate the global map of the scene comprises:
for each keyframe of the multiple keyframes,
means for determining a contribution score based on angular diversity of the keyframe and scale diversity of the keyframe, and
means for eliminating the keyframe in response to the contribution score being below a predetermined threshold.