Timeline image capture systems and methods

10839494 ยท 2020-11-17

Assignee

Inventors

Cpc classification

International classification

Abstract

Various approaches related to capturing content of erasable boards are discussed herein.

Claims

1. A method of capturing content on an erasable board or surface, the method comprising: inputting camera data for a succession of image frames, wherein the camera data is from a camera configured to capture images of the board or surface and the image frames comprise successive images of the board or surface from the camera; processing data from the image frames to remove parts of the image frames corresponding to parts of a user or user pen writing or drawing on the board or surface to determine a succession of processed images of content on the board or surface; after determining a succession of processed images, then determining a content metric for each processed image, wherein the content metric is a metric of the amount of content in the processed image, and wherein the content metric comprises a measure of pixel values in the processed image; determining key frame capture times from the content metrics for the processed images; and capturing and storing processed images at the key frame capture times, wherein capturing processed images at the key frame capture times comprises selecting processed images corresponding to the key frame capture times, from the succession of processed images.

2. A method as claimed in claim 1, wherein determining key frame capture times from the content metric comprises determining a reduction in the content metric for a processed image that indicates that the erasable board or surface has been partially or wholly erased.

3. A method as claimed in claim 2, the method further comprising: determining a reduction in the content metric of greater than a content reduction threshold, the method further comprising adapting the content reduction threshold to a noise level in the processed images.

4. A method as claimed in claim 3, wherein adapting the content reduction threshold to the noise level comprising adapting the content reduction threshold dependent upon a gain of the camera.

5. A method as claimed in claim 1, wherein determining key frame capture times from the content metrics comprises determining that the content metric has remained unchanged to within a content stationary threshold for a succession of processed images.

6. A method as claimed in claim 1, wherein determining the content metric for each processed image comprises determining a local content metric for each of a plurality of different regions of the processed image.

7. A method as claimed in claim 6, wherein determining key frame capture times from the content metrics comprises determining a key frame capture time from each local content metric.

8. A method as claimed in claim 1, wherein capturing a processed image at a key frame capture time comprises one or both of selecting from a plurality of processed images around the key frame capture time a lowest noise version of the processed image, and combining a plurality of processed images around the key frame capture time to provide a reduced noise version of the captured processed images.

9. A method as claimed in claim 1, the method further comprising further processing the captured images to remove artefacts.

10. A method as claimed in claim 9, wherein the further processing comprises discarding a captured image within a sequence of captured images when images to either side of the discarded image in the sequence are the same to within a similarity threshold.

11. A method as claimed in claim 1, wherein the capturing comprises retrieving an image from a buffer storing one or more processed images from a time prior to a current time.

12. A method as claimed in claim 1, wherein capturing processed images at the key frame capture times comprises capturing a sequence of images or video and time stamping the captured sequence of images or video to identify the key frames.

13. A method as claimed in claim 1, wherein capturing processed images at the key frame capture times comprises selectively storing only processed images corresponding to the key frame capture times.

14. A method as claimed in claim 1, the method further comprising: capturing an audio track for the succession of processed images, and synchronizing the audio track to the captured processed images.

15. A processing system, the system operable to: input camera data for a succession of image frames, wherein the camera data is from a camera configured to capture images of the board or surface and the image frames comprise successive images of the board or surface from the camera; process data from the image frames to remove parts of the image frames corresponding to parts of a user or user pen writing or drawing on the board or surface to determine a succession of processed images of content on the board or surface; determine a local or global content metric for each processed image, wherein the content metric is a metric of the amount of local or global content in the processed image; determine key frame capture times from the content metrics for the processed images; capture and store processed images at the key frame capture times wherein capturing processed images at the key frame capture times comprises selecting processed images corresponding to the key frame capture times from the succession of processed images; and wherein determining key frame capture times from the content metric comprises one or both of i) determining a reduction in the content metric for a processed image that indicates that the erasable board or surface has been partially or wholly erased and ii) determining that the content metric has remained unchanged, within a threshold, for a succession of processed images that indicates the content has remained approximately static.

16. A system as claimed in claim 15 further configured to determine a reduction in the content metric of greater than a content reduction threshold, and to adapt the content reduction threshold to a noise level in the processed images.

