IP Library › Granted Patent US 10,438,412
Granted Patent B2
US 10,438,412 · App. 15/492,587 · Granted Oct 8, 2019

Techniques to facilitate accurate real and virtual object positioning in displayed scenes

Inventors: Atsunori Moteki (Kawasaki, JP); Nobuyasu Yamaguchi (Kawasaki, JP); Toshiyuki Yoshitake (Kawasaki, JP)
Assignee: FUJITSU LIMITED
G06T19/006G06T7/73G06T15/20G06T19/20G06T2219/2016
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 10,438,412
App. No.
15/492,587
Granted
Oct 8, 2019
Kind
B2
Abstract

A method includes specifying a position of a virtual object based on a position of a map point that is defined in a first map and indicates three-dimensional coordinates of a feature point, correcting the position of the virtual object based on positions of a plurality of map points defined in a second map and a capturing direction of a camera when the first map is changed to the second map that is different from the first map, and controlling a display to display the virtual object, based on the corrected position of the virtual object and an image captured by the camera.

Claims (59)

1. A method executed by a computer, the method comprising:

specifying a position of a virtual object based on a position of a map point that is defined in a first map and indicates three-dimensional coordinates of a feature point;

calculating a center of gravity of a plurality of map defined in a second map;

calculating a first intersection of a capturing direction of a camera and an approximate plane when the first map is changed to the second map, the approximate plane being a plane which passes through the center of gravity of the plurality of map points defined in the second map and is perpendicular to the capturing direction;

correcting the position of the virtual object based on the calculated first intersection; and

controlling a display to display the virtual object, based on the corrected position of the virtual object and an image captured by the camera.

2. The method according to claim 1 , wherein the correcting includes:

correcting the position of the virtual object to a position of the first intersection.

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

determining whether an angle formed by a line normal to the approximate plane and the capturing direction is close to a right angle,

wherein the calculating, the correcting, and the controlling are executed when the angle is not close to a right angle, and

wherein the method includes another calculating a second intersection of the capturing direction and a plane that passes through a center of gravity of the approximate plane and is perpendicular to the approximate plane when the angle formed by a line normal to the approximate plane and the capturing direction is close to a right angle, and

another correcting the position of the virtual object to a position of the second intersection.

4. The method according to claim 1 , wherein

the correcting includes determining whether the position of the virtual object is to be corrected based on an error between a position of a first map point of the first map and a second position of a second map point of the second map, and

the first map point and the second map point are corresponding each other and located around the position of the virtual object.

5. The method according to claim 1 , wherein the correcting includes determining whether the position of the virtual object is to be corrected, based on a density of map points of the first map, which is located around the position of the virtual object.

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

determining a plurality of keyframes from among frames photographed by the camera, the plurality of keyframes including a first keyframe and a second keyframe that follows the first keyframe; and

generating the second map, based on the first keyframe and the second keyframe.

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

determining a plurality of keyframes from among frames photographed by the camera; and

generating the second map, based on the plurality of keyframes, by bundle adjustment.

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

determining a keyframe from among frames photographed by the camera; and

generating the second map by finely adjusting a position of a map point of the first map based on the keyframe and a frame from among the frames which follows the keyframe.

9. A non-transitory computer-readable storage medium storing a program that causes a computer to execute a process, the process comprising:

specifying a position of a virtual object based on a position of a map point that is defined in a first map and indicates three-dimensional coordinates of a feature point;

calculating a center of gravity of a plurality of map points defined in a second map;

calculating a first intersection of a capturing direction of a camera and an approximate plane when the first map is changed to the second map, the approximate plane being a plane which passes through the center of gravity of the plurality of map points defined in the second map and is perpendicular to the capturing direction;

correcting the position of the virtual object based on the calculated first intersection; and

controlling a display to display the virtual object, based on the corrected position of the virtual object and an image captured by the camera.

10. A device comprising:

a memory; and

a processor coupled to the memory and configured to:

specify a position of a virtual object based on a position of a map point that is defined in a first map and indicates three-dimensional coordinates of a feature point,

calculate a center of gravity of a plurality of map points defined in a second map,

calculate a first intersection of a capturing direction of a camera and an approximate plane when the first map is changed to the second map, the approximate plane being a plane which passes through the center of gravity of the plurality of map points defined in the second map and is perpendicular to the capturing direction,

correct the position of the virtual object based on the calculated first intersection, and

control a display to display the virtual object, based on the corrected position of the virtual object and an image captured by the camera.

11. The device according to claim 10 , wherein the correcting includes correcting the position of the virtual object to a position of the first intersection.

12. The device according to claim 11 , wherein the processor is configured to:

determine whether an angle formed by a line normal to the approximate plane and the capturing direction is close to a right angle,

wherein the processor performs the calculating, the correcting, and the controlling steps when the angle is not close to a right angle, and

the processor is further configured to calculate a second intersection of the capturing direction and a plane that passes through a center of gravity of the approximate plane and is perpendicular to the approximate plane when the angle is close to a right angle, and

the processor is further configured to correct the position of the virtual object to a position of the second intersection.

13. The device according to claim 10 , wherein

the processor is configured to determine whether the position of the virtual object is to be corrected based on an error between a position of a first map point of the first map and a second position of a second map point of the second map, and

the first map point and the second map point are corresponding each other and located around the position of the virtual object.

14. The device according to claim 10 , wherein the processor is configured to determine whether the position of the virtual object is to be corrected, based on a density of map points of the first map, which is located around the position of the virtual object.

15. The device according to claim 10 , wherein the processor is configured to:

determine a plurality of keyframes from among frames photographed by the camera, the plurality of keyframes including a first keyframe and a second keyframe that follows the first keyframe, and

generate the second map, based on the first keyframe and the second keyframe.

16. The device according to claim 10 , wherein the processor is configured to:

determine a plurality of keyframes from among frames photographed by the camera, and

generate the second map, based on the plurality of keyframes, by bundle adjustment.

17. The device according to claim 10 , wherein the processor is configured to:

determine a keyframe from among frames photographed by the camera, and

generate the second map by finely adjusting a position of a map point of the first map based on the keyframe and a frame from among the frames which follows the keyframe.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2017
From: MOTEKI, ATSUNORI; YAMAGUCHI, NOBUYASU; YOSHITAKE, TOSHIYUKI
To: FUJITSU LIMITED
Reel/Frame 042082/0835 →
Priority Claims (1)
JP 2016-092066 · Apr 28, 2016 · national
Continuity (1)
Related Publication 20170316612A1 · Nov 2, 2017