Online data communications are quite prevalent and pervasive in modern society, and are becoming more so all the time. Moreover, developments in software, communication protocols, and peripheral devices (e.g., video cameras), along with developments in other computing disciplines, have collectively enabled and facilitated the inclusion of multimedia experiences as part of such communications. Indeed, the multimedia nature and aspects of a given communication session are often the focus and even essence of such communications. These multimedia experiences take forms such as audio chats, video chats (that are usually also audio chats), online meetings (e.g., web meetings), and the like.
Using the context of online meetings as an illustrative example, it is often the case that one of the participants is the designated presenter, and often this designated presenter opts to include some visual materials as part of the offered presentation. Such visual materials may take the form of or at least include visual aids such as shared desktops, multiple-slide presentations, and the like. In some instances, from the perspective of another attendee at the online meeting, only such visual materials are presented on the display of the online meeting, while the presenter participates only as an audio voiceover. In other instances, the presenter may be shown in one region of the display while the visual materials are shown in another. And other similar examples exist as well.
Conventional videoconferencing techniques typically employ a camera mounted at one location and directed at a user. The camera acquires an image of the user and background of the user that is then rendered on the video display of another user. The rendered image typically depicts the user, miscellaneous objects, and background that are within the field-of-view of the acquiring camera. For example, the camera may be mounted on the top edge of a video display within a conference room with the user positioned to view the video display. The camera field-of-view may encompass the user and, in addition, a conference table, chairs, and artwork on the wall behind the user, (i.e., anything else within the field-of-view). Typically, the image of the entire field-of-view is transmitted to the video display of a second user. Thus, much of the video display of the second user is filled with irrelevant, distracting, unappealing, or otherwise undesired information. Such information may diminish the efficiency, efficacy, or simply the esthetic of the videoconference. This reduces the quality of the user experience.
Improvements over the above-described developments have recently been realized by technology that, among other capabilities and features, extracts what is known as a “persona” of a user from a video feed from a video camera that is capturing video of the user. This technology is described in the following patent documents, each of which is hereby incorporated by reference in its respective entirety into this disclosure: (i) U.S. patent application Ser. No. 13/083,470, entitled “Systems and Methods for Accurate User Foreground Video Extraction,” filed Apr. 8, 2011 and issued Aug. 26, 2014 as U.S. Pat. No. 8,818,028, (ii) U.S. patent application Ser. No. 13/076,264, entitled “Systems and Methods for Embedding a Foreground Video into a Background Feed based on a Control Input,” filed Mar. 30, 2011 and published Oct. 6, 2011 as U.S. Patent Application Pub. No. US2011/0242277, (iii) U.S. patent application Ser. No. 14/145,874, entitled “System and Methods for Persona Identification Using Combined Probability Maps,” filed Dec. 31, 2013 and published Jul. 2, 2015 as U.S. Patent Application Pub. No. US2015/0187076, (iv) unpublished U.S. patent application Ser. No. 14/716,495, entitled “Methods and Systems for Assigning Pixels Distance-Cost Values Using a Flood Fill Technique,” filed May 19, 2015, and (v) unpublished U.S. patent application Ser. No. 14/716,511, entitled “Methods and Systems or Identifying Background in Video Data Using Geometric Primitives,” filed May 19, 2015.
The extracted persona, which in some examples appears as a depiction of the person from the torso up (i.e., upper torso, shoulders, arms, hands, neck, and head), and in other examples may be a depiction of the entire person from head to foot, may then visually combined by this technology with various other video content. In various different instances, one person may have the role of a presenter, or multiple people may participate in a panel type discussion, a meeting, or even a simple chat session, where each person may be at a separate location. In some instances, the persona(s) are combined with content such as a multiple-slide presentation, such that, e.g., the presenter appears to the attendees at the online meeting to be superimposed over the content, thus personalizing and otherwise enhancing the attendees' experiences.
As mentioned, this persona extraction is carried out with respect to video data that is being received from a camera that is capturing video of a scene in which the user is positioned. The persona-extraction systems and methods may substantially continuously (e.g., with respect to each frame) identify which pixels represent the user and which pixels do not.
Disclosed herein are methods and systems for real-time user extraction using deep learning networks. In some embodiments, the methods and systems for user extraction use erosion and flood-fill operations. In at least one embodiment, due to iterative processes, persona extraction can be accomplished for many frames without requiring image-depth data for the respective frames.
In one embodiment, the process relates to an ongoing video stream. The process includes obtaining a first frame of color pixel data. The process also includes checking whether a reset flag is cleared or set at a first time. The process also includes generating a trimap for the first frame. If the reset flag is cleared at the first time, generating the trimap for the first frame comprises obtaining a user-extraction contour that is based on an immediately preceding frame, and generating the trimap for the first frame based on the obtained user-extraction contour. The process also includes outputting the generated trimap for use in extracting a user persona from the first frame.
In one embodiment, the process relates to an ongoing video stream. The process also includes checking whether a reset flag is cleared or set at a first time. The process also includes generating a trimap for the first frame. If the reset flag is set at the first time, generating the trimap for the first frame comprises detecting at least one persona feature in the first frame. Generating the trimap also comprises generating an alpha mask at least in part by aligning an intermediate persona contour with the detected at least one persona feature, wherein the intermediate persona contour is based on a result of a color-based flood-fill operation having been performed on a previous frame of color pixel data that had been segmented by a deep-learning-network-based segmentation (DNNS) process. The trimap is then generated for the first frame based on the generated alpha mask. The process also includes outputting the generated trimap for use in extracting a user persona from the first frame.
In some embodiments, generating the trimap based on the obtained user-extraction contour or generated alpha mask comprises performing an erosion operation inward from the contour or mask and performing a dilation operation outward from the contour or mask.
In some embodiments, aligning the intermediate persona contour with the detected at least one persona feature comprises at least one of scaling and translating the intermediate persona contour to fit the detected at least one persona feature.
In one embodiment, the at least one persona feature may comprise a user face. In another embodiment, the at least one persona feature may comprise at least one of eyes, hair, ears, nose, mouth, and/or the like. In another embodiment, the persona feature points may be related to specific feature points from the intermediate persona contour, such that the intermediate persona contour may be mapped to fit the corresponding location(s) (and size(s)) of the related feature points in the current frame.
In some embodiments, after generating the trimap, the process also includes evaluating at least one reset condition. If at least a predefined subset of the at least one reset condition is true, the process may also include responsively setting the reset flag for a following frame. If each of the at least one reset condition is true, the process may also include responsively communicating an MLS request to the MLS process. In some embodiments, the at least one reset condition includes: (i) an elapsed time from a previous MLS request being greater than a time threshold; (ii) a difference between a post-core segmentation user-extraction contour for the first frame and the intermediate persona contour exceeding a difference threshold; (iii) a level of motion in the first frame exceeding a motion threshold; and iv) at least one user being detected in the first frame. In some embodiments, the predefined subset includes reset conditions (i) and (ii). In some embodiments, the predefined subset consists of reset conditions (i) and (ii). In some embodiments, the MLS request specifies the first frame as an input to the MLS process.
In some embodiments, the result of an MLS request may be a new MLS process segmented frame, based on the frame resulting in the MLS request. Through a series of additional steps, the MLS request result may result in the replacement of the intermediate persona contour.
In another embodiment, the process relates to the initialization or reinitialization of a video stream. The process includes receiving a first segmented frame of color pixel data, the first segmented frame comprising an initial-segmentation persona contour that was identified by an MLS process. The process also includes defining an eroded MLS persona contour and a dilated MLS persona contour, both based on the initial-segmentation persona contour. The process includes defining an intermediate persona contour at least in part by performing a bidirectional color-based flood-fill operation outward from the eroded MLS persona contour and inward from the dilated MLS persona contour. The process includes obtaining a second frame of color pixel data from an input source (e.g., camera, etc.). The process includes detecting at least one second-frame persona feature in the second frame. The process includes generating a second-frame alpha mask at least in part by aligning the intermediate persona contour with the detected at least one second-frame persona feature. The process includes generating a second-frame trimap based on the generated second-frame alpha mask. The process includes outputting the generated second-frame trimap for use in extracting a user persona from the second frame.
In some embodiments, the eroded MLS persona contour is defined at least in part by performing an erosion operation inward from the initial-segmentation persona contour, and the dilated MLS persona contour is defined at least in part by performing a dilation operation outward from the initial-segmentation persona contour.
In some embodiments, generating the second-frame trimap comprises eroding and dilating the alpha mask to a lesser extent than is used when defining the eroded MLS persona contour and the dilated MLS persona contour for the first segmented frame.
In some embodiments, aligning the intermediate persona contour with the detected at least one second-frame persona feature comprises at least one of scaling and translating the intermediate persona contour to fit the detected at least one second-frame persona feature.
In some embodiments, the process further comprises filtering the first segmented frame to exclude pixels whose confidence level, as defined by a confidence map generated by the MLS process, falls below a confidence threshold.
In some embodiments, after generating the second-frame trimap, the process also includes evaluating at least one reset condition. If at least a predefined subset of the at least one reset condition is true, the process may also include responsively setting the reset flag for a following frame. If each of the at least one reset condition is true, the process may also include responsively communicating an MLS request to the MLS process. In some embodiments, the at least one reset condition includes: (i) an elapsed time from a previous MLS request being greater than a time threshold; (ii) a difference between a post-core segmentation user-extraction contour for the second frame and the intermediate persona contour exceeding a difference threshold; (iii) a level of motion in the second frame exceeding a motion threshold; and (iv) at least one user being detected in the second frame. In some embodiments, the predefined subset includes reset conditions (i) and (ii). In some embodiments, the predefined subset consists of reset conditions (i) and (ii). In some embodiments, the MLS request specifies the second frame as an input to the MLS process.
In some embodiments, the process further comprises obtaining a third frame of color pixel data. The process further includes checking whether a reset flag is cleared or set at a third time. The process further includes generating a third-frame trimap. If the reset flag is cleared at the third time, then generating the third-frame trimap comprises: obtaining a post-core segmentation user-extraction contour that is based on the second frame; and generating the third-frame trimap based on the obtained post-core segmentation user-extraction contour. If the reset flag is set at the third time, then generating the third-frame trimap comprises: detecting at least one third-frame persona feature in the third frame; generating a third-frame alpha mask at least in part by aligning the intermediate persona contour with the detected at least one third-frame persona feature; and generating the third-frame trimap based on the generated third-frame alpha mask. The process further includes outputting the generated third-frame trimap for use in extracting a user persona from the third frame.
In one embodiment, the systems and methods disclosed herein may take the form of an apparatus. The apparatus may comprise a communication interface. The apparatus may comprise a processor. The apparatus may comprise non-transitory, computer readable data storage containing instructions executable by the processor for causing the apparatus to carry out a set of functions, the set of functions comprising any or all of the previous described processes.
The above overview is provided by way of example and not limitation, as those having ordinary skill in the relevant art may well implement the disclosed systems and methods using one or more equivalent components, structures, devices, and the like, and may combine and/or distribute certain functions in equivalent though different ways, without departing from the scope and spirit of this disclosure.
A more detailed understanding may be had from the following description, which is presented by way of example in conjunction with the following drawings, in which like reference numerals are used across the drawings in connection with like elements.
The systems and methods disclosed herein are generally directed to user (e.g., user persona) extraction from a video stream. In some embodiments, the systems and methods assume the existence of an alpha mask (e.g., persona contour) from a previous frame, and then utilize a sequence of a shrinking (e.g., erosion) operation followed by a color-based flood fill operation to define an alpha mask (e.g., persona contour) for the current frame. Various further embodiments for identifying an initialized (or reinitialized) persona contour are also disclosed herein.
In some embodiments, the camera may be configured to capture depth information related to the image 102. Such depth information may or may not be communicated to the computing device 104. However, depth information in not required for the herein disclosed methods and systems to function.
Computing device 104 may take the form of a desktop computer, laptop computer, tablet computer, smart phone, or the like. In the embodiment shown in
The preceding paragraph is an example of the fact that, in the present disclosure, various elements of one or more of the described embodiments are referred to as modules that carry out (i.e., perform, execute, and the like) various functions described herein. As the term “module” is used herein, each described module includes hardware (e.g., one or more processors, microprocessors, microcontrollers, microchips, application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), memory devices, and/or one or more of any other type or types of devices and/or components deemed suitable by those of skill in the relevant art in a given context and/or for a given implementation. Each described module may also include instructions executable for carrying out the one or more functions described as being carried out by the particular module, where those instructions could take the form of or at least include hardware (i.e., hardwired) instructions, firmware instructions, software instructions, and/or the like, stored in any non-transitory computer-readable medium deemed suitable by those of skill in the relevant art.
Again with respect to
In some embodiments, the video module may also obtain an initialized persona contour for the current frame of image data, as discussed below in relation to
In some embodiments, contours may comprise “alpha masks” which identify the pixel locations belonging to a desired persona (e.g., user). A given alpha mask may take the form of or at least include an array with a respective stored data element corresponding to each pixel in the corresponding frame, where such stored data elements are individually and respectively set equal to 1 (one) for each user pixel and to 0 (zero) for every other pixel (i.e., for each non-user (a.k.a. background) pixel).
The described alpha masks correspond in name with the definition of the “A” in the “RGBA” pixel-data format known to those of skill in the art, where “R” is a red-color value, “G” is a green-color value, “B” is a blue-color value, and “A” is an alpha value ranging from 0 (complete transparency) to 1 (complete opacity). In a typical implementation, the “0” in the previous sentence may take the form of a hexadecimal number such as 0x00 (equal to a decimal value of 0 (zero)), while the “1” may take the form of a hexadecimal number such as 0xFF (equal to a decimal value of 255); that is, a given alpha value may be expressed as an 8-bit number that can be set equal to any integer that is (i) greater than or equal to zero and (ii) less than or equal to 255. Moreover, a typical RGBA implementation provides for such an 8 bit alpha number for each of what are known as the red channel, the green channel, and the blue channel; as such, each pixel has (i) a red (“R”) color value whose corresponding transparency value can be set to any integer value between 0x00 and 0xFF, (ii) a green (“G”) color value whose corresponding transparency value can be set to any integer value between 0x00 and 0xFF, and (iii) a blue (“B”) color value whose corresponding transparency value can be set to any integer value between 0x00 and 0xFF. And certainly other pixel-data formats could be used, as deemed suitable by those having skill in the relevant art for a given implementation.
When merging an extracted persona with content, the disclosed methods and/or systems may create a merged display in a manner consistent with the related applications previously cited; in particular, on a pixel-by-pixel (i.e., pixel-wise) basis, the merging is carried out using pixels from the captured video frame for which the corresponding alpha-mask values equal 1, and otherwise using pixels from the content.
In some embodiments, the systems and methods disclosed herein may generate a trimap of the image or frame. Generally, as used herein, a trimap may define a background region (e.g., non-user and/or alpha value of 0), a foreground region (e.g., user and/or alpha value of 1), and an unclear region (e.g., to be divided between foreground and background) of a frame of pixel data. Depending on the embodiment, generated trimaps may be based at least in part upon erosion and dilation operations performed on alpha masks and/or contours.
One embodiment of the systems and methods disclosed herein takes the form of a process 200, as depicted in
In some embodiments, the generated trimaps may be output to a core segmentation module for additional processing, and for generating the user-extraction (UE) contour for the current frame. In some embodiments, the generated UE contour may be communicated back to or accessible by the process, such as for use in the processing of the next frame (e.g., if communicated back to process after UE contour generation), or for use in checking reset conditions.
In some embodiments, aligning the intermediate persona contour with the detected at least one persona feature (e.g., 240) comprises at least one of scaling and translating the intermediate persona contour to fit the detected at least one persona feature.
In some embodiments, generating the trimap based on the obtained user-extraction contour (225) or generated alpha mask (245) comprises performing an erosion operation inward from the contour or mask and performing a dilation operation outward from the contour or mask. Such operations are discussed more fully in relation to
In some embodiments, after generating the trimap (e.g., 225 or 245), the process 200 also includes evaluating at least one reset condition 248. If at least a predefined subset of the at least one reset condition is true, the process may also include responsively setting the reset flag for a following frame. If each of the at least one reset condition is true, the process may also include responsively communicating an MLS request to the MLS process. In some embodiments, the at least one reset condition includes: (i) an elapsed time from a previous MLS request being greater than a time threshold; (ii) a difference between a post-core segmentation user-extraction contour for the first frame and the intermediate persona contour exceeding a difference threshold; (iii) a level of motion in the first frame exceeding a motion threshold; and (iv) at least one user being detected in the first frame. In some embodiments, the predefined subset includes reset conditions (i) and (ii). In some embodiments, the predefined subset consists of reset conditions (i) and (ii). In some embodiments, the MLS request specifies the first frame as an input to the MLS process.
In some embodiments, the result of an MLS request may be a new MLS process segmented frame, based on the frame resulting in the MLS request. Through a series of additional steps, the MLS request result may result in the replacement of the intermediate persona contour.
In one embodiment, a 2D user extraction algorithm main flow 300 may be as illustrated in
In some embodiments, the core segmentation 310 may operate a variety of sub-processes for user extraction, such as, but not limited to: node weights 315, edge weights 320, graph cut 325, module updates 330, and/or the like.
In some embodiments, the node weights 315 may further comprise generating a foreground color histogram based on colors of the pixels in the generated trimaps; generating a background color histogram based on colors of the pixels the generated trimaps; and wherein a foreground-background probability map (e.g., one factor in node weights) is based at least in part on the relative occurrence of the colors of the respective pixels in the generated foreground and background color histograms. In some embodiments, node weights 315 may further comprise distance factors
In one embodiment, node weights 315 may be based at least in part on a color factor (e.g., color change from a seed pixel). For example, the greater the color difference between a pixel under analysis and a seed pixel, the more likely it is that that pixel is in the background. In one embodiment, node weights 315 may be based at least in part on a color history for a particular pixel. In one embodiment, the node weights 315 may be based at least in part on a distance factor (e.g., pixel distance from a seed pixel). For example, in one embodiment, the greater distance a pixel under analysis is from a seed pixel, the more likely it is that that pixel is in the background. In some embodiments, the “weights” for pixels may be alpha values between 0 and 1 (e.g., values closer to 0 have higher probability of being background, values closer to 1 have higher probability of being background), and/or the like. In other embodiments other weighting or probability approaches may be utilized (such as the log-likelihood ratios discussed above), as known in the art. Edge weights 320 may be established at least in part from the node weights 315.
In one embodiment, the graph cut sub-process 325 may be a graph cut utility (such as what is available from within the OpenCV library) used to segment the pixels in an unclear region of a trimap into foreground and background, for example using the node weights 315 and/or the edge weights 320. In some embodiments, the segmentation of the persona extraction may be formulated as a mincut/maxflow problem. In this case, the image is mapped into a graph, and each pixel is mapped to a node. In addition, there are two additional special nodes called the source and the sink. The node for each image pixel is connected to both the source and the sink. If a probability map (or aggregate map) indicates that that pixel is likely to be foreground, a weight is applied to the edge linking the pixel to the source. If a probability map (or aggregate map) indicates that that pixel is likely to be background, a weight is applied to the edge linking the pixel to the sink. The magnitude of the weight increases as the probability becomes more certain. In addition, edges are included that link the nodes for a pixel to the nodes of a neighboring pixel. The weights of these nodes are inversely proportional to the likelihood of a boundary appearing there. One possible technique is to set these weights to be large if the two pixels are similar in color and set them to be small if the two pixels are not. Thus, transitioning from foreground to background is favored in areas where the color is also changing. The mincut problem is then solved by configuring the algorithm to remove edges from the graph until the source is no longer connected to the sink. (The algorithm will minimize the total weight of the edges it removes.) Since the node for each pixel is connected to both the source and the sink, one of those edges must be removed by the cut. If the node remains connected to the source (the edge to the sink was removed), that pixel is marked as foreground (e.g., alpha value of 1). Otherwise, the node is connected to the sink (the edge to the source was removed), and that pixel is marked as background (e.g., alpha value of 0). The formulation described may be solved efficiently through a variety of techniques.
In some embodiments, after a graphcut (e.g., user persona extraction), module updates 330 may occur. In one embodiment, module updates may include communicating the UE contour back to the region process module 305. In other embodiments, module updates may include updates to models for node weights, background history models, color models, and/or the like, based on the results of the graph-cut. By these module updates, models may remain up-to-date and may be used efficiently for subsequent frames.
In some embodiments, the post processing module 335 may operate a variety of sub-processes for improving an extracted user persona/contour, including but not limited to: edge stabilization 340, upscaling 345, smoothing filters 350, and/or the like as known to those of ordinary skill in the art.
In some embodiments, one or more sub-processes may be located in different modules, there may be fewer or additional modules, modules may be combined, and/or the like.
The MLS thread 404 may receive input data from an MLS request within a UE thread 402. From the input data (e.g., a frame of color pixel data), the MLS thread may run a machine learning based segmentation to generate an MLS result (e.g., a segmented image). In one embodiment, the MLS thread may use a deep neural network (DNN) machine learning process, such as a fully convolutional network (FCN). For example, FCN is more fully discussed in J. Long, E. Shelhamer, and T. Darrell., “Fully convolutional networks for semantic segmentation”, in IEEE CVPR, 2015. Another form of machine learning process, using recurrent neural networks, is discussed in S. Zheng et al., “Conditional Random Fields as Recurrent Neural Networks,” 2015 IEEE International Conference on Computer Vision (ICCV), Santiago, 2015, pp. 1529-1537. In some embodiments, an MLS process is “trained” offline for pixel-level labelling tasks, and adapted for semantic image segmentation. In some embodiments, an MLS process may comprise a combination of a plurality of MLS-subprocesses. For example, the MLS process may comprise a segmentation process using one or several deep learning networks.
In some embodiments, the MLS process receives as input a frame of color pixel data. The input frame may be received from a UE process or thread, from a video module, or the like, as examples. In some embodiments, the MLS process operates on the received frame of color pixel data to generate an MLS segmented image, where the MLS process has identified at least one contour related to at least one person in the frame. In some embodiments, such an MLS contour takes the form of or at least includes an alpha mask associated with the frame. In other embodiments, the result of the MLS process includes a data element indicating a single label (e.g., background, person, car, chair, sofa, etc.) for each pixel in the frame. In some embodiments, only labels indicating “person” are retained for defining the MLS contour(s), or the like. And certainly other examples could be listed here as well and are known to those having skill in the art with respect to the inputs to and outputs from MLS processes.
As shown in
In one embodiment, the result from the MLS thread is a fully processed intermediate persona contour. In one embodiment, the result from the MLS thread is a segmented image, which may be further processed within the region process of
Once received, the UE thread 402 may update a stored MLS result with the new MLS result 430, and next process a frame M of color pixel data 435. In some embodiments, a reset flag for a next frame may be set based on the receipt of the MLS result. The new MLS result 430 may be utilized by the UE thread, and processing may continue on with a frame M+1 440, etc. The handling of a newly received MLS result 430 is further discussed in relation to
In one embodiment, the process 500 relates to an ongoing video stream. The process includes obtaining a first frame of color pixel data 505. The process also includes checking whether a reset flag is cleared or set 510. The process also includes generating a trimap for the first frame. If the reset flag is set 534, generating the trimap for the first frame may comprise applying an intermediate persona contour to the first frame 535. The intermediate persona contour 555 is based at least in part on a result of a color-based flood-fill operation having been performed on a previous frame of color pixel data that had been segmented by a machine-learning process. In some embodiments, applying the intermediate persona contour 535 to the first frame may comprise detecting at least one persona feature in the first frame. An alpha mask may be generated at least in part by aligning the intermediate persona contour 555 based on the detected at least one persona feature. In some embodiments, aligning the intermediate persona contour with the detected at least one persona feature in the first frame may comprise at least one of scaling and translating the intermediate persona contour to fit the detected at least one persona feature in the first frame. Such scaling and/or translating may be based on the relative location and size between the detected at least one persona feature in the first frame and at least one feature in the MLS result underlying the intermediate persona contour. In some embodiments, generating the trimap comprises performing an erosion operation inward from the generated alpha mask and a dilation operation outward from the generated alpha mask. In some embodiments, the extent of erosion and dilation is less than that for generating the intermediate persona contour from the MLS result. In some embodiments, the process may include evaluating at least one reset condition 520, discussed further below. The process also includes outputting the generated trimap for use in user persona extraction from the first frame 525.
In some embodiments, detection of at least one persona feature in a frame may be carried out at least in part using methods known to those of ordinary skill in the art. For example, where the persona feature may comprise a user face, detection may comprise the use of combinations of genetic algorithms and Eigen-face techniques, Google Vision or Mobile Vision APIs, the FaceRecognizer operations within OpenCV, and/or the like.
In some instances, it may occur that no persona feature is detected. In such instances, the processing may revert to applying the user-extraction contour 515, as if the reset flag had not been set. And certainly other example implementations could be listed here.
Examples of the erosion and dilation operations are illustrated in
In one embodiment, the contour and/or mask 705 may be eroded by a predefined number of pixels. In some embodiments, the contour/mask 705 may be eroded by a percentage of the pixels in the frame, a percentage of pixels related to the contour/mask 705, and/or the like. In one embodiment, the contour/mask 705 may be eroded by a percentage of the area of the reference contour (e.g., area of initial estimate of user persona in current frame). In some embodiments, the erosion operation may be a utility, such as what is available from within the OpenCV library.
In some embodiments, the dilation operation may be a utility, such as what is available from within the OpenCV library. In one embodiment, the contour/mask 705 may be dilated by a predefined number of pixels. In some embodiments, the contour/mask 705 may be dilated by a percentage of the pixels in the frame, a percentage of pixels related to the contour/mask 705, and/or the like. In one embodiment, the contour/mask 705 may be dilated by a percentage of the area of the contour/mask 705 (e.g., an initial estimate of user persona in current frame).
In some embodiments, after generating the trimap, the process also includes evaluating at least one reset condition 520. If at least a predefined subset of the at least one reset condition is true, the process may also include responsively setting the reset flag for a following frame 530. If each of the at least one reset condition is true, the process may also include responsively communicating an MLS request to the MLS process 534. In some embodiments, the at least one reset condition includes: i) an elapsed time from a previous MLS request being greater than a time threshold; ii) a difference between a post-core segmentation user-extraction contour for the first frame and the intermediate persona contour exceeding a difference threshold; iii) a level of motion in the first frame exceeding a motion threshold; and iv) at least one user being detected in the first frame. In some embodiments, the predefined subset includes reset conditions i) and ii). In some embodiments, the predefined subset consists of reset conditions i) and ii). In some embodiments, the MLS request specifies the first frame as an input to the MLS process.
In some embodiments, the result of an MLS request may be a new MLS process segmented frame, based on the frame resulting in the MLS request. Through a series of additional steps, the MLS request result may result in the replacement of the intermediate persona contour.
In another embodiment, the process 500 relates to the initialization or reinitialization of a video stream. Depending on the particular scenario, the process includes receiving a segmented first frame of color pixel data from an MLS thread 540, and updating an MLS result 545. The process may also include setting a reset flag for a next frame 547 after updating the MLS result 545.
The updated MLS result 545 is used to update or generate an intermediate persona contour 555. The intermediate persona contour 555 is based at least in part on a result of a color-based flood-fill operation having been performed on the MLS result, where the MLS result is a frame of color pixel data that had has been segmented by a machine-learning process in the MLS thread or process (e.g., MLS process module 118 In
In some embodiments, once the MLS result is updated (545), a generation and/or refining process 550 on such MLS result may occur. For example, the system or process may detect at least one persona feature in the updated MLS result (e.g., the RGB or RGBA frame that is used to compute the intermediate persona contour 555), such as for later use in the process.
In some embodiments, the generation/refining process 550 further comprises filtering the MLS process segmented frame (e.g., MLS result) to exclude pixels whose confidence level, as defined by a confidence map (which may be generated as a byproduct by the particular algorithm used in the MLS process, and shows a confidence level of the algorithm in labeling a pixel as user/foreground or non-user/background), falls below a confidence threshold. In some embodiments, the confidence thresholding may result in “blobs” of unassigned pixels within foreground regions or background regions. For example, as in
After one or more refining or other process steps, the initial-segmentation persona contour may be used for generating a trimap, such as by a combination erosion and dilation process, as discussed above in relation to
Further steps of generating the intermediate persona contour are set forth in relation to
In some additional embodiments, such as for initializing user extraction from a video stream, an avatar-fitting process, or the like (e.g., steps 560, 565). For example, in one embodiment, a user may press a button or key to initiate a fitting process 560. In one embodiment, the user may be prompted to align their captured image with a silhouette overlaid on a displayed image frame. In some embodiments, the user may be prompted to confirm when they have aligned with the silhouette 565. A reference contour may then be obtained based at least in part on the silhouette, and this reference contour then used to generate an intermediate persona contour 555, such as through similar generation/refining steps as discussed above in relation to step 550. With reference to
In some embodiments, an alternative erosion and dilation operation may be utilized in the avatar fitting process (e.g., a stronger shrink), for example to estimate a user offset from the template (either extending outside template or too small within template).
In some embodiments, the systems and methods disclosed herein relate to a process, as illustrated in
The process includes receiving a first segmented frame of color pixel data 1005, the first segmented frame comprising an initial-segmentation persona contour that was identified by an MLS process. The process includes defining an eroded MLS persona contour and a dilated MLS persona contour 1010, both based on the initial-segmentation persona contour. The process includes defining an intermediate persona contour 1015, at least in part by performing a bidirectional color-based flood-fill operation outward from the eroded MLS persona contour and inward from the dilated MLS persona contour. The process also includes obtaining a second frame of color pixel data from an input source 1020. The process also includes detecting at least one second-frame persona feature in the second frame 1025. The process also includes generating a second-frame alpha mask 1030, at least in part by aligning the intermediate persona contour with the detected at least one second-frame persona feature. The process also includes generating a second-frame trimap based on the generated second-frame alpha mask 1035. The process also includes outputting the generated second-frame trimap for use in extracting a user persona from the second frame 1040.
In some embodiments, the obtained second frame is processed in the “reset flag set” path of
In some embodiments, the systems and methods may proceed with a third (or next) frame of image data, generally as discussed above in relation to
In one embodiment, the systems and methods disclosed herein may take the form of an apparatus. The apparatus may comprise a communication interface. The apparatus may comprise a processor. The apparatus may comprise non-transitory, computer readable data storage containing instructions executable by the processor for causing the apparatus to carry out a set of functions, the set of functions comprising any or all of the previous described processes.
Although features and elements are described above in particular combinations, those having ordinary skill in the art will appreciate that each feature or element can be used alone or in any combination with the other features and elements without departing from the scope and spirit of the present disclosure.
Number | Name | Date | Kind |
---|---|---|---|
8355 | Hurlbut | Sep 1851 | A |
5001558 | Burley | Mar 1991 | A |
5022085 | Cok | Jun 1991 | A |
5117283 | Kroos | May 1992 | A |
5227985 | DeMenthon | Jul 1993 | A |
5343311 | Morag | Aug 1994 | A |
5506946 | Bar | Apr 1996 | A |
5517334 | Morag | May 1996 | A |
5534917 | MacDougall | Jul 1996 | A |
5581276 | Cipolla | Dec 1996 | A |
5631697 | Nishimura | May 1997 | A |
5687306 | Blank | Nov 1997 | A |
5875040 | Matraszek | Feb 1999 | A |
6119147 | Toomey | Sep 2000 | A |
6125194 | Yeh | Sep 2000 | A |
6150930 | Cooper | Nov 2000 | A |
6288703 | Berman | Sep 2001 | B1 |
6411744 | Edwards | Jun 2002 | B1 |
6618444 | Haskell | Sep 2003 | B1 |
6661918 | Gordon | Dec 2003 | B1 |
6664973 | Iwamoto | Dec 2003 | B1 |
6760749 | Dunlap | Jul 2004 | B1 |
6798407 | Benman | Sep 2004 | B1 |
6937744 | Toyama | Aug 2005 | B1 |
6973201 | Colmenarez | Dec 2005 | B1 |
7050070 | Ida | May 2006 | B2 |
7124164 | Chemtob | Oct 2006 | B1 |
7317830 | Gordon | Jan 2008 | B1 |
7386799 | Clanton | Jun 2008 | B1 |
7420490 | Gupta | Sep 2008 | B2 |
7420590 | Matusik | Sep 2008 | B2 |
7463296 | Sun | Dec 2008 | B2 |
7512262 | Criminisi | Mar 2009 | B2 |
7518051 | Redmann | Apr 2009 | B2 |
7574043 | Porikli | Aug 2009 | B2 |
7599555 | McGuire | Oct 2009 | B2 |
7602990 | Matusik | Oct 2009 | B2 |
7631151 | Prahlad | Dec 2009 | B2 |
7633511 | Shum | Dec 2009 | B2 |
7634533 | Rudolph | Dec 2009 | B2 |
7668371 | Dorai | Feb 2010 | B2 |
7676081 | Blake | Mar 2010 | B2 |
7692664 | Weiss | Apr 2010 | B2 |
7720283 | Sun | May 2010 | B2 |
7742650 | Xu | Jun 2010 | B2 |
7747044 | Baker | Jun 2010 | B2 |
7755016 | Toda | Jul 2010 | B2 |
7773136 | Ohyama | Aug 2010 | B2 |
7821552 | Suzuki | Oct 2010 | B2 |
7831087 | Harville | Nov 2010 | B2 |
7912246 | Moon | Mar 2011 | B1 |
7965885 | Iwai | Jun 2011 | B2 |
8073196 | Yuan | Dec 2011 | B2 |
8094928 | Graepel | Jan 2012 | B2 |
8131011 | Nevatia | Mar 2012 | B2 |
8146005 | Jones | Mar 2012 | B2 |
8175379 | Wang | May 2012 | B2 |
8175384 | Wang | May 2012 | B1 |
8204316 | Panahpour | Jun 2012 | B2 |
8225208 | Sprang | Jul 2012 | B2 |
8238605 | Chien | Aug 2012 | B2 |
8249333 | Agarwal | Aug 2012 | B2 |
8264544 | Chang | Sep 2012 | B1 |
8300890 | Gaikwad | Oct 2012 | B1 |
8300938 | Can | Oct 2012 | B2 |
8320666 | Gong | Nov 2012 | B2 |
8331619 | Ikenoue | Dec 2012 | B2 |
8331685 | Pettigrew | Dec 2012 | B2 |
8335379 | Malik | Dec 2012 | B2 |
8345082 | Tysso | Jan 2013 | B2 |
8355379 | Thomas | Jan 2013 | B2 |
8363908 | Steinberg | Jan 2013 | B2 |
8379101 | Mathe | Feb 2013 | B2 |
8396328 | Sandrew | Mar 2013 | B2 |
8406494 | Zhan | Mar 2013 | B2 |
8411149 | Maison | Apr 2013 | B2 |
8411948 | Rother | Apr 2013 | B2 |
8422769 | Rother | Apr 2013 | B2 |
8437570 | Criminisi | May 2013 | B2 |
8446459 | Fang | May 2013 | B2 |
8446488 | Yim | May 2013 | B2 |
8477149 | Nicholas Beata | Jul 2013 | B2 |
8503720 | Shotton | Aug 2013 | B2 |
8533593 | Grossman | Sep 2013 | B2 |
8533594 | Grossman | Sep 2013 | B2 |
8533595 | Grossman | Sep 2013 | B2 |
8565485 | Craig | Oct 2013 | B2 |
8588515 | Bang | Nov 2013 | B2 |
8625897 | Criminisi | Jan 2014 | B2 |
8643701 | Nguyen | Feb 2014 | B2 |
8649592 | Nguyen | Feb 2014 | B2 |
8649932 | Mian | Feb 2014 | B2 |
8655069 | Rother | Feb 2014 | B2 |
8659658 | Vassigh | Feb 2014 | B2 |
8666153 | Hung | Mar 2014 | B2 |
8682072 | Sengamedu | Mar 2014 | B2 |
8701002 | Grossman | Apr 2014 | B2 |
8723914 | Mackie | May 2014 | B2 |
8818028 | Nguyen | Aug 2014 | B2 |
8831285 | Kang | Sep 2014 | B2 |
8854412 | Tian | Oct 2014 | B2 |
8874525 | Grossman | Oct 2014 | B2 |
8890923 | Tian | Nov 2014 | B2 |
8890929 | Paithankar | Nov 2014 | B2 |
8897562 | Bai | Nov 2014 | B2 |
8913847 | Tang | Dec 2014 | B2 |
8994778 | Weiser | Mar 2015 | B2 |
9008457 | Dikmen | Apr 2015 | B2 |
9053573 | Lin | Jun 2015 | B2 |
9065973 | Graham | Jun 2015 | B2 |
9084928 | Klang | Jul 2015 | B2 |
9087229 | Nguyen | Jul 2015 | B2 |
9088692 | Carter | Jul 2015 | B2 |
9117310 | Coene | Aug 2015 | B2 |
9269153 | Gandolph | Feb 2016 | B2 |
9285951 | Makofsky | Mar 2016 | B2 |
9336610 | Ohashi | May 2016 | B2 |
9542626 | Martinson | Jan 2017 | B2 |
9659658 | Kim | May 2017 | B2 |
20020012072 | Toyama | Jan 2002 | A1 |
20020025066 | Pettigrew | Feb 2002 | A1 |
20020051491 | Challapali | May 2002 | A1 |
20020158873 | Williamson | Oct 2002 | A1 |
20040004626 | Ida | Jan 2004 | A1 |
20040153671 | Schuyler | Aug 2004 | A1 |
20040175021 | Porter | Sep 2004 | A1 |
20050063565 | Nagaoka | Mar 2005 | A1 |
20050094879 | Harville | May 2005 | A1 |
20050219264 | Shum | Oct 2005 | A1 |
20050219391 | Sun | Oct 2005 | A1 |
20050262201 | Rudolph | Nov 2005 | A1 |
20060072022 | Iwai | Apr 2006 | A1 |
20060193509 | Criminisi | Aug 2006 | A1 |
20060221248 | McGuire | Oct 2006 | A1 |
20060259552 | Mock | Nov 2006 | A1 |
20060291697 | Luo | Dec 2006 | A1 |
20070036432 | Xu | Feb 2007 | A1 |
20070070200 | Matusik | Mar 2007 | A1 |
20070110298 | Graepel | May 2007 | A1 |
20070133880 | Sun | Jun 2007 | A1 |
20070146512 | Suzuki | Jun 2007 | A1 |
20070201738 | Toda | Aug 2007 | A1 |
20070269108 | Steinberg | Nov 2007 | A1 |
20080109724 | Gallmeier | May 2008 | A1 |
20080181507 | Gope | Jul 2008 | A1 |
20080219554 | Dorai | Sep 2008 | A1 |
20080266380 | Gorzynski | Oct 2008 | A1 |
20080273751 | Yuan | Nov 2008 | A1 |
20090003687 | Agarwal | Jan 2009 | A1 |
20090044113 | Jones | Feb 2009 | A1 |
20090110299 | Panahpour | Apr 2009 | A1 |
20090144651 | Sprang | Jun 2009 | A1 |
20090199111 | Emori | Aug 2009 | A1 |
20090244309 | Maison | Oct 2009 | A1 |
20090245571 | Chien | Oct 2009 | A1 |
20090249863 | Kim | Oct 2009 | A1 |
20090278859 | Weiss | Nov 2009 | A1 |
20090284627 | Bando | Nov 2009 | A1 |
20090290795 | Criminisi | Nov 2009 | A1 |
20090300553 | Pettigrew | Dec 2009 | A1 |
20100027961 | Gentile | Feb 2010 | A1 |
20100034457 | Berliner | Feb 2010 | A1 |
20100046830 | Wang | Feb 2010 | A1 |
20100053212 | Kang | Mar 2010 | A1 |
20100128927 | Ikenoue | May 2010 | A1 |
20100166325 | Sengamedu | Jul 2010 | A1 |
20100171807 | Tysso | Jul 2010 | A1 |
20100195898 | Bang | Aug 2010 | A1 |
20100278384 | Shotton | Nov 2010 | A1 |
20100302376 | Boulanger | Dec 2010 | A1 |
20100302395 | Mathe | Dec 2010 | A1 |
20100329544 | Sabe | Dec 2010 | A1 |
20110038536 | Gong | Feb 2011 | A1 |
20110090311 | Fang | Apr 2011 | A1 |
20110115886 | Nguyen | May 2011 | A1 |
20110158529 | Malik | Jun 2011 | A1 |
20110193939 | Vassigh | Aug 2011 | A1 |
20110216965 | Rother | Sep 2011 | A1 |
20110216975 | Rother | Sep 2011 | A1 |
20110216976 | Rother | Sep 2011 | A1 |
20110242277 | Do | Oct 2011 | A1 |
20110243430 | Hung | Oct 2011 | A1 |
20110249190 | Nguyen | Oct 2011 | A1 |
20110249863 | Ohashi | Oct 2011 | A1 |
20110249883 | Can | Oct 2011 | A1 |
20110267348 | Lin | Nov 2011 | A1 |
20110293179 | Dikmen | Dec 2011 | A1 |
20110293180 | Criminisi | Dec 2011 | A1 |
20120051631 | Nguyen | Mar 2012 | A1 |
20120127259 | Mackie | May 2012 | A1 |
20120314077 | Clavenna, II | Dec 2012 | A1 |
20130016097 | Coene | Jan 2013 | A1 |
20130028476 | Craig | Jan 2013 | A1 |
20130094780 | Tang | Apr 2013 | A1 |
20130110565 | Means | May 2013 | A1 |
20130129205 | Wang | May 2013 | A1 |
20130142452 | Shionozaki | Jun 2013 | A1 |
20130147900 | Weiser | Jun 2013 | A1 |
20130243313 | Civit | Sep 2013 | A1 |
20130335506 | Carter | Dec 2013 | A1 |
20140003719 | Bai | Jan 2014 | A1 |
20140029788 | Kang | Jan 2014 | A1 |
20140063177 | Tian | Mar 2014 | A1 |
20140085398 | Tian | Mar 2014 | A1 |
20140112547 | Peeper | Apr 2014 | A1 |
20140119642 | Lee | May 2014 | A1 |
20140153784 | Gandolph | Jun 2014 | A1 |
20140229850 | Makofsky | Aug 2014 | A1 |
20140300630 | Flider | Oct 2014 | A1 |
20140307056 | Romea | Oct 2014 | A1 |
20170208243 | Masad | Jul 2017 | A1 |
Number | Date | Country |
---|---|---|
2013019259 | Feb 2013 | WO |
Entry |
---|
Limmer, Matthias, et al. “Robust Deep-Learning-Based Road-Prediction for Augmented Reality Navigation Systems.” arXiv preprint arXiv:1605.09533 (2016). |
E. Martinson and V. Yalla, “Real-time human detection for robots using CNN with a feature-based layered pre-filter,” 2016 25th IEEE International Symposium on Robot and Human Interactive Communication (RO-MAN), New York, NY, 2016, pp. 1120-1125. |
Arbelaez, P., et ,al., “Contour detection and hierarchical image segmentation”, Pattern Analysis and Machine Intelligence, IEEE Transactions on 33.4 (2011): 898-916. |
Benezeth et al., “Review and Evaluation of Commonly-Implemented Background Subtraction Algorithms”, 2008. |
Carsten, R., et al., “Grabcut: Interactive foreground extraction using iterated graph cuts”, ACM Transactions on Graphics (TOG) 23.3 (2004), pp. 309-314. |
Crabb et al., “Real-Time Foreground Segmentation via Range and Color Imaging”, 2008. |
Gvili et al., “Depth Keying”, 2003. |
Kolmogorov, et al., “Bi-Layer Segmentation of Binocular Stereo Vision”, IEEE, 2005. |
Izquierdo' M. Ebroul. “Disparity/segmentation analysis: matching with an adaptive window and depth-driven segmentation.” Circuits and Systems for Video Technology, IEEE Transactions on 9.4 (1999): 589-607. |
Piccardi, M., “Background Subtraction Techniques: A Review”, IEEE, 2004. |
Wang, L., et al., “Tofcut: Towards robust real-time foreground extraction using a time-off camera.”, Proc. of 3DPVT, 2010. |
Xu, F., et al., “Human detection using depth and gray images”, Advanced Video and Signal Based Surveillance, 2003., Proceedings, IEEE Conference on IEEE, 2003. |
Zhang, Q., et al., “Segmentation and tracking multiple objects under occlusion from multiview video.”, Image Processing, IEEE Transactions on 20.11 (2011), pp. 3308-3313. |
Cheung et al., “Robust Techniques for Background Subtraction in Urban Traffice Video”, 2004. |
Kitagawa et al., “Background Separation Encoding for Surveillance Purpose by using Stable Foreground Separation”, APSIPA, Oct. 4-7, 2009, pp. 849-852. |
Lee, D.S., “Effective Gaussian Mixture for Video Background Subtraction”, IEEE, vol. 27, No. 5, dated May 2005, pp. 827-832. |
Akbarzadeh, A., et al., “Towards Urban 3D Reconstruction From Video,” Third International Symposium on 3D Data Processing, Visualization, and Transmission, pp. 1-8 (Jun. 14-16, 2006). |
Barnat, Jii'f, et al., “Cuda accelerated LTL Model Checking,” FI MU Report Series, FIMU- RS-2009-05, 20 pages (Jun. 2009). |
Canesta™, “See How Canesta's Solution Gesture Control Will Change the Living Room,” reteieved Oct. 21, 2010, from http://canesta.com, 2 pages. |
Chan, S.C., et al., “Image-Based Rendering and Synthesis,” IEEE Signal Processing Magazine, pp. 22-31 (Nov. 2007). |
Chan, Shing-Chow, et al. “The Plenoptic Video,” 15(12) IEEE Transactions on Circuits and Systems for Video Technology 1650-1659 (Dec. 2005). |
Chen, Wan-Yu, et al., “Efficient Depth Image Based Rendering with Edge Dependent Depth Filter and Interpolation,” IEEE International Conference on Multimedia and Expo, pp. 1314- 1317 (Jul. 6, 2005). |
Debevec, Paul, et al., “Efficient View-Dependent Image-Based Rendering with Projective Texture-Mapping,” In 9th Eurographics Workshop on Rendering, pp. 105-116 (Jun. 1998). |
Fehn, Christoph, et al., “Interactive 3-DTV-Concepts and Key Technologies,” 94(3) Proceedings of the IEEE 524-538 (Mar. 2006). |
GPGPU (General-purpose computing on graphics processing units)—Wikipedia, retrieved Nov. 17, 2009, from http://en.wikipedia.org/wiki/GPGPU, 9 pages. |
Ho, Yo-Sung, et al., “Three-dimensional Video Generation for Realistic Broadcasting Services,” ITC-CSCC, pp. TR-1 through TR4 (2008). |
Jung, Kwang Hee, et al., “Depth Image Based Rendering for 3D Data Service Over T-DMB,” IEEE, 3DTV-CON'08, Istanbul, Turkey, pp. 237-240 (May 28-30, 2008). |
Kanade, Takeo, et al., “Virtualized Reality: Constructing Virtual Worlds from Real Scenes,” IEEE MultiMedia, pp. 34-46 (Jan.-Mar. 1997). |
Kao, Wen-Chung, et al., “Multistage Bilateral Noise Filtering and Edge Detection for Color Image Enhancement,” 51 (4) IEEE Transactions on Consumer Electronics 1346-1351 (Nov. 2005). |
Kipfer, Peter, “GPU Gems 3—Chapter 33. LCP Algorithms for Collision Detection Using CUDA,” retrieved Nov. 17, 2009, from http://http.developer.nvidia.com/GPUGems3/qpugems3 ch33.html, 11 pages (2007). |
Kubota, Akira, et al., “Multiview Imaging and 3DTV,” IEEE Signal Processing Magazine, pp. 10-21 (Nov. 2007). |
Lee, Eun-Kyung, et al., “High-Resolution Depth Map Generation by Applying Stereo Matching Based on Initial Depth Information,” 3DTV-CON'08, Istanbul, Turkey, pp. 201-204 (May 28-30, 2008). |
Mark, William R., et al., “Post-Rendering 3D Warping,” In Proceedings of 1997 Symposium on Interactive 3D Graphics, Providence, RI, pp. 7-16 (Apr. 27-30, 1997). |
McMillan, Jr., Leonard, “An Image-Based Approach to Three-Dimensional Computer Graphics,” University of North Carolina at Chapel Hill, Chapel Hill, NC, 206 pages (1997). |
Nguyen, Ha T., et al., “Image-Based Rendering with Depth Information Using the Propagation Algorithm,” Proc. of IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), 4 pages (Mar. 2005). |
Nguyen, Quang H., et al., “Depth image-based rendering from multiple cameras with 3D propagation algorithm,” Proceedings of the 2nd International Conference on Immersive Telecommunications, 6 pages (2009). |
Nguyen, Quang H., et al., “Depth Image-Based Rendering with Low Resolution Depth,” 16th IEEE International Conference on Image Processing (ICIP), pp. 553-556 (2009). |
PrimeSense, Home Page, retrieved Oct. 21, 2010, from http://www.primesense.com, 1 page. |
Saxena, Ashutosh, et al., “3-D Depth Reconstruction from a Single Still Image,” 76(1) International Journal of Computer Vision 53-69 (2007). |
Shade, Jonathan, et al., “Layered Depth Images,” Computer Graphics Proceedings, Annual Conference Series, pp. 231-242 (Jul. 19-24, 1998). |
Tomasi, C., et al., “Bilateral Filtering for Gray and Color Images,” Sixth International Conference on Computer Vision, pp. 839-846 (1998). |
Vazquez, C., et al., “3D-TV: Coding of Disocclusions for 2D+Depth Representation of Multi- View Images,” Proceedings of the Tenth IASTED Int'l Conference: Computer Graphics and Imaging, pp. 26-33 (Feb. 13-15, 2008). |
Yang, Qingxiong, et al., “Spatial-Depth Super Resolution for Range Images,” IEEE Conference on Computer Vision and Pattern Recognition, pp. 1-8 (2007). |
Zhang, Buyue, et al., “Adaptive Bilateral Filter for Sharpness Enhancement and Noise Removal,” IEEE ICIP, pp. IV-417—IV-420 (2007). |
H. Y. Shum and S. B. Kang, “A Review of Image-based Rendering Techniques,” Proc. IEEE/SPIE Visual Communications and Image (VCIP) 2000, pp. 2-13, Perth, Jun. 2000. |
Um, Gi-Mun, et al., “Three-dimensional Scene Reconstruction Using Multi-View Images and Depth Camera”, pp. 271-280, SPIE-IS&t, vol. 5664, 2005. |
Zitnick, C. Lawrence, et al., “High-quality video view interpolation using a layered representation,” 23(3) Journal ACM Transactions on Graphics (TOG)—Proceedings of ACM SIGGRAPH 2004, pp. 600-608 (Aug. 2004). |
Working screenshot of Snagit manufactured by Techsmith, released Apr. 18, 2014. |
Arbelaez, P., et ,a1., “Contour detection and hierarchical image segmentation”, Pattern Analysis and Machine Intelligence, IEEE Transactions on 33.4 (2011): 898-916. |
Lee, D.S., “Effective Gaussian Mixture Learning for Video Background Subtraction”, IEEE, May 2005. |
Yacoob, Y., et al., “Detection, analysis and matching of hair,” in Computer Vision, 2005, ICCV 2005. Tenth IEEE International Conference, vol. 1, No., pp. 741-748, vol. 1., Oct. 17-21, 2005. |
Talukder, A., et al., “Real-time detection of moving objects in a dynamic scene from moving robotic vehicles,” in Intelligent Robots and Systems, 2003. (IROS 2003). Proceedings. 2003 IEEE/RSJ international Conference on, vol. 2, pp. 1308-1313, vol. 2, Oct. 27-31, 2003. |
Sheasby, G., et al., “A robust stereo prior for human segmentation”, In ACCV, 2012. |
Hradis, M., et al., “Real-time Tracking of Participants in Meeting Video”, Proceedings of CESCG, Wien, 2006. |