Patent Description:
The development of virtual reality or VR headsets has reached the stage that such headsets are becoming mass market products. VR headsets are typically provided with means for providing individual stereographic images to each and sensors for tracking movements such as tilt and rotation of the head. In this way, VR headsets provide an immersive pseudo 3D experience, in which the user is provided with a pseudo 3D view of a virtual environment that changes according to the user's head movement in order to present the user with a view corresponding to the user's current head position and orientation.

However, the mass market potential of VR headsets gives rise to a corresponding need to provide content for VR headsets, particularly in the form of realistic pseudo 3D virtual models and environments that a user can freely navigate around using their 3D headsets. Examples of methods for producing such content include use of computer graphics and rendering packages and by collecting images using panoramic cameras. Computer graphics and rendering, although improving, still often appear artificial and can lack the required degree of realism.

Panoramic cameras are designed to provide a wide angle view of a scene. There are two basic types of camera: a rotating head camera, which is physically rotated to allow a panoramic image to be captured, and a fixed lens camera. Rotating head cameras provide a three hundred and sixty degree field of view, but they require a mechanical drive to cause physical rotation of the camera. Consequently, rotating head cameras tend to be large and relatively complex. Fixed lens cameras rely on wide angle lenses to capture images of a scene, which are then stitched together. Fixed lens cameras generally require complex optical arrangements to ensure that a three hundred and sixty degree field of view can be captured. However, images taken by panoramic cameras, although realistic, can lack the required depth in the images and may result in a situation in which a user can only view virtual environments from fixed locations for which suitable panoramic images are available, rather than being able to move around a virtual environment at will and look at objects from all directions, as they would in real life.

A paper by <NPL> describes a person following system for an autonomous robot rather than an image creation system. The system uses the Microsoft Kinect device that has a projector for irradiating near-infra-red rays, camera to calculate the read depth near-infrared rays radiated, RGB camera for image acquisition and microphone array of four built-in microphones. The authors realize a high precision following system by mounting the Kinect sensor on a mobile robot.

<CIT> describes that a user-facing camera or 3D capture device may be used to determine the position of the eyes of a user and a display relative to a captured object or environment. The position, orientation, and size of the display relative to the front-facing camera/3D capture device and an outward-facing 3D capture device are known based on their physical arrangement within 3D reconstruction system. If, in addition, the position of the eyes of the user relative to the user-facing camera or 3D capture device is known, and the position and orientation of the outward-facing 3D capture device relative to the 3D environment is known, then the position of the eyes of the user and display relative to the 3D object or environment can be determined via coordinate transforms.

At least one aspect of one embodiment of the present invention seeks to overcome or minimise at least one problem in the prior art.

The aspects of the present invention are defined in the independent claims. Some preferred features are defined in the dependent claims.

The processing system comprised in a camera as defined in claim <NUM> is configured to form a 3D skeleton, framework or construct, e.g. from the spatial data collected using at least one or more or each of the spatial sensors. The 3D skeleton, framework or construct may comprise or define positions, spatial extents, shapes and/or orientations of one or more surfaces and/or objects. The processing system may be configured to wrap, skin or overlay the 3D skeleton, framework or construct with at least one or more images collected using at least one or more or each of the imaging sensors, e.g. to form the model, composited image or virtual environment. The processing system may be configured to alter or configure the one or more or each image to conform to the 3D skeleton, framework or construct, e.g. to the spatial arrangement, surfaces and/or contours of the 3D skeleton, framework or construct.

Various aspects of the invention will now be described by way of example only and with reference to the following drawings, of which:.

<FIG> shows a panoramic camera <NUM> for capturing images and spatial data associated with the images. The camera <NUM> of <FIG> comprises four sensor systems 10a, 10b, 10c, 10d, a housing <NUM> and a mount <NUM>. The housing <NUM> is hemi-cylindrical and the four sensor systems 10a, 10b, 10c and 10d are distributed over a curved surface <NUM> of the housing <NUM>. In this case, each sensor system 10a, 10b, 10c, 10d extends in parallel to each other sensor system 10a, 10b, 10c, 10d and are distributed over a curved axis corresponding to the curved surface <NUM> of the housing <NUM>. Each sensor system 10a, 10b, 10c, 10d is angled to correspond with the curvature of the curved surface <NUM>.

