The present invention pertains to the field of augmented reality.
Augmented reality (hereinafter also AR) technology shows a user a virtual object as overlaid on an image of the real world.
In order to realize augmented reality that is perceived with minimal discomfort for the user, an appropriate type of virtual object must be displayed at an appropriate position, in consideration of the real world image.
Relatedly, in Non-Patent Literature 1, a head mounted display (hereinafter, HMD) incorporating a camera is used as a display device, and employs the position and unique pattern of marker captured by the camera to handle the virtual objects to be displayed by the HMD.
Japanese Patent No. 3993423
Kato et al. “An Augmented Reality System and its Calibration based on Marker Tracking”, Journal of the Virtual Reality Society of Japan, Vol. 4, No. 4, pp. 607-616, 1999
The inventor considers a situation where a virtual object is displayed according to a page of a book being read by a user wearing an HMD. The user experience can be made more dynamic by, for example, displaying a character as a virtual object over the background printed on a page of children's book.
Yet, the page to which the book is open is frequently curved while the user is reading. Thus, the virtual object should be displayed in consideration of this real world curve, so as to minimize user discomfort.
In consideration of this problem, the present invention is intended to display a virtual object overlaid on a captured image of a page in a book (an image of the real world), adjusted as appropriate for the degree of curvature of the page.
A display processing device pertaining to the present invention is provided for displaying a virtual object upon overlay on a captured image of a real world environment, and comprises: an acquisition unit acquiring a captured image of a page in a book; an extraction unit extracting one or more marker images from the captured image so acquired; a creation unit creating a curved plane according to the marker images, the curved plane representing a degree of curvature for the page; and a display processing unit modifying a virtual object according to the curved plane and overlaying the virtual object so modified on the captured image for display.
The display processing device pertaining to the present invention enables a virtual object to be displayed in a form appropriate to the degree of curvature of the page.
Embodiments of the present invention are described below, with reference to the accompanying drawings.
Configuration
As shown, the reading system 1 includes a book 10 and an HMD 20 worn by a user.
The HMD 20 generates an image of two pages (images of the real world) to which the book 10 is open, and enhances or complements the content of the book 10 by overlaying a virtual object thereon, according to the current page.
In order to avoid user discomfort when viewing the overlay display, the virtual object is preferably displayed as if it truly existed on the paper page.
However, the paper pages of the book 10 are prone to curving. Thus, when the virtual object is displayed as if pasted along a flat plane, the user may feel discomfort if the virtual object appears to be shifted either length-wise or depth-wise with respect to the page.
As such, the reading system 1 of the present invention creates a curved plane corresponding to the curvature of the actual page, then proceeds to overlay the virtual object in a shape appropriate to the created curved plane.
Within the book 10, the portions of the pages in contact with the spine are termed a gutter 15, and the other three sides are termed edges 16a through 16c (indicated by double-dashed chain lines in
Marker 2L is described below with reference to
Marker 2L includes locator symbols 2a through 2d arranged at the four corners thereof, with the remaining space being filled by a black and white pattern. Each locator symbol 2a through 2d has black (b) and white (w) portions in a length ratio such that b:w:b:w:b=1:1:3:1:1. This ratio is used to detect the size and position of marker 2L.
Marker 2L thus resembles a quick Response (hereinafter, QR) code, which is a type of two-dimensional code. However, QR codes have locator symbols in only three corners, whereas marker 2L has locator symbols in all four corners and thus differs from a QR code.
Further, like a QR code, the black and white pattern of marker 2L can be used to encode up to a few kilobytes of information. The information encoded in markers 2L and 2R is hereinafter termed internal marker information.
As shown in
The HMD 20 includes a camera 22, an acquisition unit 23, a marker extraction unit 24, a coordinate information storage unit 26, a marker reading unit 28, an internal information storage unit 30, a virtual object acquisition unit 32, a curve calculation unit 38, a curved plane creation unit 40, a curved plane information storage unit 42, a display engine 44, and a display 46.
The camera 22 generates an image by capturing a subject. For example, a multi-megapixel CMOS (Complementary Metal Oxide Semiconductor) camera may be attached to the HMD 20 casing, and oriented to match the line of sight of the user wearing the HMD 20.
The acquisition unit 23 acquires the image captured by the camera 22.
The marker extraction unit 24 extracts a marker image area by detecting locator symbols 2a through 2d in the image acquired by the acquisition unit 23.
In the present description, a distinction is made between markers actually printed on a page, simply called markers, and markers extracted from a captured image, called marker images.
Coordinate information indicating the coordinates of the marker image area so extracted are then stored in the coordinate information storage unit 26.
The marker reading unit 28 reads the internal marker information from the marker image area extracted by the marker extraction unit 24, then stores the information so read in the internal information storage unit 30. This reading may be performed using methods employed with QR codes.
The virtual object acquisition unit 32 includes a virtual object specification unit 34 and a virtual object storage unit 36.
The virtual object storage unit 36 stores a plurality of virtual objects in association with page numbers.
The virtual object specification unit 34 specifies a virtual object associated with a page number among the plurality of virtual objects stored in the virtual object storage unit 36 according to a page number in the internal information stored in the internal information storage unit 30.
For example, when, as shown in
The curve calculation unit 38 calculates a curve indicating the curvature of the page to which the book 10 is open, as captured by the camera 22. The calculation is made according to the coordinate information stored in the coordinate information storage unit 26 and the internal information stored in the internal information storage unit 30.
The curved plane creation unit 40 calculates a curved plane according to the curve calculated by the curve calculation unit 38, for storage in the curved plane information storage unit 42.
The display engine 44 modifies (reworks) the virtual object specified by the virtual object specification unit 34 for the curved plane stored in the curved plane information storage unit 42 and displays the modified virtual object as an overlay on the display 46.
(Operations)
The following describes the overlay display operations of the HMD 20 with reference to
First, the acquisition unit 23 acquires an image of the two pages to which the book 10 is open, as captured by the camera 22 (S51 in
Next, the marker extraction unit 24 extracts (crops out) marker images in the areas corresponding to markers 2L and 2R in the captured image, and stores coordinate information for the extracted marker images in the coordinate information storage unit 26 (S52).
The marker reading unit 28 reads the internal marker information corresponding to the areas of marker images 12L and 12R extracted by the marker extraction unit 24 and stores the internal marker information so read in the internal information storage unit 30 (S53).
Then, the virtual object specification unit 34 specifies any virtual objects among those stored in the virtual object storage unit 36 to be used for overlay display (S54).
The process then proceeds with curved plane calculation, described using
Before describing the process using
The coordinate information extracted from the image captured by the camera 22 is expressed in terms of screen coordinate system. However, these must be converted into real world coordinate system in order to calculate the curvature of the page in the real world.
As such, in the present Embodiment, the coordinates in the screen coordinate system are converted into the camera coordinate system, then further converted into the real world coordinate system.
The former conversion, i.e., from the screen coordinate system to the camera coordinate system, is made using the method described in Non-Patent Literature 1, for example.
The later conversion, i.e., from the camera coordinate system to the real world coordinate system, is made in two steps. First the HMD 20 estimates the three-dimensional coordinates of the marker using a marker of known size (see Non-Patent Literature 1 for estimation method details). Then, a matrix calculation can be performed to accomplish the coordinate conversion, based on the estimated three-dimensional coordinates.
The process described by
The curve calculation unit 38 calculates coordinates for the two marker images 12L, and 12R (of markers 2L and 2R) in the real world coordinate system, according to the coordinate information in the coordinate information storage unit 26 and the internal marker information in the internal information storage unit 30 (S61). Specifically, as shown in section (a) of
Next, the curve calculation unit 38 calculates vectors from the edges of the marker images 12L and 12R (S62). As shown in section (b) of
Next, the curve calculation unit 38 calculates a point at which extensions of the vector along the lower edge of marker image 12L and the vector along the lower edge of marker image 12R intersect (S63). As shown in section (c) of
When the two vectors have a distorted positional relationship, the above method may not be applicable. In such circumstances, the (Xb, Yb) components of point 130 are taken as point A, at which the (Xb, Yb) components of the two vectors 125L and 125R intersect. Also component Zb of intersection 130 may be calculated by:
then computing the midpoint between points B and C ((B+C)/2).
Next, the curve calculation unit 38 sets a first neighbouring point 131 and a second neighbouring point 132 on either side of point 130 (S64,
Next, the curve calculation unit 38 computes three curves, namely:
Calculating these curves enables calculation of a spline joining five points, namely the two vertices 121L and 121R on the lower left, the center point 130, and the two vertices 122R and 121R on the lower right, which is then used to compute curve 140. Similarly, curves 141 and 142 are computed by replacing the center point with the appropriate one of the first neighbouring point 131 and the second neighbouring point 132.
Once the three curves have been calculated, the curve calculation unit 38 establishes one of the curves as most closely approximating the inter-marker distance computed from the internal marker information (S66).
As described with reference to
Subsequently, the curved plane creation unit 40 calculates a curve 151 by shifting the established curve 141 away from point 130 along the sum vector (oriented toward the top of the page), which is the sum of vectors 126L and 126R (S67,
Next, the curved plane creation unit 40 creates a curved plane that includes the unshifted curve 141 and the shifted curve 151 (S68).
Specifically, as shown in section (g) of
The curved plane creation unit 40 then similarly creates small curved plane 172, which includes points 122L, 143, 162L, and 163, and further proceeds to create small curved planes 173 through 175. The curved plane creation unit 40 then connects the small curved planes 171 through 175 so created into curved plane 170 (
While the example of
When the curved plane calculation process (S55 in
The virtual object 180 is distorted by texture mapping the virtual object 180 onto the curved plane 170.
The virtual object 180, indicated as a set of a sun and star displayed by the HMD 20, are distorted to match the curved plane 170. Thus, the user sees the sun and star as if actually drawn on the page to which the user has opened the book 10.
This also prevents the image from being perceived as unnatural, such as by preventing the virtual object 180 from appearing shifted lengthwise with respect to the page, and preventing the virtual object 180 from appearing shifted depthwise so as to float above or be sunk into the page.
As described above, according to the present Embodiment, two markers printed on the page are used to calculate a curved plane corresponding to the curvature of the page. The curved plane calculation can be performed without requiring a large number of markers, and the processing is relatively light. As such, the present Embodiment is well-suited to HMD applications.
In Embodiment 2, a present location marker is displayed as a virtual object overlaid on an image of a book in which a map is drawn. The basic configuration is similar to that of Embodiment 1. Thus, the following explanation centers on the points of difference.
The internal marker information is similar to that described using
A position information reception unit 50 receives position information from an ordinary GPS (Global Positioning System) unit via a GPS antenna 51.
The display engine 44 distorts a current position marker stored in the virtual object storage unit 36 to conform to a curved plane stored in the curved plane information storage unit 42.
The internal information storage unit 30 also establishes the coordinate system of the aforementioned curved plane according to the position information in the internal marker information stored in the internal information storage unit 30, and makes an overlay display of the current position mark indicated by the position information reception unit 50.
As indicated by the virtual image in
The display engine 44 then distorts the current position mark 200 to conform to the curved plane 190 and arranges the distorted mark at the position (34.74, 135.55) indicated by the position information reception unit 50.
The overlay display illustrated in
According to Embodiment 2, a user viewing a paper book on which a map is printed can be made more convenient through the display of overlay information indicating the current position. Also, this overlay display can be used without recourse to network communications.
Also, the mark 200 is distorted to conform to the curved plane 190 and displayed as an overlay thereon. As such, the mark is prevented from appearing shifted lengthwise with respect to the page. Specifically, when the map includes narrow passages and the like, preventing such shifts enables the current position to be more accurately displayed.
The overlay display described above must be performed in real time, yet the processing power of an HMD often lags behind that of a typical PC.
Embodiment 3 lightens the processing load for internal marker information reading (see
As shown in
Real time overlay display involves the camera 22 capturing images at, for example, 60 fps, yet the marker coordinates hardly change between marker images. This approach to processing in this way enables reduction of the internal marker information reading processing load.
Also, as shown in
(Supplement 1)
While the Embodiments are described above in terms of examples, the present invention is not limited as such. Numerous variations are also applicable to the realization of the same aim or of related aims, such as the following.
In the Embodiments, as shown in section (d) of
Also, although
In the Embodiments, as shown in section (e) of
Bezier curves, Bezier spline curves (e.g., a spline curve obtained by generating a Bezier curve for each segment, and then connecting the Bezier curves so generated) and the like may also be employed.
Also, in order to reduce the time needed to calculate the distance between curves, a broken line drawn by connecting the five points used in the spline calculation (e.g., points 121L, 122L, 130, 122R, and 121R) may instead be used.
In the Embodiments, the book 10 is described as having pages made of paper. However, no limitation is intended. Any flexible display material capable of curving may be used.
In the Embodiments, the virtual object to be displayed by the HMD 20 is stored in the virtual object storage unit 36. However, the virtual object need not be stored and may instead be acquired from an external source.
For example, the internal marker information for a marker may include a URL (Uniform Resource Locator) as part of the information identifying the virtual object. The HMD 20 may then acquire the virtual object from the locator indicated by the URL via a network.
Furthermore, the virtual object is not limited to a flat (i.e., two-dimensional) image, but may also be a stereoscopic (i.e., three-dimensional) image.
For example, when a moving character is being displayed as a stereoscopic image on a curved plane, the curved plane created by the curved plane creation unit 40 may be used for collision determination, and a friction coefficient may be set therefor.
In the Embodiments, the HMD 20 includes a camera 22. However, the camera is not strictly necessary, and an HMD with no camera may also be used. In such circumstances, the HMD may, for example, be connected to an external camera through a communication cable and acquire images captured by the camera through the acquisition unit.
In the Embodiments, the curves, once calculated, are used to create a curved plane. However, no limitation is intended. The curved plane may also be calculated using a method that does not involve curves.
A control program made up of program code for causing the processors of an information processing device, or of circuits connected to the processor, to execute the operations and so on discussed in the above-described Embodiments may be recorded on a recording medium or circulated and distributed through various communication channels.
The recording medium may be an IC card, a hard disk, an optical disc, a floppy disc, ROM, or any other non-transitory recording medium.
The control program so circulated and distributed is supplied on memory readable by the processor. The various functions described in the Embodiments are realized through the processor executing the control program.
The functional blocks indicated in the drawings may be realized as an LSI integrated circuit. Each functional block may be realized as a single chip, or a single chip may be used realize a subset of or the entirety of the functions. Although LSI is named above, any of IC, system LSI, super LSI, and ultra LSI may be used, the name depending on the degree of integration.
Also, the integration method is not limited to LSI. A dedicated circuit or a general purpose processor may also be used. After LSI manufacture, an FPGA (Field Programmable Gate Array) or a reconfigurable processor may also be employed. Furthermore, advances and developments in semiconductor technology may lead to new technology coming to replace LSIs. Such future technology may, of course, be applied to the integration of the functional blocks.
(Supplement 2)
The Embodiments include the following aspects.
The acquisition step, extraction step, creation step, and display processing step are given as steps S181 through S184 of
The display processing device pertaining to the present invention is applicable to the provision of augmented reality realized so as to minimize discomfort for the user.
Number | Date | Country | Kind |
---|---|---|---|
2010229669 | Oct 2010 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2011/004368 | 8/2/2011 | WO | 00 | 5/8/2012 |