17. An erasable board or surface content capture system, the system comprising: a camera to capture an image of a board or surface; and a processor, coupled to the camera and configured to: input camera data for a succession of image frames, wherein the image frames comprise successive images of the board or surface from the camera; process data from the image frames to remove parts of the image frames corresponding to parts of a user or user pen writing or drawing on the board or surface to determine a succession of processed images of content on the board or surface; after determining a succession of processed images, then determine a content metric for each processed image, wherein the content metric is a metric of the amount of content in the processed image and comprises a measure of pixel values in the processed image; determine key frame capture times from the content metrics for the processed images; and capture and store processed images at the key frame capture times wherein capturing processed images at the key frame capture times comprises selecting processed images corresponding to the key frame capture times, from the succession of processed images.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) These and other aspects of the invention will now be further described by way of example only, with reference to the accompanying Figures, wherein like numerals refer to like parts throughout, and in which:

(2) FIGS. 1a and 1b show schematic front and side views of a data capture and sharing system;

(3) FIGS. 2a to 2c show block diagrams of examples of data capture, processing and sharing systems;

(4) FIGS. 3a and 3b show flow charts of steps of data capture, processing and sharing;

(5) FIG. 4 shows a processing step of the image processing;

(6) FIGS. 5a to 5e show images at the various steps of data capture, processing and sharing of FIGS. 3a, 3b and 4;

(7) FIGS. 6a and 6b show schematic views of a data capture and sharing system incorporating, respectively, a flat polarizer and a curved polarizer;

(8) FIGS. 7a to 7c show example procedures for capturing a key frame timeline from an erasable board or surface; and

(9) FIG. 8 shows example post key frame capture processing procedures.

DETAILED DESCRIPTION

(10) FIG. 1a shows a schematic front view of a data capture and sharing system 100 generally as described herein.

(11) The data capture and sharing system 100 has, in this example, a 60 inch whiteboard 102 and a camera 104. Camera 104 is, in this example, an acute angle camera 104, with a resolution of 19201440. Camera 104 connects to a power source (not shown).

(12) FIG. 1b shows a schematic side view of the data capture and sharing system 100 including whiteboard 102 and camera 104. Whiteboard 102 is mounted at a wall 108. The camera is, in this example, mounted via support 106 on wall 108. It will be appreciated that this is merely an exemplary configuration of whiteboard 102 and camera 104, and various alternative configurations may be exploited in which whiteboard 102 is located in the field of view of camera 104.

(13) FIG. 2a shows a block diagram of an example data capture, processing and sharing system 200.

(14) Data capture, processing and sharing system 200 comprises a computer system 202. Various components of the computer system 202 are connected to a bus 212 of computer system 202. In this example, an input/output port 204 is connected to both of bus 212 and camera 104, respectively. According to the present example, the computer system 202 further comprises a processor 206, a communication port 214, a program memory with image processing software, operating system and communication software 210, a mass storage 205, a working memory 208 and a printer 216. Furthermore, in this example, a removable storage media 207 is connected to bus 212. Bus 212 therefore communicatively couples the various components of the computer system 202

(15) FIG. 2b shows a block diagram of a further example data capture, processing and sharing system 220.

(16) In the data capture, processing and sharing system 220, various components of the computer system are integral to camera 104. Therefore, camera 104 comprises a processor 206, a communication port 214, program memory with image processing software, operating system and communication software 210, mass storage 205, input/output port 204, and working memory 208. Bus 212 connects the various components of the computer system within camera 104. A printer 216 and a removable storage media 207, respectively, may be connected to bus 212.

(17) In the data capture, processing and sharing systems of FIGS. 2a and 2b, the communication port 214 comprises, in this example, a WiFi communication link. Alternative communication links, such as Bluetooth, or other links may additionally or alternatively be used.

(18) Generally, camera 104 captures an image, which is then processed using computer system 202 or a computer system integral to camera 104, respectively. The processed and updated image may then be transmitted to external devices via communication port 214.

(19) FIG. 2c shows a block diagram of a further example of a data capture, processing and sharing system 240. In this example, camera 104 is connected to a cloud (Internet) via, in this example, a WiFi communication link. The signal transmitted via the communication link connected to camera 104 is received at a communication link which is connected to, in this example, a WiFi connection point 218. WiFi connection point 218 itself is connected to the cloud. In this example, a personal computer 224 and a server 222, respectively, are in bidirectional communication with the cloud. In this example, the image captured by camera 104 may be processed via devices (e.g. PC 224) connected to the cloud, and stored in the cloud and/or shared with external devices which access the cloud.

(20) FIGS. 3a and 3b show flow charts of the steps of data capture and processing according to embodiments of the present invention.

(21) In FIG. 3a, START 301 specifies a starting point at which the data capture, processing and sharing is performed.

