System and method for real-time whiteboard streaming
First Claim
1. A computer-implemented process for creating an enhanced data stream of whiteboard content, comprising the process actions of:
- inputting a sequence of image frames of a whiteboard;
dividing each of said image frames of said whiteboard into cells;
determining if there are significant lighting changes in said cells in said sequence of images;
if there are significant lighting changes, performing a whiteboard color matching process to determine if the color of the whiteboard reflects a color of the whiteboard in a whiteboard color model database, said whiteboard color being used to define the whiteboard background color;
if there are no significant lighting changes, classifying each of the cells of the image frames as foreground, whiteboard background or stroke cells of content written on the whiteboard;
enhancing the sequence of image frames so that the strokes on the whiteboard are displayed in an enhanced manner using said cell classification; and
outputting a sequence of enhanced image frames of said whiteboard in a data stream.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for streaming whiteboard content to computing devices in a networked environment. The invention is an extension of whiteboard image generation technology to provide network-based collaboration of a target meeting. In one aspect, each networked client can receive audio content and whiteboard content (video images). In another aspect, each networked client can transmit audio content and annotation content which is displayed separately or generated on the whiteboard image. The streaming content is built on external collaboration frameworks.
43 Citations
53 Claims
-
1. A computer-implemented process for creating an enhanced data stream of whiteboard content, comprising the process actions of:
-
inputting a sequence of image frames of a whiteboard;
dividing each of said image frames of said whiteboard into cells;
determining if there are significant lighting changes in said cells in said sequence of images;
if there are significant lighting changes, performing a whiteboard color matching process to determine if the color of the whiteboard reflects a color of the whiteboard in a whiteboard color model database, said whiteboard color being used to define the whiteboard background color;
if there are no significant lighting changes, classifying each of the cells of the image frames as foreground, whiteboard background or stroke cells of content written on the whiteboard;
enhancing the sequence of image frames so that the strokes on the whiteboard are displayed in an enhanced manner using said cell classification; and
outputting a sequence of enhanced image frames of said whiteboard in a data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
15. The computer-implemented process of 12 wherein the process action of determining whether a cell contains edges comprises the process actions of:
for each frame'"'"'s cells, running a Sobel filter to identify horizontal edges in said cell to obtain a first filtered Sobel image;
running a Sobel filter to identify vertical edges in said cell to obtain a second filtered Sobel image;
determining the number of edgels that exist in each frame wherein an edgel is defined to be the sum of the absolute values of the corresponding pixels in the two Sobel filtered images;
for each cell, that is stationary for N frames, wherein a cell is stationary from successive frames N to N+1 when all pixels in the cell of frame N and N+1 are the same, and contains an edgel number whose value is greater than a prescribed threshold, considering it to be a stroke cell. - View Dependent Claims (18)
- 16. The computer-implemented process of 15 wherein all the pixels in a cell of frame N and N+1 are the same if the average absolute difference of all pixels is below a prescribed threshold.
-
31. A system for streaming whiteboard data content, the system comprising;
-
a classification module for classifying each cell of a sequence of whiteboard images that are divided into cells, as a stroke cell, a whiteboard background cell or a foreground cell;
a dynamic whiteboard background and initialization module that is used to determine the color of the whiteboard background color in said cells;
an image enhancement module for enhancing images comprised of whiteboard background, foreground and stroke cells; and
a module for adding and erasing whiteboard stroke data for creating images of the whiteboard using whiteboard background and stroke cells. - View Dependent Claims (32, 33, 34, 35, 36)
-
-
37. A computer-readable medium having computer-executable instructions for transmitting a video stream of a whiteboard, said computer executable instructions comprising:
-
inputting a sequence of image frames of a whiteboard;
dividing each of said image frames of said whiteboard into cells;
determining if there are significant lighting changes in said cells in said sequence of images;
if there are significant lighting changes, performing a whiteboard color matching process to determine the color of the whiteboard;
if there are no significant lighting changes, classifying each of the cells of the image frames as foreground, whiteboard background or stroke cells of content written on the whiteboard;
enhancing the sequence of image frames so that only the strokes on the whiteboard are displayed in an enhanced manner using said cell classification. - View Dependent Claims (38, 39)
-
-
40. A system for transmitting a video stream of enhanced whiteboard images, the system comprising:
a sender, comprising, an input module for inputting a sequence of captured whiteboard images and audio synchronized with said sequence of captured whiteboard images, and dividing each of said images into cells;
a classification module for classifying whiteboard image data as stroke cells, whiteboard background cells or foreground cells;
a dynamic whiteboard background and initialization module;
an image enhancement module fore enhancing strokes in said stroke cells and making whiteboard background cell color more uniform; and
a module for adding and erasing whiteboard stroke data;
an transmission module that transmits a first data stream of enhanced whiteboard images that include foreground objects using said foreground cells, whiteboard background cells and said stroke cells, and a second data stream of enhanced whiteboard images that do not include foreground objects, using said stroke cells and whiteboard background cells but no foreground cells to a receiver over a network. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52)
-
53. A computer-implemented process for estimating whiteboard color dynamically from a sequence of images in real time, comprising the process actions of:
-
defining the state variable xi,j as the color of the whiteboard at each cell (i, j) to be estimated, and the observation variable zi,j as the color of the whiteboard at each cell (i;
j) observed from an image;
calculating the color in each cell as, xi,jt=({circumflex over (P)}i,jt\t-1)−
1+(Qi,jt)−
1+(Si,jt)−
1)−
1({circumflex over (P)}i,jt\t-1)−
1{circumflex over (x)}i,jt\t-1+(Qi,jt)−
1zi,jt+(Si,jt)−
1{overscore (x)}i,jtwhere for a first iteration, the mean of the predictions is used as {overscore (x)}i,jt where Ω
is the number of neighboring cells, k∈
[i−
1,i+1], l∈
[j−
1, j+1], (k,l)≠
(i,j), and in subsequent iterations, the mean of the estimates from the previous iteration are used; and
wherein the covariance of xi,jt is given byPi,jt=(({circumflex over (P)}i,jt\t-1)−
1+(Qi,jt)−
1+(Si,jt)−
1)−
1)(2I+(Si,jt)−
1{overscore (P)}i,jt)where I is the identity matrix, and and the mean of the predictions, is used as {overscore (P)}i,jt in the first iteration, and where the observation covariance is Qi,jt, the smoothness covariance matrix is Si,jt, the state transition noise is η
i,jt and its covariance matrix is Ri,jt.
-
Specification