DE112019007550T5 - Automatisches segmentieren und anpassen von bildern - Google Patents

Automatisches segmentieren und anpassen von bildern Download PDF

Info

Publication number
DE112019007550T5
DE112019007550T5 DE112019007550.0T DE112019007550T DE112019007550T5 DE 112019007550 T5 DE112019007550 T5 DE 112019007550T5 DE 112019007550 T DE112019007550 T DE 112019007550T DE 112019007550 T5 DE112019007550 T5 DE 112019007550T5
Authority
DE
Germany
Prior art keywords
image
areas
computing device
regions
original image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112019007550.0T
Other languages
English (en)
Inventor
Orly Liba
Florian Kainz
Longqi Cai
Yael Pritch Knaan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE112019007550T5 publication Critical patent/DE112019007550T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/60Image enhancement or restoration using machine learning, e.g. neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/94Dynamic range modification of images or parts thereof based on local image properties, e.g. for local contrast enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

Ein Gerät segmentiert ein Bild automatisch in verschiedene Bereiche und passt automatisch die wahrgenommenen Belichtungsstufen oder andere Merkmale an, die mit jedem der verschiedenen Bereiche assoziiert sind, um Bilder zu erzeugen, die die Erwartungen für die Art der verwendeten Optik und Kameraausrüstung übertreffen, und in einigen Fällen ähneln die Bilder sogar anderen hochwertigen Fotografien, die mit professioneller Ausrüstung und Fotobearbeitungssoftware erstellt wurden. Ein maschinell erlerntes Modell wird trainiert, um ein Bild automatisch in verschiedene Bereiche zu segmentieren. Das Modell gibt eine oder mehrere Masken aus, welche die unterschiedlichen Bereiche definieren. Die Maske(n) wird/werden mit einem geführten Filter oder einer anderen Technik verfeinert, um sicherzustellen, dass die Kanten der Maske(n) mit den Kanten der im Bild dargestellten Objekte übereinstimmen. Durch die Anwendung der Maske(n) auf das Bild kann das Gerät die jeweiligen Eigenschaften der verschiedenen Bereiche individuell anpassen, um ein qualitativ hochwertigeres Bild einer Szene zu erzeugen.

