-
VERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die vorliegende Anmeldung bezieht sich auf die U.S.-Patentanmeldung Nr. 14/317,639, eingereicht am 27. Juni 2014, deren Offenbarung hierin als Verweis aufgenommen ist.
-
HINTERGRUND
-
Unterschiedliche Systeme stellen Benutzern Bilder unterschiedlicher Standorte zur Verfügung. Einige Systeme stellen Benutzern Panoramabilder oder Panoramabilder mit einem allgemein erweiterten Sichtbereich zur Verfügung. Panoramabilder können beispielsweise ein Bild oder eine Sammlung von Bildern beinhalten, die über einen Sichtbereich verfügen, der weiter als der des menschlichen Auges ist, z. B. 180 Grad oder weiter. Einige Panoramabilder können auch eine 360-Grad-Sicht eines Standortes bereitstellen.
-
KURZDARSTELLUNG
-
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen. Aspekte der Offenbarung beschreiben ein computerimplementiertes Verfahren für die Auswahl von Ansichtsfenstern, bei denen ein Ansichtsfenster einen Teilabschnitt eines Bildes darstellt. Das Verfahren beinhaltet den Empfang einer Anfrage für ein bestimmtes Bild durch eines oder mehrere Computergeräte; das Identifizieren eines Satzes an potenziellen Ansichtsfenstern innerhalb des bestimmten Bildes durch eines oder mehrere Computergeräte; das Identifizieren von Merkmalen innerhalb der Ansichtsfenster des Satzes an potenziellen Ansichtsfenstern durch eines oder mehrere Computergeräte; das durch eines oder mehrere Computergeräte durchgeführte Berechnen einer Punktzahl für jedes angegebene Ansichtsfenster des Satzes an potenziellen Ansichtsfenstern, basierend zumindest teilweise auf einem Gewichtungsvektor, der über einen Satz an Merkmalgewichtungen und den identifizierten Merkmalen innerhalb des angegebenen Ansichtsfensters des Satzes an potenziellen Ansichtsfenstern verfügt; die Auswahl eines Ansichtsfensters des Satzes an potenziellen Ansichtsfenstern auf der Basis der berechneten Punktzahl von einem oder mehreren Computergeräten; und das Bereitstellen des ausgewählten Ansichtsfensters und des jeweiligen Bildes als Antwort auf die Anfrage durch eines oder mehrere Computergeräte.
-
In einem Beispiel beinhaltet das Verfahren auch den Empfang eines Satzes an Trainingspanoramabildern. Mindestens eines der Trainingspanoramabilder des Satzes wird mit Informationen in Verbindung gebracht, die ein interessantestes Ansichtsfenster in diesem Panoramabild identifizieren. In dieser Hinsicht beinhaltet das Verfahren vor dem Berechnen der Punktzahl für jedes Ansichtsfenster auch das Verwenden des Satzes an Trainingspanoramabildern als Trainingsdatensatz, um die Merkmalgewichtungen der Gewichtungsvektoren feinzusteuern. Darüber hinaus oder alternativ dazu beinhaltet das Verfahren auch das Identifizieren eines potenziellen Ansichtsfensters mindestens dieses einen Panoramabildes, das sich mit mindestens einem Abschnitt des interessantesten Ansichtsfensters überschneidet und das potenzielle Ansichtsfenster mindestens dieses einen Panoramabildes, das sich mit mindestens dem Abschnitt des interessantesten Ansichtsfensters überschneidet, wird ferner als Trainingsdatensatz verwendet, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern. In diesem Beispiel beinhaltet das Verfahren das Identifizieren eines potenziellen Ansichtsfensters des mindestens einen Panoramabildes, das sich mit dem interessantesten Ansichtsfenster vollständig überschneidet und ferner die Verwendung das potenziellen Ansichtsfensters des mindestens eines Panoramabildes, das sich mit dem interessantesten Ansichtsfenster vollständig überschneidet, als Trainingsdatensatz, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern. Darüber hinaus oder alternativ dazu beinhaltet das Verfahren auch das Identifizieren eines zweiten Satzes an potenziellen Ansichtsfenstern für jedes Panoramabild des Satzes an Panoramabildern. Jedes gegebene potenzielle Ansichtsfenster des zweiten Satzes an potenziellen Ansichtsfenstern wird hier jeweils mit Informationen in Verbindung gebracht, die das gegebene potenzielle Ansichtsfenster nicht als das interessanteste Ansichtsfenster für ein entsprechendes Panoramabild des gegebenen potenziellen Ansichtsfensters identifizieren. Das Verfahren beinhaltet auch das Verarbeiten jedes Ansichtsfensters des zweiten Satzes an potenziellen Ansichtsfenstern, um Merkmale zu identifizieren und ferner die Verwendung der identifizierten Merkmale in jedem Ansichtsfenster des zweiten Satzes an potenziellen Ansichtsfenstern als Trainingsdatensatz, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern.
-
In einem anderen Beispiel beinhaltet die Anfrage Informationen, die ein Seitenverhältnis des Ansichtsfensters identifizieren, und das Identifizieren des Satzes an potenziellen Ansichtsfenstern basiert ferner auf einem Seitenverhältnis. In einem anderen Beispiel ist die Anfrage nach dem Ansichtsfenster ein Teil der Anfrage nach den Suchergebnissen und das Verfahren beinhaltet auch die Auswahl eines Ansichtsfensters eines zweiten Panoramabildes basierend auf dem Gewichtungsvektor sowie das Bereitstellen des ausgewählten Ansichtsfensters des zweiten Panoramabildes mit dem ausgewählten Ansichtsfenster und einem Satz an Suchergebnissen.
-
Ein weiterer Aspekt der Offenbarung stellt ein System zum Auswählen von Ansichtsfenstern bereit, bei dem ein Ansichtsfenster einen Teilabschnitt des Bildes darstellt. Das System beinhaltet eines oder mehrere Computergeräte, die konfiguriert sind, um eine Anfrage für ein bestimmtes Bild zu empfangen; einen Satz an potenziellen Ansichtsfenstern innerhalb des bestimmten Bildes zu identifizieren; Merkmale innerhalb der Ansichtsfenster des Satzes an potenziellen Ansichtsfenstern zu identifizieren; eine Punktzahl für jedes gegebene Ansichtsfenster des Satzes an potenziellen Ansichtsfenstern basierend zumindest teilweise auf einem Gewichtungsvektor zu berechnen, der über einen Satz an Merkmalgewichtungen und identifizierten Figuren innerhalb dieses angegebenen Ansichtsfensters des Satzes an potenziellen Ansichtsfenstern verfügt; die Auswahl eines Ansichtsfensters des Satzes an potenziellen Ansichtsfenstern basierend auf der berechneten Punktzahl; und das Bereitstellen des ausgewählten Ansichtsfensters und des bestimmten Bildes als Antwort auf die Anfrage.
-
In einem Beispiel sind das eine oder die mehreren Computergeräte auch konfiguriert, um einen Satz an Trainingspanoramabildern zu empfangen. Mindestens eines der Trainingspanoramabilder des Satzes wird mit Informationen in Verbindung gebracht, die ein interessantestes Ansichtsfenster in diesem Panoramabild identifizieren. In dieser Hinsicht sind eines oder mehrere Computergeräte konfiguriert, um vor dem Berechnen der Punktzahl jedes Ansichtsfensters den Satz an Trainingspanoramabildern als Trainingsdaten zu verwenden, um die Merkmalgewichtungen des Merkmalvektors feinzusteuern. In diesem Beispiel sind eines oder mehrere Computergeräte ferner konfiguriert, um ein potenzielles Ansichtsfenster mindestens dieses einen Panoramabildes zu identifizieren, das sich mit mindestens einem Abschnitt des interessantesten Ansichtsfensters überschneidet, und das potenzielle Ansichtsfenster des mindestens einen Ansichtsfensters, das sich mit mindestens dem Abschnitt des interessantesten Ansichtsfensters überschneidet, wird ferner als Trainingsdatensatz verwendet, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern. Darüber hinaus oder alternativ dazu werden das eine oder die mehreren Computergeräte ferner konfiguriert, um ein potenzielles Ansichtsfenster des mindestens einen Panoramabildes zu identifizieren, das sich vollständig mit dem interessantesten Ansichtsfenster überschneidet und das Ansichtsfenster des mindestens einen Panoramabildes, das sich vollständig mit dem interessantesten Ansichtsfenster überschneidet, wird ferner als Trainingsdatensatz verwendet, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern. Darüber hinaus oder alternativ dazu werden das eine oder die mehreren Computergeräte ferner konfiguriert, um einen zweiten Satz an potenziellen Ansichtsfenstern für jedes Panoramabild des Satzes an Panoramabildern zu identifizieren. Jedes gegebene potenzielle Ansichtsfenster des zweiten Satzes an potenziellen Ansichtsfenstern wird hier jeweils mit Informationen in Verbindung gebracht, die das gegebene potenzielle Ansichtsfenster nicht als das interessanteste Ansichtsfenster für ein entsprechendes Panoramabild des gegebenen potenziellen Ansichtsfensters identifizieren. Das eine oder die mehreren Computergeräte werden auch konfiguriert, um jedes Ansichtsfenster des zweiten Satzes an potenziellen Ansichtsfenstern zu verarbeiten, um Merkmale zu identifizieren und die in jedem Ansichtsfenster des zweiten Satzes an potenziellen Ansichtsfenstern identifizierten Merkmale werden ferner als Trainingsdatensatz verwendet, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern.
-
In einem anderen Beispiel beinhaltet die Anfrage Informationen, die ein Seitenverhältnis des Ansichtsfensters identifizieren, und das Identifizieren des Satzes an potenziellen Ansichtsfenstern basiert ferner auf dem Seitenverhältnis. In einem weiteren Beispiel ist die Anfrage nach einem Ansichtsfenster Teil einer Anfrage nach Suchergebnissen und das eine oder die mehreren Computergeräte werden auch konfiguriert, um ein Ansichtsfenster eines zweiten Panoramabildes auf Basis des Gewichtungsvektors auszuwählen, und um das zweite Ansichtsfenster des zweiten Panoramabildes mit dem ausgewählten Ansichtsfenster und einem Satz an Suchergebnissen bereitzustellen.
-
Ein weiterer Aspekt der Offenbarung stellt ein nicht transitorisches computerlesbares Speichermedium bereit, auf dem computerlesbare Anweisungen eines Programms gespeichert werden. Wenn die Anweisungen von einem Prozessor ausgeführt werden, veranlassen Sie den Prozessor dazu, ein Verfahren zum Auswählen von Ansichtsfenstern durchzuführen, bei dem ein Ansichtsfenster einen Unterabschnitt eines Bildes darstellt. Das Verfahren beinhaltet den Empfang einer Anfrage nach einem bestimmten Bild; das Identifizieren eines Satzes an potenziellen Ansichtsfenstern innerhalb des bestimmten Bildes; das Identifizieren von Merkmalen innerhalb des Ansichtsfensters des Satzes an potenziellen Ansichtsfenstern; das Berechnen einer Punktzahl für jedes gegebene Ansichtsfenster des Satzes an potenziellen Ansichtsfenstern, basierend zumindest teilweise auf einem Gewichtungsvektor mit einem Satz an Merkmalgewichtungen und den identifizierten Merkmalen innerhalb des gegebenen Ansichtsfensters des Satzes an potenziellen Ansichtsfenstern; die Auswahl eines Ansichtsfensters aus dem Satz an potenziellen Ansichtsfenstern basierend auf der berechneten Punktzahl; und das Bereitstellen des ausgewählten Ansichtsfensters und des bestimmten Bildes als Antwort auf die Anfrage.
-
In einem Beispiel beinhaltet das Verfahren auch den Empfang eines Satzes an Trainingspanoramabildern. Mindestens eines der Trainingspanoramabilder des Satzes wird mit Informationen in Verbindung gebracht, die ein interessantestes Ansichtsfenster in diesem Panoramabild identifizieren. In dieser Hinsicht beinhaltet das Verfahren vor dem Berechnen der Punktzahl für jedes Ansichtsfenster auch das Verwenden des Satzes an Trainingspanoramabildern als Trainingsdatensatz, um die Merkmalgewichtungen der Gewichtungsvektoren feinzusteuern. Darüber hinaus oder alternativ dazu beinhaltet das Verfahren auch das Identifizieren eines potenziellen Ansichtsfensters mindestens dieses einen Panoramabildes, das sich mit mindestens einem Abschnitt des interessantesten Ansichtsfensters überschneidet und das potenzielle Ansichtsfenster mindestens dieses einen Panoramabildes, das sich mit mindestens dem Abschnitt des interessantesten Ansichtsfensters überschneidet, wird ferner als Trainingsdatensatz verwendet, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern. In diesem Beispiel beinhaltet das Verfahren das Identifizieren eines potenziellen Ansichtsfensters des mindestens einen Panoramabildes, das sich mit dem interessantesten Ansichtsfenster vollständig überschneidet und ferner die Verwendung das potenziellen Ansichtsfensters des mindestens eines Panoramabildes, das sich mit dem interessantesten Ansichtsfenster vollständig überschneidet, als Trainingsdatensatz, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern. Darüber hinaus oder alternativ dazu beinhaltet das Verfahren auch das Identifizieren eines zweiten Satzes an potenziellen Ansichtsfenstern für jedes Panoramabild des Satzes an Panoramabildern. Jedes gegebene potenzielle Ansichtsfenster des zweiten Satzes an potenziellen Ansichtsfenstern wird hier jeweils mit Informationen in Verbindung gebracht, die das gegebene potenzielle Ansichtsfenster nicht als das interessanteste Ansichtsfenster für ein entsprechendes Panoramabild des gegebenen potenziellen Ansichtsfensters identifizieren. Das Verfahren beinhaltet auch das Verarbeiten jedes Ansichtsfensters des zweiten Satzes an potenziellen Ansichtsfenstern, um Merkmale zu identifizieren und ferner die Verwendung der identifizierten Merkmale in jedem Ansichtsfenster des zweiten Satzes an potenziellen Ansichtsfenstern als Trainingsdatensatz, um die Merkmalgewichtungen des Gewichtungsvektors feinzusteuern.
-
In einem anderen Beispiel beinhaltet die Anfrage Informationen, die ein Seitenverhältnis des Ansichtsfensters identifizieren, und das Identifizieren des Satzes an potenziellen Ansichtsfenstern basiert ferner auf einem Seitenverhältnis. In einem anderen Beispiel ist die Anfrage nach dem Ansichtsfenster ein Teil der Anfrage nach den Suchergebnissen und das Verfahren beinhaltet auch die Auswahl eines Ansichtsfensters eines zweiten Panoramabildes basierend auf dem Gewichtungsvektor sowie das Bereitstellen des ausgewählten Ansichtsfensters des zweiten Panoramabildes mit dem ausgewählten Ansichtsfenster und einem Satz an Suchergebnissen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Funktionsdiagramm eines Beispielsystems gemäß den Aspekten der vorliegenden Offenbarung.
-
2 ist ein Bilddiagramm des Beispielsystems aus 1.
-
3 ist ein Beispiel eines Trainingsdatensatzes gemäß den Aspekten dieser Offenbarung.
-
4 ist ein Beispiel eines Trainingsdatensatzes und der zugehörigen hervorstechenden Ansichtsfenster gemäß den Aspekten der Offenbarung.
-
5 ist ein Beispiel eines Trainingsdatensatzes und eines Sliding-Window-Algorithmus gemäß den Aspekten der Offenbarung.
-
6 ist ein Beispiel möglicher Ansichtsfenster, die sich entweder teilweise oder vollständig mit hervorstechenden Ansichtsfenstern überschneiden.
-
7 ist ein Flussdiagramm gemäß Aspekten der Offenbarung.
-
DETAILLIERTE BESCHREIBUNG
-
ÜBERSICHT
-
Die Technologie betrifft das automatische Identifizieren und Präsentieren von hervorstechenden Unterabschnitten von Bildern, wie etwa Panoramabildern, die von Benutzern höchstwahrscheinlich als interessant oder attraktiv empfunden werden. Als ein Beispiel kann ein System Panoramabilder auswählen, die dem Benutzer eines Computergeräts präsentiert werden. Aufgrund der Schwierigkeit, ein gesamtes Panoramabild auf einmal ohne Störungen anzuzeigen, könnte das System einen Unterabschnitt des Panoramabildes auswählen, das auf dem Client-Computergerät angezeigt werden soll. Wie oben bemerkt, kann ein Unterabschnitt eines Bildes (z. B. ein Bereich des Bildes, der nicht die Gesamtanzahl der Pixel des Bildes beinhaltet) oder ein „Ansichtsfenster” aufgrund seiner wahrscheinlich im Vergleich zu anderen Unterabschnitten desselben Bildes hohen Ausgeprägtheit ausgewählt werden. Für den Benutzer kann somit der Eindruck entstehen, dass das System Bilder automatisch zurecht schneidet, um lediglich ihre interessantesten Bereiche wiederzugeben.
-
Um einen Unterabschnitt zu wählen, kann einem Modell beigebracht werden, einen Trainingsdatensatz zu verwenden. Diese Trainingsdaten könnten einen Satz an Panoramabildern beinhalten, unter denen mindestens einige der Panoramabilder mit Informationen in Verbindung gebracht werden, die ein Ansichtsfenster des Panoramabildes identifizieren, das von einem Betreiber als das interessanteste betrachtet wurde. Als ein Beispiel kann ein Betreiber eine Person sein, die das Panoramabild aufgenommen hat, oder einfach jemand, der das Bild bearbeitet hat. In diesem Zusammenhang kann eine Person ein Ansichtsfenster auswählen, indem sie beispielsweise ein Rechteck oder eine sonstige Form identifiziert, die ihrer Ansicht nach die interessantesten Details des Panoramabildes enthält. In einigen Beispielen kann die Form ein bestimmtes Seitenverhältnis (z. B. m Pixel mal n Pixel) aufweisen, obwohl verschiedene andere Größen ebenfalls verwendet werden können. In einigen Beispielen können die Trainingsdaten auch Ansichtsfenster beinhalten, die ein Betreiber als am wenigsten interessant identifiziert hat, obwohl eine derartige Eingabe nicht unbedingt erforderlich ist.
-
Die Trainingsdaten können verarbeitet werden, um die Panoramen in eine Anzahl möglicher Ansichtsfenster zu teilen, einschließlich derjenigen, die als interessant und derjenigen, die als nicht interessant identifiziert werden. Zum Beispiel kann ein Sliding-Window-Algorithmus dazu verwendet werden, um jedes mögliche Ansichtsfenster zu identifizieren, sofern spezifische Dimensionen für ein Ansichtsfenster gegeben sind. In einigen Fällen kann dies Ansichtsfenster beinhalten, die als am wenigsten interessant identifiziert wurden. Die Ansichtsfenster, die als nicht interessant identifiziert wurden, können alle die gleiche Größe aufweisen (z. B. m Pixel mal n Pixel). In diesem Zusammenhang können mindestens einige der möglichen Ansichtsfenster sich komplett oder teilweise mit denjenigen Ansichtsfenstern überschneiden, die als interessant identifiziert wurden.
-
Die Trainingsdaten können dann z. B. als Eingabe für das maschinelle Lernen verwendet werden, um einen Gewichtungsvektor auszugeben. Computerbildverarbeitungstechniken können beispielsweise verwendet werden, um Merkmale von möglichen Ansichtsfenstern zu extrahieren. Exemplarische Merkmale können Farben, Formen, Objekte, Beschaffenheit, Ansichtsfenstergröße, und -standort, Merkmalkombinationen, usw. beinhalten. Der Gewichtungsvektor kann eine Reihe von Gewichtungen für jedes der aus den möglichen Ansichtsfenstern extrahierten Merkmale beinhalten. Die Gewichtungen identifizieren, wie interessant dieser bestimmte Merkmaltyp ist. In diesem Zusammenhang können Trainingsdaten verwendet werden, um den Gewichtungsfaktor feinzusteuern.
-
Der Gewichtungsvektor kann dann verwendet werden, um interessante Abschnitte der Bilder angesichts eines bestimmten Seitenverhältnisses zu identifizieren. Es kann wieder ein Sliding-Window-Algorithmus verwendet werden, um mögliche Ansichtsfenster zu identifizieren. Jedes mögliche Ansichtsfenster kann dann verarbeitet werden, um Merkmale zu identifizieren und einen Merkmalvektor zu generieren. Der Gewichtungsvektor kann dann verwendet werden, um dem Merkmalvektor Punkte zu verleihen. Das Ansichtsfenster, das über den Merkmalvektor mit dem höchsten Punkteanteil verfügt, kann als das interessanteste Ansichtsfenster identifiziert werden. Eine ähnliche Berechnung kann verwendet werden, um das interessanteste Ansichtsfenster zu ermitteln, das zwischen jeder Anzahl von Bildern über ein bestimmtes Seitenverhältnis verfügt. In einigen Fallen kann diese Berechnung unter Verwendung einer Non-Maximum-Suppression verbessert werden.
-
Somit kann der Gewichtungsvektor verwendet werden, um nicht nur zu ermitteln welche Bilder Benutzern präsentiert werden sollen, sondern auch welche Abschnitte dieser Bilder dem Benutzer angezeigt werden sollen. Die oben beschriebenen Merkmale können beispielsweise verwendet werden, um zu bestimmen, wie ein gegebenes Bild als Teil eines Satzes von Suchergebnissen, als Teil eines Satzes von Miniaturansichten interessanter Bilder im Zusammenhang mit einer Karte anzuzeigen ist, die auf dem mobilen Gerät eines Benutzers (z. B., ein Tablett oder ein Telefon) oder in einem Webbrowser, usw. angezeigt wird.
-
Während die oben beschriebenen Merkmale in Bezug zu Panoramabildern verdeutlicht werden, können dieselben Techniken verwendet werden, um hervorstechende Abschnitte von Bildern zu identifizieren, die keine Panoramabilder sind. In dieser Hinsicht können die Trainingsdaten auch Bilder beinhalten, die keine Panoramabilder sind und die mit Informationen im Zusammenhang stehen, die sowohl das interessanteste Ansichtsfenster identifizieren als auch Bilder, die keine Panoramabilder sind, und die nicht mit derartigen Informationen in Verbindung stehen.
-
Wie oben bemerkt, ermöglicht der Gewichtungsvektor eine Bestimmung des interessantesten Ansichtsfensters eines beliebigen Bildes. Das System muss eigentlich keine bestimmten Objekte im Bild identifizieren oder eine Karte mit herausragenden Stellen für jedes Bild generieren, um dies zu erzielen.
-
BEISPIELSYSTEME
-
1 und 2 beinhalten ein Beispielsystem 100, in welchem die vorstehend beschriebenen Merkmale implementiert sein können. Dieses soll nicht als den Umfang der Offenbarung oder Nützlichkeit der hierin beschriebenen Merkmale einschränkend betrachtet werden. In diesem Beispiel kann System 100 Berechnungsvorrichtungen 110, 120, 130 und 140 sowie ein Speichersystem 150 beinhalten. Computergerät 110 kann einen oder mehr Prozessoren 112, Speicher 114 und andere Komponenten enthalten, die typischerweise in Universal-Computergeräten vorliegen. Speicher 114 von Computergerät 110 kann Informationen speichern, die von Prozessor 112 abgerufen werden können, einschließlich Anweisungen 116, die durch den Prozessor 112 ausgeführt werden können.
-
Speicher kann außerdem Daten 118 enthalten, die durch den Prozessor abgerufen, manipuliert oder gespeichert werden können. Bei dem Speicher kann es sich um einen nicht transitorischen Speicher handeln, der in der Lage ist, Informationen zu speichern, auf die der Prozessor zugreifen kann, wie etwa eine Festplatte, eine Speicherkarte, ROM, RAM, DVD, CD-ROM, beschreibbare Speicher und Read-Only-Speicher.
-
Die Anweisungen 116 können ein beliebiger Satz von Anweisungen sein, die direkt, wie Maschinencode, oder indirekt, wie Skripte, durch den Prozessor ausgeführt werden können. Diesbezüglich können die Begriffe „Anweisungen”, „Schritte” und „Programme” hierin austauschbar verwendet sein. Die Anweisungen können in Objektcodeformat zur direkten Verarbeitung durch den Prozessor oder in jeder anderen Computergerätsprache, die Skripte oder Sammlungen von unabhängigen Quellcode-Modulen beinhaltet, die auf Anforderung interpretiert oder vorab kompiliert werden. Funktionen, Verfahren und Routinen der Anweisungen werden unten ausführlicher erklärt.
-
Daten 118 können gemäß den Anweisungen 116 durch Prozessor 112 abgerufen, gespeichert oder modifiziert werden. Beispielsweise können, obwohl der hierin beschriebene Gegenstand nicht durch eine beliebige bestimmte Datenstruktur beschränkt ist, die Daten in Computerregistern, als Tabelle, die viele verschiedene Felder und Datensätze aufweist, oder XML-Dokumenten gespeichert werden. Die Daten können außerdem in einem beliebigen computergerätlesbaren Format wie, aber nicht beschränkt auf, Binärwerte, ASCII oder Unicode formatiert sein. Des Weiteren können die Daten beliebige Informationen umfassen, die ausreichend sind, um die relevanten Informationen zu identifizieren, wie Zahlen, beschreibenden Text, proprietäre Codes, Zeiger, Referenzen auf Daten, die in anderen Speichern wie anderen Netzwerkstandorten gespeichert sind, oder Informationen, die von einer Funktion verwendet werden, um die relevanten Daten zu berechnen, umfassen.
-
Der eine oder die mehreren Prozessoren 112 können jeden herkömmlichen Prozessor, wie eine im Handel erhältliche CPU, beinhalten. Alternativ kann der Prozessor eine dedizierte Komponente wie ein ASIC oder ein anderer hardwarebasierter Prozessor sein. Obwohl nicht notwendig, können Computergeräte 110 spezialisierte Hardwarekomponenten beinhalten, um spezifische Rechenprozesse wie Decodieren von Video, Abgleichen von Videoframes mit Bildern, Verzerren von Videos, Codieren verzerrter Videos usw. schneller und effizienter durchzuführen.
-
Obwohl 1 funktionsmäßig den Prozessor, Speicher und andere Elemente von Computergerät 110 als im gleichen Block befindlich darstellt, können der Prozessor, Computer, Computergerät oder Speicher tatsächlich mehrere Prozessoren, Computer, Computergeräte oder Speicher umfassen, die innerhalb desselben physischen Gehäuses gelagert sein können. Der Speicher kann beispielsweise eine Festplatte oder anderes Speichermedium sein, das sich in einem Gehäuse befindet, das anders als das von Computergeräten 110 ist. Dementsprechend werden Referenzen auf einen Prozessor, Computer, Computergerät oder Speicher so verstanden, als sie Referenzen auf eine Sammlung von Prozessoren, Computern, Computergeräten oder Speichern beinhalten, die parallel arbeiten können oder nicht. Die Computergeräte 110 können beispielsweise Server-Computergeräte beinhalten, die als eine lastverteilende Serverfarm arbeiten. Weiterhin, obwohl einige nachstehend beschriebenen Funktionen als auf einem einzigen Computergerät, das einen einzigen Prozessor aufweist, stattfindend beschrieben sind, können verschiedene Aspekte des hierin beschriebenen Gegenstandes durch mehrere Computergeräte implementiert werden, beispielsweise Weitergabe von Informationen über ein Netzwerk 160.
-
Die Computergeräte 110 können an verschiedenen Knoten des Netzwerks 160 und imstande sein, direkt und indirekt mit anderen Knoten des Netzwerks 160 zu kommunizieren. Obwohl in den 1–2 nur einige Computergeräte abgebildet sind, versteht es sich von selbst, dass ein typisches System eine große Anzahl an miteinander verbundenen Computergeräten beinhalten kann, wobei sich jedes einzelne Computergerät an einem unterschiedlichen Knoten des Netzwerks 160 befindet. Das Netzwerk 160 und dazwischenliegende Knoten, die hierin beschrieben sind, können unter Verwendung verschiedener Protokolle und Systeme vernetzt sein, sodass das Netzwerk Teil des Internets, Word Wide Web, spezifischer Intranets, Langstreckennetze oder lokaler Netzwerke sein kann. Das Netzwerk kann Standardkommunikationsprotokolle, wie Ethernet, WLAN und HTTP, Protokolle, die proprietär für eine oder mehrere Unternehmen sind, und verschiedene Kombinationen der vorstehenden nutzen. Obwohl bestimmte Vorteile erzielt werden, wenn Informationen wie oben beschrieben übertragen oder empfangen werden, sind andere Aspekte des hierin beschriebenen Gegenstands nicht auf eine bestimmte Art der Übertragung von Informationen beschränkt.
-
Als ein Beispiel können Computergeräte 110 einen oder mehrere Webserver beinhalten, die in der Lage sind, mit Speichersystem 150 sowie Computergeräten 120, 130 und 140 über das Netzwerk zu kommunizieren. Server-Computergeräte 110 können beispielsweise Netzwerke 160 verwenden, um einem Benutzer, wie etwa Benutzer 220, 230, oder 240 Informationen auf einem Display, wie etwa Displays 122, 132, oder 142, der Computergeräte 120, 130 oder 140 zu übermitteln oder zu präsentieren. Diesbezüglich können Computergeräte 120, 130 und 140 als Client-Computergeräte erachtet werden und können alle oder einige der nachstehend beschriebenen Funktionalitäten durchführen.
-
Alle Client-Computergeräte können, wie vorstehend beschrieben, auf ähnliche Weise wie die Server-Computergeräte 110 mit einem oder mehreren Prozessoren, einem Speicher und Anweisungen konfiguriert werden. Bei jedem Client-Computergerät 120, 130 oder 140 kann es sich um einen zur Verwendung durch einen Benutzer 220, 250, 250 vorgesehenen Personal-Computer handeln, die über sämtliche Komponenten verfügt, die normalerweise mit einem Personal-Computer in Verbindung gebracht werden, wie etwa eine zentrale Recheneinheit (CPU), ein Speicher (z. B. RAM und interne Festplatten), der Daten und Anweisungen speichert, ein Display, wie etwa Displays 122, 132, oder 142 (z. B. ein Monitor, der über einen Bildschirm, einen Touchscreen, einen Projektor, einen Fernseher und eine sonstige Vorrichtung verfügt, die betrieben werden können, um Informationen anzuzeigen), und ein Benutzereingabegerät 124 (z. B. eine Maus, eine Tastatur, einen Touchscreen oder ein Mikrofon). Das Client-Computergerät kann außerdem eine Kamera zum Aufnehmen von Videostreams, Lautsprecher, eine Netzwerkschnittstellenvorrichtung und alle der Komponenten, die zum Verbinden dieser Elemente miteinander verwendet werden, beinhalten.
-
Obwohl die Client-Computergeräte 120, 130 und 140 jeweils ein persönliches Computergerät in voller Größe umfassen können, können sie alternativ mobile Computergeräte umfassen, die fähig sind, Daten drahtlos über ein Netzwerk wie das Internet mit einem Server auszutauschen. Nur exemplarisch kann ein Client-Computergerät 120 ein Mobiltelefon oder eine Vorrichtung wie ein funkfähiger PDA, ein Tablet-PC oder ein Netbook sein, die in der Lage sind, Informationen über das Internet abzurufen. In einem anderen Beispiel kann Client-Computergerät 130 ein am Kopf befestigtes Computersystem sein. Als ein Beispiel kann der Benutzer Informationen unter Verwendung einer kleinen Tastatur, eines Tastenfeldes, Mikrofons, unter Verwendung visueller Signale mit einer Kamera oder eines Touchscreens eingeben.
-
Das Speichersystem 150 kann Bilder speichern. Mindestens einige dieser Bilder können Panoramabilder, wie etwa die oben beschriebenen, beinhalten, die über einen Sichtbereich verfügen, der größer als der des menschlichen Auges ist, z. B. 180° oder größer. Neben Bildern kann das Speichersystem 150 auch Informationen speichern, die mit denjenigen Bildern, wie etwa Ansichtsfenstern oder Unterabschnitten der ausgewählten Bilder in Verbindung gebracht werden, die, wie weiter unten näher beschrieben, hervorstechen. Die Informationen zu den Ansichtsfenstern können gespeichert werden, sodass sie verwendet werden können, um eine bestimmte Teilmenge an Pixeln eines Bildes zu identifizieren, und um nur diese Teilmenge an Pixeln anzuzeigen.
-
Neben Bildern kann das Speichersystem 150 auch ein Modell und Trainingsdaten speichern, die verwendet werden können, um das Modell zu aktualisieren oder zu generieren. In einigen Beispielen kann das Modell einen Gewichtungsvektor beinhalten und die Trainingsdaten können sowohl einen Satz an Bildern als auch Unterabschnitte oder Ansichtsfenster dieser Bilder beinhalten, die, wie weiter unten näher beschrieben, als hervorstechend oder interessant identifiziert wurden. Während die hierin beschriebenen Merkmale in Bezug zu Panoramabildern verdeutlicht werden, können dieselben Techniken verwendet werden, um hervorstechende Abschnitte von Bildern, die keine Panoramabilder sind, zu identifizieren. In dieser Hinsicht können Trainingsdaten auch Bilder beinhalten, bei denen es sich um keine Panoramabilder handelt und die mit Informationen in Verbindung gebracht werden, die sowohl hervorstechende Ansichtsfenster als auch Bilder identifizieren, bei denen es sich um keine Panoramabilder handelt, und die nicht mit derartigen Informationen in Verbindung gebracht werden.
-
Speichersystem 150 kann, wie Speicher 114 auch, jede Art eines rechnergestützten Speichers, der fähig ist, Informationen zu speichern, die von Server 110 abgerufen werden können, sein, wie eine Festplatte, Speicherkarte, ROM, RAM, DVD, CD-ROM, beschreibbare und ausschließlich lesbare Speicher. Zusätzlich kann Speichersystem 150 ein verteiltes Speichersystem sein, wobei Daten auf mehreren verschiedenen Speichervorrichtungen gespeichert werden, die sich physisch an demselben oder unterschiedlichen geografischen Standorten befinden können. Wie in 1 gezeigt, kann das Speichersystem 150 über das Netzwerk 160 mit den Computergeräten verbunden werden und/oder kann direkt mit allen Computergeräten 110–140 (nicht dargestellt) verbunden werden bzw. in dieselben integriert werden.
-
BEISPIELVERFAHREN
-
Wie oben bemerkt, kann das Modell zur Auswahl von Ansichtsfenstern unter Verwendung des Trainingsdatensatzes des Speichersystems 150 trainiert werden. Wie oben bemerkt können diese Trainingsdaten einen Satz an Bildern, wie etwa die in 3 dargestellten Panoramabilder, beinhalten. Exemplarische Trainingsdaten 300 beinhalten zwei Panoramabilder 302 und 322. Diese Panoramabilder können an unterschiedlichen Standorten, Daten und Zeiten aufgenommen worden sein.
-
Mindestens einige der Sätze an Trainingsdaten können mit Informationen zur Identifizierung eines Ansichtsfensters oder Unterabschnitts des Bildes in Verbindung gebracht werden, die als interessant erachtet werden. Etwas Interessantes ist oft Geschmackssache und kann zumindest am Anfang von einem menschlichen Bediener manuell bestimmt werden, indem dieser sich die Bilder ansieht und einen Unterabschnitt des Bildes auswählt. Als ein Beispiel kann ein Bediener eine Person sein, die das Panoramabild aufgenommen hat, oder die sich das Bild einfach nur angesehen hat. In diesem Zusammenhang kann eine Person ein Ansichtsfenster auswählen, indem sie beispielsweise ein Rechteck oder eine sonstige Form identifiziert, die ihrer Ansicht nach die interessantesten Details des Panoramabildes enthält. Dies kann unter Verwendung einer Anwendung oder eines anderen Computertools zum Auswählen oder Zeichnen des Ansichtsfensters und zum Senden dieser Informationen an einen oder mehrere Server-Computergeräte 110 erzielt werden, sodass sie in dem Speichersystem 150 als Teil des Satzes an Trainingsdaten gespeichert werden. In einigen Beispielen kann die Form über bestimmte Dimensionen oder ein bestimmtes Seitenverhältnis (z. B. m Pixel×n Pixel) verfügen, obwohl auch unterschiedliche andere Größen verwendet werden können.
-
4 ist ein Beispiel 400 von Trainingsdaten 300, die das hervorstechende Ansichtsfenster 402, das mit Panoramabild 302 in Verbindung gebracht wird und das hervorstechende Ansichtsfenster 422, das mit Panoramabild 322 in Verbindung gebracht wird, beinhalten. Jedes hervorstechende Ansichtsfenster kann mit einer Kennzeichnung in Verbindung gebracht werden, die das Ansichtsfenster als hervorstechend identifiziert. Wie oben bemerkt, können diese hervorstechenden Ansichtsfenster von einem Bediener identifiziert werden. In diesem Beispiel verfügen beide Ansichtsfenster 402 und 422 ungefähr über dieselbe Größe (z. B. Form und Anzahl der Pixel). Wie oben bemerkt, können jedoch auch viele andere Formen und Größen verwendet werden. In dieser Hinsicht können die Abmessungen oder Seitenverhältnisse der Ansichtsfenster 402 und 422 eigentlich unterschiedlich ausfallen.
-
In einigen Beispielen können die Trainingsdaten auch Ansichtsfenster beinhalten, die ein Bediener als am wenigsten interessant identifiziert hat, obwohl eine derartige Eingabe vielleicht nicht erforderlich ist. Ansichtsfenster 422 kann von einem Bediener beispielsweise als das uninteressanteste oder am wenigsten hervorstechende Ansichtsfenster im Panoramabild 322 identifiziert worden sein, während Ansichtsfenster 402 von einem Bediener als das hervorstechendste Ansichtsfenster im Panoramabild 302 ausgewählt worden ist. Wieder können die Ansichtsfenster eine bestimmte Größe und eine bestimmte Form aufweisen, sodass für ein gegebenes Bild das herausstechendste Ansichtsfenster einer ersten Größe sich vom herausstechendsten Ansichtsfenster einer zweiten Größe unterscheidenden kann (vollkommen, teilweise, oder ohne jegliche Überschneidungen), die sich von der ersten Größe unterscheidet.
-
Die Trainingsdaten können verarbeitet werden, um die Panoramabilder in eine Anzahl an möglichen Ansichtsfenstern zu teilen. Wie aus Beispiel 500 der 5 ersichtlich, kann ein Sliding-Window-Algorithmus, der beispielsweise über feste Abmessungen verfügt (wie etwa m mal n Pixel), verwendet werden, um jedes mögliche Ansichtsfenster zu identifizieren. Sliding-Window-Algorithmen 502 und 522 können beispielsweise um Panoramabilder 302 und 322 herumbewegt werden, um einen Satz an möglichen Ansichtsfenstern für jedes Bild zu identifizieren. Diese möglichen Ansichtsfenster können sich, je nach der Anzahl und Größe der möglichen Ansichtsfenster im Satz, entweder überschneiden oder nicht überschneiden.
-
Wie in Beispiel 600 der 6 ersichtlich, können sich die möglichen Ansichtsfenster teilweise oder vollständig mit den Ansichtsfenstern überschneiden, die von den Bedienern als hervorstechend identifiziert werden. Das mögliche Ansichtsfenster 602 überschneidet sich beispielsweise nur teilweise mit dem hervorstechenden Ansichtsfenster 402. Das mögliche Ansichtsfenster 622 überschneidet sich vollständig mit dem hervorstechenden Ansichtsfenster 422. Da das mögliche Ansichtsfenster 622 jedoch größer als das herausstechende Ansichtsfenster 422 ausfällt, kann das mögliche Ansichtsfenster 622 zusätzliche Merkmale des Panoramabildes 322 beinhalten. In diesem Zusammenhang können die Abmessungen der möglichen Ansichtsfenster dieselben sein oder sich von den Abmessungen aller hervorstechenden Ansichtsfenster unterscheiden. Diese möglichen Ansichtsfenster können dann mit einem Kennzeichen identifiziert werden, das angibt, dass die möglichen Ansichtsfenster nicht herausstechend sind. Falls die Abmessungen der möglichen und herausstechenden Ansichtsfenster gleich sind, können das mögliche Ansichtsfenster und das herausstechende Ansichtsfenster darüber hinaus in einigen Fällen identisch sein oder sich auf perfekte Weise überschneiden. In einem derartigen Beispiel können mögliche Ansichtsfenster mit einer Kennzeichnung in Verbindung gebracht werden, die angibt, dass es sich beim möglichen Ansichtsfenster um ein herausstechendes Ansichtsfenster handelt. Ähnliche Beispiele können auch für nicht herausstechende Ansichtsfenster verwendet werden.
-
Die Trainingsdaten, einschließlich der Bilder, möglichen Ansichtsfenster, herausstechenden Ansichtsfenster und Kennzeichnungen können dann als Eingabe für das maschinelle Lernen verwendet werden, um einen Gewichtungsvektor auszugeben. Computerbildverarbeitungstechniken, wie etwa diejenigen, die Histogramme unterschiedlicher Merkmale oder globale Deskriptoren verwenden, können zur Anwendung kommen, um Merkmale von möglichen Ansichtsfenstern zu extrahieren. Exemplarische Merkmale können Farben, Formen, Objekte, Beschaffenheit, Ansichtsfenstergrößen und -standorte, Kombinationen der Merkmale, usw. beinhalten.
-
Wie oben bemerkt, kann der Gewichtungsvektor eine Reihe an Gewichtungen für jedes der aus den möglichen Ansichtsfenstern extrahierten Merkmale beinhalten. In dieser Hinsicht kann es sich bei dem Gewichtungsvektor um einen Vektor reellwertiger Zahlen handeln, wie zum Beispiel: W ⇀ = [0, .789, –1.42, 0, 0, .207, –.389]. Die Dimensionalität des Vektors oder die Gesamtanzahl der Werte des Vektors kann der Anzahl an zu betrachtenden Merkmalen entsprechen.
-
Die Gewichtungen können identifizieren, wie hervorstechend oder interessant eine bestimmte Art von Merkmal ist, mit anderen Worten ausgedrückt, je höher die Gewichtung, desto interessanter. Merkmale, die Teile von Ansichtsfenstern mit einer hervorstechenden Kennzeichnung sind, verfügen somit über eine höhere Wahrscheinlichkeit, im Gewichtungsvektor mit einer höheren Gewichtung versehen zu werden. Dementsprechend werden die Trainingsdaten verwendet, um den Gewichtungsvektor feinzusteuern. Da maschinelles Lernen verwendet wird, kann der Gewichtungsvektor im Laufe der Zeit feingesteuert werden, sodass sobald neue Bilder, potenzielle Ansichtsfenster, hervorstechende Ansichtsfenster, und Kennzeichnungen zu den Trainingsdaten hinzugefügt werden, der Gewichtungsvektor auf Basis der aktualisierten Trainingsdaten noch weiter feingesteuert wird.
-
Der Gewichtungsvektor kann dann verwendet werden, um in jedem Bild ein hervorstechendes Ansichtsfenster zu identifizieren. Wie bei den Trainingsdaten können individuelle Bilder des Speichersystems 150 verarbeitet werden, um einen Satz an möglichen Ansichtsfenstern zu identifizieren. Wieder kann ein Sliding-Window-Algorithmus von m mal n Pixel verwendet werden, um mögliche Ansichtsfenster des Satzes zu identifizieren. Um Merkmale zu identifizieren, kann jedes mögliche Ansichtsfenster dann beispielsweise unter Verwendung der oben beschriebenen Computeransichtsverarbeitung verarbeitet werden. Diese Merkmale können zu einem Merkmalvektor kombiniert werden, der Werte aufführt, die repräsentieren, welche Merkmale in einem bestimmten möglichen Ansichtsfenster identifiziert wurden, beispielsweise F ⇀ = [0.89, –0.34, 0, 1.28, 0, –1.89, 0.25]. Dieser Merkmalvektor kann die tatsächliche Verteilung von Merkmalen im Ansichtsfenster enthalten. Die Gewichtungen des Gewichtungsvektors können dann verwendet werden, um eine Punktzahl für die Merkmalvektoren für jedes der möglichen Ansichtsfenster des Satzes zu berechnen, beispielsweise durch das Ermitteln eines Skalarproduktes zwischen dem Merkmal und den Gewichtungsvektoren. In einigen Fällen kann diese Berechnung unter Verwendung einer Non-Maximum-Suppression verbessert werden. Das Ansichtsfenster, das über den Merkmalvektor mit der höchsten Punktzahl oder das Skalarprodukt mit dem höchsten Wert zwischen dem Merkmalvektor für dieses Ansichtsfenster und dem Gewichtungsvektor verfügt, (W ⇀·F ⇀), kann als das hervorstechende Ansichtsfenster identifiziert werden.
-
Eine ähnliche Berechnung kann verwendet werden, um das interessanteste Ansichtsfenster zu ermitteln, das über unterschiedliche Abmessungen verfügt bzw. unterschiedliche Seitenverhältnisse aufweist. In dieser Hinsicht kann es ein standardmäßiges Seitenverhältnis für bestimmte Arten von Bildern geben, beispielsweise ausgehend davon, ob es sich bei dem Bild um ein Panoramabild handelt (z. B. der Sichtbereich) bzw. auf Basis der Anzahl von Pixeln im Bild. Wenn ein Benutzer (oder ein anforderndes Client-Computergerät) ein hervorstechendes Ansichtsfenster anfordert, das über bestimmte Abmessungen verfügt oder dessen spezifisches Seitenverhältnis sich vom Standardwert unterscheidet, können die Abmessungen der Ansichtsfenster des Satzes an möglichen Ansichtsfenstern ausgewählt werden, um diesen spezifischen Abmessungen zu entsprechen. Wieder kann sich das hervorstechendste Ansichtsfenster für ein gegebenes Bild vollkommen von unterschiedlichen Abmessungen für Ansichtsfenster unterscheiden.
-
Sobald das hervorstechendste Ansichtsfenster für ein gegebenes Bild, wie oben beschrieben, identifiziert wurde, kann das hervorstechendste Ansichtsfenster mit dem gegebenen Bild in Verbindung gebracht werden und diese Verbindung kann im Speicher, wie etwa im Speichersystem 150, gespeichert werden. In dieser Hinsicht können als Antwort auf eine von einem oder mehreren Server-Computergeräten 110 empfangene Anforderung zum Abrufen eines Bildes, beispielsweise zur Anzeige für einen Benutzer auf dem Client-Computergerät, das hervorstechendste Ansichtsfenster mit dem angeforderten Bild sowie das Bild für das Client-Computergerät bereitgestellt werden. Sobald das hervorstechendste Ansichtsfenster abgerufen wurde, kann es dem Benutzer auf dem Client-Computergerät angezeigt werden, sodass der Benutzer nur dieses Ansichtsfenster oder den Unterabschnitt des Bildes sieht, das dem hervorstechendsten Ansichtsfenster entspricht. Dies kann sich als besonders nützlich erweisen, wenn es sich bei dem Bild um ein Panoramabild oder ein Bild mit einem weiten Sichtbereich von beispielsweise über 90 Grad handelt. Als ein Beispiel können die hervorstechendsten Ansichtsfenster verwendet werden, um einen Satz an Bildsuchergebnissen anzuzeigen, sodass ein oder mehrere Bilder der Suchergebnisse unter Verwendung eines damit in Verbindung stehenden hervorstechendsten Ansichtsfenster angezeigt werden. Als weiteres Beispiel kann das hervorstechendste Ansichtsfenster verwendet werden, um diese Bilder anzuzeigen, wenn ein Satz an Bildern mit einer Karte in Beziehung steht, die auf einem Client-Computergerät angezeigt wird.
-
Alternativ kann das hervorstechendste Ansichtsfenster in Echtzeit identifiziert werden, anstatt das hervorstechendste Ansichtsfenster zu identifizieren und die Informationen im Speicher zum Abruf in Antwort auf eine Anfrage nach einem Bild zu speichern. In dieser Hinsicht können das eine oder die mehreren Server-Computergeräte als Antwort auf eine Anfrage nach einem oder mehreren Bildern, wie etwa eine Bildsuchanfrage von einem Client-Computergerät, eines oder mehrere in Frage kommende Bilder identifizieren und dann diese Bilder verarbeiten, um das hervorstechendste Ansichtsfenster zu identifizieren. Somit können eines oder mehrere relevante Bilder an die anfragenden Client-Computergeräte zusammen mit Informationen zur Identifizierung aller hervorstechendsten Ansichtsfenster dieses einen oder dieser mehreren Bilder gesendet werden, die auf dem Client-Computergerät angezeigt werden sollen.
-
Flussdiagramm 700 aus 7 ist ein Beispiel einiger der vorstehend beschriebenen Aspekte, die durch einen oder mehrere Prozessoren auf einem Client-Computergerät und/oder einem oder mehreren Server-Computergeräten durchgeführt werden, wie vorstehend angemerkt. Bei Block 702 wird beispielsweise ein Satz von Panoramabildern empfangen. Mindestens eines der Panoramabilder des Satzes wird mit Informationen in Verbindung gebracht, die in diesem Panoramabild ein interessantestes Ansichtsfenster identifizieren. Der Satz an Panoramabildern wird als Trainingsdatensatz verwendet, um einen Gewichtungsvektor, der an Block 704 über einen Satz an Merkmalgewichtungen verfügt, feinzusteuern. Dieser Gewichtungsvektor wird dann für eine spätere Verwendung bei Block 706 gespeichert. Diese Schritte können sich wiederholen, während zusätzliche Panoramabilder zum Satz hinzugefügt werden.
-
Bei Block 708 wird eine Anforderung zur Auswahl eines Ansichtsfensters für ein bestimmtes Panoramabild empfangen. Ein Satz an potenziellen Ansichtsfenstern wird innerhalb des bestimmten Panoramabildes identifiziert, und Merkmale werden innerhalb der Ansichtsfenster des Satzes an potenziellen Ansichtsfenstern bei Block 710 identifiziert. Eine Punktzahl wird dann für jedes angegebene Ansichtsfenster des Satzes an potenziellen Ansichtsfenstern berechnet, basierend zumindest teilweise auf dem gespeicherten Gewichtungsvektor und den identifizierten Merkmalen innerhalb dieses angegebenen Ansichtsfensters des Satzes an potenziellen Ansichtsfenstern bei Block 712. Wieder verfügt der gespeicherte Gewichtungsvektor über einen Satz an Merkmalgewichtungen, die als Teil der Berechnung verwendet werden. Ein Ansichtsfenster wird von einem Satz an potenziellen Ansichtsfenstern auf der Basis der berechneten Punktzahl bei Block 714 ausgewählt. Dieses ausgewählte Ansichtsfenster kann beispielsweise über die höchste berechnete Punktzahl des Satzes an potenziellen Ansichtsfenstern verfügen. Das ausgewählte Ansichtsfenster wird dann als Antwort auf die Anfrage nach der Auswahl des Ansichtsfensters für das bestimmte Bild bei Block 716 bereitgestellt.
-
Die meisten der vorstehenden alternativen Beispiele schließen sich nicht gegenseitig aus, können aber in unterschiedlichen Kombinationen implementiert werden, um charakteristische Vorteile zu erzielen. Auch wenn diese und andere Variationen und Kombinationen der oben beschriebenen Merkmale verwendet werden können, ohne von dem in den Ansprüchen definierten Gegenstand abzuweichen, ist die vorstehende Beschreibung der Ausführungsformen nur als Veranschaulichung und nicht als Einschränkung des in den Ansprüchen definierten Gegenstands anzusehen. Beispielsweise muss bei der Durchführung der vorhergehenden Operationen nicht die genaue oben beschriebene Reihenfolge eingehalten werden. Stattdessen können unterschiedliche Schritte in unterschiedlicher Reihenfolge oder simultan durchgeführt werden. Sofern nicht anderweitig angegeben, können auch Schritte ausgelassen werden. Darüber hinaus darf die Angabe der hierin beschriebenen Beispiele und Klauseln, die mit Begriffen wie etwa „zum Beispiel”, „einschließlich” und dergleichen formuliert werden, nicht als Einschränkung des Gegenstands der Ansprüche auf diese spezifischen Beispiele interpretiert werden, da die Beispiele lediglich dazu dienen, eine der vielen möglichen Ausführungsformen zu veranschaulichen. Ferner können dieselben Referenznummern in unterschiedlichen Zeichnungen dieselben oder ähnliche Elemente identifizieren.
-
INDUSTRIELLE ANWENDBARKEIT
-
Die vorliegende Offenbarung kann verwendet werden, um hervorstechende Unterabschnitte von Bildern automatisch zu identifizieren und zu präsentieren, wie etwa Panoramabilder, die von Benutzern höchstwahrscheinlich als interessant oder attraktiv empfunden werden.