U.S. patent application number 13/103842 was filed with the patent office on 2011-09-01 for two stage detection for photographic eye artifacts.
This patent application is currently assigned to Tessera Technologies Ireland Limited. Invention is credited to Petronel Bigioi, Adrian Capata, Mihai Ciuc, Peter Corcoran, Florin Nanu, Alexei Pososin, Eran Steinberg.
Application Number | 20110211095 13/103842 |
Document ID | / |
Family ID | 39794464 |
Filed Date | 2011-09-01 |
United States Patent
Application |
20110211095 |
Kind Code |
A1 |
Nanu; Florin ; et
al. |
September 1, 2011 |
Two Stage Detection For Photographic Eye Artifacts
Abstract
A digital image acquisition device is for acquiring digital
images including one or more preview images. A face detector
analyzes the one or more preview images to ascertain information
relating to candidate face regions therein. A speed-optimized
filter produces a first set of candidate red-eye regions based on
the candidate face region information provided by the face
detector.
Inventors: |
Nanu; Florin; (Bucuresti,
RO) ; Capata; Adrian; (Bucuresti, RO) ;
Steinberg; Eran; (San Francisco, CA) ; Corcoran;
Peter; (Claregalway, IE) ; Bigioi; Petronel;
(Galway, IE) ; Pososin; Alexei; (Galway, IE)
; Ciuc; Mihai; (Bucuresti, RO) |
Assignee: |
Tessera Technologies Ireland
Limited
Galway
IE
|
Family ID: |
39794464 |
Appl. No.: |
13/103842 |
Filed: |
May 9, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12952162 |
Nov 22, 2010 |
7970183 |
|
|
13103842 |
|
|
|
|
11462035 |
Aug 2, 2006 |
7920723 |
|
|
12952162 |
|
|
|
|
11282954 |
Nov 18, 2005 |
7689009 |
|
|
11462035 |
|
|
|
|
Current U.S.
Class: |
348/241 ;
348/E5.078; 382/260 |
Current CPC
Class: |
G06T 7/90 20170101; G06K
9/4642 20130101; G06T 2207/30216 20130101; G06K 9/0061
20130101 |
Class at
Publication: |
348/241 ;
382/260; 348/E05.078 |
International
Class: |
H04N 5/217 20110101
H04N005/217; G06K 9/40 20060101 G06K009/40 |
Claims
1. A digital image acquisition device, comprising: an imaging optic
and detector for acquiring digital images including one or more
preview images and a main image; a processor; a face detector to
analyze the one or more preview images to ascertain information
relating to candidate face regions therein, the face detector
including a search module for detecting candidate face regions; a
face tracking module for predicting and confirming candidate face
regions; an image acquisition chain for image processing to
generate a sub-sample resolution version of the main image,
including a reduced resolution version of an approximately same
scene as the main image; a first speed-optimized face defect filter
to produce a first set of candidate face defect regions in the
sub-sample resolution version of the main image based on the
candidate face region information provided by the face detector; a
display to show a first speed-optimized face defect filtered
acquired image thereon; and a second analysis-optimized face defect
filter configured to be activated after display of said first
speed-optimized corrected acquired image on said display, said
second filter being activated upon initiation of an image playback
mode, said second analysis-optimized face defect filter being
configured to produce, with enhanced accuracy of face defect
detection and/or higher quality of image correction than the first
filter, a second set of candidate face defect regions for viewing
at a higher resolution than the first speed-optimized face defect
filtered acquired image shown on said display.
2. The device of claim 1, further comprising an image encoder for
encoding said acquired image.
3. The device of claim 1, further comprising an image store memory
for storing therein an encoded image in association with said first
set of candidate face defect regions for later image processing of
said encoded image.
4. The device of claim 1, wherein the second analysis-optimized
filter is configured to operate on regions of said array identified
as corresponding to regions of said first speed-optimized set of
candidate face defect regions.
5. The device of claim 1, further comprising a display for
displaying an image processed by said first speed-optimized face
defect filter.
6. The device of claim 1, further comprising an image compressor
for compressing said acquired image.
7. The device of claim 1, further comprising a signal connection
for transferring said image to a computing appliance for further
image processing of said image.
8. The device of claim 1, wherein the one or more preview images
comprises a sub-sampled version of an acquired image.
9. The device of claim 1, wherein the candidate face region
information comprises: (i) a list of one or more candidate face
regions; (ii) a set of data associated with one or more candidate
face regions and statistical data derived from a history of the one
or more candidate face regions; or (iii) a predicted location for
one or more candidate face regions; or (iv) combinations
thereof.
10. A method for filtering a face defect artifact from an acquired
digital image, the method comprising: using a processor; detecting
candidate face regions; predicting and confirming candidate face
regions; acquiring one or more preview images; analyzing the one or
more preview images to ascertain information relating to candidate
face regions therein; acquiring a main image using a lens and image
sensor; generating and analyzing a sub-sample resolution version of
the main image, including a reduced resolution version of an
approximately same scene as the main image; producing a first set
of candidate face defect regions in the main image based on the
candidate face region information in the one or more preview images
provided by the face detector and on the analysis of the sub-sample
resolution version of the main image; displaying a first
speed-optimized face defect filtered acquired image thereon; and
activating a second analysis-optimized filter after displaying said
first speed-optimized corrected acquired image, said activating
being performed upon initiation of an image playback mode, said
second analysis-optimized face defect filter being configured for
enhanced accuracy of face defect detection and/or higher quality of
image correction than the first speed-optimized face defect
filtered acquired image, and thereby producing a second set of
candidate face defect regions for viewing at a higher resolution
than the displaying of said first speed-optimized face defect
filtered acquired image.
11. The method of claim 10, further comprising encoding said main
image.
12. The method of claim 10, further comprising storing an encoded
main image in association with said first set of candidate face
defect regions for later image processing of said encoded main
image.
13. The method of claim 12, further comprising image processing a
full resolution version of the main image with an
analysis-optimized face defect filter based only in part on
information obtained in the previous analyzing.
14. The method of claim 13, further comprising correcting detected
face defect artifacts within the main image, and storing a
corrected main image.
15. The method of claim 10, wherein the producing said second set
of candidate face defect regions comprises operating the second
analysis-optimized filter on regions identified as corresponding to
the first set of candidate face defect regions.
16. The method of claim 10, further comprising transferring the
main image to a PC or other microprocessor-based device, or both,
for further image processing along with information obtained in the
previous analyzing.
17. The method of claim 10, wherein the one or more preview images
comprises a sub-sampled version of an acquired image.
18. The method of claim 10, wherein the candidate face region
information comprises: (i) a list of one or more candidate face
regions; (ii) a set of data associated with one or more candidate
face regions and statistical data derived from a history of the one
or more candidate face regions; or (iii) a predicted location for
one or more candidate face regions; or (iv) combinations
thereof.
19. One or more storage devices having program instruction embedded
therein for programming a processor to perform the method of any of
claims 10-18.
Description
PRIORITY
[0001] This application is a Continuation of U.S. patent
application Ser. No. 12/952,162, filed Nov. 22, 2010; which is a
Division of U.S. patent application Ser. No. 11/462,035, filed Aug.
2, 2006, now U.S. Pat. No. 7,920,723, which is a
Continuation-in-Part of U.S. patent application Ser. No.
11/282,954, filed Nov. 18, 2005, now U.S. Pat. No. 7,689,009, which
is hereby incorporated by reference.
BACKGROUND
[0002] 1. Field of the Invention
[0003] The present invention relates to digital image processing,
and more particularly to a method and apparatus for detection and
correction of red-eye defects and/or other artifacts in an acquired
digital image.
[0004] 2. Description of the Related Art
[0005] Redeye is the appearance of an unnatural reddish coloration
of the pupils of a person appearing in an image captured by a
camera with flash illumination. Redeye is caused by light from the
flash reflecting off blood vessels in the person's retina and
returning to the camera.
[0006] A large number of image processing techniques have been
proposed to detect and correct redeye in color images. In general,
these techniques typically are semi-automatic or automatic.
Semi-automatic redeye detection techniques rely on human input. For
example, in some semi-automatic redeye reduction systems, a user
must manually identify to the system the areas of an image
containing redeye before the defects can be corrected.
[0007] Many automatic redeye reduction systems rely on a
preliminary face detection step before redeye areas are detected. A
common automatic approach involves detecting faces in an image and,
subsequently, detecting eyes within each detected face. After the
eyes are located, redeye is identified based on shape, coloration,
and brightness of image areas corresponding to the detected eye
locations. In general, face-detection-based automatic redeye
reduction techniques have high computation and memory resource
requirements. In addition, most of the face detection algorithms
are only able to detect faces that are oriented in an upright
frontal view. These approaches generally do not detect faces that
are rotated in-plane or out-of-plane with respect to the image
plane.
[0008] A redeye filter process is illustrated in FIG. 1(a). An
input image is first analyzed by a speed optimized redeye detection
stage 100 at a pixel level 103 and segmented into candidate redeye
regions 104. A further series of falsing and verification filters
106 are then applied to the candidate regions and a set of
confirmed redeye regions 108 is thus determined. A correction
filter (pixel modifier) 102 is next applied to the confirmed
regions and a final image 112, corrected for redeye, is
generated.
[0009] U.S. Pat. No. 6,407,777 to inventor DeLuca discloses
in-camera detection and correction of redeye pixels in an acquired
digital image, while US published patent application 2002/0176623
to inventor Steinberg discloses automated real-time detection and
correction of redeye defects optimized for handheld devices (each
of these is assigned to the same assignee as the present
application, as are U.S. application Ser. Nos. 10/919,226, filed
Aug. 16, 2004, 10/772,092, filed Feb. 4, 2004, 10/772,767, filed
Feb. 4, 2004, and 10/635,918, filed Aug. 5, 2003). US published
patent applications 2005/0047655 and 2005/0047656 to Luo et al
disclose techniques for detecting and correcting redeye in a
digital image and in embedded systems, respectively. The
aforementioned patent and published and unpublished patent
applications are all hereby incorporated by reference.
[0010] Within an image acquisition subsystem such as is embodied in
typical digital cameras, a peak computing load and resource
requirements occur around the time of image acquisition. Upon
receiving an image acquisition request from the user the main
embedded processing system refines the image focus and exposure to
achieve an optimal main acquired image. This image, in turn, is
off-loaded from the main optical sensor of the camera and subjected
to further image processing to convert it from its raw format (e.g.
Bayer) to a conventional color space such as RGB or YCC. Finally
the acquired image is compressed prior to saving it on a removable
storage medium such as a compact flash or multimedia card.
[0011] The time taken by the camera to recover from the acquisition
of a first image and reinitialize itself to capture a second image
is referred to as the "click-to-click" time. This parameter is used
in the comparison and marketing of modern digital cameras. It is
desired for manufacturers to minimize this "click-to-click" time.
Thus, it is desired that any additional image processing, such as
redeye filtering, which is to be added to the main image
acquisition chain should be highly optimized for speed of execution
in order to minimize its impact on the click-to-click time of the
main system. Such a redeye filter typically compromises its overall
performance in terms of accuracy of detection of redeye defects and
quality of image correction.
[0012] An alternative would be to wait until after the main image
has been acquired and perform the redeye filtering at a later time
when the camera may execute the filter as a background process, or
to perform the redeye filtering off-camera on a desktop PC or
printer. There can be drawbacks to this alternative approach,
though. First, images are displayed on the acquiring device,
immediately after acquisition, with uncorrected redeye defects.
Second, when images are accessed in playback mode, there is a
further delay while images are post-processed before an image can
be displayed. Both drawbacks would create a negative impression on
end users.
[0013] Further, as most digital cameras store images using lossy
compression techniques there can be additional disadvantages with
respect to image quality as images are decompressed and
recompressed in order to perform redeye detection and correction
processes in playback or background modes. Such loss of image
quality may not become apparent until later when a user wishes to
print an image and it is too late to reverse the process.
[0014] If redeye processing is delayed until the images are loaded
onto another device, such as a desktop PC or printer, there can be
further disadvantages. First, meta-data relating to the acquiring
device and its state at the time the image was acquired may not be
available to the redeye filter process. Second, this
post-processing device performs redeye filtering on the entire
image; so that for an embedded device such as a printer that may be
relatively constrained in terms of CPU cycles and processing
resources for its primary post-processing activity, it would be
desirable to optimize the performance of the full redeye filter. It
is generally desired to optimize the detection of red-eye defects
in digital images for embedded image acquisition and processing
systems.
SUMMARY OF THE INVENTION
[0015] A digital image acquisition device is provided. An imaging
optic and detector is for acquiring digital images including one or
more preview images and a main image. A face detector module is for
analyzing the one or more preview images to ascertain information
relating to candidate face regions therein. An image generating
module is for programming the processor to generate a sub-sampled
version of the main image. A first speed-optimized red-eye filter
is for programming the processor to produce a first set of
candidate red-eye regions in a sub-sampled version of the main
image based on the candidate face region information provided by
the face detector.
[0016] An image encoder is for encoding the acquired image. An
image compressor is for compressing the main image.
[0017] An image store memory is for storing therein said encoded
image in association with said first set of candidate red-eye
regions for later image processing of the encoded image.
[0018] An analysis-optimized red eye filter is for later analysis
of a full resolution version of the main image based in part on the
previous analysis.
[0019] A display is for displaying an image processed by said first
speed-optimized red-eye filter.
[0020] A signal connection is for transferring images to a PC or
other microprocessor-based device, or both, for further image
processing.
[0021] The face detector may include a search module for detecting
candidate face regions and a tracking module for predicting and
confirming candidate face regions.
[0022] The one or more preview images may include a sub-sampled
version of an acquired image.
[0023] The candidate face region information includes (i) a list of
one or more candidate face regions; (ii) a set of data associated
with one or more candidate face regions and statistical data
derived from a history of the one or more candidate face regions;
or (iii) a predicted location for one or more candidate face
regions; or (iv) combinations thereof.
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] FIG. 1(a) illustrates a redeye process.
[0025] FIG. 1(b) illustrates a redeye process according to a
preferred embodiment.
[0026] FIG. 1(c) illustrates a redeye process according to an
alternative embodiment.
[0027] FIG. 2(a) illustrates an embodiment within a digital image
acquisition device.
[0028] FIG. 2(b) illustrates an embodiment wherein
analysis-optimized redeye filtering is performed on a separate
device from an acquiring device.
[0029] FIG. 3(a) illustrates a process according to an embodiment
whereby a speed-optimized redeye detector is applied to a partially
compressed DCT block image.
[0030] FIG. 3(b) is a workflow diagram of an illustrative
embodiment of an improved in-camera redeye detection component
employing a redeye DCT prefilter.
[0031] FIG. 3(c) is a workflow diagram of an illustrative
embodiment of the redeye DCT prefilter.
[0032] FIG. 3(d) illustrates segmentation of a redeye DCT
prefilter.
[0033] FIG. 3(e) shows a 4-DCT block neighborhood.
[0034] FIG. 4(a) illustrates eye regions mapped onto a rectangular
grid.
[0035] FIG. 4(b) illustrates the approximate color which will be
recorded by a DC coefficient of each DCT block after the image of
FIG. 4(a) is transformed into the DCT domain.
[0036] FIGS. 4(c), 4(d) and 4(e) illustrate DCT blocks from FIG.
4(a) that can be identified with the colors of a redeye candidate
region, an eye-white region and a skin color region, respectively,
through the use of an inclusive color determining filter
method;
[0037] FIG. 5 illustrates a functional implementation of a modified
redeye filtering process according to another embodiment.
[0038] FIG. 6(a) illustrates an original defect region stored in a
header and a corrected defect region applied to a main image
body.
[0039] FIG. 6(b) illustrates a corrected defect region stored in
the header and the original defect region remaining uncorrected in
the main image body.
[0040] FIG. 6(c) illustrates an original defect region and at least
one alternative corrected defect region stored in the header and
the optimally determined corrected defect region applied to the
main image body.
[0041] FIG. 7 illustrates a functional implementation of a
preferred further embodiment of a redeye filtering process.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0042] A two-stage redeye filtering process is provided whereby a
speed optimized filter performs the initial segmentation of
candidate redeye regions and optionally applies a speed-optimized
set of falsing/verification filters to determine a first set of
confirmed redeye regions for correction. Some of the candidate
regions which are rejected during the first stage are recorded and
re-analyzed during a second stage by an alternative set of
analysis-optimized filters to determine a second set of confirmed
redeye regions.
[0043] Optionally, the first set of confirmed redeye regions may be
passed through the second stage analysis-optimized filters.
[0044] In an alternative embodiment, the second stage filter may
incorporate an enhanced correction filter which may be optionally
applied to the first set of confirmed redeye regions.
[0045] A process is provided including implementing a two-stage
redeye filter wherein a first redeye filter process, which is
optimized for speed, is combined with a second redeye process which
is optimized for accurate image analysis. The advantages of a
redeye filter implemented within a main image acquisition chain are
combined with those of a redeye filter implemented in
background/playback mode, while disadvantages generally associated
with each of these two approaches are reduced or eliminated.
[0046] A red eye process in accordance with a preferred embodiment
is illustrated in FIG. 1(b). An input image 110 is processed by a
pixel analyzer 103, segmented into a set of candidate regions 104
and subsequently passed through a set of falsing & verification
filters 106. these components form a speed optimized redeye
detection filter 100 corresponding generally to the filter 100 of
FIG. 1(a), except that in the embodiment illustrated at FIG. 1(b),
filter 100 is modified so that candidate redeye regions which,
instead of being ultimately classified as false positives, based on
their size or probability being below a predetermined threshold are
saved as candidate regions 109 for a subsequent optimized analysis
101.
[0047] Thus, in this embodiment the falsing & verification
filters 106 generates a set of secondary candidate regions 109 in
addition to the set of confirmed redeye regions 108. The set of
secondary candidate regions may include members of the original
candidate region set 104, which could be neither confirmed nor
eliminated by the speed optimized redeye detection process 100. It
may also include combined candidate regions in close proximity to
each other.
[0048] This set of candidate regions 109 is saved either in a RAM
buffer, or in non-volatile memory depending on the implementation
of the embodiment. Where the data is saved in RAM (or volatile)
memory, the image acquisition system applies the second stage
redeye filter to the image prior to powering down. The preferred
form of storage is in non-volatile memory, or on a removable media
card. In other embodiments this data may be stored in the image
header with the part-processed image itself.
[0049] In this embodiment, a second stage, analysis optimised
redeye filter 101 is next applied to the secondary set of candidate
regions 109. During the analysis optimized detection process 101,
the saved candidate regions 109 are preferably further analyzed at
a higher resolution than during the speed optimized process. Thus,
the filter 101 includes an analysis optimized set of falsing and
verification filters 116, which differ either in their nature or in
their operating parameters from the falsing and verification
filters 106 employed in the speed optimized analysis. Nonetheless,
it will be appreciated that it may be useful to perform one or more
intermediate stages of optimized analysis at increasing image
resolutions. This will depend on the hardware capabilities of the
imaging appliance and the resources available within the image
processing subsystems of the imaging appliance.
[0050] Second stage analysis may occur in response to a variety of
external events. For example, a user may initiate image playback
causing this filter 101 to be applied. Alternatively, a camera may
signal that it has been idle for a predetermined interval and thus
background redeye processing may be initiated. Where a camera can
determine its motion from auto-focus data, e.g., when a camera is
idle such that image focus does not change for a predetermined
interval and no user input is received, background image processing
including stage-two redeye filtering may be initiated.
[0051] After a set of confirmed redeye regions 118 is determined by
the second stage redeye filter 101, a correction filter (pixel
modifier) 102 is applied and these corrected regions are merged 115
with the initial corrected image 112 to generate a final corrected
image 113.
[0052] An alternative embodiment is illustrated in FIG. 1(c) which
differs from the embodiment of FIG. 1(b) in that a single
correction filter (pixel modifier) 102b is applied after the second
stage redeye filter 101, rather than merging the initial corrected
image 112 with the corrected regions determined by the stage-two
filter 101. The filter 102b corrects both the original confirmed
redeye regions 108 and the second stage confirmed redeye regions
118 to produce the final corrected image 113.
[0053] FIG. 2(a) illustrates an embodiment within a digital image
acquisition device. The speed optimized redeye filter 411 may
contains both detection 411-1, 411-2 & 411-4 and, optionally,
correction 411-3 processes. Similarly, the analysis optimized
redeye filter 412, which may operate as a background process 403,
performs additional refinements to the initial determinations and
corrections of the speed optimized filter 411. Data related to
these initial determinations is provided by the redeye filter
metadata 410-5 which is stored with the acquired image 410-2 in an
image store 410.
[0054] FIG. 2(b) illustrates a variation on the embodiment of FIG.
2(a) wherein the analysis optimized redeye filter is performed on a
separate device 400 to the original acquiring device. This may be,
for example, a desktop PC, or a printer. In other embodiments the
camera may connect directly to a network or web service. The image
data transfer means 404a, 404b may be either a point-to-point
communications link between the two devices. A removable storage
media may be physically exchanged between the two devices, or
alternatively both devices may be connected to a common network
such as the internet. In other embodiments, the redeye filter
metadata 410-5 may be incorporated with the main image data 410-2
by adding the metadata to the JPEG header (see FIG. 3(a)).
Background redeye filters may operate on both the original
acquiring device 400 and a separate device 400'. Supporting
multiple redeye filters of increasing sophistication can involve
exchange and storage of complex and detailed metadata with the
image being analyzed and corrected.
[0055] For an exemplary, non-exhaustive list of some typical
filters that may be found in either the speed or analysis-optimized
redeye filters 411, 412, see U.S. published application Ser. No.
10/976,336, filed Oct. 28, 2004, which is assigned to the same
assignee as the present application and is hereby incorporated by
reference.
[0056] In the embodiments above, speed optimized redeye detection
100 is preferably applied to a sub-sampled input image. The
confirmed redeye regions 108 from this speed optimized redeye
detection 100 are passed to a redeye correction module 102/102a.
The corrected redeye image 112 can be displayed on a low-resolution
viewing screen of a digital camera immediately after the image
acquisition process providing the user with a redeye corrected
image almost instantly. However, although this initial corrected
image 112 may be adequately corrected, for example, where it is a
portrait-style image in which a face occupies most of an image or
where large high probability red-eye regions exist, it may not be
adequately corrected for images including a large groups of
persons, where the candidate redeye regions are smaller or less
certain. Accordingly, the second analysis optimized redeye
filtering process 101 is preferably implemented after image
acquisition but prior to final image 113 display on a larger
viewer, or image printing. The analysis optimized redeye detection
process 101 and correction process 102 may be advantageously
delayed until such high resolution viewing or printing is desired
by the end user.
[0057] In the embodiments of FIGS. 2(a) and 2(b), the sub-sampled
versions of the main image or well as uncorrected full size
versions of the main image may be provided directly from main image
acquisition device hardware 402 rather than needing to explicitly
sub-sample a decoded full size main image.
[0058] As in the case of FIG. 1(c), image correction need not be
performed on images within the acquisition chain and can in fact be
performed in the background on acquired images for which speed
optimised redeye detection has been performed in the acquisition
chain. This is advantageous in many image acquisition appliances
where image compression is often implemented in hardware as part of
the main image acquisition chain 401. In this embodiment, only the
detection process is actually performed in the acquisition chain. A
speed optimized correction or a full analysis optimized redeye
filter may be subsequently selected in playback mode either based
on a predetermined setting within the camera, or on a user
selection at the time of image playback/viewing.
[0059] In the embodiment of FIG. 3(a), an acquired raw image 402 is
partially processed 404 before being provided to DCT compression
block 408-1. This block provides a sub-sampled version of the
acquired image and, although not shown, this can be provided to the
image store 410 as explained above. A speed optimized redeye
detector 428 is then applied to the partially compressed DCT block
image and DCT red-eye candidate regions both corrected and
suspected uncorrected regions are output for storage in the store
410. An advantage of applying speed optimised correction at DCT
block level, rather than at the pixel level, is that the need for
an explicit image subsampling step is avoided, yet the benefits of
applying redeye analysis to a sub-sampled image as detailed in the
prior art cited herein are retained.
[0060] The regions output by the DCT prefilter 428, incorporated in
the main image acquisition chain 401, can advantageously allow much
of the DCT block stream to be bypassed without being processed when
an image is subsequently corrected by a filter such as a background
filter module 426. This allows either much faster or more detailed
analysis and filtering of the DCT blocks which are determined to
require processing by an analysis optimized redeye filter 406.
Those skilled in the art will realize that further embodiments are
possible which separate aspects of both the DCT prefilter and the
otherwise conventional type redeye filter 406 between the main
image acquisition chain, 401 and a background redeye detection and
correction process 426.
[0061] FIG. 3(b) shows in more detail the operation of the redeye
DCT prefilter 428. This particular example illustrates how the DCT
prefilter can integrate with the main image acquisition, processing
and compression chain, 402, 404 and 408 of FIG. 3(a). The DCT image
to be filtered is first loaded into memory 902 after which the main
DCT prefilter 428 is applied. This has three main stages. First,
the DCT blocks of the image are scanned 904 and the relevant DCT
coefficients are extracted. Depending on the sophistication of the
filter, perhaps only the DC components of each DCT block may be
utilized in the subsequent analysis. Alternatively, some of the AC
components may be extracted in order to allow some texture or
sharpness/blur determination as part of the prefilter
operation.
[0062] In a second principle stage of the DCT prefilter 428, the
DCT blocks are segmented and grouped 906 based on a plurality of
criteria determined from the coefficients extracted at step 904. A
region based analysis is performed 907 in order to determine the
final candidate redeye groupings. It is next determined if there
are any valid candidate grouping 908 and if not the normal JPEG
compression process is resumed 408-2. If candidate regions are
determined 908 then a bounding region is determined for each region
910 which is sufficiently large to include various eye-region
features which may be used as part of a main redeye filter process
411/412 of FIG. 3(a). If the certainty of the region being a flash
eye defect is high enough, a bounding box region may be
decompressed to bitmap format 912 and a speed optimized redeye
filter chain 914 may be applied to correct that region of the main
image 914. The corrected regions in bitmap space are next mapped to
an integer number of 8.times.8 block boundaries and are
recompressed 918 and subsequently overwritten 920 onto the DCT
domain. Finally, normal JPEG compression is resumed 408-2. As
mentioned previously each of the corrected region boundaries and
suspected region boundaries may be output for use in later analysis
optimized detection and correction.
[0063] FIG. 3(c) shows the region based analysis 907 of FIG. 3(b)
in more detail. First, the DCT coefficients are read 930 from a DCT
image in temporary memory store. These coefficients are then
preprocessed into a set of criteria tables 932. Each table is
preferably a numeric table of size N.times.M where there are
N.times.M DCT blocks in the image being analyzed. As examples, one
such table will contain the red chrominance component normalized to
emphasize a colour range associated with flash eye defects and
derived from the DC coefficients for the luminance (Y) and red
chrominance (Cr) components of each DCT block. Another table may
contain differential values derived from neighboring DCT blocks and
used in edge detection. Yet another table may contain variance
values calculated across a set of neighboring DCT blocks. Those
skilled in the art will realize that as an implementation of the
DCT prefilter becomes increasingly sophisticated that multiple
additional criteria may be incorporated into the algorithm.
[0064] After the calculations required for each criteria table have
been completed 932 they are copied into temporary storage 933 and
the prefilter algorithm will next perform a filtering and
segmentation step 907 for each of the plurality of criteria tables.
This particular step is further detailed in FIG. 3(d) below. Now
the prefilter has determined a plurality of sets of DCT block
grouping based on the segmentation analysis of a plurality of
criteria tables. These groupings are sorted and analyzed to
determine a final set of flash defect candidate regions.
[0065] This region-based analysis 936 is comprised of a number of
alternative techniques which will be known to those skilled in the
art. In particular, we mention that regions may be combined both in
inclusive, exclusive and less frequently in mutually exclusive
combinations 936-1. An alternative approach to region-based
analysis will employ template matching 936-2. An example is
provided in U.S. Pat. No. 5,805,727 to Nakano, which is hereby
incorporated by reference. A sub-region is matched within a DCT
image using both coarse and fine template matching techniques based
on the DC coefficients of the DCT blocks within the image.
[0066] A component of the region based analysis is a
re-segmentation engine 92-6 which is responsible for analyzing
larger regions which may, in fact, be two distinct overlapping
regions, or clusters of smaller regions which may, in fact, be a
single larger region. Then once the region based analysis 936 is
completed a final LUT containing the list of determined flash
defect candidate regions is obtained and written to system
memory.
[0067] FIG. 3(d) shows the segmentation step 907 of the redeye DCT
prefilter in more detail. The next preprocessed criteria table to
be processed by the segmentation process is first loaded 950 and
the labeling LUT for the region grouping process is initialized
952. Next the current DCT block and DCT block neighborhoods are
initialized 954.
[0068] FIG. 3(e) shows a diagrammatic representation of a 4-DCT
block neighborhood 992 containing the three upper DCT blocks and
the DCT block to the left of the current DCT block 994, which is
cross-hatched in FIG. 3(e). This 4-block neighborhood 992 is used
in the labeling algorithm of this exemplary embodiment. A look-up
table, LUT, is defined to hold correspondence labels.
[0069] Returning to step 954 we see that after initialization is
completed the next step for the workflow of FIG. 3(d) is to begin a
recursive iteration through all the elements of the current
criteria table in a raster-scan from top-left to bottom-right. The
workflow next determines if the current criteria table value,
associated with the current DCT block satisfies membership criteria
for a candidate redeye region 958. Essentially this implies that
the current criteria table value has properties which are
compatible with a flash eye defect. If the current criteria table
value satisfies membership criteria for a segment 958, then the
algorithm checks for other member DCT blocks in the 4-block
neighborhood 960. If there are no other member blocks, then the
current block is assigned membership of the current label 980. The
LUT is then updated 982 and the current label value is incremented
984. If there are other member blocks in the 4-block neighborhood
960 then the current block is given membership in the segment with
the lowest label value 962 and the LUT is updated accordingly 516.
After the current block has been labeled as part of a flash-eye
defect segment 962 or 980, or has been categorized as not being a
member of a candidate defect region during step 958, a test is then
performed to determine if it is the last DCT block in the image
966. If the current block is the last block in the image then a
final update of the LUT is performed 970. Otherwise the next
criteria table value is obtained by incrementing the current block
pointer 968 and returning to step 958 and is processed in the same
manner. Once the final DCT block is processed and the final LUT
completed 970, all of the blocks with segment membership are sorted
into a labeled-segment table of potential eye-defect segments 972.
Another test is then made to determine if this is the last criteria
table to be processed 966 and if that is the case then control is
passed to the region based analysis step of FIG. 3(c) 936.
Otherwise the block segmentor returns to step 950 and loads the
next criteria table for processing.
[0070] A number of alternative techniques can advantageously be
adapted for use within the redeye DCT prefilter. U.S. Pat. No.
5,949,904 to Delp discloses querying image colors within a DCT
block. In particular it allows the determination of color within
the DCT block from the DC coefficient of the DCT alone. Thus from a
knowledge of the DC coefficients alone color matching can be
achieved. U.S. Pat. No. 6,621,867 to Sazzad et al discloses
determining the presence of edges within DCT blocks based on
differences between the DC coefficients in neighbouring DCT
blocks.
[0071] Now additional image qualities such as texture and image
sharpness/blur can be determined through an analysis of additional
AC components within a DCT block. Examples of such analysis
techniques are described in US patent application No. 2004/0120598
to Feng and US patent application No. 2004/0057623 to Schuhurke et
al.
[0072] Alternative DCT block segmentation techniques may be
employed in other embodiments, and specifically techniques
described in U.S. Pat. No. 6,407,777 to DeLuca, U.S. Pat. No.
6,873,743 to Steinberg, and US patent applications 2005/0047655 and
2005/0047656 to Luo et al. All of these patents and published
applications are hereby incorporated by reference.
[0073] In FIG. 4(a) we show an example of how an outline color
template can be constructed for redeye regions. FIG. 4(a) shows an
eye regions mapped onto a rectangular grid. Each block of the grid
201 corresponds to an 8.times.8 pixel block. The main redeye defect
204 is typically surrounded by an iris region 203 and an additional
eye-white region 202 and the boundary of the main redeye region,
206 as determined by a redeye filter.
[0074] Next, in FIG. 4(b) we show the approximate color which will
be recorded by the DC coefficient of each DCT block after the image
in FIG. 4(a) is transformed into the DCT domain. The colour
combinations shown in FIG. 4(b) are as follows: R is a reddish hue
indicative of a flash-eye defect phenomenon; S is a hue indicative
of a skin colour; W: indicates a whitish colour associated with the
eye-white region; I: is the Iris colour of the eye which can vary
significantly from person to person; WS: indicates a block with
mixed skin and eye-white; RW: is a block with mixed redeye and eye
white; and RI: has a hue which is a mix of red and the Iris color.
Now if sufficiently inclusive color filtering is applied to these
image blocks it is possible to determine directly from the DC
coefficients of the DCT domain image a color map for a typical
redeye. FIG. 4(c) illustrates a region which will be determined as
red if an inclusive color filter is used. FIGS. 4(d) and 4(e)
illustrate this for eye white and skin color regions surrounding
the flash eye defect region. This data can, for example, be used to
build a set of color templates for a flash eye defect region. By
applying other conventional techniques it is possible to determine
DCT blocks which contain sharp edges, or transitions between color
regions. This can provide additional information to improve the DCT
prefilter detection process.
[0075] A potential disadvantage in the embodiment of FIG. 3(a) is
that it requires the entire image to be decompressed in order to
perform the second-step redeye filtering process. As most cameras
use JPEG compression which is lossy it is desirable for certain
embodiments to implement a lossless embodiment which allows a
two-stage redeye process to be applied within an image acquisition
appliance without loss of image quality.
[0076] Accordingly, FIG. 5 illustrates a functional implementation
of modified redeye filtering process which allows an analysis
optimized redeye detection and correction to occur in playback
mode, without loss of image quality. This also allows complex
post-processing, to be implemented in incremental steps. Thus, when
a camera is idle with respect to user activity, yet is still
switched on it may load and commence processing of an image. When
user activity recommences the camera can recompress and save the
image being processed prior to responding to the user. As the
embodiment described below allows lossless saving and restoration
of a image within the camera, it thus facilitates incremental
process of an image which is not limited to redeye, but may be
applied likewise to other in-camera methods such as face detection
or recognition.
[0077] Various means of sensing user activity may be alternatively
employed. One example includes detecting camera motion and
optionally correlating this with other in-camera functions such as
an autofocus subsystem and a user-interface subsystem. A camera may
also incorporate a power-saving mode which determines that the
camera has been inactive long enough to disable certain subsystems.
When such a mode is activated by user inactivity then additional
background image processing can be initiated without interfering
with the use of the appliance by the user.
[0078] Returning to FIG. 5, an embodiment is illustrated which
incorporates a speed-optimized redeye filter 411 in the main image
acquisition chain 401. In this exemplary embodiment, the speed
optimization of the filter is achieved by implementing a minimal
set of falsing and validation filters and no correction process is
applied during the main image acquisition chain. In alternative
embodiments the speed optimization techniques described in relation
to embodiments above may optionally be incorporated or
substituted.
[0079] After an image is analyzed by this speed optimized redeye
filter 411 it is subsequently compressed 427-1 and stored 410. In
addition data relating to the location of candidate redeye regions
and false positives is recorded and associated with the stored
image.
[0080] Now when the camera can initiate background processing, as
described above, or when the user enters playback mode and selects
an image for viewing it will be partially decompressed 433 from
JPEG to DCT block form. As this decompression step is lossless
there is no loss of quality to the main image which is temporarily
stored in memory and passed to a DCT region decompressor 430. This
DCT region decompressor uses the data stored and associated with
the original image to determine the specific DCT blocks which
contain candidate redeye regions, and, optionally, false positive
regions which may benefit from additional detection processing if
sufficient time & system resources are available.
[0081] Each decompressed DCT region is then incrementally filtered
by one or more redeye filters to determine corrections which should
be applied to said DCT image block.
[0082] In certain embodiments, DCT blocks may be decompressed to
bitmap format and filtered as a pixel block. In other embodiments
adjacent, non-candidate DCT blocks may be included in the
decompression 430 and filtering 412 processes. Once a decompressed
DCT block region, which may include multiple DCT blocks, has been
corrected by the redeye filter 412 then the corrected DCT image
segment is passed onto a DCT block matching module 416 which, in
addition to checking the alignment of DCT blocks will also check
the integration of the corrected DCT blocks within the partially
decompressed and temporarily stored DCT block image. When all
candidate DCT blocks and any adjacent DCT blocks included in the
redeye filter analysis have been corrected they are overwritten
onto the partially decompressed and temporarily stored DCT block
image by a DCT region overwriter 418 module. The partially
decompressed and temporarily stored DCT block image is next passed
to the DCT to JPEG image compression module 427-1 and is losslessly
compressed back to JPEG format.
[0083] Note that in this way the only regions of the image which
are decompressed using lossy techniques are those identified by the
speed optimized redeye filter 411 in the image acquisition chain.
As these image regions are to be corrected the effect of lossy
decompression and recompression on them will thus be
negligible.
[0084] Several further embodiments can be identified. These include
(i) saving a copy of the original defect region prior to
overwriting the DCT blocks which contain the image defect in the
temporary copy of the DCT image. This alternative embodiment
supports lossless restoration of the original image. The saved
original DCT block region containing the defect can be stored
within the header of the JPEG image. In U.S. Pat. No. 6,298,166 to
Ratnakar et al., watermark data is incorporated in the image. Thus
the corrected image can contain a copy of any original uncorrected
regions. Alternatively (ii) multiple alternative correction
algorithms can be employed and these may be temporarily copied for
later storage in the JPEG header for later selection by an end user
through a user interface, either on the camera or subsequently in a
computer based image processing application. The overwriting step
is optional. If it is used, then certain image analysis criteria
can be applied as additional processing either immediately prior to
overwriting, or as an integral part of detecting or correcting
red-eye or combinations thereof.
[0085] Further aspects of these embodiments are illustrated in
FIGS. 6(a)-(c). FIG. 6(a) illustrates an example of the original
defect region 506 stored in the header 504 and the corrected defect
region 508 applied to the main image body 502. FIG. 6(b)
illustrates an example of the corrected defect region 508 stored in
the header 504 and the original defect region 506 remaining
uncorrected in the main image body 502. FIG. 6(c) illustrates an
example of the original defect region 506 and at least one
alternative corrected defect region 508-2 stored in the header 504
and the optimally determined corrected defect region 508-1 applied
to the main image body 502. The graphical representations of
"corrected" and "uncorrected" eye regions used in FIGS. 6(a)-(c) is
for illustrative purposes; while graphical eye-regions preferably
actually represents a transformed block of DCT coefficients.
[0086] In other embodiments, the performance of the fast red-eye
filter can be further improved by selectively applying it to a
limited set of regions within the acquired image. As it is
generally impractical to implement extensive image analysis during
the main image acquisition chain, these regions are preferably
determined prior to the initiation of the main image
acquisition.
[0087] One convenient approach to pre-determine image regions which
have a high probability of containing red-eye candidates is to
perform pre-processing on a set of preview images. Many
state-of-art digital cameras acquire such a stream of images
captured at video rates of 15-30 frames per second (fps) at a lower
resolution than that provided by the main image acquisition
architecture and/or programming. A set of 320.times.240, or QVGA
images is typical of many consumer cameras and the size and
frame-rate of this preview images stream can normally be adjusted
within certain limits.
[0088] In one embodiment, as illustrated in FIG. 7, the digital
camera includes a face detector (600) which operates on the preview
image stream (410-3). The face detector may have two principle
modes: (i) a full image search mode to detect (and confirm) new
face-candidate regions (601); and (ii) a main tracking mode which
predicts and then confirms the new location of existing
face-candidates in subsequent frames of the image stream and
compiles statistical information relating to each such confirmed
candidate region. Both modes can employ a variety of methods
including face detection, skin region segmentation, feature
detection including eye and mouth regions, active contour analysis
and even non-image based inputs such as directional voice analysis
(e.g. US 2005/0147278 to Rui et al which describes a system for
automatic detection and tracking of multiple individuals using
multiple cues). As the first mode, hereafter referred to as the
"seeding mode" is applied to the entire image, it is
computationally more intensive and is only applied occasionally,
e.g., every 30-60 image frames. As such, new faces appearing in the
image will still be detected within a couple of seconds which is
sufficient for most consumer applications. The second mode is
preferably applied to every image frame, although not all of the
analysis cues may be applied on every frame.
[0089] Thus in normal operation only the output(s) from the second
operational mode of a face tracker algorithm will be available
after every frame of the preview image stream. There may be three
principle outputs from this second mode: (i) a list of candidate
face regions which are confirmed to still contain faces; and/or
(ii) a set of data associated with each such confirmed face region
including its location within that frame of the image and various
additional data determined from a statistical analysis of the
history of said confirmed face region; and/or (iii) a predicted
location for each such confirmed face region in the next frame of
the preview image stream. If item (ii) is used, item (iii) can be
optional as sufficient data may be provided by item (ii) for a
determination of predicted location.
[0090] These outputs from the preview face detector (600) enable
the speed optimized red-eye detector 411 to be applied selectively
to face regions (601) where it is expected that a red-eye defect
will be found.
[0091] Techniques are known wherein a face detector is first
applied to an image prior to the application of a red-eye filter
(e.g. US 20020172419 to Lin et al; US 20020126893 to Held et al; US
20050232490 to Itagaki et al and US 20040037460 to Luo et al.). We
emphasize that, under normal circumstances, there is not sufficient
time available during the main image acquisition chain, which is
operable within a digital camera to allow the application of face
detector prior to the application of a red-eye filter. The present
embodiment overcomes this disadvantage of the prior art by
employing the predictive output of a face tracker module (600).
Although the size of the predicted region will typically be larger
than the size of the corresponding face region, it is still
significantly smaller than the size of the entire image. Thus,
advantages of faster and more accurate detection can be achieved
within a digital camera or embedded image acquisition system
without the need to operate a face detector (600) within the main
image acquisition chain.
[0092] Note that where multiple face candidate regions (601) are
tracked, then multiple predicted regions will have the
speed-optimized red-eye filter applied.
[0093] The present invention is not limited to the embodiments
described above herein, which may be amended or modified without
departing from the scope of the present invention as set forth in
the appended claims, and structural and functional equivalents
thereof.
[0094] In methods that may be performed according to preferred
embodiments herein and that may have been described above and/or
claimed below, the operations have been described in selected
typographical sequences. However, the sequences have been selected
and so ordered for typographical convenience and are not intended
to imply any particular order for performing the operations.
[0095] In addition, all references cited above herein, in addition
to the background and summary of the invention sections, are hereby
incorporated by reference into the detailed description of the
preferred embodiments as disclosing alternative embodiments and
components.
* * * * *