Description

  • HINTERGRUND
  • Mobile Computergeräte enthalten in der Regel eine Kamera zur Aufnahme von Bildern und Videos. Einige mobile Computergeräte (z. B. Mobiltelefone) verfügen über eine fortschrittliche Kameratechnologie, mit der qualitativ hochwertige Bilder aufgenommen werden können, ähnlich wie mit einer professionellen Kameraausrüstung. Einige Benutzer, die sich in der Vergangenheit auf ein spezielles Kameragerät verlassen haben, fotografieren heute fast ausschließlich mit der in einem Mobiltelefon integrierten Kamera. Trotz fortschrittlicher Kameratechnologie haben einige mobile Computergeräte Schwierigkeiten, qualitativ hochwertige Bilder zu produzieren, die den Erwartungen der Benutzer entsprechen. Solche Erwartungen können unrealistisch sein, insbesondere wenn man bedenkt, dass eine Kamera in einem Mobiltelefon für bestimmte Bedingungen nicht geeignet ist, z. B. können Bilder bei schlechten Lichtverhältnissen oder Bilder mit mehreren Lichtquellen schwieriger zu verarbeiten sein.
  • ZUS AMMENF AS SUNG
  • Es wird ein Computergerät beschrieben, das ein Bild automatisch in verschiedene Bereiche segmentiert und automatisch die wahrgenommenen Belichtungswerte, das Rauschen, den Weißabgleich oder andere Eigenschaften anpasst, die mit jedem der verschiedenen Bereiche assoziiert sind. Das Computergerät führt ein maschinell erlerntes Modell aus, das darauf trainiert ist, ein „Original“-Bild (z. B. ein Rohbild, eine Variante mit niedriger Auflösung oder eine verbesserte Version) automatisch in verschiedene Bereiche zu segmentieren. Das Modell gibt eine Maske aus, die die verschiedenen Bereiche definiert, und das Computergerät verfeinert die Maske dann mit kantenbewussten Glättungsverfahren, wie z. B. einem geführten Filter, um die Kanten der Maske an die Kanten der im Bild dargestellten Objekte anzupassen. Durch die Anwendung der verfeinerten Maske auf das Bild kann das Computergerät die Eigenschaften jeder der verschiedenen Bereiche individuell anpassen, um ein „neues“ Bild zu erzeugen, das eine höhere Qualität zu haben scheint, indem es der menschlichen Wahrnehmung der verschiedenen Teile einer Szene entspricht.
  • Das Computergerät kann die beschriebenen Techniken automatisch durchführen, mit oder ohne Benutzereingabe. Unter Verwendung des maschinell erlernten Modells kann das Computergerät die Grenzen verschiedener Bereiche grob definieren und dann unter Verwendung einer Verfeinerung und/oder einer statistischen Methode die Maske für jede Bereich so anpassen, dass sie in der Größe an die Kanten der im Bild dargestellten Objekte angepasst ist. Das Computergerät kann daher die verschiedenen Bereiche genau identifizieren und die Kanten der verschiedenen Bereiche genau definieren. Auf diese Weise kann eine genauere und vollständigere Segmentierung des Originalbildes bereitgestellt werden. Durch die automatische Segmentierung eines Bildes vor dem Anpassen des Bildes kann das Computergerät jeden der verschiedenen Bereiche separat anpassen, anstatt das gesamte Bild universell anzupassen, indem es Anpassungen auf alle verschiedenen Bereiche anwendet, auch wenn einige Anpassungen für einige Teile des Bildes ungeeignet sein können. Das Computergerät kann daher eine höhere Bildqualität erzeugen, als wenn das Computergerät einen gemeinsamen Satz von Anpassungen für ein gesamtes Bild bestimmt und anwendet.
  • In der gesamten Offenbarung werden Beispiele beschrieben, in denen ein Computersystem (z. B. ein Computergerät, ein Client-Gerät, ein Server-Gerät, ein Computer oder eine andere Art von Computersystem) Informationen (z. B. Bilder) analysieren kann, die einem Benutzer zugeordnet sind. Das Computersystem kann jedoch so konfiguriert sein, dass es die Informationen erst dann verwendet, wenn das Computersystem die ausdrückliche Erlaubnis des Benutzers des Computersystems zur Verwendung der Daten erhält. In den unten beschriebenen Situationen, in denen ein Computersystem Bilder analysiert, die von einer in ein Computersystem integrierten Kamera ausgegeben werden, können die einzelnen Benutzer beispielsweise die Möglichkeit haben, Eingaben zu machen, um zu steuern, ob Programme oder Funktionen des Computersystems die Bilder erfassen und nutzen können, z. B. zur automatischen Segmentierung und Manipulation der Bilder. Die einzelnen Benutzer können die ständige Kontrolle darüber haben, was Programme mit den Bildern machen können oder nicht. Darüber hinaus können die gesammelten Informationen auf eine oder mehrere Arten vorbehandelt werden, bevor sie vom Computersystem übertragen, gespeichert oder anderweitig verwendet werden, so dass persönlich identifizierbare Informationen entfernt werden. Bevor ein Computergerät beispielsweise Bilder mit einem anderen Gerät austauscht (z. B. zum Trainieren eines Modells, das auf dem anderen Gerät ausgeführt wird), kann das Computergerät die Bilder vorbehandeln, um sicherzustellen, dass alle in den Daten eingebetteten benutzeridentifizierenden Informationen oder geräteidentifizierenden Informationen entfernt werden. Auf diese Weise hat der Benutzer die Kontrolle darüber, ob Informationen über den Benutzer und das Gerät des Benutzers gesammelt werden und wie solche Informationen, falls sie gesammelt werden, von dem Computergerät und/oder einem entfernten Computersystem verwendet werden können.
  • In einem Beispiel umfasst ein computerimplementiertes Verfahren das Empfangen eines von einer Kamera aufgenommenen Originalbildes durch einen Prozessor eines Computergeräts, das automatische Segmentieren des Originalbildes in mehrere Bereiche von Pixeln durch den Prozessor und das unabhängige Anwenden eines jeweiligen Auto-Weiß-Abgleichs auf jeden der mehreren Bereiche durch den Prozessor. Das computerimplementierte Verfahren umfasst ferner das Kombinieren der mehreren Bereiche durch den Prozessor, um ein neues Bild zu bilden, nachdem der jeweilige automatische Weißabgleich unabhängig auf jeden der mehreren Bereiche angewendet wurde; und das Ausgeben des neuen Bildes durch den Prozessor und zur Anzeige.
  • In einem weiteren Beispiel wird ein Computergerät beschrieben, das mindestens einen Prozessor enthält, der so konfiguriert ist, dass er ein von einer Kamera aufgenommenes Originalbild empfängt, das Originalbild automatisch in mehrere Bereiche von Pixeln segmentiert und unabhängig einen jeweiligen automatischen Weißabgleich auf jeden der mehreren Bereiche anwendet. Der mindestens eine Prozessor ist ferner so konfiguriert, dass er die mehreren Bereiche kombiniert, um ein neues Bild zu bilden, nachdem er den jeweiligen automatischen Weißabgleich unabhängig auf jeden der mehreren Bereiche angewendet hat, und der mindestens eine Prozessor ist ferner so konfiguriert, dass er das neue Bild zur Anzeige ausgibt.
  • In einem weiteren Beispiel wird ein System beschrieben, das Mittel zum Empfangen eines von einer Kamera aufgenommenen Originalbildes, Mittel zum automatischen Segmentieren des Originalbildes in mehrere Bereiche von Pixeln und Mittel zum unabhängigen Anwenden eines jeweiligen automatischen Weißabgleichs auf jeden der mehreren Bereiche enthält. Das System enthält ferner Mittel zum Kombinieren der mehreren Bereiche, um ein neues Bild zu bilden, nachdem der jeweilige Auto-Weiß-Abgleich unabhängig auf jeden der mehreren Bereiche angewendet wurde, und Mittel zum Ausgeben des neuen Bildes zur Anzeige.
  • In einem anderen Beispiel wird ein computerlesbares Speichermedium beschrieben, das Anweisungen enthält, die, wenn sie ausgeführt werden, einen Prozessor eines Computergeräts so konfigurieren, dass er ein von einer Kamera erfasstes Originalbild empfängt, das Originalbild automatisch in mehrere Bereiche von Pixeln segmentiert und unabhängig einen jeweiligen automatischen Weißabgleich auf jeden der mehreren Bereiche anwendet. Die Anweisungen konfigurieren, wenn sie ausgeführt werden, ferner den Prozessor, um die mehreren Bereiche zu kombinieren, um ein neues Bild zu bilden, nachdem der jeweilige automatische Weißabgleich unabhängig auf jeden der mehreren Bereiche angewendet wurde, und das neue Bild zur Anzeige auszugeben.
  • Die Einzelheiten einer oder mehrerer Ausführungsformen sind in den beigefügten Zeichnungen und der folgenden Beschreibung dargestellt. Weitere Merkmale und Vorteile ergeben sich aus der Beschreibung und den Zeichnungen sowie aus den Ansprüchen. Diese Zusammenfassung dient zur Einführung in den Gegenstand, der in der detaillierten Beschreibung und den Zeichnungen weiter beschrieben wird. Dementsprechend sollte diese Zusammenfassung weder als Beschreibung wesentlicher Merkmale noch als Einschränkung des Umfangs des beanspruchten Gegenstands angesehen werden.
  • Figurenliste
  • Die Details eines oder mehrerer Aspekte der automatischen Segmentierung und Anpassung von Bildern werden im Folgenden beschrieben. Die Verwendung der gleichen Bezugszeichen an verschiedenen Stellen in der Beschreibung und den Figuren weist auf ähnliche Elemente hin:
    • 1 ist ein konzeptionelles Diagramm, das ein Computergerät zeigt, das zum automatischen Segmentieren und Anpassen von Bildern konfiguriert ist. 2 ist ein konzeptionelles Diagramm, das eine beispielhafte Computerarchitektur für die automatische Segmentierung und Anpassung von Bildern veranschaulicht.
    • 3 ist ein konzeptionelles Diagramm, das ein weiteres Computergerät zeigt, das für die automatische Segmentierung und Anpassung von Bildern konfiguriert ist.
    • 4 ist ein Flussdiagramm zur Veranschaulichung von Beispielvorgängen eines Computergeräts, das zur automatischen Segmentierung und Anpassung von Bildern konfiguriert ist.
    • 5 A bis 5D illustrieren grafisch einen Prozess, der von einem Computergerät ausgeführt wird, um ein Bild automatisch zu segmentieren und anzupassen.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist ein konzeptionelles Diagramm, das ein Computergerät 100 zeigt, das so konfiguriert ist, dass es Bilder automatisch segmentiert und anpasst. Das Computergerät 100 segmentiert ein Bild automatisch in verschiedene Bereiche, bevor es die wahrgenommenen Belichtungspegel oder andere Eigenschaften, die mit jedem der verschiedenen Bereiche assoziiert sind, automatisch anpasst. Als ein Beispiel kann das Computergerät 100 ein Bild, das ein Objekt unter einem Nachthimmel darstellt, in mindestens zwei Bereiche segmentieren, einen „Himmelsbereich“ und einen „Nicht-Himmelsbereich“. Das Computergerät 100 kann den Weißabgleich des Himmelsbereichs anpassen, den Nachthimmel abdunkeln oder dafür sorgen, dass der Nachthimmel weniger Rauschen aufweist, während es für den Nicht-Himmelbereich andere Anpassungen vornimmt, damit das Objekt im Vordergrund relativ zum Hintergrund des Nachthimmels heller erscheint.
  • Das Computergerät 100 kann jede Art von mobilem oder nicht mobilem Computergerät sein. Als mobiles Computergerät kann das Computergerät ein Mobiltelefon, ein Laptop-Computer, ein tragbares Gerät (z. B. Uhren, Brillen, Kopfhörer, Kleidung), ein Tablet-Gerät, ein Fahrzeuggerät, ein tragbares Spielgerät, ein elektronisches Lesegerät oder ein Fernsteuerungsgerät oder ein anderes mobiles Computergerät sein. Als nicht mobiles Computergerät kann das Computergerät 100 einen Server, ein Netzwerkendgerät, einen Desktop-Computer, ein Fernsehgerät, ein Anzeigegerät, ein Unterhaltungs-Set-Top-Gerät, ein Streaming-Media-Gerät, ein Tabletop-Assistenzgerät, ein nicht tragbares Spielgerät, eine Geschäftskonferenzeinrichtung oder ein anderes nicht mobiles Computergerät darstellen.
  • Das Computergerät 100 umfasst eine Kamera 102 und eine Benutzerschnittstellenvorrichtung 104 mit einem Anzeige 106. Das Computergerät 100 umfasst auch ein Kameramodul 108 und einen Bilddatenspeicher 110, der so konfiguriert ist, dass er die von der Kamera 102 aufgenommenen Bilder puffert oder anderweitig speichert. Diese und andere Komponenten des Computergeräts 100 sind auf verschiedene Weise kommunikativ gekoppelt, unter anderem durch die Verwendung von verdrahteten und drahtlosen Bussen und Verbindungen. Das Computergerät 100 kann zusätzliche oder weniger Komponenten als die in 1 dargestellten enthalten.
  • Die Benutzerschnittstellenvorrichtung 104 verwaltet Eingaben und Ausgaben an eine Benutzerschnittstelle des Computergeräts 100, wie z. B. Eingaben und Ausgaben, die mit einer Kamera-Schnittstelle 112 verbunden sind, die vom Kameramodul 108 verwaltet wird, um die Kamera 102 zu steuern, um Bilder aufzunehmen oder Filme aufzuzeichnen. Zum Beispiel kann die Benutzerschnittstellenvorrichtung 104 Anweisungen vom Kameramodul 108 empfangen, die die Anzeige 106 veranlassen, die Kamera-Schnittstelle 112 darzustellen. Als Reaktion auf die Darstellung der Kamera-Schnittstelle kann die Benutzerschnittstellenvorrichtung 104 dem Kameramodul 108 Informationen über Benutzereingaben senden, die von der Benutzerschnittstellenvorrichtung 104 in Bezug auf die Kamera-Schnittstelle 112 erkannt wurden.
  • Zum Empfangen von Eingaben kann die Benutzerschnittstellenvorrichtung 104 eine präsenzempfindliche Eingabekomponente enthalten, die operativ mit dem Anzeige 106 gekoppelt (oder darin integriert) ist. Die Benutzerschnittstellenvorrichtung 104 kann andere Arten von Eingabe- oder Ausgabekomponenten enthalten, einschließlich eines Mikrofons, eines Lautsprechers, einer Maus, einer Tastatur, eines Fingerabdrucksensors, einer Kamera, eines Radars oder einer anderen Art von Komponente, die zum Empfangen von Eingaben von einem Benutzer konfiguriert ist. Die Benutzerschnittstellenvorrichtung 104 kann so konfiguriert sein, dass sie verschiedene Formen von Benutzereingaben erkennt, einschließlich zweidimensionaler Gesteneingaben, dreidimensionaler Gesteneingaben, akustischer Eingaben, Sensoreingaben, visueller Eingaben und anderer Formen von Eingaben.
  • Wenn sie als präsenzsensitive Eingabekomponente konfiguriert ist, kann ein Benutzer des Computergeräts 100 zweidimensionale oder dreidimensionale Gesten am oder in der Nähe der Anzeige 106 ausführen, wenn die Anzeige 106 die Kamera-Schnittstelle 112 darstellt. Als Reaktion auf die Gesten kann die Benutzerschnittstellenvorrichtung 104 Informationen an andere Komponenten des Computergeräts 100 ausgeben, um die relativen Positionen (z. B. X-, Y-, Z-Koordinaten) der Gesten anzuzeigen und es den anderen Komponenten zu ermöglichen, die Gesten zur Steuerung der Kamera-Schnittstelle 112 oder einer anderen Schnittstelle zu interpretieren, die auf dem Anzeige 106 dargestellt wird. Die Benutzerschnittstellenvorrichtung 104 kann auf der Grundlage der von der Anzeige 106 erzeugten Informationen Daten ausgeben, die z. B. das Kameramodul 108 zur Steuerung der Kamera 102 verwenden kann.
  • Die Anzeige 106 kann aus jeder geeigneten Anzeigetechnologie bestehen, einschließlich LED-, OLED- und LCD-Technologie. Das Anzeige 106 kann sowohl als Ausgabegerät zum Anzeigen der Kamera-Schnittstelle 112 als auch als Eingabegerät zum Erfassen der mit der Kamera-Schnittstelle 112 verbundenen Benutzereingaben fungieren. Beispielsweise kann die Anzeige 106 ein präsenzsensitiver Bildschirm sein (z. B. ein Touchscreen), der Informationen über Benutzereingaben erzeugt, die an oder in der Nähe verschiedener Stellen der Anzeige 106 erkannt werden. Die Benutzerschnittstellenvorrichtung 104 kann ein radarbasiertes Gestenerkennungssystem, ein infrarotbasiertes Gestenerkennungssystem oder ein optisch basiertes Gestenerkennungssystem umfassen.
  • Die Kamera 102 ist so konfiguriert, dass sie einzelne oder eine Reihe von Standbildern als Bilder oder bewegte Bilder als Filme aufnimmt. Die Kamera 102 kann eine einzelne Kamera oder mehrere Kameras umfassen. Die Kamera 102 kann eine nach vorne gerichtete Kamera sein, die so konfiguriert ist, dass sie Standbilder erfasst oder bewegte Bilder aus der Perspektive der Anzeige 106 aufzeichnet. Bei der Kamera 102 kann es sich um eine nach hinten gerichtete Kamera handeln, die so konfiguriert ist, dass sie Standbilder oder bewegte Bilder aus der entgegengesetzten Perspektive der Anzeige 106 aufnimmt. Obwohl sie als interne Komponente des Computergeräts 100 dargestellt und beschrieben wird, kann die Kamera 102 vollständig von dem Computergerät 100 getrennt sein, zum Beispiel in Fällen, in denen das Computergerät 100 eine Nachbearbeitung von Bildern durchführt, die von einer externen Kameraausrüstung einschließlich der Kamera 102 aufgenommen wurden.
  • Das Kameramodul 108 steuert die Kamera 102 und die Kamera-Schnittstelle 112. Das Kameramodul 108 kann Teil eines Betriebssystems sein, das auf dem Computergerät 100 ausgeführt wird. In anderen Beispielen kann das Kameramodul 108 eine separate Komponente (z. B. eine Anwendung) sein, die innerhalb einer vom Betriebssystem bereitgestellten Anwendungsumgebung ausgeführt wird. Das Kameramodul 108 kann in Hardware, Software, Firmware oder einer Kombination davon implementiert sein. Ein Prozessor des Computergeräts 100 kann Anweisungen ausführen, die in einem Speicher des Computergeräts 100 gespeichert sind, um die in Bezug auf das Kameramodul 108 beschriebenen Funktionen zu implementieren.
  • Das Kameramodul 108 tauscht Informationen mit der Kamera 102 und der Benutzerschnittstellenvorrichtung 104 aus, um die Anzeige 106 zu veranlassen, die Kamera-Schnittstelle 112 darzustellen. Als Reaktion auf Benutzereingaben, die mit der Kamera-Schnittstelle 112 verbunden sind, verarbeitet das Kameramodul 108 die Benutzereingaben, um die Kamera-Schnittstelle 112 anzupassen oder zu verwalten. Zum Beispiel kann das Kameramodul 108 die Benutzerschnittstellenvorrichtung 104 veranlassen, einen Sucher zum Aufnehmen von Fotos mit der Kamera-Schnittstelle 112 anzuzeigen. Als Reaktion auf die Erkennung einer Eingabe an einer Stelle der Anzeige 106, an der eine der Kamera-Schnittstelle 112 zugeordnete grafische Schaltfläche angezeigt wird, empfängt das Kameramodul 108 Informationen über die erkannte Eingabe. Das Kameramodul 108 verarbeitet die erkannte Eingabe und als Reaktion auf die Bestimmung eines Aufnahmebefehls aus der Eingabe sendet das Kameramodul 108 ein Signal, das die Kamera 102 veranlasst, ein Bild 114 aufzunehmen. Im Beispiel von 1 zeigt das Bild 114 eine Berglandschaft mit einem Vollmond und einer gewissen Wolkendecke im Hintergrund.
  • Das Bild 114 kann ein Rohbild sein, das minimal verarbeitete Daten von der Kamera 102 enthält, oder das Bild 114 kann jedes andere Bildformat sein, wie es von der Kamera 102 erfasst wurde. In anderen Beispielen kann das Bild 114 zur Verbesserung der Effizienz eine verkleinerte Variante des Rohbildes sein (z. B. eine Version mit niedriger Auflösung oder eine Miniaturansicht). In anderen Beispielen kann das Bild 114 eine verfeinerte oder verbesserte Version des Rohbildes sein, das vor der automatischen Segmentierung und Anpassungsverarbeitung modifiziert wurde.
  • Das Kameramodul 108 segmentiert und passt Bilder automatisch an, um die wahrgenommene Bildqualität zu verbessern, damit sie einer menschlichen Wahrnehmung einer Szene entspricht. Das Kameramodul 108 kann die beschriebenen Segmentierungs- und Anpassungstechniken automatisch als integrierten Teil eines Bilderfassungsprozesses durchführen, damit das Computergerät 100 die beschriebenen Techniken in (scheinbarer) Echtzeit durchführen kann, z. B. bevor ein erfasstes Bild in einem Kamerasucher erscheint und als Reaktion auf die Bestimmung eines Aufnahmebefehls von einer Eingabe, die mit der Kamera-Schnittstelle 112 verbunden ist. In anderen Beispielen führt das Kameramodul 108 die beschriebenen Segmentierungs- und Anpassungstechniken als Nachbearbeitung im Anschluss an den Bilderfassungsprozess aus.
  • Das Kameramodul 108 kann ein maschinell erlerntes Modell, wie z. B. ein neuronales Netzwerk, verwenden, das darauf trainiert ist, ein Bild automatisch in verschiedene Bereiche (z. B. Hintergrund, Vordergrund) zu segmentieren. Zum Beispiel ruft das Kameramodul 108 das von der Kamera 102 gespeicherte Bild 114 aus dem Bilddatenspeicher 110 ab. Das Kameramodul 108 segmentiert das Originalbild 114 in einen ersten Bereich 116A und einen zweiten Bereich 116B. Wie in 1 dargestellt, ist der erste Bereich 116A ein Himmelsbereich, der Merkmale eines Nachthimmels darstellt, und der zweite Bereich 116B ist ein Vordergrundbereich, der Objekte oder eine Szene unter dem Nachthimmel darstellt. Die Ausgabe des maschinell erlernten Modells kann als Maske verwendet werden, die das Kameramodul 108 auf das Bild 114 anwendet, um jeden der Bereiche 116A und 116B zu isolieren und die Pixel in jedem Bereich 116A und 116B unabhängig voneinander anzupassen, um die Bildqualität zu verbessern.
  • Das maschinell erlernte Modell des Kameramoduls 108 kann semantisch basierte Masken zum Ausblenden eines Bereichs aus einem anderen erzeugen. Das maschinell erlernte Modell des Kameramoduls 108 kann auch andere Masken erzeugen, z. B. Masken, die auf semantischen und Belichtungsinformationen basieren, um Teile eines Bildbereichs mit unterschiedlichen Beleuchtungen auszublenden. 0025] Das Bild 114 kann einen Satz von Pixeln enthalten, die durch Zahlen dargestellt werden, die Farbvariationen (z. B. Rot, Grün und Blau) an einer bestimmten Stelle auf einem Raster anzeigen. Wenn das Bild 114 in das maschinell erlernte Modell eingegeben wird, gibt das maschinell erlernte Modell eine Maske aus, die anzeigt, welche Pixel des Bildes 114 wahrscheinlich als Teil jeder der unterschiedlichen Bereiche 116A und 116B betrachtet werden. Das maschinell erlernte Modell des Kameramoduls 108 kann jedem Pixel im Bild 114 eine entsprechende Punktzahl zuweisen. Die jeweilige Punktzahl jedes Pixels wird anschließend vom Kameramodul 108 verwendet, um zu bestimmen, ob das Pixel mit den Bereichen 116A oder dem Bereich 116B assoziiert ist. Zum Beispiel kann eine Punktzahl, die einen fünfzigprozentigen Schwellenwert überschreitet, anzeigen, dass ein Pixel innerhalb des Bereichs 116A liegt, während eine Punktzahl, die unter dem fünfzigprozentigen Schwellenwert liegt, anzeigen kann, dass das Pixel innerhalb des Bereichs 116B liegt.
  • Das Kameramodul 108 kann die Maskenausgabe aus dem maschinell erlernten Modell verfeinern, um die Effizienz und Bildqualität zu verbessern. Zum Beispiel kann das Kameramodul 108 einen geführten Filter auf die Ausgabe des maschinell erlernten Modells anwenden.
  • Definitionsgemäß kann ein geführter Filter verwendet werden, um die Kanten einer Maske zu glätten, damit sie den Kanten der in einem Bild dargestellten Objekte entsprechen. Der geführte Filter empfängt als Eingaben: ein Führungsbild (z. B. die Pixel des Bildes 114) und eine Maske (z. B. aus dem maschinell erlernten Modell) und gibt eine verfeinerte Maske aus. Der geführte Filter kann vom maschinell erlernten Modell eine Konfidenzmaske als zusätzliche oder alternative Eingabe zum Führungsbild und zur Maske erhalten. Der geführte Filter gleicht die Kanten der Maske mit den Kanten der im Bild 114 gesehenen Objekte ab. Der Hauptunterschied zwischen der Maske aus dem maschinell erlernten Modell und der verfeinerten Maske aus dem geführten Filter besteht darin, dass jedes Pixel in der verfeinerten Maske als gewichteter Durchschnitt der Pixel in der Maske aus dem maschinell erlernten Modell berechnet wird. Der geführte Filter bestimmt die Gewichte aus dem Führungsbild, der Maske und der Konfidenzmaske.
  • Das Kameramodul 108 kann den geführten Filter anpassen, um eine Kantenglättung für bestimmte Arten von Bildern und Bildbereiche durchzuführen. Beispielsweise kann das Kameramodul 108 einen bestimmten geführten Filter anwenden, der auf die Konturierung von Kanten eines Nachthimmels zugeschnitten ist, um eine verfeinerte Maske zu erzeugen, die die Pixel des Bildes 114, die Teil des Nachthimmels sind, im ersten Bereich 116A genauer definiert und die Pixel des Bildes 114, die Teil des Vordergrunds sind, im zweiten Bereich 116B genauer definiert.
  • Durch die Anwendung des geführten Filters entfernt das Kameramodul 108 Mehrdeutigkeit in der Maske, indem es Pixel des Bildes 114 mit entsprechenden Bewertungen neu bewertet, die bei oder in der Nähe (z. B. innerhalb von plus oder minus zehn Prozent, fünf Prozent) einer Fünfzig-Prozent-Schwelle liegen. Die erneute Bewertung kann beinhalten, dass einige der Pixel mit höheren oder niedrigeren Werten markiert werden, damit andere Komponenten des Kameramoduls 108 die Pixel anpassen oder nicht anpassen. Die Verfeinerung der Maske mit dem geführten Filter oder einer anderen Verfeinerungstechnik stellt sicher, dass die Kanten der Maske mit den Kanten im Bild 114 übereinstimmen, was in einigen Fällen das Kombinieren der Bereiche 116A und 116B entweder während oder am Ende des Anpassungsprozesses genauer macht und auch zu einem qualitativ hochwertigeren Bild führen kann. In einigen Beispielen trainiert das Kameramodul 108 das maschinell erlernte Modell erneut auf der Grundlage der verfeinerten Maske, die vom geführten Filter ausgegeben wird, um zukünftige Segmentierungen zu verbessern, die vom maschinell erlernten Modell auf anderen Bildern durchgeführt werden.
  • Das Kameramodul 108 kann die vom maschinell erlernten Modell ausgegebene Maske auf andere Weise verfeinern, zusätzlich zu oder anstelle der Verwendung eines geführten Filters. In einigen Fällen kann das Kameramodul 108 mehrere, unterschiedliche Verfeinerungen anwenden. Zum Beispiel kann ein geführter Filter für die Kantenglättung in einigen spezifischen Anwendungsfällen gut geeignet sein. Für andere Anwendungsfälle (z. B. Entrauschen, Tune-Mapping) kann eine Maske auf andere Weise verfeinert werden (z. B. mit Medianfiltern, bilateralen Filtern, anisotropen Diffusionsfiltern). Beispielsweise kann das Kameramodul 108 einen geführten Filter auf eine Maske für einen bestimmten Anwendungsfall anwenden und eine andere Art der Verfeinerung für einen anderen Anwendungsfall verwenden.
  • Mit einer verfeinerten Maske kann das Kameramodul 108 die Eigenschaften der verschiedenen Bereiche 116A und 116B unabhängig voneinander anpassen, um eine neue Version des Originalbildes 114 zu erstellen. Beispielsweise kann das Kameramodul 108 die Maske auf das Originalbild 114 anwenden, um erste Anpassungen an der Helligkeit, dem Kontrast, dem Weißabgleich, dem Rauschen oder anderen Merkmalen des Bildbereichs 116A vorzunehmen und um weitere zweite, unterschiedliche Anpassungen an den Merkmalen des Bildbereichs 116B vorzunehmen. Durch die getrennte Einstellung der Bereiche 116A und 116B kann das Kameramodul 108 das Originalbild 114 so verändern, dass es so aussieht, als hätte die Kamera 102 das Bild 114 aufgenommen, indem sie gleichzeitig unterschiedliche Belichtungsstufen, einen automatischen Weißabgleich und eine Rauschunterdrückung für den Nachthimmel und den Vordergrund anwendet, wenn sie das Originalbild 114 erzeugt.
  • Auf diese Weise kann das Computergerät 100 die beschriebenen Segmentierungs- und Bearbeitungstechniken automatisch, mit oder ohne Benutzereingabe, durchführen. Durch die Verwendung des maschinell erlernten Modells kann das Computergerät die Grenzen der verschiedenen Bereiche grob definieren, und durch die Verwendung eines modifizierten geführten Filters oder einer anderen Verfeinerungstechnik kann das Computergerät die Maske für jede Bereich so anpassen, dass sie die Größe hat und an die Kanten der Objekte im Bild angepasst ist. Das Computergerät 100 kann daher die verschiedenen Bereiche genau identifizieren und die Kanten der verschiedenen Bereiche genau definieren. Durch die automatische Segmentierung eines Bildes vor der Anpassung des Bildes kann das Computergerät 100 jeden der verschiedenen Bereiche separat anpassen, anstatt zu versuchen, ein ganzes Bild anzupassen. Das Computergerät 100 kann daher ein qualitativ besseres Bild erzeugen, das der menschlichen Wahrnehmung einer Szene entspricht, als wenn das Computergerät 100 einen gemeinsamen Satz von Anpassungen für das gesamte Bild bestimmt und anwendet.
  • Das Computergerät 100 kann mehrere Masken anwenden, um ein Bild automatisch zu segmentieren und anzupassen, und das Computergerät 100 kann eine einzelne Maske für die automatische Segmentierung und Anpassung mehrerer, unterschiedlicher Bereiche eines Bildes auf unterschiedliche Weise wiederverwenden. Zum Beispiel kann das maschinell erlernte Modell des Computergeräts 100 eine einzelne Maske mit mehreren „Indizes“ für verschiedene Objekte oder verschiedene Bereiche eines Bildes ausgeben, oder das maschinell erlernte Modell des Computergeräts 100 kann einen Satz von Masken ausgeben, wobei jede Maske ein anderes Objekt oder einen anderen Bereich des Bildes abdeckt.
  • 2 ist ein konzeptionelles Diagramm, das eine beispielhafte Computerarchitektur für die automatische Segmentierung und Anpassung von Bildern zeigt. Die Computerarchitektur von 2 wird im Zusammenhang mit dem Kameramodul 108 aus 1 beschrieben.
  • Das Kameramodul 108 kann ein maschinell erlerntes Modell 200, einen geführten Filter 202, einen Einsteller 204 und einen Kombinierer 206 enthalten. Das Kameramodul 108 kann die in 2 dargestellte Architektur in Hardware, Software, Firmware oder einer Kombination davon implementieren.
  • Als Überblick über die in 2 gezeigte Architektur ist das maschinell erlernte Modell 200 so konfiguriert, dass es ein Originalbild 208 als Eingabe erhält und eine Maske 210 ausgibt. Die Maske 210 kann jedem Pixel im Originalbild 208 einen entsprechenden Wert oder eine Punktzahl zuweisen, wobei der Wert oder die Punktzahl eine Wahrscheinlichkeit anzeigt, dass das Pixel Teil eines bestimmten Bereichs ist (z. B. kann ein höherer Wert anzeigen, dass ein Pixel mit größerer Wahrscheinlichkeit Teil eines Himmelsbereichs des Originalbildes 208 ist als eines Nicht-Himmelsbereichs des Originalbildes 208).
  • Der geführte Filter 202 empfängt die Maske 210, eine Konfidenz 209 (die auf der Grundlage der Maske 210 berechnet wird) und das Originalbild 208 als Eingaben und gibt eine verfeinerte Maske 212 aus. Die verfeinerte Maske 212 hat glattere Kanten als die Maske 210, was dazu führt, dass die Kanten der verfeinerten Maske 212 im Vergleich zur Maske 210 den Kanten des Originalbildes 208 und den sichtbaren Grenzen der verschiedenen Bereiche besser entsprechen. In einigen Beispielen wird das maschinell erlernte Modell 200 basierend auf der Ausgabe des geführten Filters 202 neu trainiert, um die Genauigkeit der nachfolgenden Masken zu verbessern, die von dem maschinell erlernten Modell 200 ausgegeben werden.
  • Der Einsteller 204 wendet die verfeinerte Maske auf das Originalbild 208 an, um unabhängige Anpassungen an Teilen des Originalbildes 208 vorzunehmen, die Teil der Maske sind, mit oder ohne Anpassung von Teilen des Originalbildes 208, die außerhalb der Maske liegen. Der Kombinierer 206 überlagert die angepassten Bildabschnitte 214, die vom Einsteller ausgegeben werden, um ein neues Bild 216 zu erzeugen.
  • Das maschinell erlernte Modell 200 wird mit maschinellen Lernverfahren trainiert, um das Originalbild 208 automatisch zu segmentieren. Das maschinell erlernte Modell 200 kann einen oder mehrere Typen von maschinell erlernten Modellen enthalten, die zu einem einzigen Modell kombiniert werden, das die Maske 210 als Reaktion auf das Originalbild 208 liefert. Das maschinell erlernte Modell 200 ist so konfiguriert, dass es eine Inferenz durchführt; das maschinell erlernte Modell 200 ist so trainiert, dass es das Originalbild 208 als Eingabe erhält und als Ausgabedaten eine Maske bereitstellt, die Bereiche des Originalbildes 208 definiert, die vom maschinell erlernten Modell 200 aus den Pixeln (z. B. den Farbwerten, Positionen) im Originalbild 208 bestimmt wurden. In einigen Fällen führt das maschinell erlernte Modell 200 eine Inferenz unter Verwendung einer Version des Originalbildes 208 mit geringerer Auflösung durch. Durch die Durchführung der Inferenz unter Verwendung des maschinell erlernten Modells 200 kann das Kameramodul 108 das Originalbild 208 lokal verarbeiten, um die Privatsphäre und Sicherheit des Benutzers zu gewährleisten. In anderen Beispielen kann das Kameramodul 108 auf das maschinell erlernte Modell 200 aus der Ferne zugreifen, als Remote-Computing-Dienst. Das Kameramodul 108 kann das Originalbild 208 an ein entferntes Computergerät senden, das das maschinell erlernte Modell 200 ausführt, und als Antwort kann das Kameramodul die Maske 210 von dem entfernten Computergerät empfangen.
  • Das maschinell erlernte Modell 200 kann eines oder mehrere von verschiedenen Typen von maschinell erlernten Modellen sein oder beinhalten. Darüber hinaus sind die hier beschriebenen maschinellen Lerntechniken leicht austauschbar und kombinierbar. Obwohl bestimmte Beispieltechniken beschrieben wurden, existieren viele andere und können in Verbindung mit Aspekten der vorliegenden Offenbarung verwendet werden. Das maschinell erlernte Modell 200 kann Klassifizierung, Regression, Clustering, Anomalieerkennung, Empfehlungsgenerierung und/oder andere Aufgaben durchführen.
  • Das maschinell erlernte Modell 200 kann unter Verwendung von überwachten Lerntechniken trainiert werden, z. B. kann das maschinell erlernte Modell 200 auf der Grundlage eines Trainingsdatensatzes trainiert werden, der Beispiele von Masken enthält, die aus entsprechenden Beispielen von Bildern abgeleitet werden. Das maschinell erlernte Modell 200 kann auch mit nicht überwachten Lerntechniken trainiert werden.
  • Das maschinell erlernte Modell 200 kann ein oder mehrere künstliche neuronale Netzwerke (eine Art „neuronales Netzwerk“) sein oder beinhalten. Als neuronales Netzwerk kann das maschinell erlernte Modell 200 eine Gruppe verbundener oder nicht vollständig verbundener Knoten enthalten, die als Neuronen oder Perceptrons bezeichnet werden. Als neuronales Netzwerk kann das maschinell erlernte Modell 200 in einer oder mehreren Schichten organisiert sein und kann in einigen Fällen mehrere Schichten enthalten, wenn es als „tiefes“ Netzwerk konfiguriert ist. Als tiefes Netzwerk kann das maschinell erlernte Modell 200 eine Eingabeschicht, eine Ausgabeschicht und eine oder mehrere versteckte Schichten zwischen der Eingabeschicht und der Ausgabeschicht enthalten.
  • Das maschinell erlernte Modell 200 kann ein oder mehrere rekurrente neuronale Netze sein oder beinhalten. Beispielsweise kann das maschinell erlernte Modell als ein durchgängiges rekurrentes neuronales Netzwerk-Wandler-Bild-Segmentierungs-Modell implementiert sein. Beispiele für rekurrente neuronale Netze sind rekurrente Langzeitnetze (LSTM), gated rekurrente Einheiten, bidirektionale rekurrente neuronale Netze, rekurrente neuronale Netze mit kontinuierlicher Zeit, neuronale History-Kompressoren, Echo-State-Netze, Elman-Netze, Jordan-Netze, rekursive neuronale Netze, Hopfield-Netze, vollständig rekurrente Netze und Sequenz-zu-Sequenz-Konfigurationen.
  • Das maschinell erlernte Modell 200 kann ein oder mehrere neuronale Faltungsnetzwerke sein oder enthalten. Ein neuronales Faltungsnetzwerk kann eine oder mehrere Faltungsschichten enthalten, die Faltungen über Eingabedaten unter Verwendung gelernter Filter oder Kerne durchführen. Neuronale Faltungsnetzwerke sind für ihre Nützlichkeit bei der Analyse von Bildeingabedaten, wie z. B. Standbildern oder Videos, bekannt.
  • Das maschinell erlernte Modell 200 kann so trainiert oder anderweitig konfiguriert werden, dass es das Originalbild 208 als Eingabedaten empfängt und in Reaktion darauf die Maske 210 als Ausgabedaten bereitstellt. Die Eingabedaten können verschiedene Typen, Formen oder Variationen von Bilddaten enthalten. In verschiedenen Implementierungen kann das Originalbild 208 beispielsweise Rohbilddaten enthalten, einschließlich eines oder mehrerer Bilder oder Frames, die von der Kamera 102 im Bilddatenspeicher 110 gespeichert wurden. In anderen Beispielen kann das Originalbild 208 ein verarbeitetes Bild sein (z. B. eine reduzierte oder niedrig aufgelöste Version eines oder mehrerer im Bilddatenspeicher 110 gespeicherter Bilder), das aus dem Bilddatenspeicher 110 erhalten wird, nachdem das Kameramodul 108 das von der Kamera 102 aufgenommene Bild zunächst verarbeitet hat.
  • Als Reaktion auf den Empfang des Originalbildes 208 kann das maschinell erlernte Modell 200 die Maske 210 bereitstellen. Die Maske 210 kann verschiedene Typen, Formen oder Variationen von Ausgabedaten enthalten. Als Beispiele kann die Maske 210 eine Bewertung für jedes der Pixel im Originalbild 208 definieren und andere Informationen über die Pixel und die Bewertung enthalten, wie z. B. eine mit der Bewertung verbundene Konfidenz oder andere Daten.
  • Das maschinell erlernte Modell 200 kann auf eine Offline- oder Online-Art trainiert werden. Beim Offline-Training (auch als Batch-Lernen bekannt) wird das maschinell erlernte Modell 200 auf der Gesamtheit eines statischen Satzes von Trainingsdaten trainiert, und beim Online-Lernen wird das maschinell erlernte Modell 200 kontinuierlich trainiert (oder neu trainiert), wenn neue Trainingsdaten verfügbar werden (z. B. während das maschinell erlernte Modell 200 verwendet wird, um Inferenzen durchzuführen).
  • Um das maschinell erlernte Modell 200 zu trainieren, müssen die verwendeten Trainingsdaten ordnungsgemäß annotiert werden, bevor das maschinell erlernte Modell 200 Rückschlüsse aus den Trainingsdaten ziehen kann. Jedes Bild (z. B. in der Größenordnung von fünfzigtausend Bildern) und jedes Pixel in einem Satz von Trainingsdaten in kurzer Zeit zu annotieren, kann eine Herausforderung sein, wenn nicht sogar unmöglich erscheinen. Das maschinell erlernte Modell 200 kann mit einer Active-Leaming-Pipeline trainiert werden, die einen Annotationsprozess beinhaltet.
  • Während eines ersten Schritts in einer Active-Learning-Pipeline wird eine „Pilot“-Teilmenge der Trainingsdaten (z. B. etwa fünftausend der fünfzigtausend Bilder) manuell beschriftet. Zum Beispiel können die Kommentatoren manuell grobe Anmerkungen zu Himmelsbereichen und Nicht-Himmelsbereichen machen, ohne eine detaillierte Grenze zwischen den beiden Bereiche zu markieren. Das maschinell erlernte Modell 200 kann mit der Pilot-Teilmenge der Trainingsdaten trainiert werden und dann eine Inferenz auf den Rest der Trainingsdaten (z. B. die anderen fünfundvierzigtausend Bilder) durchführen. In einigen Fällen kann der geführte Filter 202 auf die Inferenzergebnisse angewendet und an das maschinell erlernte Modell 200 zurückgegeben werden, um die Ableitung von Grenzen durch das maschinell erlernte Modell 200 weiter zu verbessern, so dass die Grenzen innerhalb eines Bildes genauer mit den Kanten der Objekte in einer Szene übereinstimmen.
  • Die Annotatoren können einen Teil der detaillierten Grenze unkommentiert lassen. Vor oder nach der Anwendung des geführten Filters 202 können die unkommentierten Teile der Grenze zwischen einer Himmels- und eines Nicht-Himmelsbereichs mit Hilfe einer statistischen Methode, wie z. B. einer Dichteschätztechnik, rechnerisch kommentiert werden. Um beispielsweise Zeit für das manuelle Beschriften genauer Grenzen zu sparen, können die Annotatoren einen Rand zwischen den Bereiche belassen, wenn ein Teil der Grenze zwischen den Bereiche nicht beschriftet ist. Der Rand kann rechnerisch annotiert werden, um die nicht annotierte Grenze mit Hilfe einer statistischen Methode (z. B. Dichteschätzung) aufzufüllen. Für ein einzelnes Bild kann die statistische Methode z. B. die Farbverteilung des Himmelsbereichs schätzen. Anstatt die gesamte Grenze der Bereiche sorgfältig und manuell zu annotieren, können die Annotatoren auf diese Weise Bilder grob annotieren und dann mithilfe einer statistischen Methode den Rest der Grenze rechnerisch mit höherer Granularität annotieren.
  • Nach dem Training auf der Pilot-Teilmenge der Trainingsdaten und der Durchführung der Inferenz auf dem Rest der Trainingsdaten können die Inferenzergebnisse während eines nachfolgenden Schritts in der Active-Learning-Pipeline verifiziert werden, und nur die Inferenzergebnisse, die Fehler enthalten, werden manuell annotiert. Da auf diese Weise nicht alle Bilder manuell annotiert werden müssen, wird Trainingszeit eingespart; die Zeit, die zum Trainieren des maschinell erlernten Modells 200 benötigt wird, wird reduziert. Das maschinell erlernte Modell 200 kann anschließend erneut trainiert werden und je nach Bedarf zusätzliche Inferenz-, Verifikations- und Annotationsrunden durchführen. Die Inferenzergebnisse, die durch das maschinell gelernte Modell 200 nicht genau segmentiert wurden, können manuell oder rechnerisch erneut segmentiert werden, und das maschinell gelernte Modell 200 kann mit den korrigierten Bildern erneut trainiert werden. Das maschinell erlernte Modell 200 kann die Inferenz auf den korrigierten Bildern und anderen Trainingsdaten ausführen. Die Active-Learning-Pipeline kann erneut mit zusätzlichen Trainingsdaten ausgeführt werden, um das maschinell gelernte Modell 200 zu verbessern.
  • Das Kameramodul 108 und das maschinell erlernte Modell 200 können Teil eines Betriebssystems oder Systemdienstes sein, der auf dem Computergerät 100 ausgeführt wird, und können daher die Bilddaten für die automatische Segmentierung sicherer und besser schützen, als wenn das maschinell erlernte Modell 200 beispielsweise auf einem entfernten Computersystem ausgeführt wird. Anwendungen, die mit dem Betriebssystem interagieren, können z. B. nur dann mit dem maschinell erlernten Modell 200 interagieren, wenn das Kameramodul 108 oder das Betriebssystem den Anwendungen Zugriff gewährt. Zum Beispiel kann eine Anwendung über das Betriebssystem kommunizieren, um den Zugriff auf das Modell 200 und die im Bilddatenspeicher 110 gespeicherten Bilder anzufordern, wobei eine Anwendungsprogrammierschnittstelle (API) verwendet wird (z. B. eine gemeinsame, öffentliche API für alle Anwendungen). Es versteht sich, dass das maschinell erlernte Modell 200 Teil eines entfernten Computersystems sein kann oder als Dienst oder Funktion einer Fotobearbeitungsanwendung eingebettet sein kann, die auf dem Computergerät 100 oder einem anderen Computergerät ausgeführt wird, das vom Kameramodul 108 und der Kamera getrennt ist. Durch die lokale Ausführung als Teil eines Betriebssystems oder Systemdienstes des Computergeräts 100 können das Kameramodul 108 und das maschinell erlernte Modell 200 Eingaben schneller und effizienter entgegennehmen und als Reaktion Ausgaben liefern, ohne auf eine Netzwerkverbindung zwischen dem Computergerät 100 und einem entfernten Server angewiesen zu sein.
  • Der geführte Filter 202 ist so konfiguriert, dass er die vom maschinell erlernten Modell 200 ausgegebene Maske 210 verfeinert, um eine verfeinerte Maske 212 zu erzeugen. Der Hauptunterschied zwischen der Maske 210 und der verfeinerten Maske 212 besteht darin, dass die jeweilige Punktzahl jedes Pixels in der verfeinerten Maske 212 einen gewichteten Durchschnitt darstellt, der die jeweiligen Punktzahlen anderer nahegelegener Pixel berücksichtigt, wie sie von der Maske 210 abgeleitet wurden. Der geführte Filter 202 erzeugt die verfeinerte Maske 212, die die verschiedenen Bereiche, die durch die Maske 210 spezifiziert sind, neu definiert, um Kanten zu haben, die mit den Kanten von Objekten im Originalbild 208 übereinstimmen und die außerdem die Grenzen der verschiedenen Bereiche, die durch die Maske 210 spezifiziert sind, so ausrichten, dass sie den Farbvariationen an den sichtbaren Grenzen der verschiedenen Bereiche im Originalbild 208 entsprechen. Ein Teil der Verfeinerung der Maske 210 kann das Hinzufügen einer Mattierung zu jedem der verschiedenen Bereiche beinhalten, um Transparenz an Teilen des Originalbildes 208 hinzuzufügen. Beispielsweise kann eine Mattierung mit einem bestimmten Transparenzwert hinzugefügt werden, um einen fließenden Übergang von der Anpassung eines Bereichs (z. B. für Himmelsanpassungen) zu einem anderen Bereich (z. B. für Nicht-Himmel-Anpassungen) in Bereichen zu schaffen, in denen Pixel als Teil der beiden Bereiche (z. B. Teil des Himmels und Teil des Nicht-Himmels) angesehen werden könnten. Solche gemischten Pixel können z. B. entlang von Objektkanten oder in der Nähe von halbtransparenten Objekten (z. B. bei krausen Haaren) auftreten.
  • Der geführte Filter 202 kann ein klassischer geführter Filter sein. In anderen Beispielen enthält der geführte Filter 202 Modifikationen gegenüber dem klassischen geführten Filter, z. B. zur Verbesserung der Effizienz. Beispielsweise kann ein typischer geführter Filter einen einzelnen Kanal des Originalbildes 208 mit Bezug auf die Maske 210 analysieren, während der geführte Filter 202, der modifiziert wurde, stattdessen Farbkanäle (z. B. RGB, YUV) des Originalbildes 208 mit Bezug auf die Maske 210 analysieren und zusätzlich eine Konfidenzmaske anwenden kann.
  • Beispielsweise kann die Maske 210 des maschinell erlernten Modells 200 mehrdeutige Bewertungen enthalten, die innerhalb eines Schwellenwerts von fünfzig Prozent liegen. Das Kameramodul 108 kann wenig Konfidenz darin haben, dass die mehrdeutigen Bewertungen eine genaue Maske erzeugen können. Daher kann der geführte Filter 202 bei der Optimierung der Maske 210 zur verfeinerten Maske 212 Pixel mit Bewertungen innerhalb eines Schwellenwerts von fünfzig Prozent verwerfen oder ignorieren. Mit anderen Worten, der geführte Filter 202 kann Pixel ignorieren, die nicht eindeutig in eine der definierten Grenzen fallen, und stattdessen die verfeinerte Maske 212 basierend auf den verbleibenden Pixeln mit Bewertungen außerhalb des Schwellenwerts von fünfzig Prozent erzeugen. Beispielsweise kann das maschinell erlernte Modell 200 die Maske 210 mit Kanten ausgeben, die nicht unbedingt genau den Konturen der Objekte im Bild folgen. Ein Bild kann zum Beispiel einen Baum zeigen, der sich als Silhouette gegen den Himmel abhebt. Weit entfernt vom Baum können die Pixel der Maske 210 Werte enthalten, die mit hoher Wahrscheinlichkeit anzeigen, dass die Pixel zu einem Himmelsbereich gehören. Für Pixel innerhalb des Baumstamms kann die Maske 210 mit hoher Wahrscheinlichkeit anzeigen, dass die Pixel zu einem Nicht-Himmel-Bereich gehören. Der Baum kann jedoch einen komplizierten Umriss haben, mit feinen Ästen und Blättern. Für Pixel im Bild, die sich in der Nähe des Umrisses des Baumes befinden, kann die Maske 210 Werte enthalten, die mit Unsicherheit anzeigen, dass die Pixel entweder zum Himmelsbereich oder zum Nicht-Himmelsbereich gehören. Der geführte Filter 202 kann eine neue, verfeinerte Maske erstellen, bei der jedes Pixel mit hoher Wahrscheinlichkeit zum Himmelsbereich oder zum Nicht-Himmelsbereich gehört, mit Ausnahme von Pixeln, die den Umriss des Baums überspannen, bei denen die Maske etwas dazwischen anzeigt (z. B. eine dreißigprozentige Wahrscheinlichkeit, zum Himmelsbereich zu gehören, oder eine siebzigprozentige Wahrscheinlichkeit, zum Nicht-Himmelsbereich zu gehören).
  • Insgesamt kann ein Benutzer eine Vorstellung davon haben, wie ein Nachthimmel oder ein Taghimmel aussehen sollte, und oft entspricht ein Tag- oder Nachthimmel auf einem Foto nicht den Erwartungen des Benutzers, obwohl das Foto eigentlich eine realistische Darstellung des Himmels sein könnte. Das Kameramodul 108 kann jeden segmentierten Bereich (z. B. Himmelsbereich, Nicht-Himmelsbereich) separat anpassen, damit das Erscheinungsbild jedes Bereichs den Erwartungen des Benutzers entspricht, indem es lebendiger, dunkler oder einheitlicher gestaltet wird, während die Qualität der anderen Bereiche beibehalten oder unabhängig davon verbessert wird.
  • Unter Verwendung der verfeinerten Maske 212 als Leitfaden passt der Einsteller 204 einzelne Bereiche des Originalbildes 208 an, um einzelne Bildabschnitte 214 (auch als Bildschichten bezeichnet) zu erzeugen. Jeder der einzelnen Abschnitte 214 stellt einen segmentierten Bereich des Originalbildes 208 dar, wie er durch die verfeinerte Maske 212 definiert ist, wobei Anpassungen zur Verbesserung der Qualität vorgenommen werden. Der Einsteller kann die einzelnen Bereiche des Originalbildes 208 auf eine oder mehrere verschiedene Arten modifizieren.
  • Der Einsteller 204 kann eine Tonwertzuordnung durchführen und eine Helligkeit oder ein Maß an Dunkelheit einstellen, das mit einer bestimmten Bereich des Originalbildes 208 assoziiert ist. Zum Beispiel kann der Einsteller 204 für Himmelsbereiche des Originalbildes 208 die Pixel abdunkeln, um einen Himmel lebendiger erscheinen zu lassen. Auch als Tone Mapping bezeichnet, kann der Einsteller 204 einer Bias-Kurve folgen, um die Dunkelheit des bestimmten Bereichs anzupassen, wodurch schwarze und weiße Pixel beibehalten werden, während graue oder andere farbige Pixel abgedunkelt oder aufgehellt werden.
  • Der Einsteller 204 kann eine separate Funktion zum automatischen Weißabgleich auf jede der verschiedenen Bereiche des Originalbildes 208 anwenden. Zum Beispiel kann der Einsteller 204 eine erste automatische Weißabgleichsfunktion auf einen Himmelsbereich und eine zweite, andere automatische Weißabgleichsfunktion auf einen Vordergrundbereich anwenden. Auf diese Weise kann der Einsteller 204 bewirken, dass der Himmelsbereich blauer oder schwarzer erscheint, ohne Objekte im Vordergrundbereich zu verfärben, der Einsteller 204 kann die wahre Farbe des Himmels schätzen, ohne die Farbe des Vordergrunds zu berücksichtigen.
  • Der Einsteller 204 kann sich auf ein maschinell erlerntes Modell stützen, das darauf trainiert ist, eine automatische Weißabgleichsfunktion auf der Grundlage der Pixel eines segmentierten Bereichs des Originalbildes 208 auszuwählen und anzuwenden. Beispielsweise kann das Modell anhand der Farben der Pixel und der auf die Pixel angewendeten Punktezahlen ableiten, ob ein segmentierter Bereich einen Himmelsbereich oder einen Nicht-Himmelsbereich darstellt, und eine bestimmte Funktion für den automatischen Weißabgleich anwenden, die so abgestimmt ist, dass sie das visuelle Erscheinungsbild von Merkmalen verbessert, die üblicherweise im Himmel erscheinen (z. B. Sonne, Mond, Wolken, Sterne). Das Modell kann eine andere automatische Weißabgleichsfunktion auf den Nicht-Himmel-Bereich anwenden, die darauf abgestimmt ist, Objekte im Vordergrund zu verbessern. Der Einsteller 204 kann daher zwei oder mehr automatische Weißabgleichsfunktionen anwenden, um das Originalbild 208 zu verbessern.
  • Der Einsteller 204 kann in Abhängigkeit vom Kontext des Computergeräts 100 arbeiten. Beispielsweise kann der Einsteller 204 ein Signal vom Kameramodul 108 empfangen, das einen absoluten Lichtpegel angibt, der mit einer Betriebsumgebung verbunden ist, in der das Originalbild 208 aufgenommen wurde. Digitale Fotos enthalten typischerweise Belichtungsinformationen, und aus diesen Informationen kann ein absoluter Lichtpegel zu einem Zeitpunkt abgeleitet werden, an dem ein Foto aufgenommen wurde. Der automatische Weißabgleich bei schwachem oder hellem Licht kann angewendet werden, wenn die Bildsegmentierung und -anpassung lange nach der Aufnahme eines Bildes erfolgt (z. B. länger als eine Sekunde), z. B. durch eine Anwendung, die außerhalb des Computergeräts 100 ausgeführt wird (z. B. auf einem Server in einem Rechenzentrum oder auf einem Desktop-Computer). Als Reaktion auf die Feststellung, dass sich die Betriebsumgebung in einer schwach beleuchteten Umgebung befindet, kann der Einsteller eine Funktion zum automatischen Weißabgleich bei schwachem Licht anwenden, während der Einsteller 204 eine Funktion zum automatischen Weißabgleich bei mittlerem oder starkem Licht als Reaktion auf die Feststellung, dass sich die Betriebsumgebung in einer Umgebung mit mittlerem oder starkem Licht befindet, anwenden kann.
  • Der Einsteller 204 kann selektiv Rauschen aus den verschiedenen Bereichen des Originalbildes 208 entfernen. Beispielsweise kann der Einsteller 204 das Rauschen aus einem Himmelsbereich aggressiver entfernen, um den Himmel glatt erscheinen zu lassen oder um dem Himmel einen gleichmäßigen Gradienten zu verleihen, der frei von „Flecken“ ist. Der Einsteller 204 kann feststellen, dass eine Gruppe von Pixeln keinen ausreichenden Farbverlauf aufweist (z. B. kann eine Gruppe von Pixeln eine konstante Farbe anstelle eines Farbverlaufs von hell nach dunkel oder von dunkel nach hell haben), verglichen mit der Färbung anderer Teile des Himmelsbereichs, und die Färbung der Pixel in der Gruppe mitteln oder anderweitig anpassen, damit sie wie die umgebenden Pixel außerhalb der Gruppe erscheinen. Der Einsteller 204 kann z. B. einen Bandstoppfilter anwenden, um ungleichmäßige Himmel zu glätten.
  • In einigen Beispielen behält der Einsteller 204 das Rauschen bei oder unterlässt die Entfernung des Rauschens, abhängig von einer Größe oder Menge von Pixeln, die mit dem Rauschen verbunden sind. Zum Beispiel kann ein Himmelsbereich ein angenehmeres Aussehen haben, wenn kleine oder sehr große Gruppen von Pixeln beibehalten werden, während mittelgroße Gruppen von Pixeln angepasst (z. B. gemittelt) werden. Der Einsteller 204 kann selektiv entrauschen, indem er die mittelgroßen Pixelgruppen mittelt, ohne die anderen, kleineren oder größeren Pixelgruppen zu verändern. Anders ausgedrückt: Pixel in einem Himmelsbereich können geglättet werden, um ein fleckiges Erscheinungsbild zu reduzieren, indem mittlere Ortsfrequenzen herausgefiltert und nur hohe und sehr niedrige Ortsfrequenzen beibehalten werden. Feine Details wie Sterne werden durch hohe Frequenzen dargestellt, und glatte Farbverläufe werden durch niedrige Frequenzen dargestellt, aber mittlere Frequenzen sollten in einem Bild eines klaren, blauen Himmels nicht vorkommen. Wenn doch mittlere Frequenzen auftreten, handelt es sich bei den Pixeln wahrscheinlich um Rauschen, und durch das Filtern der mittleren Frequenzen wird das Erscheinungsbild des Himmels tendenziell verbessert. Der Einsteller 204 kann davon absehen, einen solchen Filter auf bewölkte Bereiche innerhalb des Himmels anzuwenden, da dadurch visuell wichtige Details entfernt werden können und die Wolken „ausgewaschen“ oder unrealistisch aussehen können.
  • Der Kombinierer 206 des Kameramoduls 108 setzt die Ausgaben des Einstellers 204 zu einem neuen Bild 216 zusammen. Der Kombinierer 206 kann Alpha-Blending-Techniken durchführen und die Bildabschnitte 214 übereinander schichten und eine Alpha-Blending-Funktion auf die Schichten der Bildabschnitte 214 anwenden. Die Alpha-Blending-Funktion kann sich auf einen Parameter „Alpha“ stützen, der auf der Grundlage der verfeinerten Maske 212 bestimmt wird und der definiert, wie transparent einer der Bildabschnitte 214 im Vergleich zu den anderen Bildabschnitten 214 ist. Der Kombinierer 206 nimmt die Bildabschnitte 214 und mischt oder setzt die Bildabschnitte 214 zusammen, um das neue Bild 216 zu erzeugen.
  • Falls erforderlich, kann der Kombinierer 206 Aufwärtsabtastungstechniken durchführen, um das neue Bild 216 mit einer Auflösung zu erzeugen, die der Auflösung des Originalbildes 208 entspricht. Beispielsweise kann das Originalbild 208 vor dem Erreichen des maschinell erlernten Modells 200 heruntergetastet werden, um die Effizienz des Kameramoduls 108 zu verbessern. Daher kann der Kombinierer 206 eine Aufwärtsabtastung jedes der Bildabschnitte 214 durchführen, um das neue Bild 216 mit einer Auflösung zu erzeugen, die bei oder nahe der gleichen Auflösung des Originalbildes 208 liegt. Der Kombinierer 206 kann Aufwärtsabtastungstechniken an verschiedenen Punkten in der obigen Bildverarbeitungspipeline durchführen. Zum Beispiel kann der Kombinierer 206 Aufwärtsabtastungstechniken durchführen, bevor der Einsteller 204 Verfeinerungstechniken durchführt, um die Bildabschnitte 214 zu erzeugen.
  • Die in 2 gezeigte Architektur ist ein Beispiel für das Kameramodul 108. Das Kameramodul 108 kann zusätzliche Anpassungen vornehmen, um dem neuen Bild 216 einen visuellen Effekt zu verleihen, der so erscheint, als ob die Kamera 102 so konfiguriert wurde, dass sie das Originalbild 214 als das neue Bild 216 aufnimmt, um der menschlichen Wahrnehmung der Szene zu entsprechen.
  • 3 ist ein konzeptionelles Diagramm, das ein anderes Computergerät zeigt, das zum automatischen Segmentieren und Anpassen von Bildern konfiguriert ist. 3 zeigt ein Computergerät 300, das ein Beispiel für das Computergerät 100 ist, mit einigen zusätzlichen Details. Wie in 3 gezeigt, kann das Computergerät 300 ein Mobiltelefon 100-1, ein Laptop-Computer 100-2, ein Fernseher/eine Anzeige 100-3, ein Desktop-Computer 100-4, ein Tablet-Gerät 100-5, eine computerisierte Uhr 100-6 oder ein anderes tragbares Gerät oder ein in einem Fahrzeug 100-7 installiertes Computersystem sein.
  • Zusätzlich zu jeder der in 1 gezeigten Komponenten umfasst das Computergerät 300 einen oder mehrere Prozessoren 302, ein computerlesbares Medium 304, einen oder mehrere Sensoren 310, ein oder mehrere Eingabe-/Ausgabegeräte 312 und ein oder mehrere Kommunikationsgeräte 314. Das computerlesbare Medium 304 enthält Anweisungen, die, wenn sie von den Prozessoren 302 ausgeführt werden, eine Anwendung 306 und ein Betriebssystem 308 ausführen. Das Betriebssystem 308 kann das Kameramodul 108 und den Bilddatenspeicher 110 enthalten oder das Kameramodul 108 und/oder der Bilddatenspeicher 110 können vom Betriebssystem 308 getrennt gehalten werden (z. B. auf einem entfernten Server). Die Sensoren 310 umfassen die Kamera 102. Die Benutzerschnittstellenvorrichtung 104 umfasst neben einer Eingabekomponente 316 auch die Anzeigekomponente 306.
  • Die Prozessoren 302 können eine beliebige Kombination aus einem oder mehreren Controllern, Mikrocontrollern, Prozessoren, Mikroprozessoren, Hardware-Prozessoren, Hardware-Verarbeitungseinheiten, Digital-Signal-Prozessoren, Grafikprozessoren, Grafikverarbeitungseinheiten und dergleichen umfassen. Bei den Prozessoren 302 kann es sich um ein integriertes Prozessor- und Speicher-Subsystem handeln (z. B. als „System-on-Chip“ implementiert), das computerausführbare Befehle zur Steuerung von Operationen des Computergeräts 300 verarbeitet.
  • Die Sensoren 310 erhalten kontextbezogene Informationen, die auf eine physische Betriebsumgebung des Computergeräts und/oder Eigenschaften des Computergeräts 300 während des Betriebs in der physischen Betriebsumgebung hinweisen. Neben der Kamera 102 umfassen weitere Beispiele für die Sensoren 310 Bewegungssensoren, Temperatursensoren, Positionssensoren, Näherungssensoren, Umgebungslichtsensoren, Feuchtigkeitssensoren, Drucksensoren und dergleichen. Die Anwendung 306, das Betriebssystem 308 und die Kamera 102 können Operationen entsprechend den von den Sensoren 310 erhaltenen Sensorinformationen anpassen.
  • Die Eingabe-/Ausgabegeräte 312 bieten über die Benutzerschnittstellenvorrichtung 104 hinaus zusätzliche Konnektivität mit dem Computergerät 300 und anderen Geräten und Peripheriegeräten, einschließlich Datennetzwerkschnittstellen, die Verbindungs- und/oder Kommunikationsverbindungen zwischen dem Gerät, Datennetzwerken (z. B. einem Mesh-Netzwerk, externen Netzwerk usw.) und anderen Geräten oder entfernten Computersystemen (z. B. Servern) bereitstellen. Eingabe-/Ausgabegeräte 312 können verwendet werden, um das Computergerät 300 mit einer Vielzahl verschiedener Arten von Komponenten, Peripheriegeräten und/oder Zubehörgeräten zu verbinden. Eingabe-/Ausgabegeräte 312 umfassen auch Dateneingangsanschlüsse zum Empfang von Daten, einschließlich Bilddaten, Benutzereingaben, Kommunikationsdaten, Audiodaten, Videodaten und dergleichen.
  • Die Kommunikationsgeräte 314 ermöglichen die drahtgebundene und/oder drahtlose Kommunikation von Gerätedaten zwischen dem Computergerät 300 und anderen Geräten, Computersystemen und Netzwerken. Die Kommunikationsgeräte 314 können Transceiver für die Mobiltelefonkommunikation und/oder für andere Arten der Netzwerkdatenkommunikation umfassen.
  • Das computerlesbare Medium 304 ist so konfiguriert, dass es das Computergerät 300 mit persistenter und nicht-persistenter Speicherung von ausführbaren Anweisungen (z. B. Firmware, Wiederherstellungs-Firmware, Software, Anwendungen, Modulen, Programmen, Funktionen und dergleichen) und Daten (z. B. Benutzerdaten, Betriebsdaten) zur Unterstützung der Ausführung der ausführbaren Anweisungen versorgt. Beispiele für die computerlesbaren Medien 304 umfassen flüchtige und nichtflüchtige Speicher, feste und austauschbare Mediengeräte und jede geeignete Speichereinrichtung oder elektronische Datenspeicherung, die ausführbare Anweisungen und unterstützende Daten verwaltet. Die computerlesbaren Medien 304 können verschiedene Implementierungen von Random-Access-Memory (RAM), Read-Only-Memory (ROM), Flash-Memory und andere Arten von Speicherspeicher in verschiedenen Speichervorrichtungskonfigurationen umfassen. Das computerlesbare Medium 304 schließt die Ausbreitung von Signalen aus. Das computerlesbare Medium 304 kann ein Solid-State-Laufwerk (SSD) oder ein Festplattenlaufwerk (HDD) sein. Das computerlesbare Medium 304 im Beispiel von 3 enthält die Anwendung 306 und das Betriebssystem 308.
  • Die Anwendung 306 kann jede Art von ausführbarem Programm oder Programm sein, das innerhalb einer Betriebsumgebung des Computergeräts 300 ausgeführt wird. Beispiele für die Anwendung 306 sind eine Kameraanwendung eines Drittanbieters, eine Messaging-Anwendung, eine Fotobearbeitungsanwendung, eine Bildberührungsanwendung, eine Social-Media-Anwendung, eine Virtual-Reality- oder Augmented-Reality-Anwendung, eine Videokonferenzanwendung oder eine andere Anwendung, die eine Schnittstelle mit der Kamera 102 bildet und sich auf das Kameramodul 108 stützt, um mit der Kamera 102 aufgenommene Bilder im Auftrag der Anwendung 306 zu verbessern.
  • Die Anwendung 306 kann beispielsweise ein Programm sein, das einem Benutzer die Möglichkeit bietet, ein von der Kamera 102 aufgenommenes Bild manuell zu bearbeiten oder zu manipulieren, bevor das Bild an eine andere Funktion der Anwendung 306 weitergegeben wird. Beispielsweise kann die Anwendung 306 als Social-Media-Anwendung oder als Fotobearbeitungsanwendung eine Schnittstelle mit dem Kameramodul 108 bilden (z. B. als Plug-in oder Systemdienst, auf den die Anwendung 306 zugreift), um die Anwendung 306 in die Lage zu versetzen, ein von der Kamera 102 aufgenommenes Bild zu verbessern, indem das Bild automatisch segmentiert und angepasst wird, bevor das Bild verwendet wird, um eine Funktion auszuführen, wie z. B. das Posten des Bildes auf einem Social-Media-Konto eines Benutzers oder die anderweitige Ausgabe des Bildes zur Anzeige.
  • Das Betriebssystem 308 des Computergeräts 300 umfasst das Kameramodul 108 und den Bilddatenspeicher 110. Das Betriebssystem 308 steuert im Allgemeinen die Funktionalität des Computergeräts 300, einschließlich der Benutzerschnittstellenvorrichtung 104 und anderer Peripheriegeräte. Das Betriebssystem 308 bietet eine Ausführungsumgebung für Anwendungen, wie z. B. die Anwendung 306. Das Betriebssystem 308 kann die Aufgabenplanung und andere allgemeine Funktionen steuern und tut dies im Allgemeinen über eine Benutzeroberfläche auf Systemebene. Die Benutzerschnittstellenvorrichtung 104 verwaltet die Ein- und Ausgabe an das Betriebssystem 308 und andere Anwendungen und Dienste, die auf dem Computergerät 300 ausgeführt werden, einschließlich der Anwendung 306.
  • Die Benutzerschnittstellenvorrichtung 104 umfasst eine Eingabekomponente 316. Die Eingabekomponente 316 kann ein Mikrofon umfassen. Die Eingabekomponente 316 kann eine druckempfindliche oder präsenzempfindliche Eingabekomponente umfassen, die in die Anzeigekomponente 306 integriert oder anderweitig operativ mit der Anzeigekomponente 306 gekoppelt ist. Anders ausgedrückt, die Anzeigekomponente 306 und die Eingabekomponente 316 können zusammen eine berührungsempfindliche oder präsenzempfindliche Bildschirmfunktionalität bereitstellen, um das Computergerät 300 in die Lage zu versetzen, Gesteneingaben, die mit der Kameraschnittstelle 112 verbunden sind, zu erkennen und zu interpretieren. Die Eingabekomponente 316 kann ein optisches, ein Infrarot, ein druckempfindliches, ein präsenzempfindliches oder ein radarbasiertes Gestenerkennungssystem umfassen.
  • Im Betrieb empfangen die Prozessoren 302 Daten von der Kamera 102, die ein von der Kamera 102 aufgenommenes Originalbild anzeigen. Das Kameramodul 108 segmentiert, während es in den Prozessoren 302 ausgeführt wird, das von den Prozessoren 302 empfangene Originalbild automatisch in mehrere Bereiche von Pixeln. Das Kameramodul 108 wendet unabhängig einen jeweiligen automatischen Weißabgleich auf jeden der mehreren Bereiche an und kombiniert die mehreren Pixelbereiche, um ein neues Bild zu erzeugen. Das Kameramodul 108 kann das neue Bild beispielsweise an die Anwendung 306 senden und die Anwendung 306 anweisen, das neue Bild zu präsentieren. Durch die Kopplung mit dem Betriebssystem 308 kann die Anwendung 306 das neue Bild an die Benutzerschnittstellenvorrichtung 104 mit Anweisungen zur Ausgabe des neuen Bildes zur Anzeige auf der Anzeigekomponente 306 senden.
  • 4 ist ein Flussdiagramm zur Veranschaulichung von Beispielvorgängen eines Computergeräts, die zur automatischen Segmentierung und Anpassung von Bildern konfiguriert ist. 4 zeigt die Vorgänge 402 bis 420, die einen Prozess 400 definieren, den die Computergeräte 100 und 300 durchführen können, um ein von der Kamera 102 aufgenommenes Bild automatisch zu segmentieren und anzupassen. Die Vorgänge 402 bis 420 können in einer anderen Reihenfolge als der in 4 gezeigten ausgeführt werden, einschließlich zusätzlicher oder weniger Vorgänge. Die Vorgänge 400 werden im Folgenden im Zusammenhang mit dem Computergerät 100 beschrieben. Es sollte jedoch verstanden werden, dass einige oder alle Vorgänge 400 durch oder mit Hilfe eines entfernten Computersystems, wie z. B. einem Cloud-Server oder einer Workstation, der bzw. die mit dem Computergerät 100 über ein Computernetzwerk kommuniziert, durchgeführt werden können.
  • Bei 402 holt das Computergerät 100 die Zustimmung ein, personenbezogene Daten zur Segmentierung und Anpassung von Bildern zu verwenden. Beispielsweise kann das Computergerät 100 Bilddaten nur verarbeiten, nachdem das Computergerät 100 von einem Benutzer des Computergeräts 100 die ausdrückliche Erlaubnis zur Verwendung der Bilddaten erhalten hat. Das Computergerät 100 kann die ausdrückliche Erlaubnis vom Benutzer erhalten, wenn der Benutzer eine Option zum Aktivieren einer solchen Funktionalität auswählt oder wenn der Benutzer über eine Benutzereingabe auf eine vom Computergerät 100 bereitgestellte Aufforderung, die die ausdrückliche Erlaubnis anfordert, affirmativ antwortet.
  • Bei 404 zeigt das Computergerät 100 eine grafische Benutzeroberfläche zur Steuerung einer Kamera an. Die Kamera 102 kann Bilddaten an das Kameramodul 108 liefern, die eine aktuelle Ansicht der Kamera 102 anzeigen. Das Kameramodul 108 kann die Bilddaten für die Darstellung durch die Benutzerschnittstellenvorrichtung innerhalb der Kamera-Schnittstelle 112 formatieren. Durch Benutzereingaben, die mit der Kameraschnittstelle 112 assoziiert sind, ermöglicht das Kameramodul 108 eine präzise Kontrolle über ein Bild, das letztendlich von der Kamera 102 erfasst wird.
  • Bei 406 empfängt das Computergerät 100 eine Eingabe an der grafischen Benutzeroberfläche, um ein Bild aufzunehmen. Zum Beispiel kann das Kameramodul 108 einen Hinweis auf eine Benutzereingabe empfangen, die von der Benutzerschnittstellenvorrichtung 104 erkannt wurde. Das Kameramodul 108 kann eine Funktion bestimmen, die mit der Benutzereingabe verbunden ist (z. B. eine Zoomfunktion, ein Aufnahmebefehl). Das Kameramodul 108 kann feststellen, dass die Funktion der Steuerung der Kamera 102 zur Aufnahme eines Bildes dient, und als Reaktion auf die Gleichsetzung der Benutzereingabe mit einem Aufnahmebefehl kann das Kameramodul 108 die Kamera 102 anweisen, das Bild 114 aufzunehmen.
  • Bei 408 bestimmt das Computergerät 100, ob das Bild automatisch segmentiert und angepasst werden soll. Zum Beispiel kann das Computergerät 100 einem Benutzer des Computergeräts 100 die Möglichkeit geben, Benutzereingaben bereitzustellen, um zu entscheiden, ob das Computergerät 100 das Bild 114 verbessern soll. Wenn nicht, kann das Computergerät 100 das Originalbild 114 zur Anzeige ausgeben. Andernfalls segmentiert das Computergerät 100 bei 412 automatisch das Bild in diskrete Bereiche, um eine Maske für jeden Bereich zu erzeugen. Beispielsweise kann ein maschinell erlerntes Modul des Kameramoduls 108 das Bild 114 (oder eine heruntergetastete Variante des Bildes 114) als Eingabe erhalten. Das maschinell erlernte Modell wird trainiert, um die Grenzen verschiedener Bereiche des Bildes 114 grob zu definieren und eine Maske auszugeben, die anzeigt, welche Pixel des Bildes 114 zu welchen der verschiedenen Bereiche gehören.
  • Bei 414 verfeinert das Computergerät 100 die Maske für jeden Bereich. Beispielsweise kann das Kameramodul 108 auf einen geführten Filter zurückgreifen, der das Bild 114 als Leitfaden verwendet, um die Maske für jeden Bereich so anzupassen, dass sie die richtige Größe hat und an den Rändern geglättet ist, um mit den Rändern des Bildes 114 und den anderen Bereichen übereinzustimmen. Das Kameramodul 108 kann der Maske zugeordnete Pixel modifizieren, um der Maske eine Mattierung hinzuzufügen, um die Maske an die Kanten des Bildes 114 anzupassen.
  • Bei 416 passt das Computergerät 100 jeden der verschiedenen Bereiche des Bildes 114 unter Verwendung der verfeinerten Maske unabhängig an. Das Computergerät 100 kann Anpassungen am Bild 114 basierend auf dem im Bild 114 dargestellten Inhalt vornehmen. Mit anderen Worten, das Computergerät 100 kann verschiedene Anpassungen auf verschiedene Arten von Bereiche anwenden.
  • Zum Beispiel kann das Kameramodul 108 jedem der verschiedenen Bereiche des Bildes 114 eine Typkennung zuweisen. Das Kameramodul 108 kann sich bei der Festlegung des Typs auf das maschinell erlernte Modell verlassen, das zur Segmentierung des Bildes 114 verwendet wird. Das Kameramodul 108 kann andere Operationen durchführen, um den Typ eines Bereichs auf andere Weise zu bestimmen, z. B. indem es Bilderkennungstechniken durchführt, um bestimmte Objekte innerhalb des Bildes 114 zu identifizieren, und als Reaktion auf die Identifizierung bestimmter Objekte jeden Bereich gemäß den in den verschiedenen Bereichen identifizierten Objekten klassifiziert. Zum Beispiel kann das Kameramodul 108 feststellen, dass ein Teil des Bildes 114 ein Objekt wie eine Wolke, eine Sonne, einen Mond, einen Stern usw. enthält. Als Reaktion auf die Identifizierung eines Objekts, das typischerweise mit einem Himmel assoziiert wird, kann das Kameramodul 108 den Bereich als einen Bereich vom Typ Himmel klassifizieren. Als weiteres Beispiel kann das Kameramodul 108 als Reaktion auf die Identifizierung eines Tieres oder einer Person innerhalb eines bestimmten Bereichs des Bildes 114 den Bereich als Vordergrundbereich oder Nicht-Himmelbereich anstelle eines Himmelsbereichs klassifizieren.
  • Das Kameramodul 108 kann jeden Bereich in unterschiedlichem Maße klassifizieren, um die am Bild 114 vorgenommenen Anpassungen zur Verbesserung der Qualität besser anzupassen. Beispielsweise kann das Kameramodul 108 als Reaktion auf die Feststellung, dass es sich bei einem Bereich um einen Bereich vom Typ „Himmel“ handelt, einen Bereich entweder als Nachthimmelsbereich oder als Taghimmelsbereich klassifizieren.
  • In jedem Fall wendet das Computergerät 100 bei 416A unabhängig einen jeweiligen automatischen Weißabgleich auf jeden der mehreren Bereiche an. Beispielsweise kann das Kameramodul 108 einen jeweiligen Typ bestimmen, der jeden der mehreren Bereiche klassifiziert, und basierend auf dem jeweiligen Typ kann das Kameramodul 108 einen Auto-Weiß-Abgleich auswählen, der auf jeden der mehreren Bereiche anzuwenden ist. Das Kameramodul 108 kann den jeweiligen Auto-Weiß-Abgleich anwenden, der für jeden der mehreren Bereiche ausgewählt wurde, wodurch das Computergerät 100 in die Lage versetzt wird, Bilder zu erzeugen, die den Anschein erwecken, als seien sie mit unterschiedlichen Belichtungsstufen für verschiedene Teile einer Szene aufgenommen worden, oder Bilder mit separatem Auto-Weiß-Abgleich und Entrauschen für verschiedene Teile der Szene zu erzeugen.
  • In einigen Beispielen kann das Computergerät 100 einen automatischen Weißabgleich mehrmals auf ein Bild oder einen bestimmten Bereich anwenden, um die Gesamtbildqualität weiter zu verbessern. Beispielsweise kann das Kameramodul 108 als Reaktion auf die Klassifizierung einer der Bereiche 116A oder 116B des Bildes 114 als Himmelsbereich, der eine Pixeldarstellung eines Himmels enthält, einen ersten automatischen Weißabgleich des Himmelsbereichs durchführen, bevor es anschließend eine zweite automatische Weißabgleichsfunktion durchführt, die das Kameramodul 108 auf den Himmelsbereich und andere Nicht-Himmelsbereiche anwendet, die Pixeldarstellungen anderer Objekte als des Himmels enthalten.
  • In einigen Fällen verwendet das Kameramodul 108 dieselbe automatische Weißabgleichsfunktion auf verschiedene Bereiche des Bildes 114, obwohl das Kameramodul 108 die automatische Weißabgleichsfunktion unabhängig auf jeden der verschiedenen Bereiche anwendet. In anderen Fällen kann das Kameramodul 108 unterschiedliche automatische Weißabgleichsfunktionen auf zwei oder mehr Bereiche des Bildes 114 anwenden. Zum Beispiel kann das Kameramodul 108 für jeden der mehreren Bereiche des Bildes 114 eine entsprechende Funktion zum automatischen Weißabgleich auswählen. Das Kameramodul 108 kann die automatische Weißabgleichsfunktion basierend auf dem Bereichstyp auswählen. Das Kameramodul 108 kann eine erste automatische Weißabgleichsfunktion für jeden der mehreren Bereiche auswählen, der als Himmelsbereich bestimmt wurde, und eine zweite, andere automatische Weißabgleichsfunktion für jeden der mehreren Bereiche auswählen, der als Nicht-Himmelsbereich bestimmt wurde. Die Anwendung einer jeweiligen, manchmal unterschiedlichen, Auto-Weiß-Abgleich-Funktion auf jeden der mehreren Bereiche kann es dem Computergerät 100 ermöglichen, ein neues Bild mit höherer Qualität als das Originalbild zu erzeugen. Das neue Bild kann so aussehen, als wäre es mit einer Kameratechnologie aufgenommen worden, die so konfiguriert ist, dass sie der menschlichen Wahrnehmung einer Szene entspricht.
  • Bei 416B verdunkelt oder erhellt das Computergerät 100 unabhängig jeden der mehreren Bereiche. Beispielsweise kann das Kameramodul 108 vor dem Kombinieren der mehreren Bereiche zu einem neuen Bild unabhängig einstellen, wie dunkel oder wie hell die Pixel in jedem Bereich erscheinen, um bestimmte Bereiche zu verstärken oder abzuschwächen, um die Gesamtbildqualität zu verbessern. Zum Beispiel kann das Kameramodul 108 unterschiedliche Helligkeits- oder Dunkelheitsfilter auf die Pixel anwenden, je nachdem, welcher Typ jeden der mehreren Bereiche klassifiziert. Das heißt, das Kameramodul 108 kann die Helligkeit eines Bereichs vom Typ „Vordergrund“ erhöhen und einen Bereich vom Typ „Hintergrund“ abdunkeln. Das Kameramodul 108 kann z. B. einen Bereich vom Typ Nachthimmel abdunkeln und einen Bereich vom Typ Taghimmel aufhellen.
  • Bei 416C und vor dem Kombinieren der mehreren Bereiche, um das neue Bild zu bilden, entrauscht das Computergerät 100 unabhängig jeden Bereich. Das Computergerät 100 kann Rauschen aus jedem der mehreren Bereiche entsprechend einem jeweiligen Typ entfernen, der jeden der mehreren Bereiche klassifiziert. Beispielsweise kann das Kameramodul 108 als Reaktion auf die Bestimmung des jeweiligen Typs, der einen bestimmten Bereich aus den mehreren Bereichen als Himmelsbereich klassifiziert, bestimmte Gruppen verrauschter Pixel mitteln, die mit einer Größe und Häufigkeit auftreten, die einen Schwellenwert erfüllt. Ein Himmelshintergrund in einem Bild kann für einen Benutzer ansprechender erscheinen, wenn mittlere Blöcke von verrauschten Pixeln entfernt werden. Allerdings kann der Himmelshintergrund künstlich wirken, wenn das gesamte Rauschen entfernt wird. Daher kann das Kameramodul die Gruppen verrauschter Pixel, die eine Größe und Häufigkeit aufweisen, die kleiner oder größer als der Schwellenwert ist, beibehalten, so dass kleine und große Gruppen verrauschter Pixel beibehalten werden, während mittlere Gruppen verrauschter Pixel gemittelt werden.
  • Bei 416D kann das Computergerät 100 andere Anpassungen an den Bereichen des Bildes 114 vornehmen, bevor die verschiedenen Bereiche zu einem neuen Bild kompiliert werden. Zum Beispiel kann das Kameramodul 108 die Teile des Bildes 114, die mit den verschiedenen Bereichen assoziiert sind, auf eine Auflösung hochrechnen, die bei oder nahe der Auflösung des Bildes 114 liegt, bevor das Bild 114 einer automatischen Segmentierung unterzogen wurde.
  • Bei 418 fügt das Computergerät 100 die Bereiche zusammen, um ein neues Bild zu erstellen. Beispielsweise kann das Kameramodul 108 Teile des Bildes 114, die nach Anwendung der verfeinerten Maske modifiziert wurden, übereinanderlegen, um ein vereinheitlichtes Bild zu erzeugen, bei dem die verschiedenen Bereiche überblendet und geglättet wurden, um so zu erscheinen, als ob die Kamera 102 ursprünglich das vereinheitlichte Bild aufgenommen hätte, im Gegensatz zu dem Originalbild 114.
  • Bei 420 zeigt das Computergerät das neue Bild an. Beispielsweise kann das Kameramodul 108 ein Signal an die Benutzerschnittstellenvorrichtung 104 senden, das die Anzeigekomponente 306 veranlasst, das neue Bild zur Anzeige innerhalb der Kamera-Schnittstelle 112 auszugeben.
  • 5A bis 5D illustrieren grafisch einen Prozess, der von einem Computergerät ausgeführt wird, um ein Bild automatisch zu segmentieren und anzupassen. Die 5A bis 5D werden nacheinander und im Zusammenhang mit eines Computergeräts 500 beschrieben, das ein Beispiel für das Computergerät 100 von 1 ist
  • Im Beispiel von 5A zeigt das Computergerät 500 eine grafische Benutzeroberfläche 502 an. Das Computergerät 500 empfängt ein Originalbild 504, das von einer Kamera auf der Grundlage von Merkmalen aufgenommen wurde, die in einem Sucher der grafischen Benutzeroberfläche 502 erfasst wurden. Das Originalbild 504 enthält eine Gruppe von Personen in der Nähe einer Berglandschaft im Vordergrund und enthält außerdem Berge, einen Mond, eine Wolke und Rauschflecken (dargestellt durch Rechtecke) im Hintergrund.
  • 5B zeigt, dass das Computergerät 500 das Originalbild 504 automatisch in mehrere Bereiche von Pixeln 504A-1 und 504-B-1 segmentiert. Zum Beispiel kann ein maschinell erlerntes Modell, das auf dem Computergerät 500 ausgeführt wird, automatisch grobe Grenzen definieren, an denen Pixel von einer Bereich in eine anderen übergehen. Wie in 5B gezeigt, kann die Maske den Bereich 504A-1 als Hintergrundbereich und den Bereich 504B-1 als Vordergrundbereich neu definieren.
  • 5C zeigt, wie das Computergerät 500 die durch das maschinell erlernte Modell definierte Maske verfeinern kann, um die Bereiche der Pixel 504A-1 und 504B-1 an die Kanten des Bildes 504 anzupassen. Zum Beispiel durch Hinzufügen von Mattierung und/oder Anwenden eines geführten Filters auf die Maske für jeden der Bereiche von Pixeln 504A-1 und 504B-1 erzeugt das Computergerät 500 verfeinerte Masken, die Bereiche von Pixeln 504A-2 und 504B-2 definieren, die, wie in 5C gezeigt, Kanten haben, die mit den Kanten des Bildes 504 und den anderen Bereichen übereinstimmen.
  • 5D zeigt ein neues Bild 506, das innerhalb der grafischen Benutzeroberfläche 502 angezeigt wird. Das neue Bild 506 wird von dem Computergerät 500 erzeugt, indem unabhängig voneinander ein jeweiliger automatischer Weißabgleich auf jeden der mehreren Bereiche von Pixeln 504A-2 und 504B-2 angewendet wird, bevor die mehreren Bereiche von Pixeln 504A-1 und 504B-2 kombiniert werden, um das neue Bild 506 zu bilden.
  • Auf diese Weise hat das Computergerät 500, wie in 5A bis 5D gezeigt, das neue Bild 506 erzeugt, das von höherer Qualität zu sein scheint als das Originalbild 504. Durch die Verwendung des maschinell erlernten Modells kann das Computergerät 500 die Grenzen der verschiedenen Bereiche 504A-1 und 504B-1 grob definieren und den geführten Filter verwenden, um die Maske so anzupassen, dass die Bereiche 504A- 2 und 504B-2 in der richtigen Größe definiert und um die Kanten herum geglättet werden. Das Computergerät 500 kann daher die verschiedenen Bereiche 504A-1 und 504B-1 genau identifizieren und die Kanten der verschiedenen Bereiche 504A-2 und 504B-2 genau definieren. Auf diese Weise kann eine genauere Segmentierung des Originalbildes bereitgestellt werden. Durch die automatische Segmentierung des Bildes 504 in mehrere Pixelbereiche 504A-2 und 504B-2, bevor Teile des Bildes 504, die den mehreren Pixelbereichen 504A-2 und 504B-2 entsprechen, angepasst werden, kann das Computergerät 500 jeden der verschiedenen Pixelbereiche 504A-2 und 504B-2 separat anpassen, anstatt zu versuchen, die Qualität des gesamten Originalbildes 504 mit einer einzigen komplexen Verfeinerungstechnik anzupassen und zu verbessern. Das Computergerät 500 kann daher das neue Bild 506 mit höherer Qualität erzeugen, als wenn das Computergerät 500 einen gemeinsamen Satz von Anpassungen für das gesamte Originalbild 504 bestimmen und anwenden würde.
  • Klausel 1. Computerimplementiertes Verfahren, das Folgendes umfasst: Empfangen eines von einer Kamera aufgenommenen Originalbildes durch einen Prozessor eines Computergeräts; automatisches Segmentieren des Originalbildes in mehrere Pixelbereiche durch den Prozessor; unabhängiges Einstellen einer jeweiligen Eigenschaft jedes der mehreren Bereiche durch den Prozessor, Kombinieren der mehreren Bereiche durch den Prozessor, um ein neues Bild zu bilden, nachdem die jeweilige Eigenschaft jedes der mehreren Bereiche unabhängig eingestellt wurde; und Ausgeben des neuen Bildes durch den Prozessor und zur Anzeige.
  • Klausel 2. Das computerimplementierte Verfahren nach Klausel 1, wobei das automatische Segmentieren des Originalbildes in die mehreren Bereiche umfasst: Eingeben des Originalbildes oder einer heruntergetasteten Version des Originalbildes in ein maschinell erlerntes Modell, wobei das maschinell erlernte Modell so konfiguriert ist, dass es eine Maske ausgibt, die anzeigt, welche Pixel des Originalbildes oder der heruntergetasteten Version des Originalbildes in jedem der mehreren Bereiche enthalten sind.
  • Klausel 3. Das computerimplementierte Verfahren nach Klausel 2, wobei die Maske ferner einen jeweiligen Konfidenzgrad anzeigt, der mit jedem der Pixel des Originalbildes oder der heruntergetasteten Version des Originalbildes verbunden ist, dass das Pixel innerhalb jedes der mehreren Bereiche enthalten ist.
  • Klausel 4. Das computerimplementierte Verfahren nach Klausel 2 oder 3, wobei das automatische Segmentieren des Originalbildes in die mehreren Bereiche Folgendes umfasst: Verfeinern der Maske durch Hinzufügen einer Mattierung zu jedem der mehreren Bereiche.
  • Klausel 5. Das computerimplementierte Verfahren nach einer der Klauseln 1-4, wobei das unabhängige Einstellen der jeweiligen Charakteristik jedes der mehreren Bereiche das unabhängige Anwenden eines jeweiligen automatischen Weißabgleichs durch den Prozessor auf jeden der mehreren Bereiche umfasst.
  • Klausel 6. Das computerimplementierte Verfahren nach Klausel 5, wobei das unabhängige Anwenden des jeweiligen Auto-Weiß-Abgleichs auf jeden der mehreren Bereiche Folgendes umfasst: Bestimmen eines jeweiligen Typs, der jeden der mehreren Bereiche klassifiziert, Auswählen des jeweiligen Auto-Weiß-Abgleichs für jeden der mehreren Bereiche auf der Grundlage des jeweiligen Typs; und Anwenden des jeweiligen Auto-Weiß-Abgleichs, der für jeden der mehreren Bereiche ausgewählt wurde.
  • Klausel 7. Das computerimplementierte Verfahren nach Klausel 6, wobei der jeweilige Typ, der jeden der mehreren Bereiche klassifiziert, einen Himmelsbereich, der eine Pixeldarstellung eines Himmels enthält, oder einen Nicht-Himmelsbereich, der eine Pixeldarstellung eines oder mehrerer anderer Objekte als den Himmel enthält, umfasst.
  • Klausel 8. Das computerimplementierte Verfahren nach einer der Klauseln 5-7, wobei das Auswählen des jeweiligen automatischen Weißabgleichs für jeden der mehreren Bereiche auf der Grundlage des jeweiligen Typs das Auswählen eines ersten automatischen Weißabgleichs für jeden der mehreren Bereiche, der als Himmelsbereich bestimmt ist, und das Auswählen eines zweiten, unterschiedlichen automatischen Weißabgleichs für jeden der mehreren Bereiche umfasst, der als Nicht-Himmelsbereich bestimmt ist.
  • Klausel 9. Das computerimplementierte Verfahren nach einer der Klauseln 1-8, wobei das unabhängige Einstellen der jeweiligen Charakteristik jedes der mehreren Bereiche das unabhängige Einstellen einer jeweiligen Helligkeit, die mit jedem der mehreren Bereiche assoziiert ist, durch den Prozessor und gemäß einem jeweiligen Typ, der jeden der mehreren Bereiche klassifiziert, umfasst.
  • Klausel 10. Das computerimplementierte Verfahren nach einer der Klauseln 1-9, wobei das unabhängige Einstellen der jeweiligen Charakteristik jedes der mehreren Bereiche das unabhängige Entfernen von Rauschen aus jedem der mehreren Bereiche durch den Prozessor und gemäß einem jeweiligen Typ, der jeden der mehreren Bereiche klassifiziert, umfasst.
  • Klausel 11. Das computerimplementierte Verfahren nach Klausel 10, das ferner umfasst: Bestimmen des jeweiligen Typs, der jeden der mehreren Bereiche klassifiziert, und als Reaktion auf das Bestimmen des jeweiligen Typs, der einen bestimmten Bereich aus den mehreren Bereiche als einen Himmelsbereichstyp klassifiziert, Mitteln von Gruppen verrauschter Pixel in dem bestimmten Bereich aus den mehreren Bereiche, die eine Größe und Häufigkeit aufweisen, die einen Schwellenwert erfüllt.
  • Klausel 12. Das computerimplementierte Verfahren nach Klausel 11, ferner umfassend: als Reaktion auf die Bestimmung des jeweiligen Typs, der den bestimmten Bereich aus den mehreren Bereichen als den Himmelsbereichstyp klassifiziert, Zurückhalten von Gruppen verrauschter Pixel in dem bestimmten Bereich aus den mehreren Bereichen, die eine Größe und Frequenz aufweisen, die kleiner oder größer als der Schwellenwert ist.
  • Klausel 13. Das computerimplementierte Verfahren nach einer der Klauseln 1-12, wobei das Ausgeben des neuen Bildes das Ausgeben des neuen Bildes zur Anzeige automatisch und als Reaktion auf den Empfang eines Bildaufnahmebefehls von einer Eingabekomponente des Computergeräts umfasst, wobei der Bildaufnahmebefehl die Kamera anweist, das Originalbild aufzunehmen.
  • Klausel 14. Computerimplementiertes Verfahren zum Segmentieren eines Bildes in mehrere Bereiche von Pixeln, wobei das Verfahren umfasst: Empfangen eines von einer Kamera aufgenommenen Originalbildes durch einen Prozessor eines Computergeräts; Eingeben des Originalbildes in ein maschinell erlerntes Modell, wobei das maschinell erlernte Modell so konfiguriert ist, dass es eine Maske ausgibt, die anzeigt, welche Pixel des Originalbildes in jedem der mehreren Bereiche enthalten sind; und Verfeinern der Maske unter Verwendung eines geführten Filters durch Hinzufügen von Mattierung zu jedem der mehreren Bereiche.
  • Klausel 15. Ein Computergerät, die mindestens einen Prozessor umfasst, der so konfiguriert ist, dass er eines der Verfahren der Klauseln 1-14 ausführt.
  • Klausel 16. Das Computergerät nach Klausel 15, wobei das Computergerät die Kamera umfasst.
  • Klausel 17. Das Computergerät nach Klausel 15, wobei das Computergerät ein anderes ist als ein Computergerät, das die Kamera umfasst.
  • Klausel 18. Ein computerlesbares Speichermedium, das Anweisungen enthält, die, wenn sie ausgeführt werden, einen Prozessor eines Computergeräts konfigurieren, um eines der Verfahren der Klauseln 1-14 durchzuführen.
  • Klausel 19. Ein System, das Mittel zur Durchführung eines der Verfahren der Paragraphen 1-14 umfasst.
  • Klausel 20. Ein Computersystem, das ein kommunikativ mit einem entfernten Server gekoppeltes Computergerät umfasst, wobei das Computersystem so konfiguriert ist, dass es eines der Verfahren der Klauseln 1-14 durchführt.
  • Klausel 21. Das Computersystem nach Klausel 20, wobei das Computergerät die Kamera umfasst.
  • Klausel 22. Das Computersystem nach Klausel 20, wobei das Computersystem ein anderes Computergerät umfasst, das die Kamera umfasst.
  • Während verschiedene bevorzugte Ausführungsformen der Offenbarung in der vorangehenden Beschreibung beschrieben und in den Zeichnungen gezeigt sind, ist es deutlich zu verstehen, dass diese Offenbarung nicht darauf beschränkt ist, sondern auf verschiedene Weise verkörpert werden kann, um im Rahmen der folgenden Ansprüche praktiziert zu werden. Aus der vorangehenden Beschreibung wird ersichtlich, dass verschiedene Änderungen vorgenommen werden können, ohne vom Geist und Umfang der Offenbarung, wie sie durch die folgenden Ansprüche definiert ist, abzuweichen.