As such, each of the sensor systems 10a, 10b, 10c, <NUM> is oriented differently to each of the other sensor systems 10a, 10b, 10c, 10d. In particular, the fields of view of each of the sensor systems 10a, 10b, 10c, 10d are oriented differently, such that the field of view <NUM> of each sensor system 10a, 10b, 10c, 10d only partially overlaps that of the adjacent sensor systems 10a, 10b, 10c, 10d, as shown in <FIG>. In this way, the total field of view of the camera <NUM> corresponds to the sum of the fields of view <NUM> of each of the sensor systems 10a, 10b, 10c, 10d. In this particular example, the total field of view of the camera <NUM> in this example is substantially <NUM>°.

Each of the sensor systems 10a, 10b, 10c, 10d comprises at least one spatial sensor <NUM> and at least one imaging sensor <NUM>. The spatial sensor <NUM> in this example is an infra-red spatial sensor comprising an infra-red emitter <NUM> and a pair of spaced apart infra-red receivers 45a, 45b that are configured to pick up reflections of the infra-red signal emitted by the infra-red emitter <NUM>. It will be appreciated that the spatial sensor <NUM> is a stereoscopic sensor that is operable to determine distances and angles between the spatial sensor <NUM> and any objects and surfaces in the spatial sensor's field of view using techniques that would be apparent to a person skilled in the art, which may comprise, as non-limiting examples, time-of-flight analysis, analysis of relative intensities and receiving times of the signal from the associated emitter <NUM> at each receiver 45a, 45b and the like. In this way, the spatial sensor <NUM> of each sensor system 10a, 10b, 10c, 10d is operable to collect spatial data that is representative of distances and angles from the respective spatial sensor <NUM> to parts of the objects and surfaces that are within the field of view of, and visible to, the respective spatial sensor <NUM>.

The imaging sensor <NUM> is in the form of a digital colour (RGB) camera and can be based on a CMOS, CCD or other suitable digital imaging technology. Preferably, the imaging sensor <NUM> is a system-on-chip (SoC) imaging sensor. The imaging sensor <NUM> is operable to collect colour images that at least partly or wholly encompass the field of view of the associated sensor system 10a, 10b, 10c, 10d. It will be appreciated that the imaging sensor <NUM> is operable to collect still images, moving or video images or both.

The camera <NUM> comprises the mount <NUM> for mounting the camera <NUM> to a stand, tripod or other suitable support <NUM> (see <FIG>). When mounted on the stand, tripod or other suitable support <NUM>, the sensor systems 10a, 10b, 10c, 10d extend generally horizontally and are distributed over a generally vertical direction. The total combined field of view of the sensor systems 10a, 10b, 10c, 10d extends substantially <NUM>°, particularly extending at least vertically above the camera, or beyond, e.g. to cover the zenith. The total field of view can optionally also extend vertically below the camera, e.g. to cover the nadir, but this is less important, as the parts of the images and spatial data that comprise the stand, tripod or other support <NUM> (below the camera) may optionally not be used to prevent artefacts in the resulting model, image or virtual environment. Images and spatial data for regions comprising the stand, tripod or other support <NUM> can be collected by moving the stand, tripod or other support <NUM> and repeating the image collection procedure or by using the camera <NUM> in a roaming mode. However, the environment above the camera <NUM> could be of particular interest and as such, it is beneficial if the total field of view extends at least vertically upwards.

The mount <NUM> is configured to mount the camera <NUM> such that it is rotatable on the stand, tripod or other support <NUM>. For example, in an embodiment, the camera <NUM> is optionally provided with a motor (not shown) such as a stepper motor that is operable to rotate the rest of the camera <NUM> with respect to the mount <NUM>, such that when the camera <NUM> is mounted to the stand, tripod or other support <NUM>, it is rotatable on the stand, tripod or other support <NUM> around a rotation axis <NUM> by the motor. Preferably, the imaging sensors <NUM> of each sensor system 10a, 10b, 10c, 10d are distributed colinearly or in parallel to the rotation axis <NUM>. Preferably each spatial sensor <NUM> is arranged such that one of the receivers 45a of the respective spatial sensor <NUM> is provided on an opposite side of the rotation axis to the other of the receivers 45b. In this way, parallax errors may be reduced.

