Device, a method and a server for retrieving information using a machine readable image
10394419 ยท 2019-08-27
Assignee
Inventors
Cpc classification
G06F3/04842
PHYSICS
International classification
G06F16/955
PHYSICS
G06F3/0481
PHYSICS
G06F3/0484
PHYSICS
Abstract
Icons/text/images representing selections areas are placed near a machine readable image to for retrieving an information item about a product to which the machine readable image is associated. These selection areas can be visually represented by icons/text/images that inform the user what information will be retrieved or what action will be controlled if selected. A capturing device captures a machine readable image together with icons/text/images representing selections areas, displays these on the screen for the user to select one of the icons/text/images. The capturing device calculates the coordinates of the selection relative to the machine readable image using a unit of distance and perspective correction derived from the machine readable image. These coordinates are provided to an information server associated with the machine readable image which in turn provides the information associated to the coordinates to the capturing device.
Claims
1. A method for selecting information represented by an icon of a plurality of icons associated with a QR code comprising: capturing an image of the QR code and the icon of the plurality of icons, wherein each of the plurality of icons is separate from, and located adjacent to, the QR code; displaying the captured image of the QR code and the icon on a touch screen; determining a user's touch location on the touch screen being an indication of selection of the icon of the plurality of icons; determining an orientation of the QR code; determining a relative coordinate of the touch location relative to the location of the QR code; forwarding the relative coordinate to an information providing server; and receiving information related to the relative coordinate from the information providing server.
2. The method as claimed in claim 1 further comprising deriving a unit of distance from the captured image of the QR code; wherein the step of determining the relative coordinate is based on the touch location, the angle between the touch location and the QR code, the rotation angle of the QR code, and the derived unit of distance.
3. The method as claimed in claim 2, wherein the relative coordinate is a polar coordinate.
4. The method as claimed in claim 3, wherein the polar coordinate comprises a distance expressed in the derived unit of distance from a predefined point of the QR code to the touch location.
5. The method as claimed in claim 2, wherein the relative coordinate is a Cartesian coordinate expressed in the derived unit of distance.
6. The method as claimed in claim 2 further comprising: deriving a perspective correction information derived from the QR code; and applying the perspective correction information to the captured image of the QR code before determining the relative coordinate.
7. A device for retrieving information represented by an icon of a plurality of icons associated with a QR code, the device comprising: a capturing device for capturing an image of the QR code and the icon of the plurality of icons, wherein each of the plurality of icons is separate from, and located adjacent to, the QR code; a touch screen for displaying the captured image of the QR code and the icon and for receiving a user's touch location on the touch screen being indicative of a selection of the icon of the plurality of icons; a processor configured to determine: an orientation of the QR code; the touch location; and a relative coordinate of the touch location relative to the location of the QR code; and a communication interface for: forwarding the relative coordinate to an information providing server identified by the QR code; and receiving information related to the relative coordinate from the information providing server.
8. The device as claimed in claim 7, wherein the processor is further configured to: derive a unit of distance from the captured image of the QR code; and to determine the relative coordinate based on the touch location, the orientation of the QR code, and the derived unit of distance.
9. The device as claimed in claim 7, wherein the relative coordinate is a polar coordinate.
10. The device as claimed in claim 8, wherein the relative coordinate is a polar coordinate; and wherein the polar coordinate comprises an angle relative to a predefined normal orientation of the QR code and a distance expressed in the derived unit of distance from a predefined point of the QR code.
11. The device as claimed in claim 8, wherein the relative coordinate is a Cartesian coordinate expressed in the derived unit of distance.
12. The device as claimed in claim 7 further comprising: perspective correction means comprising perspective distortion detection means for deriving perspective correction information from the QR code; and perspective distortion correction means for applying a perspective correction to the QR code based on the perspective correction information before determining the relative coordinate.
13. A system for retrieving information represented by an icon of a plurality of icons associated with a QR code having a pre-defined machine-recognizable coordinate system, the system comprising: a capturing device for capturing an image of the QR code and the icon of the plurality of icons, wherein each of the plurality of icons is separate from, and located adjacent to, the QR code; a touch screen for displaying the captured image of the QR code and the icon and for receiving a user's touch indicative of a selection of the icon of the plurality of icons; memory that contains the machine-recognizable coordinate system of the QR code; a processor configured to determine an orientation in the pre-defined machine-recognizable coordinate system of the QR code and to determine a coordinate in the pre-defined machine-recognizable coordinate system representing the selected icon of the plurality of icons based on an angle between the selected icon and the QR code; and a communication interface for forwarding the coordinate to an information provider and receiving information represented by the selected icon from the information provider.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
MODES FOR CARRYING OUT THE INVENTION
(31) In the subsequent
(32) While the examples for ease of illustration show the machine readable image as a QR code it has to be noted that other images that can be captured and decoded or matched to images stored in a (remote) database such as a social web site profile image can be equally used instead of the QR code.
(33) While the description uses a QR code with a URL in the description of the figures, it should be noted that other information stored in the machine readable image or derivable from this machine readable image, that points to stored information, can be used instead. For instance after establishing a match between a captured profile image of a social web site and the associated social network page by using an image search engine, the resulting link, derived from the image search, can be used as a basis for retrieving particular information as indicated by the rotation angle selected by the user.
(34)
(35) A barcode is an optical machine-readable representation of data relating to the object to which it is attached. Originally barcodes represented data by varying the widths and spacing of parallel lines. This is the type of barcode 1 shown in
(36) If this fails to yield a checksum digit that matches the decoded checksum digit from the end of the scan, the pattern is digitally reversed (i.e. sequence of decoded bits is reversed) and the decode process is repeated. This results in a calculated checksum digit that matches the checksum digit read from the barcode 1, and the capturing device effectively corrected for the fact that the barcode 1 was captured upside down. This process produces a single result which is used to retrieve the data related to the object to which the barcode 1 is attached.
(37) Even though the description refers mostly to the QR code, other 2 dimensional barcodes exist such as the Data Matrix 2D, the Aztec code, the EZ code, the High Capacity Color Barcode, the Maxi code, the Shot code and the Twibright Optar code.
(38) In order to decode such 2 dimensional barcode the correct orientation must be established before decoding. For this all 2 dimensional barcodes have position patterns 2a and alignment patterns 2b.
(39) U.S. Pat. No. 5,726,435 discloses a 2 dimensional machine readable code, a so called 2D barcode.
(40) To properly decode the information stored in the 2D Barcode U.S. Pat. No. 5,726,435 discloses in FIG. 3 and the associated description an apex detection to determine the actual rotation angle (tilt) of the 2D barcode.
(41) The decode preprocessing includes rotation angle detection and coordinate conversion processing, both of which are mandatory when each two-dimensional code is randomly placed with an uncertain rotation angle with respect to a reading device. Also scaling is required due to the unknown size of the QR code in the image captured. The position marks 2a aid in this scaling. It should however be noted that the prior art discards the rotation angle detected after correcting during preprocessing for the rotation angle in order to position the QR code upright before the actual decoding.
(42)
(43) In the example of
(44) However, when the barcode 1 is captured upside down (a rotation angle of 180 degrees) the user manual information 3 is selected.
(45)
(46) As the upright capture position of the QR code 2 (or other 2 dimensional barcodes) is known, the rotation angle of the QR code 2 during capturing can be used to determine what information item 5, 6 has been selected by the user. To assist the user in selecting the correct capture orientation text/icons 5, 6 are placed near the QR code 2. In the example of
(47) However, when the QR code 2 is captured upside down the user manual information 6 is selected.
(48)
(49) It is self evident that when the upright position of the text or icon indicates the information item associated with that capture direction, the location relative to the machine readable code can be varied. For ease of explanation the figures show a consistent positioning of the icons and text but the icon above the machine readable image can be placed below the machine readable image as long as the orientation relative to the machine readable image is not changed
(50)
(51)
(52) It is clear that the rotation angle need not be provided in degrees. In the present example a single bit or digit can be added: 0 represents a +0 degrees angle, while 1 represents a +180 degrees angle.
(53) It should further be noted that instead of simply adding the angle to the data used to retrieve information, specific angles can be reserved for specific uses. The icon for the social network can for instance always be positioned such that the barcode 1 is captured upside down. The capturing device in that case can access the social network directly without first passing the rotation angle on to another web site. For example, when capturing the barcode 1 upright, i.e. desiring to retrieve the general information from the manufacturer an angle of +0 degrees determined causes the capturing device to contact the standard database to retrieve the product information, while capturing the barcode 1 upside down, i.e. desiring the to retrieve information from the social network an angle of +180 degrees determined causes the capturing device to directly contact the social network while providing the information retrieved from the barcode and thus get feedback information about the product from friends on the social network.
(54)
(55) Capturing the QR code 2 in the position where the social network icon 9 is in the upright position will result in a rotation angle of the QR code 2 of +180 degrees.
(56) When passing this rotation angle on to the provider of the information item the provider can return information that is associated with the icon to the capturing device. For instance, when the angle of +0 degrees is passed on to the provider the provider will return the data associated with the information icon 8. When the angle of +180 degrees is passed on to the provider the provider will return data from the social network.
(57) It is clear that the rotation angle need not be provided in degrees. In the present example a single bit or digit can be added: 0 represents a +0 degrees angle, while 1 represents a +180 It degrees angle.
(58) It should further be noted that instead of simply adding the angle to the data used to retrieve information specific angles can be reserved for specific uses. The icon for the social network can always be positioned for example such that the QR code 2 is captured upside down. The capturing device in that case can access the social network directly without passing the rotation angle on to a web site. Elements of the data stored in the QR code can then serve to retrieve specific information from the social network.
(59)
(60)
(61) Also here, the capturing device can determine the angle and give feedback (sound or color feedback) to the user whether the angle is within limits, further reducing a source of possible errors. This further contributes to the intuitive use of the present invention.
(62) In
(63)
(64) In
(65) The other sides of the image can be defined to be the bottom of the captured image, changing the 0 degrees reference to be perpendicular to that side.
(66) The angle formed by the dotted lines 19,20 represents the rotation angle of the device 18 relative to the upright position of the machine readable image 17. In
(67) In
(68) The machine readable image 17 is thus captured at a rotation angle of 135 degrees relative to its upright position. The dotted line 20 denotes the upright position of the machine readable image 17 while the dotted line 19 denotes the 0 degree reference of the device 18. The angle formed by the dotted lines 19,20 represents the rotation angle of the device 18 relative to the upright position of the machine readable image 17. In
(69) It is self evident that the device 18 can use another 0 degree reference to determine the rotation angle such as one of the sides of its screen. Especially when the machine readable code is captured using a camera in the device 18, one of the 4 sides of the display can be assigned as the bottom of the picture taken. This side can advantageously be chosen to be a reference of the device 18 and the rotation angle of the machine readable image 17 can be determined relative to this reference. When the bottom is selected, a correction for the 90 degrees angle between the bottom of the display and the 0 degrees reference must be performed.
(70) Alternatively, when not the bottom or top of the picture is selected but one of the sides of the captured picture, the sides are parallel to the 0 degrees reference 19 shown, and no correction is needed.
(71) In
(72) It should be noted that it is also possible for the user to rotate the captured image on-screen into the desired position instead of rotating the machine readable image 17 or the device 18. Lines 19, 20 as shown in
(73) It should further be noted that it is also possible for the user to indicate the desired icon by just touching the icon on-screen before or after capture instead of rotating the machine readable image 17 or the device 18. The device does not need to be aware of the presence of icons, it just needs to determine the rotation angle and can also do such on screen by determining the upright orientation of the machine readable image 17, determining a line between the center of the machine readable image 17 and the area touched by the user and calculate the rotation angle thus obtained. The rotation angle is subsequently matched to one of the available zones and the angle associated to that zone is used when retrieving the information item.
(74) Alternatively the device 18 can recognize the machine readable image 17, establish fixed zones around the machine readable image and wait for the user to touch one of the zones. Each zone is associated with an angle and the angle associated with the zone touched is used for retrieving the information item.
(75)
(76) The device 27 comprises a central processing unit 28 which is couples to a capturing device 29 via an interface 30. The capturing device 29 is capable of capturing a capture of the machine readable image 2, here shown as a QR code. The device further comprises an position sensor 31. This position sensor 29 can be part of the camera, indicated by the dotted arrow 32, or can be coupled to the central processing unit 28, indicated by the dotted arrow 33.
(77) The device 27 further comprises a communication interface 34 which is coupled to the central processing unit 28 via an interface 35 and regulates communications between the device 27 and the outside world. For this the communication interface 34 has several interfaces 36, 37. The external connections include a wired connection 36 and a wireless connection 37 for connection to the internet or directly to a database.
(78) When the user desires to retrieve an information item he starts an application on the central processing unit 28 that in turn instructs the camera 29 to start recording a picture. The user positions the camera such that the icon representing the desired information item is upright in the picture, resulting in a particular rotation angle of the machine readable image 2 during the recording of the picture. If the camera is equipped with a position sensor 31 the camera can provide the position information of the camera, for instance in the form of specifying what side of the picture is the bottom of the picture. If the camera has no such sensor 31 a predefined side of the picture is assumed to be the bottom. Alternatively the device itself may have a position sensor 31 that is able to tell what side of the picture represents the bottom (i.e. picture is taken in landscape, portrait or at an intermediate position). This information, together with the picture received from the camera allows the device to determine the rotation angle of the machine readable image and thus of the rotation angle. This angle information can be checked against predefined zones, for instance when an angle is detected of 35 degrees it is accepted because the closest angle 45 degrees is only 10 degrees away and the distance to the next closest angle (0 degrees) is sufficiently large (35 degrees) to safely say that the user desires the information item associated to the 45 degree rotation angle.
(79) After determining the rotation angle of the machine readable image 2 the device 27 retrieves the content of the machine readable image 2 (if any) and modifies the content based on the determined rotation angle and initiates the retrieval of the information item.
(80) When the device 27 detects a rotation angle it passes the rotation angle on to data provider 40 by modifying the URL for example by adding a number representing the detected rotation angle.
(81) This results in modified URLs. For example when 8 rotation angles are distinguished:
(82) www.company.com/our_first_product/0 (corresponding to 22.5 to +22.5 degrees).
(83) www.company.com/our_first_product/1 (corresponding to +22.5 to +67.5 degrees).
(84) www.company.com/our_first_product/2 (corresponding to +67.5 to +112.5 degrees).
(85) www.company.com/our_first_product/3 (corresponding to +122.5 to +157.5 degrees).
(86) www.company.com/our_first_product/4 (corresponding to +157.5 to +202.5 degrees).
(87) www.company.com/our_first_product/5 (corresponding to +202.5 to +247.5 degrees).
(88) www.company.com/our_first_product/6 (corresponding to +247.5 to +292.5 degrees).
(89) www.company.com/our_first_product/7 (corresponding to +292.5 to +337.5 degrees).
(90) The last digit of the URL represents a detected rotation angle and thus the information item associated with that rotation angle. Other methods of indicating the rotation angle are equivalent such as using just 3 bits to encode the 8 positions or passing on that angle that best matches the detected rotation angle, for instance modifying the URL to www.company.com/our_first_product/135 when the detected rotation angle is between +122.5 and +157.5 degrees as 135 degrees is the angle that best matches the detected rotation angle.
(91) In addition, the device can include the actual determined rotation angle in the URL, for instance www.company.com/our_first_product/127 and the server receiving this rotation angle determines which information item best matches the received roational angle. The above example URLs, using numbers are just for explanation. When implementing the invention the full scale of possibilities provided by language to request the information from the information server can be used, as long as the device is aware of this.
(92) For instance, when capturing the machine readable image the information derived from the machine readable image can be used to contact the information server which in turn provides the device with instructions on how to request the various information items. The device subsequently requests the desired information item based on the rotation angle as explained.
(93)
(94) In case the network 39 is the internet a typical way of retrieving data from a data provider 40 is through a URL link. A standard device would retrieve the URL stored in the QR code 2 and request the web page at this URL from the data provider 40. The processor unit 41 of the data provider 40 will receive the request for the web page and retrieve the page from the storage unit 42. An example of a basic URL stored in the QR code is www.company.com/our_first_product.
(95) When the device 27 detects a rotation angle it passes the rotation angle on to data provider 40 by modifying the URL for example by adding a number representing the detected rotation angle.
(96) This results in modified URLs. For example when 8 capture rotation angles are distinguished:
(97) www.company.com/our_first_product/0.
(98) www.company.com/our_first_product/1.
(99) www.company.com/our_first_product/2.
(100) www.company.com/our_first_product/3.
(101) www.company.com/our_first_product/4.
(102) www.company.com/our_first_product/5.
(103) www.company.com/our_first_product/6.
(104) www.company.com/our_first_product/7.
(105) The last digit represents a detected rotation angle and thus the information item associated with that rotation angle.
(106) The data provider has 8 web pages for this product instead of just one and provides a different web page for each of the modified URLs shown above.
(107) Referring to the example QR code shown in
(108) In response to the URL www.company.com/our_first_product/2 the provider 40 returns the email address or a webmail to send messages associated with the product.
(109) In response to the URL www.company.com/our_first_product/4 the provider returns the social network page associated with the product.
(110) In response to the URL www.company.com/our_first_product/6 the provider 40 returns the web page with the user manual associated with the product.
(111) In response to the basic URL send by devices not using the present invention the provider returns the general web page to ensure compatibility with the large installed base of devices.
(112)
(113) Here the device 27 determines the rotation angle of the machine readable image. In this case the machine readable image is a profile picture of a person on a social network. Shown is a line graphic but actual pictures can be used equally well. The device will initiate an application that establishes a match of this image to the source of this image on the web or on a social network. In the orientation shown, the social network icon is an upright position (in the example resulting in a rotation angle of the captured image of 180 degrees). When this position is universally reserved for social network information items the device can go straight to the social network site where the image was found and retrieve information even if the image has other occurrences on non social network sites.
(114) The social network site may act as a redirecting site, i.e. the social network site acts as the provider of as discussed in
(115) A first user may want to allow people to find out about his hobbies and sports while another may want to provide professional back ground or literature preferences. The first user can include an icon representing hobbies and sports, while the second user can include icons representing professional information and literature. The icons merely aid in selecting, as the URL created during the selection merley includes the rotation angle. At the information server side the translation to the requested information is made.
(116) In addition social network users can restrict access to the information to people with whom they disclose the access key in the form of subsequent scans of predefined rotation angles of the image.
(117)
(118) For this, the domotics system 50 comprises a controller 51 that is connected to the network 39 via interface 54 which allows the device 27 to communicate with the domotics system 50. As indicated by antenna 37 of the device 27 and by the antenna 53 of the domotics system 50 the communication can also be implemented on a peer to peer basis.
(119) When the device 27 captures the machine readable image 2 and has determined the rotation angle of this capture it will contact the domotics system 50, using the information stored in the QR code and the rotation angle detected. An example is a URL www.mydomoticssystem.com/3 as the rotation angle at selection was 135 degrees. The domotics system can be contacted at www.mydomoticssystem.com. The 3 tells the domotics system 50 that the lamp brightness control has been selected by the user. The domotics system 50 subsequently responds for instance by providing a web page to the device 27 having an entry field in which the device 27 can continuously update the rotation angle changes as detected by the device 27 after the initial selection of the control by the user.
(120) The domotics system 50 uses these updates to adjust the brightness of the lamp accordingly. When including the actual rotation angle in the URL the server can perform the translation from rotation angle to function by selecting the function that best matches the received rotation angle, for instance by defining ranges of rotation angles for each function.
(121) This also allows the change of functions centrally on the server without having to interfere with the capturing device.
(122) Alternatively the device 27 can send a URL to the domotics system 50 every time a change in the rotation angle is detected. For example www.mydomoticssystem.com/3/up is sent when a positive change of the rotation angle is detected and www.mydomoticssystem.com/3/down is sent when a negative change of the rotation angle is detected. As stated above any agreed upon syntax can be used, i.e. up and down are just examples.
(123) When www.mydomoticssystem.com/3/up is received by the domotics device 50 it increases the lamp brightness while when www.mydomoticssystem.com/3/down is received the brightness is reduced.
(124) In a similar fashion the electric motor 52 can be controlled by first capturing the machine readable image 2 in the orientation corresponding to the electric motor icon and subsequently continuing to touch the screen while rotating the device 27 to increase or decrease the rotation angle . Other functions indicated by the icons in
(125) It should be noted that, as the QR code provides position patterns changes in the magnification of the QR code can also be detected and used. As such a combination of rotation for selection of the control and subsequently detecting changes in the size of the QR code (i.e. magnification either by changing the distance between the device 27 and the QR code or by electronically changing the magnification on screen) for adjusting the control can also be implemented.
(126) It should further be noted that the device can be arranged for the user to indicate the desired icon by just touching the icon on-screen before or after capture instead of rotating the machine readable image or the device. Even while displaying the icons, the device does not need to use the exact locations of displayed icons, it just needs to determine the rotation angle and can also do such on screen by determining the upright orientation of the machine readable image, determining a line between the center of the machine readable image and the area touched by the user and calculate the rotation angle thus obtained. The rotation angle is subsequently matched to one of the available zones either by the capturing device or by the server and the angle associated to that zone is used when retrieving the information item. Alternatively the device can recognize the machine readable image, establish fixed zones around the machine readable image and wait for the user to touch one of the zones. Each zone is associated with an angle and the angle associated with the zone touched is used for creating the URL and thus retrieving the information item.
(127) In the subsequent
(128) It should further be noted that the capturing device, when implementing the embodiments described in
(129)
(130) Instead of using the full 360 degrees around the QR code 120, icons 122,123,124,125,126,127 are now positioned so that the user doesn't need to rotate the capturing device all the way, depending of course on the icon 122,123,124,125,126,127 he desires to select. In the given example, the range over which the capturing device may need to be moved is limited to 90 degrees to the right en 90 degrees to the left.
(131) When positioning the icons 122,123,124,125,126,127 around the QR code 120 using the full 360 degrees, the user is most likely required to re-grasp the scanning device in order to select the bottom icon, or he needs to rotate the QR code 120 with surrounding icons 122,123,124,125,126,127 over 180 degrees in order to capture the QR code comfortably. Limiting the range of the rotation angle ensures the user does not need to re-grasp the capturing device and does not need to rotate the QR code 120 for comfortable scanning.
(132) In the example of
(133) By pointing the capturing device in such a way, the QR code 120 will be rotated relative to the normal orientation indicated in the display of the capturing device (indicated by the dotted line ending at the circle 128). The capturing device can then determine the angle between the QR code 120 (0 degrees being indicated by the long dotted line) and the dotted angle ending at the circle.
(134) As explained above the 0 degree reference can also be selected to be a line through the two top Position Detection Patterns of the QR code 120 and the angle expressed in relation to this choice of 0 degree reference. This angle is appended to the URL and in the case of the example of
(135) www.mywebsite.com?angle=260
(136) As can be seen in
(137) As the issuer knows the position of the icons 122,123,124,125,126,127, he also knows the angles associated to the zones, and the required response when a URL with an angle indication attached is received by the information server.
(138) The issuer can give zones different sizes, as can be seen in
(139) Such differentiation can be used for marketing purposes, or to ensure easy access to more important selections or to facilitate the access for the elderly or visually impaired persons.
(140)
(141) As the rotation angle can be determined with high accuracy the issuer can assign a small secret zone 130 to a special function. This is indicated in
(142) Depending on the issuers objective, the special zone 130 can be left at the same position, or can be moved randomly every time after a rebate coupon or price or special desirable information is send to the user's capturing device.
(143) Also, as the issuer can change the location and size of the small special zone 130 at will, he can influence the chances of the special zone 130 being selected by a user. A larger special zone will result in a larger chance of a user capturing at an angle that is within the small zone. No change to the user's capturing device, nor the printed QR code with icons is needed, as this change is effected at the issuer's server.
(144) In
(145) As the special zone 130 can be changed at will, the issuer can vary the size and position of the special zone 130 for different times of day, can assign different responses (for instance: rebate coupons only during weekends, otherwise special information is provided) and can increase the size of the special zone 130 for returning customers or rather for first time customers. As most capturing devices also comprise GPS receivers the issuer can also make size, position and function of the special zone 130 dependent on geographic location of the user.
(146)
(147)
(148) The QR code is described in detail in ISO/IEC 18004:2000(E) First edition 2000 Jun. 15.
(149) In chapter 12 Decoding procedure overview a decoding procedure is outlined which is incorporated by reference into this description
(150) In chapter 13 Reference decode algorithm for QR Code a decoding algorithm is outlined which is also incorporated by reference into this description.
(151) In steps 1 through 3 of chapter 13 it is explained how the angle of rotation (i.e. rotation angle) of the QR code is determined based on the detection of the Position Detection Patterns.
(152) After having detected the position of the Position Detection Patterns, two Position Detection Patterns are selected and a line is drawn trough the center of the two selected Position Detection Patterns.
(153) This line, for instance through the centers of the two top Position Detection Patterns (illustrated in
(154) Alternatively the reference line can be drawn through the centers of the two left hand Position Detection Patterns. It is evident that when establishing a system for retrieving information using the invention one of the two alternatives must be consistently used.
(155)
(156) Besides of showing the Position Detection Patterns discussed in
(157) These timing patterns 61 are either explicitly present or can be derived from the black and white pattern of the modules of the QR code.
(158) Either the distance 62 between the Position Detection Patterns or the size of a module (smallest black/white element of the QR code) can be used as a unit of distance.
(159) Either step 4 or step 5 of chapter 13 of ISO/IEC 18004:2000(E) can be used to establish a unit of distance.
(160) When in step 4 the distance D is determined, this can be used as a unit of distance.
(161) As this provides a relatively course unit of distance, other distances will be expressed as a real number with a prescribed number of decimals.
(162) When in step 5 of chapter 13 of ISO/IEC 18004:2000(E) the nominal dimension of the modules of the symbol is determined, this can also be used as a unit of distance. In this case the unit of distance is the minimum length/width of a dark module respectively light module in the QR symbol. This provides a smaller unit of distance which allows other distances to be expressed as an integer multiple of the module size of the QR code.
(163) When expressing other distances on the screen of the capturing device in this unit of distance, where a single unit is equal to the module size of the QR code, this other distance becomes independent of the on-screen size of the QR code as it scales together with the QR code itself. This will be explained in more detail in
(164)
(165) As the orientation of the QR code 17 on the screen of the capturing device 18 can be derived using the a position detection patterns of the QR code as explained in
(166) The 0 degrees reference 19 is in
(167) In the given constellation of icons, the @-sign icon 75 is validly selected if the rotation angle is between 22.5 degrees and 22.5 degrees.
(168) Instead of rotating the capturing device 18 it is, for capturing devices comprising a touch screen, also possible to have the user indicate his selection by touching an icon on the touch screen. It is to be noted that everywhere in the present invention the icons are not generated by the capturing device but are merely displayed as part of the image of the QR code being captured. The capturing device is thus not aware of the presence of the icons on the screen. When the user touches the touch screen at the location 73 where an icon 75 is shown, a virtual line 72 is drawn from the touched location 73 to the center of the QR code. The angle between this virtual line 72 and the 0 degrees reference 19 is calculated and is equivalent to the rotation angle as obtained using the embodiment where the user has turned the capturing device to point an arrow at the selected icon.
(169) For the 1-icon 75 the range of rotation angles that are considered valid is from 22.5 degrees to 67.5 degrees. The touched area shown results in a detected rotation angle of approximately 45 degrees, which is a valid rotation angle and would, when presented to the server of the issuer of the QR code, result in the information associated to the 1-icon 74 to be send to the capturing device.
(170) As the concept of determining the rotation angle using the touch screen no longer needs a fixed 0 degrees on the capturing device the 0 degrees reference can solely be determined based on the position detection patterns. The rotation angle is the angle between the virtual line 72 and the 0 degrees reference drawn through the top position detection patterns.
(171) It is obvious that also the two left position detection patterns of the QR code can be used for this purpose, only requiring either a different interpretation of the angle values by the server or a compensation for introduction of a 90 degrees offset by the capturing device.
(172) When only using the rotation angle to distinguish between icons, a set of pie shaped zones is created as explained in
(173) In
(174) As the QR code 17 is significantly smaller in
(175)
(176) In
(177) In
(178) This poses however no problem, as the orientation of the QR code is established using the Position Detection Patterns of the QR code. Using this orientation together with the unit of distance derived from the QR code, the capturing device is able to establish a coordinate system that is at an angle relative to the display, but is aligned and scaled with the rotated QR code as shown in
(179) Once this coordinate system has been established, the touched location can easily be expressed, as discussed above, as an angle between the virtual line drawn through the touched location and the center of the QR code, and the distance between the touched location and the center of the QR code.
(180) Thus, the parameters rotation angle and distance are determined independently of the angle and magnification at which the QR code is captured. The parameters sent to the issuers server are thus also independent of the angle and magnification at which the QR code is captured, ensuring an easy to use intuitive interface between the issuer's server and the user.
(181) In
(182) Thus, as can be seen, the distances between the icons and the center of the QR code remains the same when expressed in the units of distance derived from the size of the QR code.
(183) The information server 81 comprises a processor for processing incoming requests for information and storage means such as hard disks or memory for holding the information to be provided by the server.
(184) When a capturing device according to the invention captures a QR code with a URL it uses this URL information to request the desired information. Assuming that the basic URL to access this information is:
(185) www.mywebsite.com/product1
(186) the capturing device attaches the angle as explained for instance in
(187) www.mywebsite.com/product1?angle=260
(188) indicating that the information associated with the icon at an angle of 260 degrees is to be provided.
(189) The capturing device 18 sends this URL to the communication connection 80 to the information server 81. The communication connection 80 can be a direct connection such as a local network but can also be the internet.
(190) Upon reception, the information server 81 parses the string, extracts the value of the angle parameter and uses this angle parameter to select the associated information. Subsequently the information server 81 sends the requested information, via the communication connection 80, to the capturing device 18 for displaying or processing. The parsing of the string and the extraction of the parameters can be handled in scripts on the information server, often written in the programming language Perl or Python. When the information server receives:
(191) http://www.qtwist.com? angle=209
(192) the PHP/Python/Perl script on the information server extracts the value of the variable angle using for instance the $_GET command.
(193) The value of angle is subsequently used to control the destination of the request.
(194) In the case of:
(195) www.qtwist.com/product1?qtwist=10&angle=123&distance=1.450&pressure=0.82
(196) a PHP/Python/Perl script on the information server extracts the value of the variables qtwist, angle, distance and pressure using for instance the $_GET command.
(197) The values of qtwist, angle, distance and pressure are subsequently used to control the destination of the request.
(198) If it is desirable to avoid sending unexpected parameters to an information server, the method for requesting the information can be improved. To this end the URL stored in the QR code is used to indicate whether additional parameters are to be appended or not.
(199) When the parameter qtwist is present, the additional parameters such as angle and/or distance are appended. This ensures that a capturing device according to the invention can determine whether a regular QR code according to the prior art has been captured (and no parameters should be appended) or that a QR code according to the invention has been scanned (and the parameters should be determined and appended). Thus, when the following example URL is extracted from the captured QR code:
(200) www.mywebsite.com/product1?qtwist=0
(201) the capturing device appends the various parameters:
(202) www.mywebsite.com/product1?qtwist=0&angle=123&distance=1.450&pressure=0.82
(203)
(204) The operator of the information server 81 may hesitate to add scripts to his existing information server as that would often involve modification of an existing stable information server.
(205) To avoid the modification of the existing information server an intermediate information server 82 is used to parse the requests coming from the capturing device.
(206) When a capturing device according to the invention captures a QR code with a URL it uses this URL information to request the desired information. Assuming that the basic URL to access this information is:
(207) www.mywebsite.com/product1?qtwist=0
(208) the capturing device attaches the angle as explained for instance in
(209) www.mywebsite.com/product1?qtwist=0&angle=123&distance=1.450&pressure=0.82&server=twistserver
(210) indicating that the information associated with the icon at an angle of 123 degrees and at a distance of 1.450 units of distance is to be provided.
(211) The capturing device 18 sends this URL to the communication connection 80 to the intermediate information server 82 at a predefined address which is either fixed (www.qtwist.com) or created from a parameter in the URL (the server parameter can be appended and used to create the server's address www+twistserver+.com). The communication connection 83 can be a direct connection such as a local network but can also be the internet.
(212) Upon reception, the intermediate information server 82 parses the string, extracts the value of the angle and distance parameter and uses this angle and distance parameter to determine what information is requested. The intermediate information server 82 then creates, for instance from a table, the correct URL for requesting the information from the information server 81 and redirects the capturing device 18 to this URL. Subsequently the information server 81 sends the requested information, via the communication connection 80, to the capturing device 18 for displaying or processing. The parsing of the string and the extraction of the parameters can be handled in scripts on the intermediate information server 82, often written in the programming language Perl or Python.
(213) The intermediate server 82 thus can be customized for interpretation of the URL and allow the retrieval of the information from other servers 81 where the information is already present anyhow, thus avoiding the duplication of the data and associated problems of keeping information on different servers 81, 82 in sync with each other.
(214)
(215) In this case the information server 82 receiving the request for information does parse the received URL but does not locally store (all) information to be provided. The intermediate information server 82 thus has a connection to a storage server 81 for retrieving the requested information. After receiving the requested information from the storage server 81, the intermediate server 82 provides the requested information to the capturing device.
(216) The intermediate server 82 thus can be customized for interpretation of the URL and retrieve the information from other servers 81 where the information is already present anyhow, thus avoiding the duplication of the data and associated problems of keeping information on different servers 81, 82 in sync with each other.
(217)
(218) In order to enable easy automated translation of the selected area of the captured image 79 to the location of the desired information, a translation image 83 is used.
(219) First the user captures the printed image 79 and selects an icon by touching the icon anywhere inside the icon. This results in a URL such as:
(220) WWW.MYWEBSITE.COM/PRODUCT1?QTWIST=0&ANGLE=123&DISTANCE=2.300
(221) This URL is used to contact the information server where the translation image 83 is stored. The information server extracts the angle and distance parameter values and uses these to select a pixel of the translation image 83 that thus (approximately) corresponds to the selected pixel in the captured image 79. The value of the selected pixel of the translation image 83 (for instance color or luminance) is retrieved. In the example shown there are 8 icons and in the translation image 83 each one of the icon areas has a different color. This means that in the translation image 83 the original pixel values in each icon area are lost and replaced by a color value.
(222) Because of restrictions in the publication of a patent, in
(223) In the translation image 83 the outlines and dimension of the QR code plus icons is retained but the image information is lost. Having obtained the color value of the pixel, the information server looks up the associated link in a translation table 84 and uses this link to retrieve the desired information and provide this desired information to the capturing device. As the translation image 83 can be easily created using the information used to create the printed image 79, a one to one relation can be easily established.
(224) This method allows a large degree of freedom in the artistic design and shape of the icons and their placement relative to the QR code and relative to each other as each pixel in the printed image 79 has a corresponding translation pixel in the translation image 83. It thus provides, for each angle and distance combination automatically the appropriate translation. The consequence of this is that the software to handle the translation can be universal, i.e. independent of the actual QR code and the icons. All that needs to be provided to add the proper handling of another QR code is a translation image 83 and color to information translation table 84.
(225) For example, when adding handling for another manufacturer/product the value of the qtwist parameter can indicate the manufacturer/product. For instance when qtwist=1778 the software uses this value to select a directory from which to use the translation table 84 and translation image 83. Thus, no program changes are needed to expand the number of products/manufacturers/information providers supported.
(226) Instead of replacing the pixel values by colors in the translation image 83, it is also possible to leave the most significant bits intact, thus maintaining the optical recognizability of the image, and use the least significant bits of the pixels to store the value to be used with the translation table. When providing 8 icons, it is sufficient to use the 3 least significant bits to store the value to indicate which of the 8 entries in the translation table is to be selected.
(227)
(228) Several information server configurations have been disclosed in
(229) Since the software handling the parsing of the URL and the handling of the translation image and translation table can be implemented such that there is no need to change the software when adding products/manufacturers/information providers, the present invention is only limited by the amount of storage and processing speed of the information server, thus allowing easy scaling to large systems with many products/manufacturers/information providers being supported, yet limiting the traffic between capturing device and the information server(s).