Claims (16)

  1. Ein computer-implementiertes Verfahren, das Folgendes umfasst: Empfangen eines von einer Kamera aufgenommenen Originalbildes durch einen Prozessor eines Computergeräts; automatisches Segmentieren des Originalbildes in mehrere Bereiche von Pixeln durch den Prozessor, unabhängiges Einstellen, durch den Prozessor, einer jeweiligen Charakteristik jeden der mehreren Bereiche; Kombinieren der mehreren Bereiche durch den Prozessor, um ein neues Bild zu erzeugen, nachdem die jeweilige Eigenschaft jedes der mehreren Bereiche unabhängig eingestellt wurde, und Ausgeben des neuen Bildes durch den Prozessor und zur Anzeige.
  2. Das computerimplementierte Verfahren nach Anspruch 1, wobei das automatische Segmentieren des Originalbildes in die mehreren Bereiche umfasst: Eingeben des Originalbildes oder einer heruntergetasteten Version des Originalbildes in ein maschinell erlerntes Modell, wobei das maschinell erlernte Modell so konfiguriert ist, dass es eine Maske ausgibt, die anzeigt, welche Pixel des Originalbildes oder der heruntergetasteten Version des Originalbildes in jedem der mehreren Bereiche enthalten sind.
  3. Das computerimplementierte Verfahren nach Anspruch 2, wobei die Maske ferner einen jeweiligen Konfidenzgrad anzeigt, der mit jedem der Pixel des Originalbildes oder der heruntergetasteten Version des Originalbildes assoziiert ist, dass das Pixel innerhalb jeder der mehreren Bereiche enthalten ist.
  4. Das computerimplementierte Verfahren nach Anspruch 2 oder 3, wobei das automatische Segmentieren des Originalbildes in die mehreren Bereiche umfasst: Verfeinern der Maske durch Hinzufügen von Mattierungen zu jedem der mehreren Bereiche.
  5. Das computerimplementierte Verfahren nach einem der Ansprüche 1-4, wobei das unabhängige Einstellen der jeweiligen Charakteristik jedes der mehreren Bereiche das unabhängige Anwenden eines jeweiligen automatischen Weißabgleichs durch den Prozessor auf jeden der mehreren Bereiche umfasst.
  6. Das computerimplementierte Verfahren nach Anspruch 5, wobei das unabhängige Anwenden des jeweiligen automatischen Weißabgleichs auf jeden der mehreren Bereiche umfasst: Bestimmen eines jeweiligen Typs, der jeden der mehreren Bereiche klassifiziert, Auswählen des jeweiligen automatischen Weißabgleichs für jeden der mehreren Bereiche auf der Grundlage des jeweiligen Typs; und Anwenden des jeweiligen automatischen Weißabgleichs, der für jeden der mehreren Bereiche ausgewählt wurde.
  7. Das computerimplementierte Verfahren nach Anspruch 6, wobei der jeweilige Typ, der jeden der mehreren Bereiche klassifiziert, einen Himmelsbereich, der eine Pixeldarstellung eines Himmels enthält, oder einen Nicht-Himmelsbereich, der eine Pixeldarstellung eines oder mehrerer anderer Objekte als den Himmel enthält, umfasst.
  8. Das computerimplementierte Verfahren nach einem der Ansprüche 5 bis 7, wobei das Auswählen des jeweiligen automatischen Weißabgleichs für jeden der mehreren Bereiche auf der Grundlage des jeweiligen Typs das Auswählen eines ersten automatischen Weißabgleichs für jeden der mehreren Bereiche, der als Himmelsbereich bestimmt ist, und das Auswählen eines zweiten, unterschiedlichen automatischen Weißabgleichs für jeden der mehreren Bereiche, der als Nicht-Himmelsbereich bestimmt ist, umfasst.
  9. Das computerimplementierte Verfahren nach einem der Ansprüche 1 bis 8, wobei das unabhängige Einstellen der jeweiligen Charakteristik jedes der mehreren Bereiche das unabhängige Einstellen einer jeweiligen Helligkeit, die mit jedem der mehreren Bereiche assoziiert ist, durch den Prozessor und gemäß einem jeweiligen Typ, der jeden der mehreren Bereiche klassifiziert, umfasst.
  10. Das computerimplementierte Verfahren nach einem der Ansprüche 1 bis 9, wobei das unabhängige Einstellen der jeweiligen Charakteristik jedes der mehreren Bereiche das unabhängige Entfernen von Rauschen aus jedem der mehreren Bereiche durch den Prozessor und gemäß einem jeweiligen Typ, der jeden der mehreren Bereiche klassifiziert, umfasst.
  11. Das computerimplementierte Verfahren nach Anspruch 10, das weiterhin umfasst: Bestimmen des jeweiligen Typs, der jede der mehreren Bereiche klassifiziert; und als Reaktion auf das Bestimmendes jeweiligen Typs, der einen bestimmten Bereich aus den mehreren Bereichen als einen Himmelsbereichstyp klassifiziert, Mittelung von Gruppen verrauschter Pixel in dem bestimmten Bereich aus den mehreren Bereiche, die eine Größe und Häufigkeit aufweisen, die einen Schwellenwert erfüllt.
  12. Das computerimplementierte Verfahren nach Anspruch 11, das weiterhin umfasst: ferner in Reaktion auf das Bestimmen des jeweiligen Typs, der den bestimmten Bereich aus den mehreren Bereichen als den Himmelsbereichstyp klassifiziert, Zurückhalten von Gruppen verrauschter Pixel in dem bestimmten Bereich aus den mehreren Bereichen, die eine Größe und Häufigkeit aufweisen, die kleiner oder größer als der Schwellenwert ist.
  13. Das computerimplementierte Verfahren nach einem der Ansprüche 1 bis 12, wobei das Ausgeben des neuen Bildes das Ausgeben des neuen Bildes zur Anzeige automatisch und als Reaktion auf den Empfang eines Bildaufnahmebefehls von einer Eingabekomponente des Computergeräts umfasst, wobei der Bildaufnahmebefehl die Kamera anweist, das Originalbild aufzunehmen.
  14. Ein computer-implementiertes Verfahren zum Segmentieren eines Bildes in mehrere Bereiche von Pixeln, wobei das Verfahren umfasst: Empfangen eines von einer Kamera aufgenommenen Originalbildes durch einen Prozessor eines Computergeräts; Eingeben des Originalbildes in ein maschinell erlerntes Modell, wobei das maschinell erlernte Modell so konfiguriert ist, dass es eine Maske ausgibt, die anzeigt, welche Pixel des Originalbildes in jedem der mehreren Bereiche enthalten sind; und Verfeinern der Maske unter Verwendung eines geführten Filters durch Hinzufügen von Mattierungen zu jeder der mehreren Bereiche.
  15. Computergerät mit mindestens einem Prozessor, der so konfiguriert ist, dass er eines der Verfahren der Ansprüche 1-14 ausführt.
  16. Computerlesbares Speichermedium, das Befehle enthält, die bei Ausführung einen Prozessor eines Computergeräts so konfigurieren, dass er eines der Verfahren der Ansprüche 1-14 durchführt.