In examples for better understanding of the present invention the camera <NUM> may be a "smart" camera, having image and spatial data processing capability on-board and configured to determine spatial 3D models, images and/or virtual environments therefrom. However, preferably, the camera <NUM> is a "dumb" camera, provided with a communications and interface module <NUM> for transmitting the spatial data and images collected to an external processing and/or control system <NUM> and to receive control commands therefrom, as shown in <FIG>.

In particular, the communications and interface module <NUM> comprises a wired or wireless interface that interfaces with a communications module <NUM> of the processing and/or control system <NUM>. The processing and/or control system <NUM> further comprises at least one processor <NUM> and data storage <NUM>. The processor <NUM> preferably comprises one or more graphics processing units (GPUs). The data storage <NUM> may comprise RAM, flash memory, one or more hard drives and/or the like. The camera <NUM> preferably but not essentially has some form of data storage (not shown) on board for buffering or temporarily storing the spatial data and images until they can be communicated to the processing and/or control system <NUM>. The processor <NUM> is operable to output a spatial model or virtual environment to a carrier medium <NUM> that can be access or loaded onto a virtual reality (VR) headset.

It will be appreciated that the camera <NUM> is configured to be operated in at least two modes, namely a mounted rotation mode and a roaming mode. The mounted rotation mode is particularly useful in determining an initial model and can be carried out as a highly automated process. The roaming mode is useful for filling in gaps or poorly imaged areas and allowing targeted image and spatial data collection from regions of particular interest and hard to access areas.

In the rotation mode, the camera <NUM> is rotated on the stand, tripod or other support <NUM>, e.g. by operating the motor, as shown in <FIG>. During the rotations, the camera <NUM> collects multiple images and spatial data at different rotational positions of the camera <NUM>. It will be appreciated that this can be an automated process responsive to a suitable trigger, e.g. from the processing and/or control system <NUM>, but not limited to this. The images and spatial data cover the full <NUM>° around the camera <NUM> and also comprise multiple overlapping or partially overlapping images and spatial data. In this way, a full <NUM>° model of the environment around the camera can be created by stitching together the images and spatial data collected. The overlapping or partially overlapping images and spatial data can be combined together in order to enhance the images and models produced. These processes will be described in more detail below.

In the roaming mode, the camera <NUM> can be detached from the stand, tripod or support <NUM>, as shown in <FIG> and <FIG>, for example. In this mode, the camera <NUM> can be held by a user and manually pointed at areas selected by the user whilst images and spatial data are collected using the imaging sensors <NUM> and the spatial sensors <NUM>.

Although an example of a panoramic camera <NUM> in which four sensor systems are provided in a hemi-spherical housing is given above, it will appreciated that this need not be the case, In particular, more or less sensor systems 10a, 10b, 10c, 10d could be provided in order to provide different total fields of view or to produce higher or lower resolution images. For example, an example of a camera <NUM>' having different numbers of sensor systems <NUM> and a different housing <NUM>' configuration (e.g. cylindrical) is shown in <FIG>. Furthermore, the housing <NUM>" need not even be curved and the sensor systems <NUM> can be provided in differently angled flat surfaces of the housing <NUM>" in order to produce the differently angled fields of view, an example of which is shown in <FIG>. A skilled person would appreciate that the present invention is not limited to the examples shown but that other configuration could be provided that have the required multiple sensor systems provided with their fields of view at different orientations. For example, although in the examples shown above, the sensor systems 10a, 10b, 10c, 10d extend generally horizontally and are distributed over generally vertical direction (at least when mounted on the stand, tripod or other support <NUM>), it will be appreciated that this need not be the case and instead the sensor systems 10a, 10b, 10c, 10d may be oriented vertically directions and distributed horizontally or may be oriented and distributed in an oblique direction. Indeed, although the sensor systems 10a, 10b, 10c, 10d are shown as generally parallel to each other, this need not be the case, and at least one of the sensor systems 10a, 10b, 10c, 10d may be oriented obliquely to at least one or each other sensor system 10a, 10b, 10c, 10d, for example. Furthermore, although the sensor systems 10a, 10b, 10c, 10d are shown on side or longitudinal faces of the housing, it will be appreciated that one or more sensor systems 10a, 10b, 10c, 10d could be provided on end faces of the housing and/or the housing could be generally spherical or hemi-spherical, for example, with sensor systems 10a, 10b, 10c, 10d distributed there around. It will also be appreciated that, depending on the arrangement, the camera <NUM> need not be rotatable and could be fixedly mountable on a stand, tripod or other support.

