Abstract:
The present invention converts an image into a transparency, or “foreground image”, on which the readability of text and other detail is preserved after compositing with a background, while maintaining color information of broad areas of the image.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    In long distance learning, presentation material is displayed on a screen or board, and the presenter stands to the side or at times in front of the board or screen, talking about the subject and pointing to illustrations or text on the screen that would enhance the effectiveness of his presentation. In order to encode and transmit a visual of his lecture to a distant location, the presentation material is sent electronically, preferably from its original digital source if available, rather than a likely degraded “second generation” image from a camera capturing the original presentation screen. However, it is also desired that the presenter be shown as well, so as to make the material more relatable on a human level, through his gestures, social cues, and real time reaction to the material, and to the audience, bringing the lecture to life. 
         [0002]    At the remote distant location, the presenter is shown along with the presentation material. This is typically done by displaying the presentation material on part of, or all of, the receiver&#39;s screen, with the presenter in a separate frame or “window”, typically displayed on a corner of the screen. The presenter can also be composited over the presentation material to appear to be standing in front of it. The compositing of a foreground over a background has many methods of implementation. Foreground elements are isolated from an image so that what surrounded that element is replaced by the background image. Foregrounds elements will typically have both opaque and transparent areas that need to be identified and preserved in the finished composite. 
         [0003]    Numerous techniques have been developed to facilitate compositing. Blue screen and green screen, front projection retro-reflective photography, sodium light, infra-red, ultra violet, chroma-key, stereo pair images, depth keys, difference keys and many other matte extraction techniques are well known and employed every day. 
         [0004]    The present invention provides an improved method to integrate the presenter with his presentation material by using the presentation image as the foreground with both opaque areas and transparent areas through which the presenter can be seen as though standing behind it, and do this in a way that does not obscure nor degrade the readability of the text or other detail shown in the presentation material. In addition, any video source, either live or recorded, can be shown as the background instead of the presenter. These can be, for example, live images of the participants, collectively, like in a classroom, or individually, or of another presenter whose image is received from a distant location. If the graphics foreground layer is composited over the distant participant, it can be sent back to the participant so he can see himself behind the graphics facilitating his interaction. 
       SUMMARY OF THE INVENTION 
       [0005]    The present invention converts an image into a variable density transparency, or “foreground image with matte”, on which the readability of text and other detail is preserved after compositing with a background, and which allows the background to be seen through areas in the foreground while maintaining some of the color of the foreground areas. 
         [0006]    The Problem: 
         [0007]    Normally, a simple blending by some proportion of dissolve of two images can cause confusion when observing the details in each. It is not always clear which detail belongs with which image. Employing a chroma key or “color range” compositing technique to place graphics over a background image avoids background detail from showing through the foreground subject, reducing some of this confusion for the solid graphics areas which are a single color or smoothly varying colors, because the background detail is not visible at all in these areas. But this is also a problem in that these areas might cover parts of the background that should preferably be visible to effect better integration of the foreground and background, e.g. of the presentation material and the presenter. 
         [0008]    The readability of small detail such as text on the foreground image also depends on this detail contrasting against its background. For example, black text will disappear if composited over a black background. It is therefore necessary to provide a means to maintain this essential contrast in the composite if we are to maintain readability of the text in the composite. The process described in the sequel will maintain this contrast, making the text and detail more readable and clear while allowing more of the background to show through the single color or smoothly varying colors areas of the foreground. It will also maintain a predetermined level of color of these single color or smoothly varying colors areas. 
         [0009]    Forming the Transparency: 
         [0010]    The conversion of an image to a transparency or “foreground image with matte” is done by forming a “matte”, or map of transparency levels distributed over the image pixels. Thus, in this disclosure, the term “matte” represents transparency levels. This map is typically represented by a monochromatic image. By convention, the complement of this transparency matte, which would be an opacity map, is often incorporated into the image as an additional image channel, called the “alpha” channel, in addition to the usual color channels, such as the red, green, and blue component channels for an RGB color image. 
         [0011]    In the present invention, the matte levels are determined by the “edge” or “edginess” level of each pixel in the foreground image. These are scalar values obtained from an edge evaluator such as a derivative, laplacian, or similar filter convolved with the foreground image. Note that some of these filters would ascribe edginess to pixels in the neighborhood of the peak edge, decreasing with distance from that edge. See  FIGS. 2 and 3 . The edge evaluator can also consider normalizing these scalar values by values in the edge&#39;s neighborhood, to obtain detection based on ratio of values, rather than just based on value differences. 
         [0012]    In forming the matte, greater edginess is interpreted as low transparency, and lack of edginess is interpreted as high transparency. In other words, continuous smooth (i.e, a single color or smoothly varying colors areas) regions of the foreground become (at least partially) transparent, and edges such as text or other detail become opaque to the background; the level of edginess and the level of transparency are inversely related, and the matte level, i.e. the transparency level of each pixel, can range from 0.0 (fully opaque) to 1.0 (fully transparent). To allow some of the foreground color to be visible even in smooth areas of the foreground, the matte level, or level of transparency, can be limited to some preselected maximum. 
         [0013]    Compositing: 
         [0014]    With the matte determined, the compositing process is well known: The composite color can be computed as a weighted average of the background pixel color and the corresponding foreground pixel color. The matte or transparency level is used as the weight, or modulation, of the background color, and its complement as the weight or modulation on the corresponding foreground pixel color. In the distance learning or conferencing application described above, the background would typically consist of a live presenter image received from a distant location. 
         [0015]    Retaining Readability: 
         [0016]    Since the edge is clear and readable in the foreground image, retaining the foreground pixel colors in the neighborhood of the edge would retain this readability in the composite. Therefore readability in the composite would be enhanced if the matte indicates at least some level of opacity in the neighborhood of a strong edge, an edge indicated by a zero matte level. This can be achieved by expanding the zero-matte areas by a few pixels, or blurring the matte. Since blurring the matte would reduce the opacity (edginess) at an edge, the matte or its complement can be scaled to retain the original matte level at the edge. Alternatively, an edge evaluator that indicates some level of “edginess” for pixels surrounding the edge would also attain the same effect. Parameters used by such an edge evaluator can determine the size of the neighborhood affected, much like the blurring window size when blurring. 
         [0017]    Using Existing Compositing Methods: 
         [0018]    By compositing the transparency formed using the method of this invention over a blank green-screen, the foreground image is seen as though being in front of a green-screen and can be used as such to composite with other backgrounds using existing green-screen compositing methods.” 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0019]      FIG. 1  is a block diagram of the preferred implementation of the invention. 
           [0020]      FIG. 2  illustrates the edge or opacity computation of the preferred embodiment, showing gradual reduction of opacity with distance from the peak edge. 
           [0021]      FIG. 3  illustrates the edge or opacity computation of the preferred embodiment, showing gradual reduction of opacity with distance from the peak edge, but using a more sophisticated low pass filter. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0022]    The invention is directed to forming a matte in a prescribed manner and using this matte to composite the foreground over the background. 
         [0023]    In the preferred embodiment, the matte is formed as follows. 
         [0024]    1. Blur a copy of the foreground image horizontally using a selected blur window length. 
         [0025]    2. Blur the result vertically using a selected blur window length. 
         [0026]    3. Compute the color or brightness difference between each foreground pixel and the corresponding pixel in the blurred image. 
         [0027]    4. Compute the magnitude or absolute value of this difference for each pixel. 
         [0028]    5. Determine or select a threshold on this magnitude, above which an edge is to be considered definite. 
         [0029]    6. Divide this magnitude by the threshold, resulting in a value range from 0.0 to 1.0. 
         [0030]    7. Clip resulting values that are greater than 1.0, to 1.0. 
         [0031]    8. Compute the complement of the result for each pixel. This is the matte or transparency level for each pixel. 
         [0032]    9. Multiply the matte computed to this point by a scale factor. This results in limiting the level of transparency over the entire foreground, permitting non-edge parts of the foreground to be visible at a level indicated by that scale factor. 
         [0033]    With the matte determined, a composite can be formed as a weighted average of a background and the foreground image, with the matte as the weight or modulation of the background, and its complement as the weight or modulation of the foreground. 
         [0034]    This method uses two main parameters: blur window length, and a threshold or scaling factor. The blur window length can be used for both horizontal and vertical blurring. 
         [0035]    Otherwise, this parameter can be replaced by two parameters: one for horizontal blurring and the other for vertical. 
         [0036]    An additional optional adjustment is to set a maximum transparency level, indicating the maximum transparency permitted for each pixel. This allows more of the foreground colors to show even in smooth areas without edges. This additional optional adjustment can be implemented simply by multiplying the matte by the factor indicated by the adjustment, the factor ranging from 0.0 to 1.0 inclusive. 
         [0037]    The method described in this invention can be implemented as a software application in a general purpose computer, or as hardware/software combination, using FPGA devices, GPU devices or other dedicated image processing devices.  FIG. 1  illustrates a preferred embodiment of a hardware/software processing apparatus, diagraming the process as follows: 
         [0038]    The presentation or foreground image FG  1  is passed through a low pass filter LPF  2 . The absolute difference or magnitude of the difference between the original foreground FG and the filtered version is computed in the AD block  3 . This difference is then multiplied by an input scaling factor OP  4  to convert the range of this absolute difference to an opacity range in which 0 represents no opacity (total transparency) and 1.0 represents complete opacity (zero transparency). The opacity level is then clipped  5  so that any levels above 1.0 are replaced by 1.0. The opacity levels are then converted to transparency levels by complementing  6  the opacity (subtracting from 1.0). The result is then multiplied by an input transparency factor TR  7 , with the effect of limiting the transparency to not exceed TR. The result is then clipped  8  at 1.0. This clipped result is the matte, which provides scalar values (is monochromatic) ranging from 0.0 to 1.0 and representing transparency levels for each pixel in which 0 represents complete opacity (zero transparency) and 1.0 represents complete transparency (total transparency). 
         [0039]    The scaling factor OP  5  is user determined based on whether the user wants the edges to reach full opacity, whereas the scaling factor TR  7  is user determined based on whether the user wants the smooth areas with no edges to be fully or only partially transparent—that is, fully background, or some mix with the foreground color. 
         [0040]    In general, it would be preferred that the text and lines as in line drawings should be fully opaque, and the user would determine the values to use by observation, but other methods could be employed based on the method of estimating edge levels, and the distribution of pixel values and value variations expected for the material being presented. 
         [0041]    Also, this adjustment need not be made separately for each image—it could (and generally would) be fixed after an initial adjustment, generally based on observation/experimentation, e.g., when the system is setup, to accommodate the material generally presented. 
         [0042]    The original foreground image FG  1  is then subtracted from an input background image BG  9  and multiplied  10  by the matte produced by the process described in the previous paragraphs. This product is then added  11  to the original foreground FG, and the value range clipped by clip blocks  12  and  13  to remain within a valid color range, forming the final composite. 
         [0043]    Note that the D blocks represent delays for synchronizing the timing between the different signal paths. Also, the above mentioned range [0.0,1.0] is represented in the apparatus by a suitable integer range. For example, for data apparatus using 10 bit data, the range between 0.0 and 1.0 is represented by the range of integers from 0 to 1023. 
         [0044]    Referring now to  FIGS. 2 and 3 , that if the blur (low pass filter  2 ) in steps one and two uses simple neighborhood averaging, the opacity would decrease to transparency linearly with distance from the peak edge as shown in  FIG. 2 . But if the blur uses weighted averaging like a Gaussian blur, the transition from opacity to transparency around an edge would be more graceful as shown in  FIG. 3 . In this connection, graphs  1 ,  2  and  3  in  FIGS. 2 and 3  correspond to elements in  FIG. 1  as follows: the signal FG  1 , the output from low pass filter  2  and the output from absolute difference block  3 , respectively. 
         [0045]    Graph  1  shows a step function representing value variations over FG pixels in the neighborhood of an “edge” pixel. The value range used is [0.0,1.0]. 
         [0046]    Graph  2  shows the result of a simple low pass filter (averaging the neighborhood pixels), which results in a linear ramp from 0 to 1, centered at the above mentioned edge pixel. 
         [0047]    Graph  3  shows the absolute difference between the original (step function) and the low pass filtered version, forming a pyramid, with a peak at the original edge pixel, reaching a level of 0.5.