DE112019007550.0T 2019-07-15 2019-07-15 Automatisches segmentieren und anpassen von bildern Pending DE112019007550T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2019/041863 WO2021010974A1 (en) 2019-07-15 2019-07-15 Automatically segmenting and adjusting images

Publications (1)

Publication Number Publication Date
DE112019007550T5 true DE112019007550T5 (de) 2022-03-31

Family

ID=67480415

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019007550.0T Pending DE112019007550T5 (de) 2019-07-15 2019-07-15 Automatisches segmentieren und anpassen von bildern

Country Status (5)

Country Link
US (1) US20220230323A1 (de)
EP (1) EP3983991A1 (de)
CN (1) CN114096986A (de)
DE (1) DE112019007550T5 (de)
WO (1) WO2021010974A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021159215A1 (en) * 2020-02-12 2021-08-19 Marine Canada Acquisition Inc. Marine driver assist system and method
JP2021182672A (ja) * 2020-05-18 2021-11-25 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
US20210407070A1 (en) * 2020-06-26 2021-12-30 Illinois Tool Works Inc. Methods and systems for non-destructive testing (ndt) with trained artificial intelligence based processing
US11941783B2 (en) * 2020-08-28 2024-03-26 Apple Inc. Scaler de-ringing in image processing circuitry
CN112581463B (zh) * 2020-12-25 2024-02-27 北京百度网讯科技有限公司 图像缺陷的检测方法、装置、电子设备、存储介质及产品
US20220392032A1 (en) * 2021-06-02 2022-12-08 f8 Real Estate Media, LLC Classification-based image merging, tuning, correction, and replacement
CN115701129B (zh) * 2021-07-31 2024-09-10 荣耀终端有限公司 一种图像处理方法及电子设备
EP4141860A1 (de) 2021-08-27 2023-03-01 Roche Diabetes Care GmbH Methoden und geräte zur steuerung der einstellungen des automatischen weissabgleichs eines mobilgerätes für eine farbbasierte messung mit einer farbreferenzkarte
CN114219813A (zh) * 2021-12-16 2022-03-22 数坤(北京)网络科技股份有限公司 一种影像处理方法、智能终端及存储介质
CN117830334A (zh) * 2024-01-08 2024-04-05 上海卓昕医疗科技有限公司 医学影像的轮廓分割方法、装置、设备和介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8692930B2 (en) * 2007-08-20 2014-04-08 Matthew Rolston Photographer, Inc. Mobile device with operation for modifying visual perception
US8717459B2 (en) * 2008-12-11 2014-05-06 Texas Instruments Incorporated Method and apparatus for improving automatic white balance with scene information
US20100322513A1 (en) * 2009-06-19 2010-12-23 Sharp Laboratories Of America, Inc. Skin and sky color detection and enhancement system
JP6253331B2 (ja) * 2012-10-25 2017-12-27 キヤノン株式会社 画像処理装置及び画像処理方法
CN105163099A (zh) * 2015-10-30 2015-12-16 努比亚技术有限公司 一种白平衡调整方法、装置和移动终端
US10742899B1 (en) * 2017-08-30 2020-08-11 Snap Inc. Systems, devices, and methods for image enhancement