An example of a method for using panoramic cameras <NUM>, <NUM>', such as those of <FIG> is described with reference to <FIG>. The mount <NUM> of the camera <NUM>, <NUM>' is coupled to the stand, tripod or support <NUM>. The rest of the camera <NUM>, <NUM>', particularly the part of the camera <NUM>, <NUM>' that comprises the sensor systems 10a, 10b, 10c, 10d, is then rotated around the mount <NUM> by the motor, with multiple images and spatial data being collected at certain known rotational positions that can be derived from the motor control. In particular, multiple images and multiple spatial data collections are performed at each rotational position. These images and spatial data can be combined together in order to improve image quality and spatial data quality. This combination can be performed by techniques known in the art, such as averaging and/or the like.

The user then has the option of collecting further images and spatial data in rotational mode if required. This involves moving the camera <NUM>, <NUM>' and the stand, tripod or other support <NUM> and repeating the rotational mode image and spatial data collection process again from the new position. Collecting images and spatial data from the camera <NUM>, <NUM>' in multiple positions in rotational mode allows gaps in the coverage of the images and the spatial data to be reduced or minimised. For example, in rotational mode, there can be images and spatial data that can't be used due to the presence of the stand, tripod or other support <NUM> in the field of view of at least one of the sensor systems 10a, 10b, 10c, 10d. Since the camera <NUM>, <NUM>' and stand <NUM> are moved, images and spatial data can be collected for areas for which the spatial data or images are missing or that have poorer coverage.

The user also has the option of detaching the camera <NUM>, <NUM>' from the stand, tripod or other support and using the camera <NUM>, <NUM>' in "roaming" mode. In this case, the user simply manually moves the camera <NUM>, <NUM>' and collects images and spatial data of any desired areas. This is particularly useful in collecting images and spatial data of hard to access areas such as underneath tables, behind obstacles and the like.

The images and the spatial data collected can be transmitted to the processing and/or control system <NUM> in real time or stored on the data storage on-board the camera and buffered for streaming or downloaded later to the processing and control system <NUM>.

A method of forming spatial models or "virtual" 3D images or environments from the collected images and spatial data is described with reference to <FIG>.

As described above in relation to <FIG>, multiple images and spatial data for the environment being imaged or modelled can be collected. These multiple images and spatial data can be the result of multiple images and spatial data being collected for each camera <NUM>, <NUM>' position during a rotation on the stand, tripod or other support or for rotational positions of the camera <NUM>, <NUM>' taken during multiple rotations of the camera <NUM>, <NUM>', and/or images and spatial data the environment being modelled or imaged taken from different viewpoints or locations, such as different stand or tripod positions when used in the mounted rotational mode or when used in roaming mode.

It will be appreciated that some of the collected images and spatial data will wholly or partially overlap and that some of the images and spatial data will be for different parts of the environment and will not overlap.

The overlapping or partially overlapping images are combined in order to improve the quality of the image and spatial data for the associated locations in the environment being imaged. The combining of these images can comprise averaging or other image combining or merging techniques known to a person skilled in the art.

Advantageously, the multiple images and/or spatial data that is to be aggregated may be collected using different settings, such as exposure time, contrast, gain, power, sensitivity, shutter speed, and/or the like. In one example, the aggregation comprises high dynamic range (HDR) imaging. In this method, multiple images are collected at a given position of the camera <NUM>, <NUM>', wherein the images are taken with different exposures. The processing system <NUM> then produces the HDR images from the plurality of images collected with different exposures, which results in improved combined images. In another example, the spatial data for a given camera <NUM>, <NUM>' position can be collected with different gain settings of the spatial sensors <NUM> used to collect the spatial data. Some surfaces are detected better with different settings of the spatial sensors <NUM>, e.g. different gain, power, or sensitivity settings. By using spatial data that is an aggregation of spatial data collected using different settings for the spatial sensors <NUM>, such as gain, a wider range of objects and surfaces can be more accurately detected and analysed.