(22) At step 302, a camera frame of the whiteboard 102 is captured. An image captured with camera 104 is shown in FIG. 5a.

(23) Fisheye and/or keystone distortion as shown in the captured image in FIG. 5a is then removed by applying distortion correction and/or a projective transform at step 304. In some embodiments of the method the processing described below is performed on a monochrome version of the captured image data and color is added back afterwards.

(24) In one embodiment the projective transform is determined from four coordinates and the points they map to, preferably corners of the whiteboard 102. The corners of the whiteboard 102 can be determined manually (e.g. from user clicks on an image) or automatically, for example by identifying edges of the whiteboard 102 and where they intersect. If the size of the whiteboard 102 is known the transform can be completely determined; if the size is unknown the transform can be determined to within a scaling ambiguity, which need not matter in a practical implementation.

(25) The projective transform maps 2D object plane points (x,y) to 2D image plane points (u,v). If there are two images corresponding to different camera angles then an 8-parameter transform maps (x,y) points in one image to (,v) points in the other:

(26) u = ax + by + c gx + hy + 1 , v = dx + ey + f gx + hy + 1
These can be rearranged as:
ax.sub.i+by.sub.i+c=+gx.sub.iu.sub.i+hy.sub.iu.sub.i+u.sub.i
dx.sub.i+ey.sub.i+f=gx.sub.iv.sub.i+hy.sub.iv.sub.i+v.sub.i
and solved if 4 points are known (8 knowns, 8 unknowns), by multiplying both sides of the equation below by the pseudo-inverse of the large r f coordinate terms:

(27) [ x 0 y 0 1 0 0 0 - x 0 u 0 - y 0 u 0 0 0 0 x 0 y 0 1 - x 0 v 0 - y 0 v 0 x 1 y 1 1 0 0 0 - x 1 u 1 - y 1 u 1 0 0 0 x 1 y 1 1 - x 1 v 1 - y 1 v 1 .Math. .Math. .Math. x n - 1 y n - 1 1 0 0 0 - x n - 1 u n - 1 - y n - 1 u n - 1 0 0 0 x n - 1 y n - 1 1 - x n - 1 v n - 1 - y n - 1 v n - 1 ] [ a b c d e f g h ] = [ u 0 v 0 u 1 v 1 .Math. u n - 1 v n - 1 ]