Also Published As

Publication number Publication date
EP3983991A1 (de) 2022-04-20
CN114096986A (zh) 2022-02-25
US20220230323A1 (en) 2022-07-21
WO2021010974A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
DE112019007550T5 (de) Automatisches segmentieren und anpassen von bildern
US11615559B2 (en) Methods and systems for human imperceptible computerized color transfer
Li et al. Low-light image enhancement via progressive-recursive network
EP3077898B1 (de) Bearbeitungsoptionen für bildbereiche
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE102018006247A1 (de) Digitalbildvervollständigung unter Verwendung des Deep Learning
DE112020003794T5 (de) Tiefenbewusste Fotobearbeitung
DE102018007937A1 (de) Entfernen und Ersetzen von Objekten in Bildern entsprechend einem geführten Nutzerdialog
US9256950B1 (en) Detecting and modifying facial features of persons in images
DE102021001438A1 (de) Belichtungsdefektklassifizierung von Bildern unter Nutzung eines neuronalen Netzwerkes
WO2014088871A1 (en) Facial expression editing in images based on collections of images
DE202015009148U1 (de) Automatische Bearbeitung von Bildern
DE102016122790A1 (de) Unterstützter automatischer Weißabgleich
DE102018009313A1 (de) Erzeugen selektiver virtueller Langzeitbelichtungsbilder
DE102023131135A1 (de) Detektieren von Objektbeziehungen und Bearbeiten von Digitalbildern auf Grundlage der Objektbeziehungen
DE102023125641A1 (de) Entfernen von störenden Objekten aus Digitalbildern
US20230421721A9 (en) Dynamic low lighting adjustment within a video communication system
US20220188991A1 (en) Method and electronic device for managing artifacts of image
CN115345891A (zh) 图像处理方法、装置、电子设备、存储介质及产品
US11854120B2 (en) Techniques for reducing distractions in an image
US11943564B2 (en) Providing video appearance adjustments within a video communication system
Júnior et al. An approach for non-photorealistic rendering that is appealing to human viewers
US20240195941A1 (en) Illumination Adjustment In Video Communications
DE102023133581A1 (de) Erzeugen und verwenden von verhaltensrichtliniengraphen, die objekten verhaltensweisen zur digitalen bildbearbeitung zuordnen
DE102023133593A1 (de) Erzeugen von semantischen szenegraphen unter verwendung von vorlagengraphen zur digitalen bildmodifikation

Legal Events

Date Code Title Description
R012 Request for examination validly filed