Diese Erfindung betrifft das Detektieren und Reduzieren der Rotfärbung
von Augen in Digitalbildern.
Die Erscheinung der Rotfärbung von Augen in Fotografien ist gut
bekannt. Wenn ein Blitzlicht verwendet wird, um eine Person (oder ein Tier) zu beleuchten,
wird das Licht häufig unmittelbar von der Netzhaut des Subjekts zurück
in die Kamera reflektiert. Dies bewirkt, dass die Augen des Subjeks rot erscheinen,
wenn die Fotografie angezeigt oder abgezogen wird.
Fotografien werden zunehmend als digitale Bilder gespeichert, typischerweise
als Anordnung von Pixeln, wobei jedes Pixel normalerweise durch einen 24-Bit-Wert
dargestellt wird. Die Farbe jedes Pixels kann innerhalb des 24-Bit-Wertes als drei
8-Bit-Werte codiert sein, welche die Intensität von Rot, Grün und Blau
für dieses Pixel darstellen. Alternativ dazu kann die Anordnung von Pixeln
so umgewandelt werden, dass der 24-Bit-Wert aus drei 8-Bit-Werten besteht, die „Farbton",
„Sättigung" und „Helligkeit" darstellen. Der Farbton stellt eine
„kreisförmige" Skala bereit, welche die Farbe darstellt, so dass 0 Rot
darstellt, wobei die Farbe durch Grün und Blau hindurchgeht, wenn der Wert
zunimmt, zurück zu Rot bei 255. Die Sättigung stellt ein Maß der
Intensität der durch den Farbton identifizierten Farbe bereit. Die Helligkeit
kann als ein Maß der Beleuchtungsmenge angesehen werden.
Durch Bearbeiten dieser Digitalbilder ist es möglich, die Wirkungen
der Rotfärbung von Augen zu verringern. Software, die diese Aufgabe erfüllt,
ist gut bekannt und arbeitet im Allgemeinen durch Verändern der Pixel eines
Rote-Augen-Merkmals so, dass dessen Rotanteil verringert wird – mit anderen
Worten so, dass deren Farbton weniger rot gemacht wird. Normalerweise werden sie
stattdessen als Schwarz oder Dunkelgrau hinterlassen.
Die meiste Rote-Augen-Reduktionssoftware erfordert den Mittelpunkt
und den Radius jedes Rote-Augen-Merkmals, das zu bearbeiten ist, und die einfachste
Weise, diese Informationen bereitzustellen, ist, dass ein Benutzer das Mittelpixel
jedes Rote-Augen-Merkmals auswählt und den Radius des roten Teils anzeigt.
Dieses Verfahren kann für jedes Rote-Augen-Merkmal durchgeführt werden,
und daher hat die Bearbeitung keine Wirkung auf den Rest des Bildes. Jedoch erfordert
dies eine beträchtliche Eingabe vom Benutzer, und es ist schwierig, den genauen
Mittelpunkt jedes Rote-Augen-Merkmals exakt zu orten und den richtigen Radius auszuwählen.
Ein anderes verbreitetes Verfahren ist, dass der Benutzer einen Kasten um die rote
Fläche zieht. Dieser ist rechteckig, was es noch schwieriger macht, das Merkmal
genau zu markieren.
Es besteht daher ein Bedarf, selbsttätig Flächen eines Digitalbildes
zu identifizieren, auf die eine Rote-Augen-Reduktion angewendet werden sollte, so
dass die Rote-Augen-Reduktion nur angewendet werden kann, wo es benötigt wird,
selbst ohne Eingreifen des Benutzers oder mit minimalem Benutzereingreifen.
EP-A-0911759 beschreibt ein Verfahren zum Detektieren von Rote-Augen-Merkmalen
durch Durchsuchen eines Bildes nach Pixeln, die einen roten Farbton haben, und Markieren
dieser Pixel unter Verwendung einer binären Maske. Danach kann aus den als
rot markierten Pixeln ein Pupillenbereich identifiziert werden.
WO 99/17254 und US 5874764
beschreiben jeweils ein Verfahren zum Detektieren von Rote-Augen-Merkmalen durch
Durchsuchen eines Bildes nach Pixeln, welche die Art von Rot haben, der in durch
Blitzlicht beleuchteten menschlichen Augen zu beobachten ist. Dies schließt
ein, nach Pixeln zu suchen, die voreingestellte minimale und maximale Farbton-,
Helligkeits- und Sättigungswerte haben. Danach werden weitere Auswahlkriterien
angewendet, um zu bestimmen, ob die detektierten roten Pupillen einen Teil eines
Rote-Augen-Merkmals bilden.
Die vorliegende Erfindung erkennt an, dass ein typisches Rote-Augen-Merkmal
nicht einfach ein Bereich von roten Pixeln ist. Ein typisches Rote-Augen-Merkmal
schließt üblicherweise ebenfalls einen hellen Fleck ein, der durch die
Reflexion des Blitzlichts von der Vorderseite des Auges verursacht wird. Diese hellen
Flecken sind als „Hochlichter" bekannt. Falls Hochlichter im Bild lokalisiert
werden können, dann ist eine Rotfärbung von Augen viel leichter selbsttätig
zu identifizieren. Hochlichter befinden sich üblicherweise nahe dem Mittelpunkt
von Rote-Augen-Merkmalen, obwohl sie manchmal außermittig und gelegentlich
am Rand liegen.
Nach einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren
zum Detektieren von Rote-Augen-Merkmalen in einem Digitalbild bereitgestellt, umfassend:
Prüfen der Sättigung und Helligkeit von Pixeln im Bild und Identifizieren
von Hochlichtbereichen, die Pixel enthalten, die relativ zu Pixeln in den umgebenden
Bereichen vorbestimmte Sättigungs- und Helligkeitskriterien erfüllen,
wobei die vorbestimmten Sättigungs- und Helligkeitskriterien darin bestehen,
dass Pixel in den Hochlichtbereichen einen höhere Sättigung- oder Helligkeitswert
oder beides haben müssen als Pixel in den umgebenden Bereichen; und
Bestimmen, ob jeder Hochlichtbereich einem Rote-Augen-Merkmal entspricht, davon
ausgehend, dass weitere Auswahlkriterien angewendet werden.
Die weiteren Auswahlkriterien umfassen vorzugsweise die Prüfung
des Farbtons der den Hochlichtbereich umgebenden Pixel und die Bestimmung ein, dass
der Hochlichtbereich keinem Rote-Augen-Merkmal entspricht, falls der Farbton außerhalb
eines der Farbe Rot entsprechenden vorbestimmten Bereichs liegt.
Die weiteren Auswahlkriterien können alternativ oder zusätzlich
dazu die Identifikation der Form des Hochlichtbereichs umfassen und die Bestimmung,
dass der Hochlichtbereich keinem Rote-Augen-Merkmal entspricht, falls die Form nicht
im Wesentlichen kreisförmig ist.
Nach einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren
zum Reduzieren des visuellen Effekts von Rote-Augen-Merkmalen in einem Digitalbild
bereitgestellt, umfassend: Detektieren von Rote-Augen-Merkmalen unter Verwendung
des oben beschriebenen Verfahrens und Ändern des Farbtons der jeden Hochlichtbereich
umgebenden Pixel, um den Rotanteil dieser Pixel zu reduzieren.
Nach einem dritten Aspekt der vorliegenden Erfindung wird ein Verfahren
zum Verarbeiten eines Digitalbilds bereitgestellt, wobei das Verfahren Folgendes
umfasst:
Detektieren von Rote-Augen-Merkmalen unter Verwendung eines Verfahrens wie oben
beschrieben; und
Ausführen der Rote-Augen-Reduktion für einige oder alle der Rote-Augen-Merkmale.
Dies hat den Vorteil, dass der Sättigungs-/Helligkeitskontrast
zwischen den Hochlichtbereichen und der sie umgebenden Fläche viel stärker
markiert ist als der Farb- (oder "Farbton"-) Kontrast zwischen dem roten Teil eines
Rote-Augen-Merkmals und den es umgebenden Hauttönen. Ferner wird die Farbe
für viele Bildkompressionsformate, wie beispielsweise JPEG, mit einer niedrigen
Auflösung codiert. Durch die Verwendung der Sättigung und der Helligkeit
zum Detektieren der Rotfärbung von Augen ist es viel unwahrscheinlicher, dass
sie verfehlt werden, als wenn der Farbton als das grundlegende Detektionsinstrument
verwendet wird.
Es ist zweckmäßig, wenn jedes Rote-Augen-Merkmal einen einzigartigen,
mit ihm assoziierten, Bezugspunkt haben kann, um zu ermöglichen, dass die Position
des Rote-Augen-Merkmals in einer Liste gespeichert wird. Daher kann ein einzelnes
Bezugspixel in jedem Hochlichtbereich als der Mittelpunkt des mit diesem Hochlichtbereich
assoziierten Rote-Augen-Merkmals ausgewählt werden und die Rote-Augen-Reduktion
für dieses Rote-Augen-Merkmal auf dem Bezugspixel zentriert werden.
So, wie es hohe Sättigungs- und/oder Helligkeitswerte hat, ist
das Hochlicht eines typischen Rote-Augen-Merkmals sehr scharf definiert. Dementsprechend
wird ein Hochlichtbereich vorzugsweise nur dann identifiziert, falls es eine scharfe
Veränderung in der Pixelsättigung und/oder -helligkeit zwischen dem Hochlichtbereich
und den daran angrenzenden Bereichen gibt.
Obwohl sich viele der identifizierten Hochlichtbereiche aus Rotfärbung
von Augen ergeben mögen, ist es wahrscheinlich, dass einige Hochlichtbereiche
identifiziert werden, die nicht Teil von Rote-Augen-Merkmalen sind und um die eine
Rote-Augen-Reduktion nicht angewendet werden sollte. Das Verfahren umfasst daher
vorzugsweise die Elimination von mindestens einigen der Hochlichtbereiche als Möglichkeiten
für Rote-Augen-Reduktion. In der Tat ist es möglich, dass keiner der identifizierten
Hochlichtbereiche durch Rotfärbung von Augen verursacht ist und daher keine
mit ihnen assoziierten Rote-Augen-Merkmale haben sollte. In diesem Kontext wird
zu erkennen sein, dass der Satz „Identifizieren von Rote-Augen-Merkmalen
für einige oder alle der Hochlichtbereiche" die Möglichkeit einschließen
soll, dass Rote-Augen-Merkmale mit keinem der Hochlichtbereiche assoziiert sind.
Ähnlich ist es möglich, dass auf die Rote-Augen-Merkmale angewendete Filter
bestimmen, dass auf keines der ursprünglich identifizierten Rote-Augen-Merkmale
eine Rote-Augen-Reduktion angewendet werden sollte, und dementsprechend schließt
der Satz „Ausführen einer Rote-Augen-Reduktion für einige oder
alle der Rote-Augen-Merkmale" die Möglichkeit ein, dass alle Rote-Augen-Merkmale
als Möglichkeiten für Rote-Augen-Reduktion verworfen werden.
In der Praxis gibt es eine maximale Größe, die ein Rote-Augen-Merkmal
haben kann, vorausgesetzt, dass wenigstens ein ganzes Gesicht fotografiert worden
ist. Daher wird, falls der Durchmesser eines Hochlichtbereichs ein vorbestimmtes
Maximum überschreitet, mit diesem Hochlichtbereich kein Rote-Augen-Merkmal
assoziiert, und es wird keine Rote-Augen-Reduktion ausgeführt.
Rote-Augen-Merkmale sind im Allgemeinen in Wesentlichen kreisförmig.
Daher werden lineare Hochlichtbereich im Allgemeinen nicht auf Rotfärbung von
Augen zurückzuführen sein, und daher wird vorzugsweise keine Rote-Augen-Reduktion
an einem Merkmal durchgeführt, das mit einem Hochlichtbereich assoziiert ist,
falls dieser Hochlichtbereich im Wesentlichen linear ist.
Rote-Augen-Reduktion wird vorzugsweise nicht für sich überlappende
Rote-Augen-Merkmale ausgeführt.
Sobald die Hochlichtbereiche bestimmt worden sind, ist es zweckmäßig,
den Farbton von Pixeln im jeden Hochlichtbereich umgebenden Bereich zu identifizieren
und Rote-Augen-Reduktion für ein mit einem Hochlichtbereich assoziiertes Rote-Augen-Merkmal
nur dann auszuführen, falls der Farbton der diesen Bereich umgebenden Pixel
mehr als einen vorbestimmten Rotanteil enthält. Danach kann aus diesem den
Hochlichtbereich umgebenden Bereich roter Pixel der Radius des Rote-Augen-Merkmals
bestimmt werden. Rote-Augen-Reduktion für ein Rote-Augen-Merkmal wird nur dann
ausgeführt, falls das Verhältnis des Radius des Rote-Augen-Bereichs zum
Radius des Hochlichtbereichs in einen vorbestimmten Wertebereich fällt. Für
ein typisches Rote-Augen-Merkmal wird der Radius des Rote-Augen-Bereichs bis zum
Achtfachen des Radius des Hochlichtbereichs betragen.
Vorzugsweise wird, vorausgesetzt, dass das Digitalbild von einer Fotografie
abgeleitet ist, ermittelt, ob beim Aufnehmen der Fotografie geblitzt wurde, und
die Identifikation von Hochlichtbereichen oder die Ausführung der Rote-Augen-Reduktion
werden unterlassen, falls nicht geblitzt wurde.
Es wird vorzugsweise ermittelt, ob das Digitalbild monochrom ist,
und, falls dem so ist, werden die Identifikation von Hochlichtbereichen oder die
Ausführung der Rote-Augen-Reduktion unterlassen.
In einigen Fällen, zum Beispiel bei der Porträtfotografie,
mag der Benutzer im Voraus wissen, dass alle Hochlichter durch Rotfärbung von
Augen verursacht sein werden, wobei in diesem Fall ein Rote-Augen-Merkmal mit jedem
identifizierten Hochlichtbereich assoziiert ist, und Rote-Augen-Reduktion kann für
alle Rote-Augen-Merkmale ausgeführt werden.
Die Erfindung stelle ebenfalls ein Digitalbild, auf welches das oben
beschriebene Verfahren angewendet worden ist, eine Vorrichtung, die zum Ausführen
des Verfahrens angeordnet ist, und ein Computerspeichermedium mit einem darauf abgespeicherten
Computerprogramm, das zum Ausführen des Verfahrens eingerichtet ist, bereit.
Es werden nun einige bevorzugte Ausführungsformen der Erfindung
beschrieben, nur als Beispiel und unter Bezugnahme auf die beigefügten Zeichnungen,
in denen:
1 ein Ablaufdiagramm ist, das ein allgemeines Vorgehen
zum Reduzieren der Rotfärbung von Augen beschreibt,
2 eine schematische Darstellung ist, die ein typisches
Rote-Augen-Merkmal zeigt,
3 das Rote-Augen-Merkmal von 2
zeigt, wobei die beim Detektieren eines Hochlichts identifizierten Pixel gezeigt
werden,
4 das Rote-Augen-Merkmal von 2
nach dem Messen des Radius zeigt und
5 ein Ablaufdiagramm ist, das ein Vorgehen zum Detektieren
von Rote-Augen-Merkmalen beschreibt.
Wenn ein Digitalbild verarbeitet wird, das Rote-Augen-Merkmale enthalten
kann oder nicht, ist es, um solche Merkmale so effizient wird möglich zu korrigieren,
nützlich, einen Filter anzuwenden, um zu bestimmen, ob solche Merkmale vorhanden
sein könnten, die Merkmale zu finden und eine Rote-Augen-Korrektur auf diese
Merkmale anzuwenden, vorzugsweise ohne den Eingriff des Benutzers.
In seiner einfachsten Form kann ein selbsttätiger Rote-Augen-Filter
auf eine sehr einfache Weise arbeiten. Da Rote-Augen-Merkmale nur in Fotografien
auftreten können, bei denen ein Blitzlicht verwendet wurde, muss keine Rote-Augen-Reduktion
angewendet werden, falls das Blitzlicht nicht ausgelöst wurde. Falls jedoch
ein Blitzlicht verwendet wurde oder falls irgendein Zweifel darüber besteht,
ob ein Blitzlicht verwendet wurde, dann sollte das Bild auf Merkmale
durchsucht werden, die einer Rotfärbung von Augen ähneln. Falls irgendwelche
Rote-Augen-Merkmale gefunden werden, werden sie korrigiert. Dieser Vorgang wird
in 1 gezeigt.
Ein Algorithmus, der den Vorgang von 1
in die Praxis umsetzt, beginnt mit einer Schnellprüfung, um zu bestimmen, ob
das Bild eine Rotfärbung von Augen enthalten könnte: Wurde das Blitzlicht
ausgelöst? Falls diese Frage mit 100%iger Gewissheit mit „Nein" beantwortet
werden kann, kann der Algorithmus enden; falls das Blitzlicht nicht ausgelöst
wurde, kann das Bild keine Rotfärbung von Augen enthalten. Einfach zu wissen,
dass das Blitzlicht nicht ausgelöst wurde, ermöglicht, dass ein großer
Anteil an Bildern mit sehr wenig Verarbeitungsaufwand gefiltert wird.
Es gibt eine Zahl von möglichen Wegen, um zu bestimmen, ob das
Blitzlicht ausgelöst wurde. Ein Verfahren schließt ein, den Benutzer zu
fragen, obwohl dies nicht ideal ist, weil es eine Benutzerinteraktion einschließt
und es sein kann, dass der Benutzer nicht in der Lage ist, die Frage zuverlässig
zu beantworten.
Eine andere Alternative schließt ein, in den Bild-Metadaten nachzusehen.
Zum Beispiel hat ein JPEG im EXIF-Format ein Feld „Blitzlicht ausgelöst
– ja/nein". Die gewährleistet einen sicheren Weg, um zu bestimmen, ob
das blitzlicht ausgelöst wurde, aber nicht alle Bilder haben die richtigen
Metadaten. Metadaten gehen üblicherweise verloren, wenn ein Bild aufbereitet
wird. Gescannte Bilder, die eine Rotfärbung von Augen enthalten, werden keine
passenden Metadaten haben.
Es gibt ein zusätzliches Verfahren zum Bestimmen, ob das Blitzlicht
ausgelöst wurde, das passend ist, falls der Algorithmus in der Steuerungssoftware
einer Digitalkamera umgesetzt wird. Das für das Aufnehmen des Bildes verantwortliche
Modul könnte dem Rote-Augen-Detektions-/Korrekturmodul anzeigen, dass das Blitzlicht
ausgelöst wurde.
Für jedes Bild, bei dem nicht sicher bestimmt werden kann, dass
das Blitzlicht nicht ausgelöst wurde, muss eine ausführlichere Untersuchung
unter Verwendung des weiter unten beschriebenen Rote-Augen-Detektionsmoduls durchgeführt
werden.
Falls keine Rote-Augen-Merkmale detektiert werden, kann der Algorithmus
enden, ohne das Bild modifizieren zu müssen. Falls jedoch Rote-Augen-Merkmale
gefunden werden, muss jedes unter Verwendung des weiter unten beschriebenen Rote-Augen-Korrekturmoduls
korrigiert werden.
Sobald das Rote-Augen-Korrekturmodul jedes Rote-Augen-Merkmal verarbeitet
hat, endet der Algorithmus.
Die Ausgabe vom Algorithmus ist ein Bild, in dem alle detektierten
Vorkommen der Rotfärbung von Augen korrigiert worden sind. Falls das Bild keine
Rotfärbung von Augen enthält, ist die Ausgabe ein Bild, das im Wesentlichen
gleich aussieht wie das Eingabebild. Es kann sein, dass der Algorithmus Merkmale
auf dem Bild detektiert und „korrigiert", die einer Rotfärbung von Augen
stark ähneln, aber es ist gut möglich, dass der Benutzer diese irrtümlichen
„Konrrekturen" nicht bemerken wird.
Nun wird das Rote-Augen-Detektionsmodul beschrieben.
2 ist eine schematische Darstellung, die ein typisches
Rote-Augen-Merkmal 1 zeigt. Am Mittelpunkt des Merkmals 1 befindet
sich ein weißes oder nahezu weißes „Hochlicht" 2, das
von einem Bereich 3 umgeben ist, der der Pupille des Subjekts entspricht.
Bei Nichtvorhandensein einer Rotfärbung von Augen wäre dieser Bereich
normalerweise schwarz, aber bei einem Rote-Augen-Merkmal nimmt dieser Bereich
3 ein rötlicher Farbton an. Dies kann von einem matten Glühen
bis zu einem hellen Rot reichen.
Der Pupillenbereich 3 ist von der Iris 4 umgeben,
bei der es scheinen kann, dass etwas oder die Gesamtheit derselben etwas von dem
roten Glühen vom Pupillenbereich 3 annimmt.
Der Detektionsalgorithmus muss den Mittelpunkt jedes Rote-Augen-Merkmals
und das Ausmaß des roten Bereichs um dasselbe lokalisieren.
Der Rote-Augen-Detektionsalgorithmus beginnt mit der Suche nach Bereichen
in dem Bild, die Hochlichtern 2 von Rote-Augen-Merkmalen entsprechen könnten.
Zuerst wird das Bild so umgewandelt, dass die Pixel durch Farbton-, Sättigungs-
und Helligkeitswerte dargestellt werden. Die meisten der Pixel im Hochlicht 2
eines Rote-Augen-Merkmals 1 haben eine sehr hohe Sättigung, und es
ist unüblich, so gesättigte Flächen anderswo auf Gesichtsbildern
zu finden. Ähnlich werden die meisten Rote-Augen-Hochlichter 2 hohe
Helligkeitswerte haben. Es ist ebenfalls wichtig, zu bemerken, dass die Sättigungs-
und Helligkeitswerte nicht nur hoch sein werden, sondern dass sie ebenfalls bedeutsam
höher sein werden als die sie unmittelbar umgebenden Bereiche 3,
4 und 5. Die Änderung der Sättigung vom roten Pupillenbereich
3 zum Hochlichtbereich 2 ist sehr abrupt.
Der Hochlichtdetektionsalgorithmus tastet jede Zeile von Pixeln in
dem Bild ab, wobei er nach kleinen Flächen heller, hoch gesättigter Pixel
sucht. Während des Abtastens wird jedes Pixel mit seinem vorhergehenden Nachbarn
(dem Pixel zu seiner linken) verglichen. Der Algorithmus sucht nach einer abrupten
Zunahme bei Sättigung und Helligkeit, die den Beginn eines Hochlichts markiert,
wenn er von Beginn der Zeile an scannt. Dies ist als „steigende Flanke" bekannt.
Sobald eine steigende Flanke identifiziert worden ist, werden dieses Pixel und die
folgenden Pixel (vorausgesetzt, sie haben eine ähnliche Sättigung und
Helligkeit) aufgezeichnet, bis ein abrupter Abfall bei der Sättigung erreicht
wird, der die andere Flanke des Hochlichts markiert. Dies ist als „fallende
Flanke" bekannt. Nach einer fallenden Flanke kehrt der Algorithmus dazu zurück,
nach einer steigenden Flanke zu suchen, die den Beginn des nächsten Hochlichts
markiert.
Ein typischer Algorithmus kann so eingerichtet sein, dass eine steigende
Flanke detektiert wird, falls:
1. das Pixel hoch gesättigt ist (Sättigung > 128),
2. das Pixel bedeutsam stärker gesättigt ist als das vorhergehende
(Sättigung dieses Pixels-Sättigung des vorhergehenden Pixels > 64),
3. das Pixel einen hohen Helligkeitswert hat (Helligkeit > 128).
Die steigende Flanke ist an dem gerade untersuchten Pixel lokalisiert.
Eine fallende Flanke wird detektiert, falls:
1. das Pixel bedeutsam weniger gesättigt ist als das vorhergehende (Sättigung
des vorhergehenden Pixels – Sättigung dieses Pixels > 64),
2. das vorhergehende Pixel einen hohen Helligkeitswert hat (Helligkeit >
128).
Die fallende Flanke ist am dem gerade untersuchten vorhergehenden
Pixel lokalisiert.
Es wird eine zusätzliche Überprüfung durchgeführt,
während nach der fallenden Flanke gesucht wird. Nachdem eine definierte Zahl
von Pixeln (zum Beispiel 10) untersucht worden ist, ohne eine fallende Flanke zu
finden, gibt der Algorithmus die Suche nach der fallenden Flanke auf. Die Annahme
ist, dass es eine maximale Größe gibt, die ein Hochlicht in einem Rote-Augen-Merkmal
haben kann – es ist offensichtlich, dass diese in Abhängigkeit von der
Größe des Bildes und der Beschaffenheit seines Inhalts variieren wird
(zum Beispiel werden die Hochlichter bei Gruppenfotos kleiner sein als bei Einzelporträts
mit der gleichen Auflösung). Der Algorithmus kann, auf der Grundlage der Größe
des Bildes und dem Anteil dieser Größe, der wahrscheinlich durch ein Hochlicht
eingenommen wird (typischerweise zwischen 0,25 % und 1 % der größten Abmessung
des Bildes), die maximale Hochlichtbreite dynamisch bestimmen.
Falls ein Hochlicht erfolgreich detektiert wird, werden die Koordinaten
der steigenden Flanke, der fallenden Kante und des Mittelpixels aufgezeichnet.
Der Algorithmus ist wie folgt:
Das Ergebnis dieses Algorithmus für das Rote-Augen-Merkmal
1 wird in 3 gezeigt. Für dieses Merkmal
wird der Algorithmus, da es ein einziges Hochlicht 2 gibt, für jede
Zeile, die das Hochlicht abdeckt, eine steigende Flanke 6, eine fallende
Flanke 7 und ein Mittelpixel 8 aufzeichnen. Das Hochlicht
2 deckt fünf Zeilen ab, so dass fünf Mittelpixel 8 aufgezeichnet
werden. In 3 spannen sich horizontale Linien von dem
Pixel an der steigenden Flanke zu dem Pixel an der fallenden Flanke. Kreise zeigen
die Position der Mittelpixel 8.
Die Position aller dieser Mittelpixel wird in einer Liste von Hochlichtern,
die möglicherweise durch Rotfärbung von Augen verursacht sein können,
aufgezeichnet. Die Zahl der Mittelpixel 8 in jedem Hochlicht wird danach
auf eins verringert. Wie in 3 gezeigt, gibt es für
jede Zeile, die durch das Hochlicht 2 abgedeckt wird, ein Mittelpixel
8. Dies bedeutet praktisch, dass das Hochlicht fünfmal detektiert
worden ist und daher mehr Bearbeiten erfordern wird als tatsächlich notwendig
ist. Es ist daher wünschenswert, aus dieser Liste alle bis auf den in Vertikalrichtung
mittleren Punkt aus der Liste der Hochlichter zu streichen.
Nicht alle der durch den obigen Algorithmus identifizierten Hochlichter
werden unbedingt durch Rote-Augen-Merkmale gebildet. Andere könnten zum Beispiel
durch Licht, das an Ecken oder Kanten von Gegenständen reflektiert wird, gebildet
werden. Die nächste Stufe des Verfahrens versucht daher, solche Hochlichter
zu beseitigen, so dass die Rote-Augen-Reduktion nicht an Merkmalen durchgeführt
wird, die nicht tatsächlich Rote-Augen-Merkmale sind.
Es gibt eine Zahl von Kriterien, die angewendet werden können,
um Rote-Augen-Merkmale im Gegensatz zu falschen Merkmalen zu erkennen. Eines ist,
auf lange Stränge von Mittelpixeln in schmalen Hochlichtern zu überprüfen
– d.h., Hochlichtern, die im Wesentlichen eine lineare Form haben. Diese
können zum Beispiel durch Licht gebildet werden, das von Kanten reflektiert,
werden aber nie durch Rotfärbung von Augen gebildet.
Diese Überprüfung auf lange Stränge von Pixeln kann
mit der Verringerung der Mittelpixel auf eins verbunden sein. Ein Algorithmus, der
diese beiden Vorgänge gleichzeitig durchführt, kann Hochlichter durchsuchen,
wobei er „Stränge" oder „Ketten" von Mittelpixeln identifiziert.
Falls das Streckungsverhältnis, das definiert ist als die Länge des Strangs
von Mittelpixeln 8 (siehe 3), dividiert durch
die größte Breite zwischen der steigenden Flanke 6 und der fallenden
Flanke 7 des Hochlichts, größer ist als eine vorbestimmte Zahl,
dann werden alle Mittelpixel 8 aus der Liste der Hochlichter entfernt.
Sonst wird nur das Mittelpixel des Strangs in der Liste der Hochlichter beibehalten.
Mit anderen Worten führt der Algorithmus zwei Aufgaben durch:
– er entfernt grob vertikale Ketten von Hochlichtern aus der Liste der
Hochlichter, wenn das Streckungsverhältnis der Kette größer ist als
ein vordefinierter Wert, und
– er entfernt alle bis auf das in Vertikalrichtung mittlere Hochlicht
aus den grob vertikalen Ketten von Hochlichtern, wenn das Streckungsverhältnis
der Kette geringer ist als ein vordefinierter Wert oder demselben entspricht.
Ein Algorithmus, der diese Verbindung von Aufgaben durchführt,
wird im Folgenden angegeben: for each highlight
(Der erste Abschnitt beschäftigt sich mit dem Bestimmen des Ausmaßes der
Kette von Hochlichtern – falls es sie gibt -, die an diesem beginnt.)
(An diesem Punkt ist 'current highlight' das untere Hochlicht in der Kette, die
bei 'upper highlight' beginnt, so dass in dieser Sektion die Kette entfernt wird,
falls sie linear ist; wenn sie grob kreisförmig ist, werden alle bis auf das
Mittelhochlicht entfernt.)
Ein geeigneter Schwellenwert für die „minimale Kettenhöhe"
ist drei, und ein geeigneter Schwellenwert für das „minimale Kettenstreckungsverhältnis"
ist ebenfalls drei, obwohl zu erkennen sein wird, dass diese verändert werden
können, um den Anforderungen bestimmter Bilder zu entsprechen.
Ein anderes Kriterium schließt das Überprüfen des Farbtons
der Pixel im Pupillenbereich 3 um das Hochlicht ein. Falls die Pixel in
diesem Bereich weniger als einen bestimmten Rotanteil enthalten, dann kann das Merkmal
keine Rotfärbung von Augen sein. Ein geeigneter auf den Pupillenbereich
3 anzuwendender Filter ist, dass, wenn nicht für 45 % der Pixel um
das Hochlicht die Sättigung größer als oder gleich 80 ist und der
Farbton zwischen 0 und 10 oder zwischen 220 und 255 (beides inklusive), an diesem
Merkmal dann keine Rote-Augen-Reduktion durchgeführt wird.
Der Radius des Pupillenbereichs muss danach so festgestellt werden,
dass die Ausdehnung des Rote-Augen-Merkmals bekannt ist, so dass die Rote-Augen-Reduktion
durchgeführt werden kann. Ein geeigneter Algorithmus iteriert durch jedes Hochlicht,
wobei er grob den Radius der roten Fläche, die es umgibt, bestimmt. Sobald
der Algorithmus abgeschlossen worden ist, haben alle Hochlichter ein zusätzliches
Stück an Information, das mit ihnen assoziiert ist: den Radius des Rote-Augen-Bereichs.
Daher kann, während die Eingabe in den Algorithmus eine Reihe von Hochlichtern
ist, die Ausgabe als eine Reihe von Rote-Augen-Merkmalen betrachtet werden.
Die Ausgabe kann weniger Rote-Augen-Bereiche enthalten als eingegebene
Hochlichter. Im Allgemeinen wird das Verhältnis zwischen dem Radius des Pupillenbereichs
3 und dem Radius des Hochlichtbereichs 2 immer in einen bestimmten
Bereich fallen. Falls das Verhältnis außerhalb dieses Bereichs liegt,
dann ist es unwahrscheinlich, dass das gerade untersuchte Merkmal auf Rotfärbung
von Augen zurückzuführen ist. In dem beschriebenen Algorithmus wird, falls
der Radius des Pupillenbereichs 3 mehr als das Achtfache des Radius des
Hochlichts 2 beträgt, das Merkmal nicht als Rote-Augen-Merkmal beurteilt,
so dass es aus der Liste zu korrigierender Flächen entfernt wird. Dieses Verhältnis
ist durch Analysieren einer Zahl von Bildern bestimmt worden, aber es wird zu erkennen
sein, dass es möglich sein kann, ein abweichendes Verhältnis zu wählen,
um bestimmten Umständen zu entsprechen.
Das Verfahren zum Bestimmen des Radius der roten Fläche irrt
zu größeren Radien hin (weil es nur Farbtondaten verwendet und Sättigung
oder Helligkeit nicht einberechnet) – mit anderen Worten berechnet es die
Fläche geringfügig größer als sie tatsächlich ist, was
bedeutet, dass sie, wie in 4 gezeigt, alle roten Pixel
plus einige am Rand liegende nicht rote enthalten sollte. Das ist keine Begrenzung,
so lange das zum Korrigieren der Rotfärbung von Augen verwendete Verfahren
nicht versucht, nicht rote Pixel nachzustellen. Die geringfügig übermäßige
Größe ist ebenfalls nützlich bei der beschriebenen Ausführungsform,
worin kein Versuch unternommen wird, die Position des Hochlichts innerhalb des Rote-Augen-Bereichs
genau zu bestimmen: die Umsetzung der Ausführungsform setzt voraus, dass es
mittig ist, während dies nicht immer de Fall sein mag.
Ein geeigneter Algorithmus wird im Folgenden angegeben:
Es wird zu erkennen sein, dass dieser Algorithmus den Radius des Rote-Augen-Merkmals
bestimmt durch Suchen längs der Zeilen von Pixeln, zentriert auf dem Hochlicht
(das, wie weiter oben beschrieben, als das Mittelpixel 8 in einer vertikalen
Reihe definiert wird). Eine Person mit Fachkenntnis wäre in der Lage, den Algorithmus
so zu modifizieren, dass er vom Hochlicht in Radialrichtung sucht oder die Form
und Ausdehnung der das Hochlicht umgebenden roten Fläche bestimmt.
Sobald die Radien der Rote-Augen-Merkmale bestimmt worden sind, kann
eine Suche nach einander überlappenden Merkmalen vorgenommen werden. Falls
sich der rote Pupillenbereich 3 mit einem anderen roten Pupillenbereich
3 um ein Hochlicht überlappt, dann kann keines der Merkmale auf Rotfärbung
von Augen zurückzuführen sein. Solche Merkmale können daher verworfen
werden.
Ein Algorithmus zum Durchführen dieser Aufgabe geht in zwei Stufen
vor. Die erste iteriert durch alle Rote-Augen-Bereiche. Für jeden Rote-Augen-Bereich
wird eine Suche vorgenommen, bis ein anderer Rote-Augen-Bereich gefunden wird, der
ihn überlappt. Falls eine Überlappung gefunden wird, werden beide Rote-Augen-Bereiche
zum Löschen markiert. Es ist nicht notwendig, zu bestimmen, ob sich der Rote-Augen-Bereich
mit mehr als einem anderen überlappt.
Die zweite Stufe löscht alle Rote-Augen-Bereiche, die zum Löschen
markiert worden sind. Das Löschen muss von der Überlappungsdetektion gesondert
sein, weil es, falls Rote-Augen-Bereiche gelöscht würden, sobald festgestellt
wird, dass sie einander überlappen, Überlappungen mit anderen Rote-Augen-Bereichen
beseitigen könnte, die noch nicht detektiert worden sind.
Der Algorithmus ist wie folgt:
for each red-eye region
search the other red-eye regions until one is found which overlaps this one, or
all red-eye regions have been searched without finding an overlap
Zwei Rote-Augen-Bereiche werden als einander überlappend beurteilt,
falls die Summe ihrer Radien größer ist als der Abstand zwischen ihren
Mittelpunkten.
Eine alternative Weise, um die gleiche Wirkung wie der obige Algorithmus
zu erzielen, ist das Schaffen einer neuen Liste von Rote-Augen-Merkmalen, die nur
diejenigen Bereiche enthält, die einander nicht überlappen. Danach kann
die ursprüngliche Liste von Rote-Augen-Merkmalen verworfen und die neue an
deren Stelle verwendet werden.
Der gesamte Detektionsvorgang wird in 5
als Ablaufdiagramm gezeigt.
Danach wird die Rote-Augen-Reduktion an den detektierten Rote-Augen-Merkmalen
ausgeführt. Es gibt eine Zahl bekannter Verfahren, um dies durchzuführen,
und ein geeigneter Vorgang wird nun beschrieben. Der beschriebene Vorgang ist ein
sehr grundlegendes Verfahren zum Korrigieren der Rotfärbung von Augen, und
eine Person mit Fachkenntnis wird erkennen, dass es einen Rahmen für eine Verfeinerung
gibt, um bessere Ergebnisse zu erzielen, insbesondere in Bezug auf das Weichmachen
der Kanten der korrigierten Fläche und das genauere Bestimmen der Ausdehnung
des Rote-Augen-Bereichs.
Es sind zwei Bereiche beim Rote-Augen-Detektionsmodul: die Steuerungsschleife
und der Rote-Augen-Korrektor selbst. Die Steuerungsschleife führt einfach eine
Iteration durch die Liste der Rote-Augen-Bereiche, die durch das Rote-Augen-Detektionsmodul
erzeugt wurden, indem jedes Bereich dem Korrektor zugeleitet wird.
Für jedes Pixel gibt es zwei einfache Überprüfungen,
jeweils mit einer einfachen als Folge ergriffenen Maßnahme:
1. Falls das Pixel eine mittlere oder hohe Sättigung hat und falls der
Farbton des Pixels innerhalb des Bereichs der Rottöne liegt, wird das Pixel
gänzlich entsättigt. Mit anderen Worten wird die Sättigung auf „0"
gesetzt, was bewirkt, dass rote Pixel grau werden.
2. Ferner wird das Pixel, falls es dunkel ist oder eine mittlere Helligkeit
hat, schwarz gemacht. In den meisten Fällen beseitigt dies tatsächlich
die im Ergebnis der ersten Überprüfung vorgenommene Nachstellung. Diejenigen
Pixel, die nicht schwarz gemacht werden, sind die im und um das Hochlicht. Aus diesen
wird jegliches Rötliche entfernt worden sein, so dass das Ergebnis ein Auge
mit einer dunklen schwarzen Pupille und einem hellen weißen Hochlicht ist.
Ein Merkmal des Korrekturverfahrens ist, dass seine Wirkungen nicht
kumulativ sind: Nachdem die Korrektur auf eine Fläche angewendet worden ist,
werden nachfolgende Korrekturen für die gleiche Fläche keine Wirkung haben.
Dies wäre ein wünschenswertes Merkmal, falls das Rote-Augen-Detektionsmodul
eine Liste möglicherweise überlappender Rote-Augen-Bereiche ergäbe
(z. B., falls die mehrfachen Hochlichtdektionen nicht beseitigt würden). Da
überlappende Rote-Augen-Bereiche jedoch spezifisch entfernt werden, ist die
nicht kumulative Beschaffenheit des Korrekturmoduls für die vorliegende Umsetzung
nicht wichtig.
Es wird zu erkennen sein, dass das Detektionsmodul und das Korrekturmodul
gesondert umgesetzt werden können. Zum Beispiel könnte das Detektionsmodul
in einer Digitalkamera oder Ähnlichem angeordnet werden und Rote-Augen-Merkmale
detektieren und eine Liste der Positionen dieser Merkmale bereitstellen, wenn eine
Fotografie aufgenommen wird. Das Korrekturmodul könnte danach angewendet werden,
nachdem das Bild von der Kamera zu einem Rechner heruntergeladen ist.
Das Verfahren nach der vorliegenden Erfindung stellt eine Zahl von
Vorteilen arbereit. Es arbeitet an einem ganzen Bild, obwohl zu erkennen sein wird,
dass ein Benutzer einen Teil eines Bildes auswählen könnte, für den
die Rote-Augen-Reduktion anzuwenden ist, zum Beispiel gerade einen Bereich, der
Gesichter enthält. Dies würde die erforderliche Bearbeitung verkürzen.
Falls ein ganzes Bild bearbeitet wird, ist keine Benutzereingabe erforderlich. Ferner
muss das Verfahren nicht vollkommen genau sein. Falls die Rote-Augen-Korrektur um
ein nicht durch Rotfärbung von Augen verursachtes Hochlicht durchgeführt
wird, ist es unwahrscheinlich, dass ein Benutzer den Unterschied bemerken würde.
Da der Rote-Augen-Detektionsalgorithmus nach hellen, hoch gesättigten
Punkten sucht, bevor er nach Flächen in Rot sucht, arbeitet das Verfahren besonders
gut mit JPEG-komprimierten Bildern und anderen Formaten, in denen die Farbe mit
einer niedrigen Auflösung codiert ist.
Es wird zu erkennen sein, dass Variationen gegenüber den weiter
oben beschriebenen Ausführungsformen noch in den Rahmen der Erfindung fallen
können. Zum Beispiel ist das Verfahren in Bezug auf die Augen von Personen
beschrieben worden, bei denen die Reflexion von der Netzhaut zu einem roten Bereich
führt. Bei einigen Tieren, können „rote Augen" zu grünen oder
gelben Reflexionen führen. Das Verfahren nach der Erfindung kann verwendet
werden, um diese Wirkung zu korrigieren. In der Tat macht die Suche nach einem hellen,
gesättigten Bereich statt nach einem Bereich eines bestimmten Farbtons das
Verfahren der Erfindung besonders geeignet zum Detektieren von nicht roten tierischen
„roten Augen".
Ferner ist das Verfahren für Rote-Augen-Merkmale beschrieben
worden, bei denen der Hochlichtbereich genau in der Mitte des roten Pupillenbereichs
angeordnet ist. Jedoch wird das Verfahren noch bei Rote-Augen-Merkmalen funktionieren,
deren Hochlichtbereich außermittig oder sogar am Rand des roten Bereichs liegt.
Einige Rote-Augen-Merkmale haben keinen diskreten Hochlichtbereich,
aber bei diesen Merkmalen hat die Gesamtheit des Pupillenbereichs hohe Sättigungs-
und Helligkeitswerte. In solchen Fällen werden das Rote-Augen-Merkmal und der
Hochlichtbereich die gleiche Größe haben, und es mag keinerlei weiteren
roten Teil außerhalb des Hochlichtbereichs geben. Mit anderen Worten werden
der Hochlichtbereich 2 und der rote Pupillenbereich 3 die gleiche
Fläche einnehmen. Jedoch wird das weiter oben beschriebene Verfahren solche
Bereiche noch als „Hochlichter" detektieren, wobei jeder rote Bereich
3 als den gleichen Durchmesser wie das Hochlicht habend identifiziert wird.
Solche Merkmale werden daher unter Verwendung des Verfahrens nach der Erfindung
noch detektiert.
Anspruch[de]
Verfahren zum Detektieren von Rote-Augen-Merkmalen in einem Digitalbild,
umfassend:
Prüfen der Sättigung und Helligkeit von Pixeln im Bild und Identifizieren
von Hochlichtbereichen (2); und
Bestimmen, ob jeder Hochlichtbereich einem Rote-Augen-Merkmal (1) entspricht,
davon ausgehend, dass weitere Auswahlkriterien angewendet werden;
dadurch gekennzeichnet, dass die Hochlichtbereiche Pixel enthalten, die relativ
zu Pixeln in den umgebenden Bereichen vorbestimmte Sättigungs-
und Helligkeitskriterien erfüllen, wobei die vorbestimmten Sättigungs-
und Helligkeitskriterien darin bestehen, dass Pixel in den Hochlichtbereichen eine
wesentlich höhere Sättigung oder wesentlich höhere Helligkeit oder
beides haben müssen als Pixel in den umgebenden Bereichen; wobei die Änderung
der Sättigung und/oder Helligkeit von den Hochlichtbereichen zu den umgebenden
Bereichen sehr abrupt ist.Verfahren nach Anspruch 1, worin die weiteren Auswahlkriterien die Prüfung
des Farbtons der den Hochlichtbereich (2) umgebenden Pixel (3)
umfassen und die Bestimmung, dass der Hochlichtbereich keinem Rote-Augen-Merkmal
entspricht, falls der Farbton außerhalb eines der Farbe Rot entsprechenden
vorbestimmten Bereichs liegt.Verfahren nach Anspruch 1 oder 2, worin die weiteren Auswahlkriterien
die Identifikation der Form des Hochlichtbereichs (2) umfassen und die
Bestimmung, dass der Hochlichtbereich keinem Rote-Augen-Merkmal (1) entspricht,
falls die Form nicht im Wesentlichen kreisförmig ist.Verfahren zum Reduzieren des visuellen Effekts von Rote-Augen-Merkmalen
in einem Digitalbild, umfassend:
Detektieren von Rote-Augen-Merkmalen (1) unter Verwendung des Verfahrens
nach Anspruch 1, 2 oder 3; und
Ändern des Farbtons der jeden Hochlichtbereich umgebenden Pixel (3),
um den Rotanteil dieser Pixel zu reduzieren.Verfahren zum Verarbeiten eines Digitalbilds, umfassend:
Detektieren von Rote-Augen-Merkmalen (1) unter Verwendung eines Verfahrens
nach Anspruch 1, 2 oder 3 und Ausführen der Rote-Augen-Reduktion für einige
oder alle der Rote-Augen-Merkmale.Verfahren nach Anspruch 5, worin ein einzelnes Bezugspixel (8)
in jedem Hochlichtbereich (2) als der Mittelpunkt eines assoziierten Rote-Augen-Merkmals
(1) ausgewählt wird, und die Rote-Augen-Reduktion für dieses
Rote-Augen-Merkmal auf dem Bezugspixel zentriert wird.Verfahren nach Anspruch 5 oder 6, außerdem die Elimination von
mindestens einigen der Hochlichtbereiche (2) als Möglichkeiten für
Rote-Augen-Reduktion umfassend.Verfahren nach einem der Ansprüche 5 bis 7, worin die Rote-Augen-Reduktion
für ein Rote-Augen-Merkmal (1) nicht ausgeführt wird, falls der
Durchmesser des mit diesem Rote-Augen-Merkmal assoziierten Hochlichtbereichs (2)
ein vorbestimmtes Maximum überschreitet.Verfahren nach einem der Ansprüche 5 bis 8, das außerdem die
Bestimmung umfasst, ob jeder Hochlichtbereich (2) im Wesentlichen linear
ist, und kein Rote-Augen-Merkmal (1) mit einem Hochlichtbereich assoziiert,
falls dieser Hochlichtbereich im Wesentlichen linear ist.Verfahren nach einem der Ansprüche 5 bis 9, worin die Rote-Augen-Reduktion
nicht auf sich überlappende Rote-Augen-Merkmale (1) zentriert ausgeführt
wird.Verfahren nach einem der Ansprüche 5 bis 10, das außerdem
die Identifikation des Farbtons von Pixeln im den Hochlichtbereich (2)
umgebenden Bereich (3) für jedes Rote-Augen-Merkmal (1) umfasst
und Rote-Augen-Reduktion nur dann ausführt, falls die Pixel in diesem Bereich
mehr als einen vorbestimmten Rotanteil enthalten.Verfahren nach Anspruch 7, das außerdem das Bestimmen des Radius
des Rote-Augen-Bereichs (1) um jeden Hochlichtbereich (2) umfasst,
wobei der Rote-Augen-Bereich Pixel mit einem Farbton aufweist, der mehr als den
vorbestimmten Rotanteil enthält.Verfahren nach Anspruch 8, worin Rote-Augen-Reduktion für ein Rote-Augen-Merkmal
(1) nur dann ausgeführt wird, falls das Verhältnis des Radius
des Rote-Augen-Bereichs zum Radius des Hochlichtbereichs (2) in einen vorbestimmten
Wertebereich fällt.Verfahren nach einem der vorhergehenden Ansprüche, worin das Digitalbild
von einer Fotografie abgeleitet ist, wobei das Verfahren außerdem Folgendes
umfasst: zu ermitteln, ob beim Aufnehmen der Fotografie geblitzt wurde, und die
Identifikation von Hochlichtbereichen (2) oder die Ausführung der
Rote-Augen-Reduktion zu unterlassen, falls nicht geblitzt wurde.Verfahren nach einem der vorhergehenden Ansprüche, außerdem
Folgendes umfassend: zu ermitteln, ob das Digitalbild monochrom ist, und die Identifikation
von Hochlichtbereichen oder die Ausführung der Rote-Augen-Reduktion zu unterlassen,
falls das Digitalbild monochrom ist.Verfahren nach Anspruch 5 oder 6, worin ein Rote-Augen-Merkmal mit jedem
identifizierten Hochlichtbereich assoziiert ist und Rote-Augen-Reduktion für
alle Rote-Augen-Merkmale ausgeführt wird.Vorrichtung, zum Ausführen des Verfahrens nach einem der Ansprüche
1 bis 16 angeordnet.Computerspeichermedium mit einem darauf abgespeicherten Computerprogramm,
das zum Ausführen des Verfahrens nach einem der Ansprüche 1 bis 16 eingerichtet
ist.