(28) The lens distortion may be corrected by using distortion parameters K.sub.1, K.sub.2, K.sub.3 in the equations below, where (x.sub.p,y.sub.p) are the coordinates of the lens axis (the distortion parameters may be obtained from manufacturer's data, or from a computer aided optical design program, or via a calibration procedure):
r.sup.2=(xx.sub.p).sup.2+(yy.sub.p).sup.2
.sub.r=((K.sub.3r.sup.2+K.sub.2)r.sup.2+K.sub.1)r.sup.2
x.sub.1=x(1+.sub.r)
y.sub.1=y(1+.sub.r)

(29) A result of the distortion-corrected image is shown in FIG. 5b.

(30) The skilled person will appreciate that the order in which certain steps of embodiments of the methods are performed may be changed without departing from the general concept of the image capture, processing and sharing described herein. For example, the fisheye/keystone corrections may be removed at a later stage of the processing, for example at a step before sharing an updated image with external devices.

(31) Once fisheye and/or keystone distortion have been removed at step 304, the distortion-corrected image is divided into blocks at step 306. In this example, the image is divided into 4040 blocks. Furthermore, in this example, each block comprises 4836 pixels. The width of a pen stroke on the whiteboard 102 is, in this example, 7-8 pixels wide.

(32) The processing performed for each block is indicated by the dashed line in FIG. 3a. In the illustrated example this is performed sequentially, block by block, but the skilled person will appreciate that additionally some or all of the block processing may be performed in parallel.

(33) In some cases, a block-by-block normalization is performed, selecting a normalization value for a block based upon the pixel values in that block. This may be performed prior to the user filter processing as previously described, or may be performed in conjunction with the user filter processing, for example as part of a loop checking for changes in the blocks.

(34) It is desired to remove any body parts from the captured image prior to sharing an updated image with external devices. The following steps outline a procedure to show how body parts of the person writing on the whiteboard 102 may be distinguished from features which are written in the board and background effects due to, e.g. shadowing or reflections.

(35) Processing steps shown within the dashed box in FIG. 3a are performed for each block. At step 308, (a) change(s) in the image for a block between the current frame and the previous frame are calculated. In this example, a frame is 1/30 second long. If at step 310 a change which is larger than a threshold is detected for a block at any time over a period of n frames, the process returns to step 308. In this example, n=30. If however, no change above a threshold is detected for a block at any time over a period of n frames, a further calculation is performed at step 312. If a change larger than a threshold is detected for a block between the current frame and the frame n-frames earlier, the process returns to step 308. If, however, no change above a threshold is detected for a block between the current frame and the frame n-frames earlier, the block is updated in the output image at step 314.

(36) The resulting image is shown in FIG. 5c (artificially colored), in which green colors identify blocks which have been stable for the longest period. As can be seen in the image of FIG. 5c, the person is continuously moving his arm over the whiteboard 102 while writing (pink colors), whereas blocks with writing appears less pink. Blocks without writing at which no body parts have been detected appear the greenest.

(37) Generally, time constants may be assigned to each of the person writing on the whiteboard 102, the writing itself, as well as any background due to, e.g. shadowing or reflections on the whiteboard 102. A person writing on the whiteboard 102 is assigned a time constant which is shorter than that of the writing on the whiteboard 102. This is because the person writing on the whiteboard 102 will move his arm once he has written on the whiteboard 102. In this example, the writing itself has a time constant which is shorter than that of any background on the whiteboard 102. Therefore, a block may not be updated if a person's body part moves due to the detection at step 310. Only blocks which are stationary, in this example, for a time equal or greater than 1 second, may be updated.

(38) The potential issue of a person moving his body parts very slowly over the whiteboard 102 is addressed at step 312. If a person moves his arm slowly over the whiteboard 102, there may be a no result at step 310, i.e. there is no change above a threshold within, in this example, 1 second. However, the block will be compared for a current frame to a frame n-frames earlier at step 312. Therefore, if the person moves his arm further with a slow motion, this can be detected at step 312, resulting in the processing going back to step 308.

(39) The process steps from step 308 to step 314 are looped until all blocks have been processed. The blocks for which there have been no results at steps 310 and 312 will be updated in the output image. An example result is shown in FIG. 5d.

(40) It is now desirable, once the person has been removed from the image, to clean up the image further, e.g. by removing any shadowing and/or reflections, and determining the color(s) of the writing on the whiteboard 102.

(41) Therefore, following from point B of FIG. 3a, FIG. 3b shows the steps performed once all blocks have been processed.

(42) At step 408, pixels in blocks with a brightness above a threshold are set to white. In this example, a maximum brightness is pre-determined, and any pixels with a brightness above 80% of the maximum brightness are set to white. This allows, e.g. removing reflection on the whiteboard 102, which appear brighter than any writing on the whiteboard 102.

(43) At step 410, the color(s) of writing in each block is determined in order to apply a color mapping to the image, so as to output writing; drawing data. The mean color is thereby analysed for the pen ink on a block by block basis. The mean color determined for each block is then mapped onto a color code and output in the output image. This advantageously allows for mapping the pen colors onto computer-generated color even where the colors are unsaturated in the camera image.

(44) The result of applying steps 408 and 410 is shown in FIG. 5e.

(45) At step 412, the image may then be shared with external devices as outlined above with regard to FIGS. 2a to 2c. Advantageously, only data for updated blocks in the output image are sent to external devices. Therefore, the bandwidth may be advantageously improved using the data capture, processing and sharing method described herein.

(46) The process outlined above from step 301 to step 412 is looped as shown in FIG. 3b, whereby at point A, the process starts over at step 302. The capturing, processing and sharing is therefore a continuous loop process.

(47) FIG. 4 outlines details of processing step 310 shown in FIG. 3a.

(48) In this example, if a change is less than a threshold (or, as will be understood, no change is detected in a block at all), a counter is increased. If, on the other hand, a change is detected which is above the threshold, the counter is reset.

(49) Once the counter reaches, in this example, n=30, it is determined that the block is stationary. The process then continues from step 310, at which this determination is made, to step 312 for a further determination as outlined above.

(50) Methods and systems described herein therefore allow real time streaming/sharing of content written on a whiteboard 102, whereby advantageously the person writing on the whiteboard 102 and any background (e.g. shadowing and/or reflections) on the whiteboard 102 are removed. It is therefore only the actual writing on the whiteboard 102 which may be shared with external devices via an image stream, or, in embodiments, via a vector stream (e.g. to use the systems and methods for hand-writing recognition). In some embodiments only the changes in the output writing/drawing (raster or vector) data need be transmitted.

(51) As outlined above, embodiments of the system provide one or more interfaces, e.g. to a printer. The system may be configured to print an image once a movement over a certain block has been detected. Alternatively or additionally, the camera 104 may be configured to identify gestures to determine what action the system should take. The analysis of a gesture may be used to, e.g. print an image. Alternatively or additionally, if a person writes, e.g. printer onto the whiteboard 102, the system is configured to print the current image. Similarly, an image may be stored by identifying a certain gesture or print written on the whiteboard 102.

(52) In a further embodiment, a template may be provided on or next to the whiteboard 102. The template may have buttons (in the form, for example, of pre-defined or pre-printed areas) which the user may press. If the camera detects that the user has moved over, or drawn on, a corresponding block, this may be used to perform actions, such as printing and/or storing an image.

(53) A time stamp may be added to images. An audio signal may simultaneously be recorded during a writing session on the whiteboard 102. This may allow for mapping audio signals to one or more captured, processed and shared images. Additionally or alternatively, a video sequence may be prepared based on the captured, processed and shared images.

(54) Rather than employing a single camera the system could employ two or more cameras to help to achieve a wide field of view, stitching together the images from the cameras to provide a single, wide-field image.

(55) Suppression of Reflections

(56) Referring again to FIG. 1, consider a camera directed towards the whiteboard and positioned just above its top edge. The reflections off the board are polarized, but polarized with regard to the plane of the board, not the optical axis of the camera.

(57) To reduce these reflections a linear polarizer may be orientated approximately perpendicular to the board (with the electric vector axis of polarization also perpendicular to the board), as shown schematically in FIG. 6a. However this results in a large (polarizer), extending across the (full) field of view of the camera, which typically has a wide-angle lens.

(58) Therefore, as illustrated schematically in FIG. 6b, in embodiments the polarizer is curved around the location of the camera, but nonetheless keeping it approximately perpendicular to the board (but not to the optical access of the camera). This reduces reflections but substantially reduces the size of the polarizer needed.

(59) Thus, in broad terms, a (tangential) plane of the polarizer is at substantially all points substantially perpendicular to the whiteboard, but the curvature of the polarizer enables a substantial reduction in its physical size.

(60) Timeline Capture

(61) FIG. 7a shows a flow diagram of an example whiteboard timeline capture procedure. The procedure may be implemented, for example, locally to the camera or remotely on a server.

(62) At step 700 the procedure inputs a captured image from the camera, and in some cases then processes the image to remove artefacts and/or distortion, as previously described. In particular the procedure can remove user body parts, such as parts of a hand or arm, from the captured image, and in some cases also parts of a pen or similar writing implement if present (step 702). Whether distortion correction is employed may depend upon viewing angle of the camera and hence upon whether the image from the camera is acceptable without distortion correction.

(63) The procedure then determines a content metric for the processed image (704). In one approach this comprises a metric of the total non-white content in the processed image; for a colored background this may instead be a measure of the total non-background colored content. In one approach

(64) content metric = .Math. all pixels ( 1 - pixel value )
where the sum may be over intensity pixel values and/or over RBG pixel values, and where a pixel value may be in the range 0 to 1.

(65) Additionally or alternatively determining the content metric may comprise identifying content and then measuring an amount of identified content. For example pen-stroke content may be identified and measured. Identifying content may comprise using one or more convolutional filters to identify the content.

(66) The procedure then processes the content metric to identify a key frame (step 706). This may involve determining when the content metric identifies a peak in the whiteboard content prior to partial or complete erasure of the content. Determining the peak content may include providing a degree of hysteresis. Additionally or alternatively processes the content metric to identify a key frame may involve determining when the content metric identifies that the content is static, to within a threshold or degree of hysteresis, for longer than a threshold duration.

(67) Once a key frame has been identified it is stored (step 708) locally and/or remotely, and may be further processed as described later.

(68) FIG. 7b shows more details of an example implementation, in which like reference numerals to those of FIG. 7a correspond to like elements. Thus, similarly to the FIG. 7a, the procedure captures and processes an image and then determines one or more content metrics for the image. A content metric may be determined as previously described, and may be determined for a complete image or for parts or regions of an image. For example an image may be divided into, say, 4 parts and a content metric determined for each part. Alternatively a content metric may be determined for a sliding window, recording a metric for each of a plurality of positions of the window. Parts or regions of an image may but need not overlap, and may but need not tile the image. The size and/or locations of the parts or regions of an image may be adaptive according to image content.

(69) A buffer 710 may be employed to store a peak or most recent maximum content metric or metrics 712 in association with one or more corresponding captured and processed images that are candidate key frames 714. Then the content metric(s) from the currently processed image may be compared with the content metric(s) stored in the buffer (step 720) to identify whether a key frame should be stored (step 722). This may involve determining whether content has been erased and/or whether content has been quasi-static for a period, that is determining one or more conditions as previously described.

(70) Where there are multiple content metrics for each of a plurality of different image regions the comparison may be made for each metric, that is for corresponding image regions. Identification of a key frame may require a condition to be met for any region, or for multiple regions, or for all the regions. For example a key frame may be captured when a spatially local content peak is identified.

(71) Typically when a whiteboard is partially or wholly erased the content does not fall over just one frame but reduces over a few frames. Thus the key frame may correspond not to every frame where a reduction was determined, nor to the biggest reduction, but to a peak content metric value before the reduction. Thus the content reduction threshold may apply not to any single instance of frame-to-frame reduction, but to an overall reduction since the peak.

(72) A threshold change for identifying a local or global content peak, and/or quasi-static content, may be increased if the image is noisy. The noise level may be measured and/or determined from the camera gain.

(73) Where there is no key frame to store the procedure loops back to capture the next image (steps 722, 700). Where a key frame is identified the candidate key frame in the buffer may be committed to storage in a data store 726, and then the content metric and candidate key frame in the buffer may be updated with the current image.

(74) More than one candidate key frames may be stored or a short buffer or recent frames may be retained. Then a stored key frame may be an average of multiple frames to improve the quality of stored key frames. Alternatively, for a similar reason multiple frames may be averaged as an additional processing step before determination of a content metric. In either case the number of frames averaged over may be varied adaptively according to the noise level, as previously described.

(75) An audio track may be captured by a microphone 730. This may be digitised and compressed (728), and may also be stored in the data store 726 and/or elsewhere. When a key frame is stored the captured audio may also be indexed to allow the audio associated with a key frame to be replayed. This may include audio from a period leading up to the captured key frame.

(76) The data stored in data store 726 may be transmitted to one or more other users, for example to share captured key frames from an interactive whiteboard session.

(77) FIG. 7c shows a variant of the above described procedures in which images are captured and processed (steps 700, 702) as previously described, and then stored as a compressed video stream (750), for example using H.264, MPEG, or motion JPEG coding. The stored video may then be retrieved and processed (752) to identify key frames as previously described. The key frames may be identified and processed with the video stream substituting for live captured camera images. However the key frames need not be stored separately from the video stream and instead key frames may be identified within the video stream, for example by an index or time stamp, to enable just the key frames to be replayed later.

(78) FIG. 8 shows a procedure which may be used to post-process the captured key frames, either in parallel with or after the procedure of FIG. 7a or 7b. Thus key frames in data store 726 may be filtered (800) to reduce a number of key frames and/or to improve the captured key frames, for example by de-noising, sharpening, brightness/color/illumination correction and the like.

(79) The filtering (800) may select good quality key frames and/or discard low quality or surplus key frames. For example a low quality key frame may be identified by a quality metric which identifies a defect in a key frame such as the frame being out of focus, or noise, or including a shadow. User-generated shadows are a particular problem for whiteboards; presence of a shadow can be identified by the presence of an extended area of the image which has a lower illumination than a remaining portion of the image, typically larger i.e. darker pixel values. Any of a variety of filters may be employed to identify shadowing in a key frame image.

(80) A surplus key frame can be identified as a key frame which duplicates the content in key frames to either side in a time series of key frames. Where the content is the same (to within a threshold) the duplicate key frame may be discarded.

(81) Where post key frame capture filtering is used, key frames may initially be captured with greater profligacy and/or the initial processing to remove artefacts may be simplified. This can have the advantage of reducing the latency of images presented in a live view when whiteboard sharing, whilst still enabling good quality key frames to be provided for later review.

(82) The key frames in the data store may also be processed (802) to produce derivative data and/or convert the stored frames to a different format. For example the key frames may be processed to recognize text and/or drawings and convert this to derivative data such as text data and/or data in a standard format such as pdf or PowerPoint.

(83) Numerous modifications are possible. For example a buffer as described above may buffer images from before, during or after image processing to remove artefacts and distortion.

(84) It will be understood that the invention is not limited to the described embodiments and encompasses modifications apparent to those skilled in the art lying within the spirit and scope of the claims appended hereto.