Examples of the present disclosure relate to a method, apparatus and computer program for displaying images. Some examples, though without prejudice to the foregoing, relate to a method, apparatus and computer program for displaying a captured image of the real world in a virtual reality display device.
Virtual reality display devices (for example such as a head mountable display (HMD), a near eye display (NED), virtual reality goggles/helmet) are typically fully immersive in that a user of a virtual reality display device may only be able to see what is displayed on a display of the virtual reality display device, e.g. what is happening in the virtual world. However, such fully immersive virtual reality display devices present issues where a user of a virtual reality display device would wish to interact with the real world.
The listing or discussion of any prior-published document or any background in this specification should not necessarily be taken as an acknowledgement that the document or background is part of the state of the art or is common general knowledge. One or more aspects/examples of the present disclosure may or may not address one or more of the background issues.
The present invention is as set out in the independent claims.
According to at least some but not necessarily all examples of the disclosure there is provided a method comprising causing, at least in part, actions that result in:
According to at least some but not necessarily all examples of the disclosure there is provided an apparatus comprising means configured to enable the apparatus at least to perform the above method.
According to at least some but not necessarily all examples of the disclosure there is provided an apparatus comprising: at least one processor; and at least one memory including computer program code; the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform the above method
According to at least some but not necessarily all examples of the disclosure there is provided a computer program that, when performed by at least one processor, causes at least the above method to be performed.
According to at least some but not necessarily all examples of the disclosure there is provided a non-transitory computer readable medium encoded with instructions that, when performed by at least one processor, causes at least the above method to be performed.
According to at least some but not necessarily all examples of the disclosure there is provided a chipset or module comprising processing circuitry configured to cause the performance of at least the above method.
The examples presently discussed and the accompanying claims may be suitably combined in any manner apparent to one of ordinary skill in the art.
For a better understanding of various examples of the present disclosure that are useful for understanding the detailed description and certain embodiments of the invention reference will now be made by way of example only to the accompanying drawings in which:
The Figures schematically illustrate a method comprising causing, at least in part, actions that result in:
detecting (101) a real world physical object (601) located in a real world point of view (602) of a user (603) of a head mountable display (610);
triggering (102), in response to said detection, a display on the head mountable display (610) of at least one captured image (601′) of at least a part of the detected real world object (601).
Without limiting the scope of the claims, an advantage of some examples of the present disclosure may be to enable a user to see captured images of a real world object when wearing a head mountable display thereby facilitating user interaction with the physical real world object. In certain particular examples, the head mountable display is configured to display a virtual reality environment and the real world object which is detected and whose captured image is displayed corresponds to a user input device for controlling or communicating in the virtual reality environment. In some regards, one might think of examples of the present disclosure providing ‘augmented virtual reality’ (c.f. ‘augmented reality’) wherein virtual reality is augmented with ‘reality’ i.e. captured images of real world objects.
A head mountable display (HMD) may, for example, be a wearable display device and may comprise a near eye display (NED). The head mountable display may take the form of, for example: glasses, goggles or a helmet. The head mountable display may be configured as a virtual reality display device to display a virtual reality environment in addition to the captured images of the real world physical object.
A real world point of view of a user may be, for example, the user's real world: viewpoint, field of view, perspective, line of sight or frame of reference. The user's real world point of view may depend upon or relate to an orientation/direction of a user's eyes and/or head.
Various examples of the present disclosure will now be described with reference to the Figures. Similar reference numerals are used in the Figures to designate similar features. For clarity, all reference numerals are not necessarily displayed in all figures.
In block 101, a real world physical object (e.g. keyboard 601 of
In method 200, a user uses a head mountable display to view a virtual reality environment (e.g. virtual world 602′ of
Since showing a captured image(s) of the real world object takes up display space on the head mountable display, it is desirable to only show the captured image(s) when necessary. In some examples of the disclosure, by only commencing the process of block 101 following a determination of an opportunity for user interaction via the real world object, this may provide the technical effect of avoiding the detection of block 101 and the subsequent display of block 102 needlessly occurring when there is no opportunity for a user to interact with the real world object. For example, if there is no opportunity for text input, this avoids the needless detection of the keyboard and displaying a captured image(s) of the same in the virtual reality environment, which would otherwise not only waste resources (e.g. not least processing and power) but also avoid obscuring the virtual reality environment and thus needlessly adversely affecting the user's immersion level in the virtual reality environment.
In response to the determination process of block 201, the detection of a real world physical object in a real world point of view of the user may occur in block 101. This detection may comprise, in block 202 the capturing of one or more images of at least a part of the user's real world point of view. This may be achieved for example via the head mountable display comprising one or more image capturing devices that are appropriately positioned and aligned on the head mountable display such that they capture one or more 1st person perspective images corresponding to an object scene of the user's real world point of view, i.e. in effect, capture one or more images of the real world scene that the user would see were the user not wearing the head mountable display. In block 203 an object/image recognition process is performed on the one or more images captured in block 202 in order to identify and detect a real world physical object, for example the real world physical object for which the determination step 201 determined there is an availability to interact with. The real world physical object to be detected via the object/image recognition may correspond to one or more predetermined physical objects, for example user input devices such as keyboards, keypads, game controllers, and other hand operated input devices including touch sensitive input devices and touch sensitive displays.
Having detected a real world physical object in a real world point of view 602a of the user, one or more images of the detected real world object is caused to be displayed on the head mountable display in block 102. As shown in block 204, this may involve cropping the captured image(s) of the user's entire real world point of view such that the cropped image(s) consists substantially just of the detected real world physical object. The cropped image(s) (e.g. 601′ of
In block 205, the user's point of view is monitored and tracked. This may be achieved by one or more orientation or directional sensors mountable in the head mountable display that can monitor and detect changes in the orientation and direction of the head mountable display and thus determining the real world point of view of the user wearing the head mountable display based on a sensed direction and orientation (e.g. yaw, pitch and roll) of the user's head. In an alternative example, instead of determining a user's point of view based on the user's head movement, the user's point of view may be determined based on a direction and orientation of the user's eyes. In this example, one or more devices for sensing an orientation and direction of view of a user's eyes may be provided in the head mountable display, such as internally mounted camera's facing towards the user's eyes tracking the user's eye movement.
In block 206, a relative position of the real world object with respect to the user's real world point of view is determined. This may be achieved, for example, based on an analysis of the image(s) captured from the user's real world point of view and determining the position of the detected real world object in the captured image(s). In block 207, this determined relative position of the real world object with respect to the user's real world point of view is used to adjust the relative position of the displayed captured image(s) of the real world object within the display of the head mountable display. In particular, the position of the captured image(s) in the display is adjusted such that its relative position in a displayed perspective of the virtual environment/the user's virtual point of view corresponds to the determined relative position of the real world object with respect to the user's real world point of view. Without limiting the scope of the claims, an advantage of some examples of the present disclosure may be to enable the captured image(s) to be displayed at a virtual position in the display of the head mountable display which corresponds to a real world position of the object with respect to the user's real world point of view. By tracking the relative position of the real world object with respect to the user's real world point of view, a correspondence can be maintained between the position of the real world object relative to the user's real world point of view/real world frame of reference and the position of the displayed captured image(s) of the real world object relative to the user's virtual point of view/virtual frame of reference.
In block 208, a user input may be detected, such as a predetermined gesture captured and recognised by the image capturing device of the head mountable display, which causes, in block 209, the removal of the display of the captured image(s). This enables a user to selectively control the removal of the display of the captured image(s) where the user no longer desires/requires its display. For example, the user may have completed his or her interaction with the real world object and/or does not desire to interact with the real world object and thus does not need to be presented with a captured image(s) of the same.
The above described method discusses the capturing of one or more images of a user's real world point of view and displaying one or more images in a display of a head mountable display based on the captured images. It is to be appreciated that the captured at least one image may correspond to any of: a sequence of images, a video, real time images. The at least one captured image which is displayed may also correspond to a live camera feed of a region where the object is detected. Without limiting the scope of the claims, an advantage of some examples of the present disclosure may be to enable a user to see for his or herself, his or her own user interaction with the real world object in real time thereby facilitating the user's interaction with the real world object whilst still wearing the head mountable display and viewing the virtual reality environment (e.g. seeing a display of the user's own hands 606′over the keyboard 601′ as shown in
In certain examples one or more blocks may be performed in a different order or overlapping in time, in series or in parallel one or more blocks may be omitted or added or changed in some combination of ways. For example, blocks 208 and 209 could be moved or added to any part of the flowchart, for example before or after any of blocks 201, 101 and 102.
Examples of the present disclosure may take the form of a method, an apparatus or a computer program. Accordingly, examples may be implemented in hardware, software or a combination of hardware and software.
The blocks illustrated in
It will be understood that each block and combinations of blocks, can be implemented by various means, such as hardware, firmware, and/or software including one or more computer program instructions. For example, one or more of the procedures described above may be embodied by computer program instructions. In this regard, the computer program instructions which embody the procedures described above may be stored by a memory storage device and performed by a processor.
As will be appreciated, any such computer program instructions may be loaded onto a computer or other programmable apparatus (i.e., hardware) to produce a machine, such that the instructions when performed on the programmable apparatus create means for implementing the functions specified in the blocks. These computer program instructions may also be stored in a computer-readable medium that can direct a programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the blocks. The computer program instructions may also be loaded onto a programmable apparatus to cause a series of operational actions to be performed on the programmable apparatus to produce a computer-implemented process such that the instructions which are performed on the programmable apparatus provide actions for implementing the functions specified in the blocks.
An apparatus 300 according to an example in the present disclosure will now be described with respect to
The apparatus 300 comprises a controller 301. Implementation of the controller 301 can be in hardware alone (e.g. processing circuitry comprising one or more processors and memory circuitry comprising one or more memory elements), have certain aspects in software including firmware alone or can be a combination of hardware and software (including firmware).
The controller 301 may be implemented using instructions that enable hardware functionality, for example, by using executable computer program instructions in a general-purpose or special-purpose processor that may be stored on a computer readable storage medium (disk, memory etc) or carried by a signal carrier to be performed by such a processor.
In the illustrated example, the apparatus 300 comprises a controller 301 which is provided by a processor 302 and memory 303. Although a single processor and a single memory are illustrated in other implementations there may be multiple processors and/or there may be multiple memories some or all of which may be integrated/removable and/or may provide permanent/semi-permanent/dynamic/cached storage.
The memory 303 stores a computer program 304 comprising computer program instructions 305 that control the operation of the apparatus when loaded into the processor 302. The computer program instructions provide the logic and routines that enable the apparatus to perform the methods presently described.
The at least one memory 303 and the computer program instructions 305 are configured to, with the at least one processor 302, cause the apparatus 300 at least to perform the method described, for example with respect to
The processor 302 is configured to read from and write to the memory 303. The processor 302 may also comprise an input interface 306 via which data (not least for example image capture data for detecting and displaying an image of a real world object, sensor data to determine the user's point of view, virtual reality environment data for displaying a virtual reality environment and user input data) and/or commands are input to the processor 302. The processor 302 may also comprise an output interface 307 via which data (not least for example captured image data of the real world object, and virtual reality environment data for displaying on the head mountable display) and/or commands are output by the processor 302.
The computer program may arrive at the apparatus 300 via any suitable delivery mechanism 311. The delivery mechanism 311 may be, for example, a non-transitory computer-readable storage medium, a computer program product, a memory device, a record medium such as a compact disc read-only memory or digital versatile disc, or an article of manufacture that tangibly embodies the computer program 304. The delivery mechanism may be a signal configured to reliably transfer the computer program 304.
The apparatus 300 may receive, propagate or transmit the computer program 304 as a computer data signal.
References to ‘computer-readable storage medium’, ‘computer program product’, ‘tangibly embodied computer program’ etc. or a ‘controller’, ‘computer’, ‘processor’ etc. should be understood to encompass not only computers having different architectures such as single/multi-processor architectures and sequential (Von Neumann)/parallel architectures but also specialized circuits such as field-programmable gate arrays (FPGA), application specific circuits (ASIC), signal processing devices and other devices. References to computer program, instructions, code etc. should be understood to encompass software for a programmable processor or firmware such as, for example, the programmable content of a hardware device whether instructions for a processor, or configuration settings for a fixed-function device, gate array or programmable logic device etc.
The apparatus may, for example, be: circuitry, a chipset, module or a device/system 310 which additionally comprises additional devices/components for example one or more: image capturing devices 308, display devices 309, and sensors (not shown) for detecting and monitoring a user's real world point of view. The apparatus may be comprised in the head mountable display or may be separate from the head mountable display and in communication (direct or otherwise) therewith, for example via a wired or wireless communication. The apparatus may be for displaying, on a head mountable display, at least one captured image of at least a part of a real world object detected within a real world point of view of a user of the head mountable display.
The device 410 comprises the apparatus 300
The apparatus 300/410 may additionally provide one or more audio/text/video communication functions (e.g. tele-communication, video-communication, and/or text transmission (Short Message Service (SMS)/Multimedia Message Service (MMS)/emailing) functions), interactive/non-interactive viewing functions (e.g. web-browsing, navigation, TV/program viewing functions), music recording/playing functions (e.g. Moving Picture Experts Group-1 Audio Layer 3 (MP3) or other format and/or (frequency modulation/amplitude modulation) radio broadcast recording/playing), downloading/sending of data functions, image capture function (e.g. using a (e.g. in-built) digital camera), and gaming functions.
Although the apparatuses above have been described above in terms of comprising various components, it should be understood that the components may be embodied as or otherwise controlled by a corresponding processing element or processor of the apparatus. In this regard, each of the components described below may be one or more of any device, means or circuitry embodied in hardware, software or a combination of hardware and software that is configured to perform the corresponding functions of the respective components as described in greater detail below.
As used in this application, the term ‘circuitry’ refers to all of the following:
This definition of ‘circuitry’ applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term “circuitry” would also cover an implementation of merely a processor (or multiple processors) or portion of a processor and its (or their) accompanying software and/or firmware. The term “circuitry” would also cover, for example and if applicable to the particular claim element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, or other network device.”
Examples of the present disclosure provide both a method and corresponding apparatus consisting of various modules or means that provide the functionality for performing the actions of the method. The modules or means may be implemented as hardware, or may be implemented as software or firmware to be performed by a computer processor. In particular, in the case of firmware or software, examples of the present disclosure can be provided as a computer program product including a computer readable storage structure embodying computer program instructions (i.e. the software or firmware) thereon for performing by the computer processor.
The apparatus may be provided in a module. As used here ‘module’ refers to a unit or apparatus that excludes certain parts/components that would be added by an end manufacturer or a user. For example, the apparatus could be provided as a module to be used in conjunction with a head mountable display.
While in certain implementation examples the apparatus may be provided in the head mountable display itself, other types of electronic devices, such as, but not limited to, hand portable electronic devices, tablets, mobile phones, personal digital assistants (PDAs), pagers, mobile computers, desktop computers, televisions, gaming devices, laptop computers, cameras, video recorders and other types of electronic systems, may be provided with apparatuses in accordance with examples of the present disclosure. Such other devices and types of systems being configured to communicate with and control the display of a head mountable device.
Firstly, in block 501, it is determined whether or not a user is able to input anything using a keyboard. Since showing the user's keyboard in the virtual environment/world view takes up screen space, it is desirable to show the keyboard only when necessary. If there is no possibility of inputting anything, the sequential parts of the process are not carried out and the keyboard will not be shown. If there is no possibility to enter text the system waits until there is a possibility to enter text before continuing on with the procedure.
The possibility to enter text may correspond to a chat window comment box 605′ being present/displayed in the virtual environment 602′. This may indicate that keyboard input is possible. If there is a possibility to enter text the flow chart continues to block 502.
In block 502, it is determined whether or not the keyboard is in a viewpoint of a camera of the head mountable display device and thus if the keyboard is in the user's real world point of view. If the user's keyboard is not in the camera feed, (i.e. as per
If the keyboard is in the camera's view (e.g. the user's looks down such that the camera's view changes and it now can detect the keyboard, or alternatively the user may move the keyboard up such that it is in the camera's view and able to be detected), the flow chart proceeds to block 503 in which the camera feed is displayed to the user. A video window may be displayed in the head mountable display which shows at least a part of the camera's view. In order to determine whether the keyboard is in the camera's view, object recognition methods may be performed on the captured images. The user may perform an initial set up to teach the object recognition system what his or her keyboard looks like so as to improve object recognition and the tracking of the keyboard. In
The camera feed may be cropped such that only the relevant part of the camera feed is displayed, namely that of the keyboard itself as opposed to the entirety of the field of view of camera feed. With the user being able to see the keyboard as well as his or her hands operate the same, the user can input text and respond to the chat window. Once the user has finished using the keyboard, the user can once more look up, as shown in
As shown in
Examples of the present disclosure are described using flowchart illustrations and schematic block diagrams. It will be understood that each block (of the flowchart illustrations and block diagrams), and combinations of blocks, can be implemented by computer program instructions of a computer program. These program instructions may be provided to one or more processor(s), processing circuitry or controller(s) such that the instructions which execute on the same create means for causing implementing the functions specified in the block or blocks. The computer program instructions may be executed by the processor(s) to cause a series of operational steps to be performed by the processor(s) to produce a computer implemented process such that the instructions which execute on the processor(s) provide steps for implementing the functions specified in the block or blocks.
Accordingly, the blocks support: combinations of means for performing the specified functions; combinations of actions for performing the specified functions; and computer program instructions/algorithm for performing the specified functions. It will also be understood that each block, and combinations of blocks, can be implemented by special purpose hardware-based systems which perform the specified functions or steps, or combinations of special purpose hardware and computer program instructions.
Features described in the preceding description may be used in combinations other than the combinations explicitly described.
Although functions have been described with reference to certain features, those functions may be performable by other features whether described or not. Although features have been described with reference to certain examples, those features may also be present in other examples whether described or not.
It should be appreciated that modifications to the examples given can be made without departing from the scope of the invention as at out in the claims.
The term ‘comprise’ is used in this document with an inclusive not an exclusive meaning. That is any reference to X comprising Y indicates that X may comprise only one Y or may comprise more than one Y. If it is intended to use ‘comprise’ with an exclusive meaning then it will be made clear in the context by referring to “comprising only one . . . ” or by using “consisting”.
In this description, reference has been made to various examples. The description of features or functions in relation to an example indicates that those features or functions are present in that example. The use of the term ‘example’ or ‘for example’ or ‘may’ in the text denotes, whether explicitly stated or not, that such features or functions are present in at least the described example, whether described as an example or not, and that they can be, but are not necessarily, present in some or all other examples. Thus ‘example’, ‘for example’ or ‘may’ refers to a particular instance in a class of examples. A property of the instance can be a property of only that instance or a property of the class or a property of a sub-class of the class that includes some but not all of the instances in the class.
In the above description, the apparatus described may alternatively or in addition comprise apparatus which in some other examples comprises a distributed system of apparatus, for example, a client/server apparatus system. In examples where an apparatus provided forms (or a method is implemented as) a distributed system, each apparatus forming a component and/or part of the system provides (or implements) one or more features which may collectively implement an embodiment of the present disclosure. In some examples, an apparatus is re-configured by an entity other than its initial manufacturer to implement an embodiment of the present disclosure by being provided with additional software, for example by a user downloading such software, which when executed causes the apparatus to implement an example of an embodiment of the present disclosure (such implementation being either entirely by the apparatus or as part of a system of apparatus as mentioned hereinabove).
The above description describes some examples of the present disclosure however those of ordinary skill in the art will be aware of possible alternative structures and method features which offer equivalent functionality to the specific examples of such structures and features described herein above and which for the sake of brevity and clarity have been omitted from the above description. Nonetheless, the above description should be read as implicitly including reference to such alternative structures and method features which provide equivalent functionality unless such alternative structures or method features are explicitly excluded in the above description of the embodiments of the present disclosure.
Whilst endeavouring in the foregoing specification to draw attention to those features of the invention believed to be of particular importance it should be understood that the applicant claims protection in respect of any patentable feature or combination of features hereinbefore referred to and/or shown in the drawings whether or not particular emphasis has been placed thereon.
Number | Date | Country | Kind |
---|---|---|---|
14184455.5 | Sep 2014 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/FI2015/050595 | 9/11/2015 | WO | 00 |