The images and spatial data for various locations within the environment can be stitched together in order to form the spatial model or virtual environment. In an embodiment, the processing and/or control system <NUM> uses pattern matching in order to identify features in the images and/or spatial data that match portions of the spatial model or virtual environment and/or other images or spatial data to determine where in the model or virtual environment the images and/or spatial data belong. Additionally or alternatively, the processing and/or control system <NUM> uses location and/or orientation sensors on the camera <NUM>, <NUM>' to determine where in the environment being modelled or imaged the camera <NUM>, <NUM>' is located and the direction in which it is pointed to determine the part of the environment being imaged, and thus where in the spatial model or virtual environment the associated images and spatial data should belong. It will be appreciated that this can be assisted by providing the processing and/or control system with structural data and calibration data associated with the camera, e.g. the number of sensor systems 10a, 10b, 10c, 10d, the relative orientations of each sensor system 10a, 10b, 10c, 10d and the like.

Furthermore, spatial data from a number of sources may be aggregated together. For example, partially or wholly overlapping images can be used to form stereograms from which distance and angle information for objects in the field of view can be extracted and used to supplement the spatial data collected by the spatial sensors <NUM>.

In this way, the processing and/or control unit <NUM> is able to stitch together images taken from a variety of viewpoints and taken using the rotational mode and the roaming mode to form the spatial model and/or virtual 3D world.

In particular, the processing and/or control system <NUM> is configured to create a virtual spatial skeleton or construct from the aggregated spatial data. This defines the contours, shapes, positions and the like of any objects, walls and other surfaces in the environment to be imaged. The aggregated image data can then be wrapped to the spatial skeleton or construct to form the spatial model or virtual environment.

Claim 1:
A camera (<NUM>) comprising a plurality of sensor systems (10a, 10b, 10c, 10d), each sensor system (10a, 10b, 10c, 10d) comprising at least one spatial sensor (<NUM>) and at least one image sensor (<NUM>), wherein a field of view (<NUM>) of each sensor system (10a, 10b, 10c, 10d) corresponds with an overlapping region of the field of view of the at least one image sensor (<NUM>) and the at least one spatial sensor (<NUM>) of the sensor system (10a, 10b, 10c, 10d) and at least part of a field of view (<NUM>) of one or more or each of the sensor systems (10a, 10b, 10c, 10d) differs to at least part of the field of view (<NUM>) of at least one or each other of the sensor systems (10a, 10b, 10c, 10d);
the camera (<NUM>) comprises a mount for mounting to a support for supporting the camera such that at least part of the camera is rotatable relative to the mount or support on which the camera is mounted; and
at least two or more or each of the sensor systems (10a, 10b, 10c, 10d) are arranged one above the other, in use, in at least one mode of operation such that:
part of the field of view (<NUM>) of each sensor system (10a, 10b, 10c, 10d) overlaps part, but not all, of the field of view (<NUM>) of one or more adjacent sensor system (10a, 10b, 10c, 10d); and
the fields of view (<NUM>) or optical axes of sensor systems (10a, 10b, 10c, 10d) are mutually divergent; and wherein
the camera (<NUM>) comprises a processing system (<NUM>) that is configured to create a model from the spatial data and the images collected from the sensor systems (10a, 10b, 10c, 10d) by combining or compositing the images collected by the image sensors (<NUM>) with spatial data collected by the spatial sensors (<NUM>); characterized by
the combining or compositing comprising forming a 3D skeleton from the spatial data collected using the spatial sensors (<NUM>), the 3D skeleton comprising positions, spatial extents, shapes and/or orientations of one or more surfaces and/or objects; and skinning the 3D skeleton with at least one or more images collected using the image sensors (<NUM>) or a combined image formed therefrom to form the model.