The present invention relates generally to computer systems and in particular to in-room localization of handheld mobile devices to be used within a cooperative application requiring the knowledge of the physical relative position of other devices. Multi-player multi-device mobile games are a typical application for the invention.
This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Mobile devices and wireless communications became ubiquitous in the recent years and the number of applications available in such context are huge. Some applications allow to create a multi-user multi-device environment, allowing devices to interact and exchange data. Multi-player games are a typical example of such an environment. Although most games use continuous network access to allow online gaming in different locations, other games try to benefit from the co-location, in a single location, of the devices and the player to increase the user experience.
A typical setup for such applications is to use a tablet as central device, lying on a table and acting as a common screen with which each participant interacts through his smartphone, also positioned on the table. A first example of application is a poker game bet handling application where the mobile devices would be used to handle the stakes, the bets, the dealer, etc. Using mobile devices for that purpose allows to perform statistics and analytics on the games and the players, in real time. The players still use real physical cards but are not bothered by the handling of chips. Another interesting application is a photo sharing application where every participant is able to “send” a picture from his device to another device by “sliding” the picture towards the target device.
Some of these applications need to geo-localize the mobile devices in order to allow them to interact. In the example of the poker application, it is necessary to get the physical position of the mobile devices, or at least their relative position, to determine the order of the players. A major issue regarding this point is that the geo-localization techniques traditionally used for outdoor positioning of mobile devices are either not working indoors (e.g.: GPS) or not accurate enough (e.g. WiFi).
This issue has been partly addressed by conventional solutions. In “3D interaction environment for free view point TV and games using multiple tablet computers”, Dupre proposes a system based on the inertial measurement unit that is integrated in modern mobile devices to deduce the relative position of mobile devices within a room. However this technique requires a calibration phase where the user positions the device at an initial location to initialize the system before being able to use it. Some manual manipulation of the devices is therefore required before being able to obtain the position. Furthermore, the overall precision depends on the precision of the operator and may be subject to approximation since all devices do not necessarily have the same size which complicates the manual initialization. The publication entitled “Stitching pen gestures that span multiple devices” also proposes a solution to this issue. In this proposal, the relative position between devices is deduced from a trace made by one user spanning over multiple devices. This system requires also a manual calibration phase before being able to obtain the positions. The paper entitled “Augmented Surfaces: A Spatially Continuous Workspace for Hybrid Computing Environments” proposes a system using external camera detecting markers on the devices to be geo-localized and thus determining their positions. However the setup is quite complex since a top mounted camera is needed and the environment can be disturbing for the users. It can therefore be appreciated that there is a need for a solution that allows for in-room localization of devices and that addresses at least some of the problems of the conventional solutions. The present invention provides such a solution.
In a first aspect, the disclosure is directed to a method for localization of a set of second devices, comprising at a processor of a first device, receiving from the second devices to localize, at least an image captured by the second device and an orientation angle of the second device towards a common determined direction, rotating each received image of an angle, wherein the value of the angle is the opposite value to the orientation angle of the second device towards the common determined direction, detecting overlapping areas between the rotated images received from the devices, determining using detected overlapping areas geometrical transformations between the captured images, determining using determined geometrical transformations the corresponding positions of the second devices and sending to at least one of the second devices its position.
Various embodiment of first and second aspect comprise:
In a second aspect, the disclosure is directed to a data processing device for localization of a set of second devices, comprising an interface configured to receive at least a captured image from the second devices and an orientation of the second device towards a common determined direction and send to the second devices their localization positions; a processor configured to send a localization request to at least a second device, receive, from the second devices to be localized, at least an image captured by the second device and an orientation angle of the second device towards a common determined direction, rotate each received image of an angle, wherein the value of the angle is the opposite value to the orientation angle of the second device towards the common determined direction, detect overlapping areas between the rotated images, determine using detected overlapping areas geometrical transformations between the captured images, determine, using determined geometrical transformations, the corresponding positions of the second devices, and send to the second devices their localization positions. In a variant embodiment, the device further comprises a camera positioned on the same side as the screen and configured to capture an image of the scene facing the screen; a magnetometer configured to measure the orientation towards a determined direction; a screen configured to display application data to the user; an interface configured to send the captured image to the first device; and a processor configured to capture an image of the scene facing the screen through the integrated camera. A variant embodiment further comprises receiving from the second devices metadata related to at least one of the device and the image.
In a third aspect, the disclosure is directed to a computer program comprising program code instructions executable by a processor for implementing the steps of a method according to at least one of claims 1 to 4.
In a fourth aspect, the disclosure is directed to a computer program product which is stored on a non-transitory computer readable medium and comprises program code instructions executable by a processor for implementing the steps of a method according to at least one of claims 1 to 4.
Preferred features of the present disclosure will now be described, by way of non-limiting example, with reference to the accompanying drawings, in which:
The disclosure is about seamless localization of multiple devices, by matching overlaps between images captured by the devices. A first device sends a request to the other devices and receives the images captured by their cameras. Overlaps between images are detected and corresponding positions of the devices are computed from these overlaps. Finally, the positions are sent back to the devices.
Another usage is a photo sharing application where a user sends an image from his device to another device simply by swiping the image on his device in the direction of the target device. This is illustrated in the
Other techniques could be used such as the UPnP service discovery or the Internet Session Announcement Protocol described in RFC2974. Another technique for discovery includes a cloud-based server to connect all participating devices under a unique “room” number. The election part is not mandatory since each device could perform the computation, however such implementation would not be efficient in terms of processing power inadequately spent. Once every participating device has joined, fixing the list of the participating devices, the localization process described in
In step 330, state of the art feature based registration algorithms are used to find areas of the images that are matching, indicating an overlap of the capture areas. This overlap characterizes the relative position of the associated capture devices. Various algorithms can be used for this purpose. The preferred embodiment is based on feature based registration. This technique consists in the following steps. First the images are analyzed to detect interest points, or so-called local features. The analysis is not done at the pixel level but on image descriptors, for example using MPEG-7 visual descriptors, Jet-based local image descriptors or the well-known scale-invariant feature transform (SIFT) descriptors. Once all local features have been extracted for all the images, a feature matching algorithm allows to compare them efficiently and identify the matches between images. Then a geometric registration on the matched area determines the transformation between the images, comprising translation, scaling and rotation values, thereby allowing to position one capture image in relation to the other.
Preferably, the LOC_INIT request 300 can be triggered by any participating device when it detects that it has been moved, using its inertial measurement unit. This launches again the whole process and allows to localize continuously the devices, even in the case where at least one of them is moving. Preferably, the participating devices propose a mechanism allowing to perform a LOC_INIT request 300, such as a button in the user interface of the application or a vocal command.
The present disclosure requires the ceiling to comprise some distinctive elements, such as lighting equipment, safety equipment, structural elements or decorations. In the case where the ceiling is very uniform and there is no distinctive element located over the table, then the participants may hold a large element very high over the table and perform a LOC_INIT request. A large scarf, a mop, a poster or even stickers or markers glued on the ceiling could be used, as long as each device sees the distinctive elements and the captured images overlap.
According to a preferred embodiment, the images captured by the devices are rotated so that the columns of pixels correspond to a determined direction, for example the south-north direction with the first pixel of the column pointing to the north. Any other direction may be used. The individual angle measurements Ω0 to Ω3 provided by the devices in answer to a LOC_INIT request are used for that purpose.
In addition to the rotation, the captured images are preferably normalized before being used. This operation is mandatory when the matching algorithms are not robust to scaling. For that purpose the metadata provided with the image is helpful. Indeed, they comprise data related to the captured image such as the image size but also data related to the device such as the sensor size, the focal length of the lens or even, in some cases, the distance focused subject. Thanks to these data, it is possible to scale the images in order to improve the performances of the matching algorithms. Indeed, in this case, the transformations described in
The feature matching process, in step 752, may identify multiple matches between two images. This is the case when multiple distinctive elements are located in an overlapping area. In this case, the geometry registration delivers a transformation value for each match and those values need to be combined, for example by averaging them.
In an alternate embodiment, a rotation and scale invariant matching algorithm is used, permitting to omit the rotation, in step 742, and the scaling, in step 744.
In another embodiment, the image scaling is done to enforce homogeneous pixels sizes, i.e. a single pixels is covering the same physical area. This requires to take into account the sensor size and the lens used for the capture, in order to estimate the pixel size, helped by the fact that in the context of the disclosure, all pictures are using the same distance to focus since they are at the same distance from the ceiling.
In another embodiment, only the captured image is transmitted from the participating devices to the master device and neither the metadata nor the orientation are provided. This has for effect to simplify the behavior of the participating devices but the side effect is that the detection of the overlaps is much more difficult. A more complex algorithm needs to be used to that purpose, probably requiring more processing power on the master device.
In the general case, the master device is itself also a slave device and therefore implements both behaviors described in
In another embodiment, the localization process is fully distributed. Each device starting the application will send out the captured image, metadata and orientation information. When receiving such information, each other participating device that already launched the application sends out his own captured image, metadata and orientation information. As a result, each device will receive information for each other device and is therefore able to run the necessary algorithms to determine the localization of the other devices, relatively to his own position. In this case, the LOC_INIT message can be omitted.
As will be appreciated by one skilled in the art, aspects of the present principles can take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code and so forth), or an embodiment combining hardware and software aspects that can all generally be defined to herein as a “circuit”, “module” or “system”. Furthermore, aspects of the present principles can take the form of a computer readable storage medium. Any combination of one or more computer readable storage medium(s) can be utilized. Thus, for example, it will be appreciated by those skilled in the art that the diagrams presented herein represent conceptual views of illustrative system components and/or circuitry embodying the principles of the present disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable storage media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown. A computer readable storage medium can take the form of a computer readable program product embodied in one or more computer readable medium(s) and having computer readable program code embodied thereon that is executable by a computer. A computer readable storage medium as used herein is considered a non-transitory storage medium given the inherent capability to store the information therein as well as the inherent capability to provide retrieval of the information there from. A computer readable storage medium can be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. It is to be appreciated that the following, while providing more specific examples of computer readable storage mediums to which the present principles can be applied, is merely an illustrative and not exhaustive listing as is readily appreciated by one of ordinary skill in the art: a portable computer diskette; a hard disk; a read-only memory (ROM); an erasable programmable read-only memory (EPROM or Flash memory); a portable compact disc read-only memory (CD-ROM); an optical storage device; a magnetic storage device; or any suitable combination of the foregoing.
Each feature disclosed in the description and (where appropriate) the claims and drawings may be provided independently or in any appropriate combination. Features described as being implemented in hardware may also be implemented in software, and vice versa. Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.
Number | Date | Country | Kind |
---|---|---|---|
15306040.5 | Jun 2015 | EP | regional |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2016/064624 | 6/23/2016 | WO | 00 |