This application claims the benefit under 35 U.S.C. §119 of the filing date of Australian Patent Application No. 2015234303, filed 30 Sep. 2015, hereby incorporated by reference in its entirety as if fully set forth herein.
The present disclosure relates to projection of information in augmentable areas on a surface. In particular, the present disclosure relates to a method, system and apparatus of projecting text characters onto a textured surface. The present disclosure further relates to a computer readable medium storing instructions executable to implement a method of projecting text characters on to a textured surface.
Augmented reality is a view of a physical world where some elements of physical reality are augmented by computer generated inputs such as sound, graphics and so on. Users are able to use hand-held and wearable devices to retrieve additional information related to a captured image of a real world object from a camera connected to the device (for example, a camera phone or a camera attached to a head-mounted display or augmented reality glasses) and augment the additional information to the real world object. Such a real-world object may be a natural image in a document, a piece of textual information, a physical object such as a printer and so on.
In addition to hand-held devices, projectors are also being used to show augmented reality information, particularly in office environments. For example, projectors in conjunction with a camera are being used to provide an augmented reality system. A projection based augmented reality system provides hands-free and glasses-free augmented reality to the end-user.
When projection-based augmented reality systems are used to project information in environments such as an office employee's desk, suitable areas for projection may be difficult to find, or even unavailable. Such occurs because a typical desk in an office environment presents a cluttered background for projection with a variety of objects such as cups, printed documents, a keyboard, a mouse and the like. Hence, information may often need to be projected on busy backgrounds such as a printed text document or textured surfaces. In such instances, a challenge for the projection based augmented reality system is to ensure legibility of projected information. Such is particularly challenging if the projected information is textual content to be projected over or against a wide variety of complex background textures. This challenge occurs as the projected information cannot be completely opaque, and projection can only illuminate surfaces rather than hide the surfaces. Such is often particularly apparent when the projected information is textual in nature and is being projected on a surface that already contains texture. In such an event, the texture of the surface can be a distraction to the end-user. The texture may reduce the extent to which the projected text stands out, thus failing to provide a fulfilling experience to the user.
A need exists for a method of projecting textual information on a textured surface, such as a printed surface which already has printed text, such that legibility of the projected text is maintained while mitigating the distracting effects of the printed background text.
The present disclosure describes exemplary embodiments to substantially overcome, or at least ameliorate, at least one disadvantage of present arrangements.
A first aspect of the present disclosure provides a method of projecting text characters onto a textured surface, the method comprising: determining, from a captured image of the textured surface, a measure of the texture on the surface for a region of the textured surface over which the text characters are to be projected; selecting, based on a function of the determined measure, a glyph set, each glyph in the glyph set having visually contrasting inner and outer portions, the outer portion being sized proportionally to the inner portion according to the determined measure; and projecting the text characters onto the textured surface of the region using the selected glyph set.
In another implementation, the function of the determined measure is a spatial frequency, the spatial frequency relating to a distribution of at least one dominant repeating pattern of the texture.
In another implementation, the textured surface comprises a printed text surface, and the spatial frequency relates to a distribution of a most frequently occurring character size of the printed text.
In another implementation, the textured surface comprises a barcode, and the spatial frequency relates to an average width of stripes of the barcode.
In another implementation, the inner and outer portions form contrasting sharp edges in the projected text characters.
In another implementation, the inner portion and outer portion of the selected font form contrasting sharp edges in the projected text characters, the sharp edges having a dominant repeating pattern similar to the spatial frequency.
In another implementation, the inner text portion and the outer text portion comprise at least one of a contrasting colour and a contrasting pattern.
In another implementation, the measure is determined based upon a Fourier transform of the texture.
In another implementation, the function of the determined measure relates to a dominant frequency determined from the Fourier transform.
In another implementation, the measure of the texture is determined in two mutually perpendicular directions.
In another implementation, a width of at least one of the inner and outer portions of the selected set of glyphs is varied according the determined measure in each of the directions.
In another implementation, the texture has a different orientation to an orientation of the projected text, the measure being determined in relation to the orientation of the texture.
In another implementation, the function of the determined measure is translated from the orientation of the texture to the orientation of the projected text for selection of the glyph set.
In another implementation, at least one of the inner portion and the outer portion comprises an animation pattern.
In another implementation, the pattern is varied proportionally to the function of the determined measure.
In another implementation, the pattern is varied inversely proportionally to the function of the determined measure.
In another implementation, the pattern simulates movement in a direction of flow of the projected text.
A further aspect of the present disclosure provides a computer readable medium having a computer program stored thereon for projecting text characters onto a textured surface, the computer program comprising: code for determining, from a captured image of the textured surface, a measure of the texture on the surface for a region of the textured surface over which the text characters are to be projected; code for selecting, based on a function of the determined measure, a glyph set, each glyph in the glyph set having visually contrasting inner and outer portions, the outer portion being sized relative to the inner portion based upon the determined measure; and code for projecting the text characters onto the textured surface of the region using the selected glyph set.
Another aspect of the present disclosure provides a system for projecting text characters onto a textured surface, the system comprising: a memory for storing data and a computer program; a processor coupled to the memory for executing said computer program, said computer program comprising instructions for: determining, from a captured image of the textured surface, a measure of the texture on the surface for a region of the textured surface over which the text characters are to be projected; selecting, based on a function of the determined measure, a glyph set, each glyph in the glyph set having visually contrasting inner and outer portions, the outer portion being sized in relation to the inner portion according to the determined measure; and projecting the text characters onto the textured surface of the region using the selected glyph set.
Another aspect of the present disclosure provides an apparatus for projecting text characters onto a textured surface, the apparatus comprising: means for determining, from a captured image of the textured surface, a measure of the texture on the surface for a region of the textured surface over which the text characters are to be projected; means for selecting, based on a function of the determined measure, a glyph set, each glyph in the glyph set having visually contrasting inner and outer portions, the outer portion being sized proportionally to the inner portion based upon a function of the determined measure; and means for projecting the text characters onto the textured surface of the region using the selected glyph set.
One or more embodiments will now be described with reference to the following drawings, in which:
Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
The present disclosure relates to data representation technologies. In particular, the present disclosure relates to a system and method for providing enhanced legibility and readability of textual augmented reality content when the augmented reality content is projected on a complex background (such as a text document or a textured background with fine detail) by making the background less distracting through use of texture suppression.
The arrangements described relate to projection of text onto a textured surface. In the context of this description, a textured surface relates to a surface upon which texture in form of visually detectable variations is present. Examples of textured surfaces include surfaces relating to printed text (for example, a printed documents), bar codes and any surface comprising visual variations whether formed by variations in colour on the surface (for example a pattern, a photograph, a poster or a colour diagram), or physical variations on the surface causing visual variations (for example a brick surface, presence of protrusions or recesses on a surface, and the like).
In the description herein, a textured surface upon which text characters are to be projected may be referred to as a background texture or overlaid texture. The projected text characters may be referred to as foreground text.
Some methods of projecting text use transparent overlays. Designers of transparent overlays use colour variations and font style variations (e.g. bold, size of font) to separate or distinguish foreground text from background texture such as background text. Such methods may be effective when the foreground text is carefully placed in between spaces between lines of background text. However, such methods often fail to provide a satisfactory solution when text is projected on top of a textured surface, such as background text.
Other methods effectively hide background texture on an image by distributing luminance of projected text pixels to surrounding image pixels. Such methods have an effect that, at large distances, the background texture is not distracting to the user when looking at the image. At a short distance, the background texture is visible for the end-user to read. Such methods may suppress background texture of an image. However, such methods cannot be applied to projection based augmented reality systems as precise control of the luminance of pixels surrounding the projected text characters cannot be achieved.
The arrangements described relate to projecting text using a glyph set including glyphs having visually contrasting inner and outer portions. The visual contrast of the inner and outer portions is judged subjectively by a human eye. The visually contrasting inner and outer portions are selected to mask the background texture which is to be projected onto. For example, the inner and outer portions may form visually contrasting sharp edges. The contrasting edges may have a spatial frequency equivalent to the textured surface, and can act to mask the background texture. A spatial frequency of the background texture is analysed and the font or glyph set of the projected text selected to ensure that the projected text is legible, stands out and, when projected on a textures background, effectively masks the texture.
The system 100 includes a computer module 101 in communication with the projector 169 and the camera 127. The computer module 101 may be in wired or wireless communication with the projector 169. Similarly, the computer module 101 may be in wired or wireless communication with the camera 127. In some implementations, the camera 127 and/or the projector 169 may be integral to the computer module 101. The camera 127 retrieves a raster image of a camera field of view 175 and transmits the raster image to the computer module 101. The projector 169 receives digital data from the computer module 101 and projects digital data 190 on to a specified location 180 in a field of projection 177 of the projector 169. The specified location 180 typically refers to a contiguous region of texture within a textured surface, in this example a printed document 170. The specified location 180 of the projected digital data 190 is typically specified by the computer module 101.
In the system of
As seen in
The computer module 101 typically includes at least one processor unit 105, and a memory unit 106. For example, the memory unit 106 may have semiconductor random access memory (RAM) and semiconductor read only memory (ROM). The computer module 101 also includes an number of input/output (I/O) interfaces including: an audio-video interface 107 that couples to the video display 114, loudspeakers 117 and microphone 188, an I/O interface 113 that couples to the keyboard 102, mouse 103, scanner 126, camera 127 and optionally a joystick or other human interface device (not illustrated); and an interface 108 for the external modem 116, projector 169 and printer 115. In some implementations, the modem 116 may be incorporated within the computer module 101, for example within the interface 108. The computer module 101 also has a local network interface 111, which permits coupling of the computer system 100 via a connection 123 to a local-area communications network 122, known as a Local Area Network (LAN). As illustrated in
The I/O interfaces 108 and 113 may afford either or both of serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus (USB) standards and having corresponding USB connectors (not illustrated). Storage devices 109 are provided and typically include a hard disk drive (HDD) 110. Other storage devices such as a floppy disk drive and a magnetic tape drive (not illustrated) may also be used. An optical disk drive 112 is typically provided to act as a non-volatile source of data. Portable memory devices, such optical disks (e.g., CD-ROM, DVD, Blu-Ray Disc™), USB-RAM, portable, external hard drives, and floppy disks, for example, may be used as appropriate sources of data to the system 100.
The components 105 to 113 of the computer module 101 typically communicate via an interconnected bus 104 and in a manner that results in a conventional mode of operation of the computer system 100 known to those in the relevant art. For example, the processor 105 is coupled to the system bus 104 using a connection 118. Likewise, the memory 106 and optical disk drive 112 are coupled to the system bus 104 by connections 119. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations, Apple Mac™ or like computer systems.
The method of projecting test characters on to a printed text document may be implemented using the computer system 100 wherein the processes of
The software may be stored in a computer readable medium, including the storage devices described below, for example. The software 133 is typically stored in the HDD 110 or the memory 106. The software is loaded into the computer system 100 from the computer readable medium, and then executed by the computer system 100. A computer readable medium having such software or computer program recorded on the computer readable medium is a computer program product. The use of the computer program product in the computer system 100 preferably effects an advantageous apparatus for projecting test characters on to a printed text document.
Thus, for example, the software 133 may be stored on an optically readable disk storage medium (e.g., CD-ROM) 125 that is read by the optical disk drive 112. A computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer system 100 preferably effects an apparatus or a means for projecting test characters on to a printed text document.
In some instances, the application programs 133 may be supplied to the user encoded on one or more CD-ROMs 125 and read via the corresponding drive 112, or alternatively may be read by the user from the networks 120 or 122. Still further, the software can also be loaded into the computer system 100 from other computer readable media. Computer readable storage media refers to any non-transitory tangible storage medium that provides recorded instructions and/or data to the computer system 100 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, DVD, Blu-Ray™ Disc, a hard disk drive, a ROM or integrated circuit, USB memory, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 101. Examples of transitory or non-tangible computer readable transmission media that may also participate in the provision of software, application programs, instructions and/or data to the computer module 101 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
The second part of the application programs 133 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 114. Through manipulation of typically the keyboard 102 and the mouse 103, a user of the computer system 100 and the application may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with the GUI(s). Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via the loudspeakers 117 and user voice commands input via the microphone 188.
When the computer module 101 is initially powered up, a power-on self-test (POST) program 150 executes. The POST program 150 is typically stored in a ROM 149 of the semiconductor memory 106 of
The operating system 153 manages the memory 134 (109, 106) to ensure that each process or application running on the computer module 101 has sufficient memory in which to execute without colliding with memory allocated to another process. Furthermore, the different types of memory available in the system 100 of
As shown in
The application program 133 includes a sequence of instructions 131 that may include conditional branch and loop instructions. The program 133 may also include data 132 which is used in execution of the program 133. The instructions 131 and the data 132 are stored in memory locations 128, 129, 130 and 135, 136, 137, respectively. Depending upon the relative size of the instructions 131 and the memory locations 128-130, a particular instruction may be stored in a single memory location as depicted by the instruction shown in the memory location 130. Alternately, an instruction may be segmented into a number of parts each of which is stored in a separate memory location, as depicted by the instruction segments shown in the memory locations 128 and 129.
In general, the processor 105 is given a set of instructions which are executed therein. The processor 105 waits for a subsequent input, to which the processor 105 reacts to by executing another set of instructions. Each input may be provided from one or more of a number of sources, including data generated by one or more of the input devices 102, 103, data received from an external source across one of the networks 120, 122, data retrieved from one of the storage devices 106, 109 or data retrieved from a storage medium 125 inserted into the corresponding reader 112, all depicted in
The described arrangements use input variables 154, which are stored in the memory 134 in corresponding memory locations 155, 156, 157. The described arrangements produce output variables 161, which are stored in the memory 134 in corresponding memory locations 162, 163, 164. Intermediate variables 158 may be stored in memory locations 159, 160, 166 and 167.
Referring to the processor 105 of
a fetch operation, which fetches or reads an instruction 131 from a memory location 128, 129, 130;
a decode operation in which the control unit 139 determines which instruction has been fetched; and
an execute operation in which the control unit 139 and/or the ALU 140 execute the instruction.
Thereafter, a further fetch, decode, and execute cycle for the next instruction may be executed. Similarly, a store cycle may be performed by which the control unit 139 stores or writes a value to a memory location 132.
Each step or sub-process in the processes of
The text projection method 200 is implemented as one or more submodules of the application 133, stored in the memory 106 and controlled by execution of the processor 105.
The text projection method 200 commences with execution of step 210. In execution of the step 210, an image corresponding to a scene of the camera field of view 175 is captured by the camera 127. The captured image is received by the computer module 101 from the camera 127.
The method 200 executes on the processor 105 to progress from step 210 to step 220. At step 220 the application 133 executes to process the captured image to determine a position of the printed document 170 in the received image, and a region of uniform texture in the captured image. In the example of
The method 300 is implemented as one or more submodules of the application 133, stored in the memory 106 and controlled by execution of the processor 105. The method 300 of
The method 300 executes to progress from step 310 to step 320. At step 320, the application 133 executes to determine lines of text on the binarized input. The step 320 executes to use a technique known in the art, such as “Constrained Run-Length Algorithm” (CRLA), also known as “Run-length Smearing”, to detect lines of text in the binarized input. In other arrangements, connected component analysis may be performed on the binarized or colour quantised image in execution of step 320 to identify each character or a word as a connected-component. In other arrangements, a distance between characters and words may be used to determine a direction of the text lines in execution of step 320. Typically, thresholds which are either pre-determined or determined by statistical analysis are used to group words and characters into text lines. In other arrangements of step 320, methods such as plotting a histogram of distances and angles of the nearest-neighbours of connected components may also be used to determine thresholds for merging connected components into text lines. In further arrangements, the received document image is rotated to a dominant text orientation. In such arrangements, text lines are formed which are mostly horizontal and a vanishing point of the mostly horizontal text lines can then be calculated to correct for perspective.
The method 300 executes on the processor 105 to proceed from step 320 to step 340. At step 340, the application 133 executes on the processor 105 to merge the text lines detected at step 320 to form groups of text lines. In execution of step 340, distance between text lines as well as length of text lines may be used to group lines together. In some arrangements, statistically determined thresholds or pre-determined thresholds may be used to determine if two adjacent text lines are part of the same group or not.
The method 300 executes on the processor 105 to proceed from step 340 to step 350. At step 350, the application 133 executes to determine a boundary or a perimeter around the contiguous group of text lines formed in step 340. Execution of the step 350 determines the boundary of the group of text lines by observing that the boundary is made up of white pixels with at least one black pixel that is 4-connected to the boundary. In other arrangements, connected component analysis of such boundary pixels may be used to determine a boundary around the uniform region of text lines. In alternative arrangements, a smallest bounding box or a polygon that encloses all text lines in a group can be determined. In some arrangements, the specified location 180 may include the uniform text region within the boundary and a further region adjacent to or surrounding the uniform text region. The method 300 executes on the processor 105 to proceed from step 350 to step 360. At step 360, the process 300 ends.
The method 300 is described above in relation to a textual surface. Similar methods may be used to determine a uniform region of a textured (non-textual) surface such as binarizing the image, determining lines or area of a pattern in the image, and determining a boundary in the textured surface.
Referring back to
Operation of step 230 is described with reference to
In the example of
To determine the spatial frequency, the step 230 executes on the processor 105 to binarize the uniform text region 180 of the document image. Using the binarization process, the region 180 of document image is converted into black and white pixels as shown in the region 710 of
In other arrangements, the size of each printed text character could be estimated according to a smallest bounding box 740 of a connected component. In other arrangements, a distribution of size of connected components may be determined and a mode of the distribution which represents the most frequently occurring text character size used to estimate the representative size of the text. In the example described in relation to
The method 200 executes on the processor 105 to proceeds from step 230 to step 240. At step 240, the application 133 executes on the processor 105 to determine attributes of the projected text. In determining the attributes of the projected text, the step 240 effectively operates to select a set of glyphs. The attributes of the projected text are determined based on the spatial frequency of the uniform texture surface, in this instance the spatial frequency of the uniform text region 180, determined in step 230. Step 240 executes to select a glyph set (or character set) for the projected text in which each glyph has visually contrasting inner and outer portions. The size of the inner and outer portions of the glyphs (characters) of the projected text is based upon the spatial frequency 770 determined in step 230. The outer portion of each glyph is sized proportionally greater than the inner portion.
The visual contrast required between the inner and outer portions may be determined according to a predetermined threshold in some arrangements. An example of a non-visually contrasting inner and outer portions is shown in a glyph or character 1305 in
Referring to
The text projection method 200 executes on the processor 105 to proceed from step 240 to a creation step 250. In execution of the step 250 on the processor 105, text with the attributes of the selected glyph set at step 240 is created. A typical graphics system executing on the processor 105 forms text characters out of individual glyphs. One typical type of glyph is known as path-glyphs. Path-glyphs are described in a vector format, formed of points that ultimately form a path. The formed path is often referred to as a centre-line path.
Creation of text at step 250 is described using the example of
A filled stroked outline is shown as the filled-outline 630 of
In determining text attributes and creating text characters, the steps 240 and 250 effectively operate to select a glyph set in which each glyph has visually contrasting inner and outer portions.
The text projection method 200 executes on the processor 105 to proceed from step 250 to step 260. In execution of step 260, the application 133 executes to project text characters created at step 250 using the selected glyph set on the region 180. The application 133 executes on the processor to communicate projection data for the text characters to the projector 169.
An example of a situation where a need arises for projecting text on a textured surface is an augmented reality translation application. In such an application, the text of the textured region 530 is translated to another language, and text of the translation is projected as the text 520. In such applications, drawing attention of the user away from the background textual region 530 is advantageous. The attention of the user may be focused on the projected text 520 by using projected text 520 which suppresses background text of the region 530 by using a pattern of contrasting colours at a similar spatial frequency as the background text. The arrangements described above relate to an example of a textual background. The arrangements described above may also be practised when text is projected on a non-textual background, such as a textured surface or background. Such backgrounds can occur in diverse real-life situations, for example projecting text on a piece of fabric, for example, projecting a price on a shirt, dress or a carpet. Implementation of such an arrangement is described with reference to
As shown in
The method 1400 executes to progress from step 1420 to step 1430. At execution of step 1430, the power of the individual frequency bins is used to determine a dominant frequency or a set of dominant frequencies. The dominant frequency is the frequency which has a highest peak in magnitude.
The method 1400 executes to progress from step 1430 to step 1440. At execution of step 1440, a spatial frequency 820 is determined, as shown in
The method 200 proceeds to step 240 to determine attributes of the projected text based upon the spatial frequency 820. The step 240 executes as described above. The method 200 proceeds to step 250 to create text with the determined projected text attributes.
A resultant created text string 830 is shown in
In another implementation, the steps 220 and 230 of the method 200 are modified to estimate spatial frequencies in two mutually perpendicular directions, for example horizontal and vertical directions, where one of the directions is the direction of flow of projected text. Such is described in relation to
A direction 1040 provides a direction of flow of projected text in
The arrangements described can also be practised for projection of text on to a structured textured surface, such as on to a barcode.
The steps 220 and 230 of the method 200 are modified for projection of text on to a barcode background. Each of the steps 220 and 230 execute to determine a measure of the texture by determining a size of the black and white stripes. A spatial frequency 920 (
The method 200 executes to determine attributes of the projected text, as at step 240, based upon the spatial frequency 920. The method 200 executes on the processor 105 to progress to create text using the determined attributes, at step 250. A resultant created text string 930 is shown by
This arrangements described can also be practised in a situation where the background texture is in a different orientation to the projected text. An example of such an implementation is described with reference to
The method 200 as described in relation to
Referring to
In some arrangements, the effect of alternating light and dark colours is further enhanced by simulating an effect of animation in either the inner filled-outline 630 or the outer filled-outline 640 of the projected text. In such arrangements one of the inner and outer portions of the glyph set comprises an animation pattern. An example of such an implementation is described with reference to
The method 200 as described in relation to
In one arrangement, the rate at which the pattern is varied is derived from the spatial frequency of a region of the background texture. The region may be, for example, a uniform text region (such as the region 540) or a region of any arbitrary textured surface (such as the texture of the area 810). In other arrangements, the pattern filled by the time-varying brush is inversely proportional to the spatial frequency of the background. In other arrangements, the fill created by the animation simulates an apparent movement of the pattern in a direction of the flow of the projected text. The animation is effectively a time-varying pattern to create an illusion of motion in the direction of flow of the projected text. The illusion of motion operates to further draw the user's attention to the projected text rather than the background.
The arrangements described are applicable to the projection industries. As described above, selection of the glyph set having visually contrasting inner and outer portions based upon the spatial frequency of the texture assists in suppressing the background texture. In selecting a set of glyphs having visually contrasting inner and outer portions based on the spatial frequency, the application 133 further operates to determine a minimum size font required to suppress the texture during projection of text characters.
The foregoing describes only some embodiments, and modifications and/or changes can be made thereto without departing from the scope and spirit of the disclosure, the embodiments being illustrative and not restrictive
Number | Date | Country | Kind |
---|---|---|---|
2015234303 | Sep 2015 | AU | national |