DE102014109525A1 - System, Verfahren und Medium zur Bildobjekt- und Konturmerkmalsextraktion - Google Patents

System, Verfahren und Medium zur Bildobjekt- und Konturmerkmalsextraktion Download PDF

Info

Publication number
DE102014109525A1
DE102014109525A1 DE102014109525.1A DE102014109525A DE102014109525A1 DE 102014109525 A1 DE102014109525 A1 DE 102014109525A1 DE 102014109525 A DE102014109525 A DE 102014109525A DE 102014109525 A1 DE102014109525 A1 DE 102014109525A1
Authority
DE
Germany
Prior art keywords
zero
run
neighbors
row
neighbor
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
DE102014109525.1A
Other languages
English (en)
Inventor
Bijesh Poyil
Ramandeep Singh Kukreja
Anil M. Sripadarao
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.)
Analog Devices International ULC
Original Assignee
Analog Devices Technology
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 Analog Devices Technology filed Critical Analog Devices Technology
Publication of DE102014109525A1 publication Critical patent/DE102014109525A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/457Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by analysing connectivity, e.g. edge linking, connected component analysis or slices
    • 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
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/181Segmentation; Edge detection involving edge growing; involving edge linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

Ein Verfahren weist das Bestimmen einer Position und Länge eines Nicht-Null-Laufs in einer Reihe einer Pixelkarte auf. Das Verfahren weist auch das Bestimmen einer Anzahl von Nachbarn für den Nicht-Null-Lauf in einer vorhergehenden Reihe auf, wenigstens teilweise auf der Basis der Position und der Länge. Zusätzlich weist das Verfahren das Aktualisieren einer Entsprechungskarte des Nicht-Null-Laufs und einer Entsprechungskarte eines ersten Nachbarn des Nicht-Null-Laufs auf, wenigstens teilweise auf der Basis einer Entsprechungskarte eines zweiten Nachbarn des Nicht-Null-Laufs, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf wenigstens zwei Nachbarn in der vorhergehenden Reihe aufweist.

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung bezieht sich im Allgemeinen auf das Gebiet der Bildverarbeitung und insbesondere auf das Extrahieren von Objekten oder Konturmerkmalen aus einem Bild.
  • HINTERGRUND
  • Die Schwellenwertbildung ist eine grundlegende Low-Level-Operation in einigen Bildverarbeitungsanwendungen. In ihrer einfachsten Form erfolgt die Schwellenwertbildung an einem Eingangsbild, um ein binäres Bild zu erhalten, das Vordergrund- und Hintergrundpixel umfasst, die weiter verarbeitet werden können, um ein Objekt zu extrahieren.
  • Die Hysterese-Schwellenwertbildung ist eine effektivere Schwellenwertbildungstechnik bei Vorliegen eines Rauschens. Die Schwellenwertbildung mit einer Hysterese verwendet zwei Schwellen: eine niedrige Schwelle Tlo und eine hohe Schwelle Thi. Pixel mit einem größeren Betrag als die hohe Schwelle Thi werden als starke Vordergrundpixel markiert, und Pixel mit einem niedrigeren Betrag als die niedrige Schwelle Tlo werden als Hintergrundpixel markiert. Pixel mit einem Betrag unter der hohen Schwelle Thi, jedoch über der niedrigen Schwelle Tlo werden anfänglich als schwache Vordergrundpixel identifiziert. Diese schwachen Vordergrundpixel werden anschließend nur als starke Vordergrundpixel angesehen, wenn sie mit einem starken Vordergrundpixel (z. B. einem Pixel mit einem Betrag über der hohen Schwelle Thi) verbunden sind.
  • Ferner wird in vielen Detektionsanwendungen ein Hintergrundmodell definiert. In solchen Anwendungen wird, anstatt eine Pixelintensität gegen die niedrige und hohe Schwelle zu vergleichen, eine Differenz relativ zum Hintergrundmodell gegen die niedrige und hohe Schwelle verglichen, um Vordergrund- und Hintergrundpixel zu bestimmen.
  • Beiden Typen der Schwellenwertbildung (d. h. absoluter Betrag und Betrag relativ zu einem Hintergrund) können auch auf den Betrag eines Gradienten angewendet werden anstatt auf einen Pixelbetrag. Dann liefert die Schwellenwertbildung Kanteninformationen eines Vordergrundobjekts, anstatt das vollständige Vordergrundobjekt selbst anzugeben. Diese Kanteninformationen können verwendet werden, um Kontureigenschaften zu extrahieren.
  • Für binäre Bilder verwenden herkömmliche Algorithmen eine Zusammenhangskomponentenanalyse oder Konturverfolgung, um Eigenschaften zu extrahieren. In solchen Algorithmen wird zuerst eine verbundene Komponentenkennzeichnung (component labeling) vorgenommen, und dann werden die Eigenschaften aus jedem gekennzeichneten Objekt extrahiert. Für einer Hysterese-Schwellenwertbildung unterzogene Bilder werden schwache Vordergrundpixel verfolgt, um sie als Hintergrund- oder starke Vordergrundpixel zu markieren. So wird eine Kanten-/Pixelverfolgung vorgenommen, um die schwachen Vordergrundpixel entweder als starke Vordergrund- oder Hintergrundpixel zu klassifizieren.
  • Herkömmliche Algorithmen zur Objekt/Konturmerkmalsextraktion arbeiten in vielen Stufen oder Durchläufen über ein der Schwellenwertbildung unterzogenes Bild. Wenn das Bild einer Hysterese-Schwellenwertbildung unterzogen wird, sind zwei oder mehrere Durchläufe notwendig, um die schwachen Vordergrund-/Kantenpixel als Vordergrund/Hintergrundpixel zu klassifizieren. Dies folgt der Zusammenhangskomponentenanalyse, die auch mehrfache Durchläufe erfordert, um jedes Objekt zu kennzeichnen. Für jedes detektierte Objekt werden Eigenschaften extrahiert, oder ein Konturdetektionsalgorithmus ist erforderlich, um die Kontur und ihre Eigenschaften zu extrahieren.
  • Sehr häufig sind diese Techniken zeitaufwändig und erfordern mehrfache Durchläufe zur Konturextraktion, insbesondere für Objekte mit konkaven Begrenzungen. Eine derartige Konturextraktion erfordert auch eine große Menge an Speicherressourcen aufgrund ihrer rekursiven Natur. Ferner sind Zugriffe auf den Speicher typischerweise zufällig, was es schwierig macht, den Cache- und direkten Speicherzugriff (DMA) für typische eingebettete Prozessoren zu verwenden.
  • 1 zeigt ein Beispiel verschiedener Stufen einer Objekt/Konturmerkmalextraktion in einem Bild, das zwei Objekte umfasst. Insbesondere zeigt 1(a) Hintergrundpixel in Weiß, schwache Vordergrundpixel in Hellgrau, und starke Vordergrundpixel in Dunkelgrau. 1(b) zeigt das binärisierte Bild nach der Pixelverfolgung. Die schwachen Vordergrundpixel wurden entweder verworfen oder als starke Vordergrundpixel kategorisiert. 1(c) zeigt die gekennzeichneten Objekte nach der Komponentenkennzeichnung. Ferner ergibt die Merkmalsextraktion Größen von 4 für Objekt 1 und 3 für Objekt 2. Es gibt viele Techniken, die für jede der veranschaulichten Stufen vorgeschlagen werden. Da diese Techniken viele Stufen umfassen, die viele Durchläufe durch das Bild erfordern, verbrauchen diese Techniken zu viel Ausführungszeit.
  • Ein Algorithmus versucht, Objektmerkmale aus einem binären Bild in einem einzelnen Durchlauf zu extrahieren. Er verwendet jedoch komplexe Übersetzungstabellen und Verschmelzungstabellen, um die Merkmale zu extrahieren. Der Algorithmus bezieht sich nicht auf einer Hysterese-Schwellenwertbildung unterzogene Bilder und berücksichtigt keine Kontureigenschaften.
  • Ferner bezieht sich ein modifizierter Algorithmus zwar auf einer Hysterese-Schwellenwertbildung unterzogene Bilder. Dieser modifizierte Algorithmus verwendet jedoch dieselben Übersetzungstabellen und versucht nicht, Kontureigenschaften zu extrahieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Zum Vorsehen eines vollständigeren Verständnisses der vorliegenden Offenbarung und von Merkmalen und Vorteilen davon wird auf die folgende Beschreibung Bezug genommen, die in Verbindung mit den beiliegenden Figuren zu lesen ist, in denen ähnliche Bezugszahlen ähnliche Teile bezeichnen, wobei:
  • 1 ein herkömmliches Beispiel einer Objektmerkmalsextraktion in einem einer Hysterese-Schwellenwertbildung unterzogenen Bild veranschaulicht;
  • 2 ein vereinfachtes Flussdiagramm ist, das potenzielle Operationen veranschaulicht, die mit einer Ausführungsform der vorliegenden Offenbarung assoziiert sind;
  • 3 eine beispielhafte Eingangspixelkarte veranschaulicht;
  • 4 Lauflängenkodes (run-length codes) und Kennzeichen (labels) für die Pixelkarte in 3 veranschaulicht;
  • 5 ein Beispiel einer herkömmlichen Nachbarfindung veranschaulicht;
  • 6 eine Pixelkarte nach einer ODER-Verknüpfung der beiden Reihen in 5 veranschaulicht;
  • 7 ein Beispiel von Kennzeichenbäumen und einer Äquivalenzkarte für einen herkömmlichen Algorithmus vor der Verarbeitung der letzten Reihe der Eingangskantenkarte in 3 veranschaulicht;
  • 8 ein Beispiel von Kennzeichenbäumen und einer Äquivalenzkarte für einen Algorithmus vor der Verarbeitung der letzten Reihe der Kantenkarte in 3 gemäß einer Ausführungsform veranschaulicht;
  • 9 ein Beispiel von Kennzeichenbäumen und einer Äquivalenzkarte nach einem ersten Durchlauf für einen Algorithmus für die Kantenkarte in 3 gemäß einer Ausführungsform veranschaulicht;
  • 10 ein beispielhaftes Eingangsbild veranschaulicht;
  • 11 ein beispielhaftes einer Hysterese-Schwellenwertbildung unterzogenes Kantenbild veranschaulicht;
  • 12 ein beispielhaftes Ausgangsbild veranschaulicht; und
  • 13 Komponenten eines Computers gemäß einer Ausführungsform der vorliegenden Offenbarung veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • ÜBERBLICK
  • In einem Beispiel wird ein Algorithmus vorgesehen, der Objektmerkmale mit einem einzigen Durchlauf über das Bild extrahiert. Der Algorithmus identifiziert rasch Nachbarn und verwendet ein Kennzeichnungsschema, um die Anzahl von Kennzeichen einzuschränken, die an einem beliebigen Punkt aktiv sind. Das Kennzeichnungsschema hilft auch, vollendete Objekte mit minimalen Speicher- oder Prozessorressourcen zu identifizieren. Der Algorithmus versucht auch, ungefähre Kontureigenschaften unter Verwendung der Eigenschaft näherungsweise zu gewinnen, dass geschlossene Kanten eines Objekts typischerweise die Konturen des Objekts sind. Ferner vermeidet der Algorithmus zufällige Zugriffe auf den Speicher.
  • In einem Beispiel wird ein Verfahren vorgesehen und umfasst das Bestimmen einer Position und Länge eines Nicht-Null-Laufs (non-zero run) in einer Reihe einer Pixelkarte; Bestimmen einer Anzahl von Nachbarn für den Nicht-Null-Lauf in einer vorhergehenden Reihe, wenigstens teilweise auf der Basis der Position und der Länge; und Aktualisieren einer Entsprechungskarte (correspondence map) des Nicht-Null-Laufs und einer Entsprechungskarte eines ersten Nachbarn des Nicht-Null-Laufs, wenigstens teilweise auf der Basis einer Entsprechungskarte eines zweiten Nachbarn des Nicht-Null-Laufs, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf wenigstens zwei Nachbarn in der vorhergehenden Reihe aufweist.
  • Das Verfahren kann das Zuordnen eines Minimums von Wurzeln (minimum of roots) der Nachbarn zum Nicht-Null-Lauf umfassen.
  • Das Verfahren kann das Aktualisieren einer Größe eines Objekts, das den Nicht-Null-Lauf, den ersten Nachbarn und den zweiten Nachbarn enthält, als Reaktion auf die Feststellung umfassen. Das Verfahren kann auch das Aktualisieren der Größe des Objekts wenigstens teilweise auf der Basis der Länge des Nicht-Null-Laufs umfassen.
  • Das Verfahren kann das Feststellen, dass ein Objekt vollendet ist, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf keine Nachbarn in der vorhergehenden Reihe aufweist, umfassen. In einer Ausführungsform umfasst das Bestimmen der Anzahl von Nachbarn das ODER-Verknüpfen der Reihe mit der vorhergehenden Reihe. Das Verfahren kann das Verwerfen eines Objekts, wenigstens teilweise auf der Basis einer Intensität eines Pixels im Nicht-Null-Lauf und einer vorherbestimmten Schwelle, umfassen.
  • In einem weiteren Beispiel wird eine in wenigstens einem dinglichen (tangible) Medium kodierte Logik vorgesehen, welche einen Kode zur Ausführung enthält. Wenn die Logik von einem Prozessor ausgeführt wird, ist sie betreibbar, Operationen vorzunehmen, aufweisend: Bestimmen einer Position und Länge eines Nicht-Null-Laufs in einer Reihe einer Pixelkarte; Bestimmen einer Anzahl von Nachbarn für den Nicht-Null-Lauf in einer vorhergehenden Reihe, wenigstens teilweise auf der Basis der Position und der Länge; und Aktualisieren einer Entsprechungskarte des Nicht-Null-Laufs und einer Entsprechungskarte eines ersten Nachbarn des Nicht-Null-Laufs, wenigstens teilweise auf der Basis einer Entsprechungskarte eines zweiten Nachbarn des Nicht-Null-Laufs, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf wenigstens zwei Nachbarn in der vorhergehenden Reihe aufweist.
  • Die Operationen können das Zuordnen eines Minimums von Wurzeln der Nachbarn zum Nicht-Null-Lauf umfassen.
  • Die Operationen können das Aktualisieren einer Größe eines Objekts, das den Nicht-Null-Lauf, den ersten Nachbarn und den zweiten Nachbarn enthält, als Reaktion auf die Feststellung umfassen. Die Operationen können auch das Aktualisieren der Größe des Objekts wenigstens teilweise auf der Basis der Länge des Nicht-Null-Laufs umfassen.
  • Die Operationen können das Feststellen, dass ein Objekt vollendet ist, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf keine Nachbarn in der vorhergehenden Reihe aufweist, umfassen. In einer Ausführungsform umfasst das Bestimmen der Anzahl von Nachbarn das ODER-Verknüpfen der Reihe mit der vorhergehenden Reihe. Die Operationen können das Verwerfen eines Objekts, wenigstens teilweise auf der Basis einer Intensität eines Pixels im Nicht-Null-Lauf und einer vorherbestimmten Schwelle, umfassen.
  • In einer weiteren Implementation wird eine Vorrichtung vorgesehen und umfasst einen Prozessor, der eine Position und Länge eines Nicht-Null-Laufs in einer Reihe einer Pixelkarte bestimmt, wobei der Prozessor ausgelegt ist, eine Anzahl von Nachbarn für den Nicht-Null-Lauf in einer vorhergehenden Reihe, wenigstens teilweise auf der Basis der Position und der Länge, zu bestimmen, und eine Entsprechungskarte des Nicht-Null-Laufs und eine Entsprechungskarte eines ersten Nachbarn des Nicht-Null-Laufs zu aktualisieren, wenigstens teilweise auf der Basis einer Entsprechungskarte eines zweiten Nachbarn des Nicht-Null-Laufs, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf wenigstens zwei Nachbarn in der vorhergehenden Reihe aufweist.
  • In einer Implementation ordnet der Prozessor dem Nicht-Null-Lauf ein Minimum von Wurzeln der Nachbarn zu.
  • In einer weiteren Implementation aktualisiert der Prozessor eine Größe eines Objekts, das den Nicht-Null-Lauf, den ersten Nachbarn und den zweiten Nachbarn enthält, als Reaktion auf die Feststellung. Der Prozessor kann die Größe des Objekts wenigstens teilweise auf der Basis der Länge des Nicht-Null-Laufs aktualisieren.
  • In einem Beispiel ist der Prozessor ausgelegt, festzustellen, dass ein Objekt vollendet ist, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf keine Nachbarn in der vorhergehenden Reihe aufweist.
  • In einem spezifischen Beispiel bestimmt die Verarbeitungseinheit die Anzahl von Nachbarn durch das ODER-Verknüpfen der Reihe mit der vorhergehenden Reihe.
  • BEISPIELHAFTE AUSFÜHRUNGSFORMEN
  • 2 ist ein vereinfachtes Flussdiagramm, das potenzielle Operationen veranschaulicht, die mit einer Ausführungsform assoziiert sind. Die Operationen starten bei S200 und gehen gegebenenfalls zu S202 weiter. Bei S202 werden für jedes Pixel Typen zugeordnet. Bei S203 wird eine Lauflängenkodierung vorgenommen. Bei S204 wird bestimmt, ob es irgendwelche Nicht-Null-Läufe in einer aktuellen Reihe gibt. Wenn es keine Nicht-Null-Läufe gibt, geht der Algorithmus zu S224 weiter. Wenn es Nicht-Null-Läufe gibt, geht der Algorithmus zu S206 weiter.
  • In S206 werden die Position und Länge jedes Nicht-Null-Laufs bestimmt. Bei S208 wird für jede Reihe die Anzahl von Nachbarn für diesen Lauf in der vorhergehenden Reihe bestimmt. Wenn die Anzahl von Nachbarn 0 ist, wird dann ein neues Kennzeichen bei S210 generiert, und der Algorithmus geht zu S222 weiter. Wenn die Anzahl von Nachbarn 1 ist, wird dann dem Lauf das Kennzeichen dieses Nachbarn in S212 zugeordnet, und der Algorithmus geht zu S218 weiter.
  • Wenn die Anzahl von Nachbarn größer ist als 1, wird dann das minimale Kennzeichen unter den Wurzeln der Nachbarn in S214 bestimmt. In S216 werden die Entsprechungskarten nicht-minimaler Kennzeichen aktualisiert. In S218 wird ein Objekt mit dem minimalen Kennzeichen als stark markiert, falls ein beliebiges dieser nicht-minimalen Kennzeichen stark ist. In S220 werden die Eigenschaften des Objekts aktualisiert.
  • In S222 wird das Kennzeichen als stark markiert, falls der Lauf stark ist (z. B. falls der Lauf ein starkes Pixel enthält). In S224 wird bestimmt, ob es irgendwelche vollendeten Objekte gibt. In einer Ausführungsform basiert diese Bestimmung darauf, ob ein beliebiges der Objekte keine Nachbarn n der aktuellen Reihe aufweist. Wenn es keine vollendeten Objekte in S224 gibt, geht der Algorithmus dann zu S230 weiter.
  • Wenn es ein vollendetes Objekt gibt, wird dann in S226 das vollendete Objekt ausgewählt, falls es stark ist, und das Objekt wird verworfen, falls es schwach ist. Zusätzlich wird das Objekt auf der Basis einer Eigenschaft des Objekts gegebenenfalls ausgewählt oder verworfen in S228. In einer Ausführungsform ist diese Eigenschaft das Aufweisen einer größeren als einer vorherbestimmten Breite. Selbstverständlich können auch andere Eigenschaften verwendet werden, wie die Größe. Der Algorithmus geht dann zu S230 weiter.
  • Bei S230 wird bestimmt, ob der Algorithmus das Ende des Bilds erreicht hat, z. B. die letzte Zeile des Bilds. In einer Ausführungsform, in der das Bild in einer Rasterscanreihenfolge gescannt wird, ist die letzte Zeile des Bilds die letzte Reihe des Bilds. Wenn feststellt wird, dass der Algorithmus das Ende des Bilds erreicht hat, endet der Algorithmus in S232. Wenn der Algorithmus das Ende des Bilds nicht erreicht hat, geht der Algorithmus zur nächsten Zeile in S234 vor und kehrt zum optionalen S202 zurück.
  • Nun wird der Algorithmus detaillierter beschrieben. In einer Ausführungsform des Algorithmus werden bei S202 für jedes Pixel auf der Basis wenigstens einer vorherbestimmten Schwelle Typen zugeordnet. In einer Ausführungsform, in der Objektmerkmale extrahiert werden, wird eine Pixelintensität gegen die wenigstens eine Schwelle verglichen. In einer Ausführungsform, in der Kontureigenschaften extrahiert werden, werden Bildgradienten unter Verwendung eines Filters, wie eines Sobel-Filters, berechnet, und ein Gradientenbetrag wird gegen die wenigstens eine Schwelle verglichen.
  • Es gibt drei Kategorien von Pixeln: starker Vordergrund, Hintergrund und schwacher Vordergrund. Allen Pixeln mit einer Intensität oder einem Gradientenbetrag unter einer niedrigen Schwelle Tlo wird ,0' zugeordnet, um dieses Pixel als Hintergrundpixel zu kennzeichnen. Pixel mit einer Intensität oder einem Gradientenbetrag größer als die oder gleich der niedrigen Schwelle Tlo, jedoch kleiner als eine hohe Schwelle Thi, werden als ,1' markiert, um dieses Pixel als schwaches Vordergrundpixel zu kennzeichnen. Alle anderen Pixel werden mit ,2' markiert, um diese Pixel als starke Vordergrundpixel anzuzeigen.
  • Eine binäre Schwellenwertbildung kann als spezieller Fall einer Hysterese-Schwellenwertbildung angesehen werden, wobei die niedrige Schwelle Tlo gleich der höhen Schwelle Thi ist. Als solche konzentrieren sich die übrigen Abschnitte auf einer Hysterese-Schwellenwertbildung unterzogene Bilder, obwohl dieselbe Technik für einer binären Schwellenwertbildung unterzogene Bilder gut funktioniert.
  • Alle geschlossenen Kanten können als Konturen angesehen werden, und ihre Eigenschaften können extrahiert werden. Es ist einfach, die Schwellenwertbildung mit dem Algorithmus zu kombinieren, und ein getrennter Durchlauf ist für diese Kombination nicht erforderlich. In wenigstens einer Ausführungsform ist diese Schwellenwertbildung bereits erfolgt, und ein Bild mit drei Stufen (z. B. 0, 1, 2, wie in 3 gezeigt) ist der Eingang für den Algorithmus. In solchen Ausführungsformen ist die Zuordnung von S202 optional.
  • Ferner erfolgt in einer Ausführungsform, statt des Vergleichs der Pixel- oder Gradientenintensität mit einer Schwelle, vor dem Schwellenwertbildungsprozess ein Hintergrund-Modeling-(wie ein Gauss-Mischungs-(MoG-)Modell-)Prozess, und eine Pixelintensität oder Gradientenintensität wird gegen das Hintergrundmodell verglichen. Ferner, in einigen Fällen einer Kantenextraktion können Kantenausdünnungsalgorithmen, wie eine nicht-maximale Suppression, vor der Schwellenwertbildung erfolgen. Um die Lehren dieser Offenbarung nicht zu überdecken, werden hier weitere Details des Hintergrund-Modeling und der Kantenausdünnungsalgorithmen nicht weiter berücksichtigt.
  • Bei S203 startet der Algorithmus durch das Scannen der Kantenkarte in einer Rasterscanreihenfolge und das Vornehmen einer Lauflängenkodierung. Bei S204 wird bestimmt, ob es irgendwelche Nicht-Null-Läufe in einer aktuellen Reihe gibt. In S206 werden für jeden Nicht-Null-Lauf die Position und die Länge des jeweiligen Nicht-Null-Laufs bestimmt und aufgezeichnet. In einer Implementation wird eine Anordnung (x, Länge, Kennzeichen) aufgezeichnet, wobei 'x' die x-Koordinate des Starts des Laufs anzeigt, ,Länge' die Anzahl von Pixeln im Lauf anzeigt, und ,Kennzeichen' das Kennzeichen des Laufs anzeigt. Das Kennzeichen zeigt beispielsweise ein Objekt an, zu dem der Lauf gehört. Falls der Lauf eine starke Kante oder ein starkes Vordergrundpixel enthält, wird der Lauf ferner als ,stark' markiert. Das Kennzeichen für jeden Lauf wird später bei S222 zugeordnet.
  • Als Beispiel sind Lauflängenkodes für einen Eingangskante oder eine Pixelkarte, die in 3 gezeigt ist, in 4 gezeigt. Die Lauflängenkodes des gesamten in 3 repräsentierten Bilds sind in 4 für Zwecke der Erläuterung gezeigt, es besteht jedoch keine Notwendigkeit, diese Informationen für das gesamte Bild zu speichern. Stattdessen ist es ausreichend, nur die Informationen einer aktuellen Reihe und der vorhergehenden Reihe zu speichern.
  • Die Konnektivität kann in einer Lauflängenkodier-(RLE-)Domäne leicht verifiziert werden, da es klar ist, wenn zwei Läufe in aufeinanderfolgenden Reihen nicht verbunden sind. Beispielsweise sind zwei Läufe (X1, Count1) und (X2, Count2) in zwei aufeinanderfolgenden Reihen nicht verbunden, wenn X1 + Count1 < X2 ODER X2 + Count 2 < X1. In allen anderen Fällen sind die beiden Läufe in den aufeinanderfolgenden Reihen verbunden.
  • Manchmal sind Komponenten verbunden und werden unter Verwendung einer Entsprechungskarte als gleiche Gruppe markiert. Kennzeichen werden in Mengen gruppiert, so dass alle Kennzeichen, die Teil einer Zusammenhangskomponente sind, in dieselbe Menge fallen, und alle anderen Kennzeichen in disjunkte Mengen fallen. Entsprechungskarten oder Äquivalenzkarten speichern die Informationen in Bezug auf die Äquivalenz von zwei Kennzeichen. Anfänglich sind die generierten Kennzeichen nicht verbunden, nicht äquivalent und liegen in disjunkten Mengen vor. Wann immer ein Lauf, der zwei oder mehrere Kennzeichen verbindet, angetroffen wird, wird in einer Äquivalenzkarte nachgeschlagen, um die Mengen zu finden, zu denen die Kennzeichen gehören. In dem Fall, dass die Kennzeichen zu disjunkten Mengen gehören, werden diese Mengen dann kombiniert, um anzuzeigen, dass sie Teil einer einzelnen Zusammenhangskomponente sind. Da bestimmt wird, in welcher Menge ein bestimmtes Kennzeichen ist, und zwei Mengen zu einer einzelnen Menge vereint werden können, sind Union-Find-Datenstrukturen gut geeignet, um Äquivalenz- oder Entsprechungskarten zu speichern.
  • Unter verschiedenen Union-Find-Strukturen ist ein Wald von disjunkten Mengen für eine Find-Operation für einen generischen Datensatz asymptotisch optimal. Wälder von disjunkten Mengen sind Datenstrukturen, in denen jede Menge durch eine Baumdatenstruktur repräsentiert wird, in der jeder Knoten eine Referenz zu seinem Elternknoten hält. Dies wird z. B. mit einer Vektoranordnung erzielt, deren Subskripte die Menge möglicher Kennzeichen sind, und deren Werte die Kennzeichen der Elternknoten sind. Ein Wert von Null bedeutet, dass der Knoten keine Eltern hat und der Wurzelknoten des Baums ist. 7 zeigt zwei Mengen von Kennzeichenbäumen und eine entsprechende Äquivalenzkarte für einen herkömmlichen Algorithmus vor der Verarbeitung der letzten Reihe von 3.
  • Die Identifikation der Nachbarn unter Verwendung der Konnektivitätsformel kann zur Generierung unnötiger Kennzeichen für eine einzelne Zusammenhangskomponente führen. Diese generierten Kennzeichen sollten verschmolzen werden, was zu einer erhöhten Ausführungszeit führt. Beispielsweise gibt es in 5 nur zwei Zusammenhangskomponenten. Falls jedoch ein herkömmlicher Ansatz zur Identifikation des Nachbarn in einer vorhergehenden Reihe befolgt wird, werden getrennte Kennzeichen für jedes Pixel vergeben, indem nur seine Nachbarn der vorhergehenden Reihe betrachtet werden. Dann wird jedes dieser Kennzeichen als Eltern/Kind eines anderen markiert, was die Tiefe eines Entsprechungskartenbaums erhöht. Dies führt seinerseits dazu, dass zu viel Zeit mit der Identifikation der Wurzeln verbraucht wird.
  • Um dieses Problem zu überwinden, wird in einer Ausführungsform eine neue Pixelkarte durch eine ODER-Verknüpfung von zwei aufeinanderfolgenden Reihen generiert. Beispielsweise zeigt 6 eine ODER-Verknüpfung der beiden Reihen in 5. Dann wird eine LRE an der neuen Pixelkarte anstatt nur einer aktuellen Reihe vorgenommen. Jede derartige RLE bildet eine Menge Zusammenhangskomponenten, und ein einzelnes Kennzeichen ist für sie ausreichend. So werden die Nachbarn aller der vorhergehenden Läufe als Nachbarn eines aktuellen Laufs identifiziert.
  • Wann immer ein neuer Lauf angetroffen wird, wird in S208 die Anzahl von Nachbarn in der vorhergehenden Reihe geprüft. Falls es einen oder mehrere Nachbarn gibt, wird ein bestehendes Kennzeichen auf die aktuelle Reihe ausgebreitet, wie nachstehend erläutert.
  • Falls es keine Nachbarn gibt, wird in S210 ein neues Kennzeichen generiert. Ein minimales Kennzeichen (z. B. 1) wird dem ersten angetroffenen Lauf zugeordnet. Ein Weg zur Generierung zusätzlicher Kennzeichen ist, den Kennzeichenzähler zu inkrementieren, jedes Mal wenn ein Lauf ohne Nachbarn in einer vorhergehenden Reihe angetroffen wird. Dies wird jedoch eine Entsprechungskarte mit derselben Größe wie die maximale Anzahl von Kennzeichen für das gesamte Bild erzeugen.
  • Für eine beliebige gegebene Reihe ist die maximale Anzahl von Kennzeichen M/2, wobei M die Breite des Bilds ist. Ein Ansatz verwendet eine Übersetzungstabelle, um Kennzeichen von einer vorhergehenden Reihe in eine aktuelle Reihe zu übersetzen. Die Wartung und Verwendung dieser Übersetzungstabelle ist für eine Objektmerkmalsextraktion nicht effizient und ist zeitaufwändig.
  • Ein weiterer Ansatz verwendet einen einfacheren Weg der Generierung von Kennzeichen, der den Speicher auch gleich hält wie M/2. In diesem Ansatz wird ein Entsprechungskarte der Größe M/2 beibehalten. Es wird jedoch gestattet, dass Kennzeichen monoton inkrementiert werden. Ein Kennzeichen wird durch eine einfache Modulo-Operation in einen Entsprechungskartenindex übersetzt. Jeder Ort in einer Entsprechungskarte wird mit einer Statuskennzeichnung assoziiert, die aussagt, ob das Kennzeichen aktiv ist oder nicht. Eine Kennzeichenzahl wird inkrementiert, bis ein nicht-aktiver Ort in der Entsprechungskarte gefunden wird. Für eine Entsprechungskarte mit einer Größe, die eine Potenz von 2 ist (z. B. 512, 1024, 2048, etc.), wird die Modulo-Operation eine einfache ,UND'-Operation, die als einzelne Instruktion sogar bei den meisten grundlegenden DSPs/Mikrosteuereinheiten verfügbar ist.
  • Falls nur ein Nachbar in der vorhergehenden Reihe vorliegt, wird das Kennzeichen dieses Nachbarn auf einen aktuellen Lauf in S212 ausgebreitet.
  • Falls ferner in S208 feststellt wird, dass es mehr als einen Nachbarn gibt, ordnet ein herkömmlicher Algorithmus ein minimales Kennzeichen der Nachbarn als aktuelles Kennzeichen zu. Dies wird jedoch zu einer Erhöhung der Baumtiefe einer Entsprechungskarte führen und wird die Ausführungszeit von Entsprechungskartenaktualisierungen erhöhen. So bestimmt in einigen Implementationen der Algorithmus ein minimales Kennzeichen der Wurzeln der Nachbarn in der vorhergehenden Reihe bei S214 und ordnet dieses Kennzeichen einem aktuellen Lauf zu. Dies hilft bei der Ausbreitung nur von Wurzelkennzeichen, und alle nicht-aktiven Kennzeichen werden automatisch inaktiv.
  • Wann immer eine neue Verbindung zwischen zwei Kennzeichen entsteht, wird in S216 die Äquivalenz dieser Kennzeichen aktualisiert. Der klassische Algorithmus für Zusammenhangskomponenten verfolgt rekursiv die Entsprechungs- oder Äquivalenzkarte, bis der Algorithmus die Wurzel der jeweiligen Bäume findet, zu der jedes Kennzeichen gehört. Falls die beiden Kennzeichen zu unterschiedlichen Bäumen gehören, wird der Wurzelknoten, dessen Kennzeichen höher ist, zum Kind des anderen gemacht. Auch wenn die herkömmliche Technik für kleine Größen effizient arbeitet, verbringt mit zunehmender Anzahl von Kennzeichen und Baumtiefe die herkömmliche Technik viel Zeit damit, den Wurzelknoten für jede Verbindung zu finden. Diese Leistung kann verbessert werden, indem der Baum nach jeder Entsprechungskartenaktualisierung abgeflacht wird. Mit zunehmender Anzahl von Kennzeichen verbringt jedoch der Algorithmus zu viel Zeit mit der Abflachung des Baums.
  • Der vorliegende Algorithmus überwindet dieses Problem, indem nur der aktive Teil des Baums für jede Reihe abgeflacht wird. Der Weg der Identifikation von Nachbarn und Ausbreitung von Kennzeichen, der in 2 beschrieben wird, flacht implizit den aktiven Teil des Baums ab. So ist kein getrennter Abflachungsschritt erforderlich. Da die Anzahl aktiver Kennzeichen sehr klein ist und von ihr immer garantiert wird, dass sie kleiner oder gleich M/2 für ein Bild mit der Breite M ist, ist daher die Zeit minimal, die mit dem Finden von Wurzeln und Aktualisieren der Entsprechungskarte verbracht wird. 8 und 9 zeigen eine Baumstruktur und eine Äquivalenzkarte für den vorliegenden Algorithmus. Spezifisch zeigt 8 ein Beispiel von Kennzeichenbäumen und einer Äquivalenzkarte für den vorliegenden Algorithmus vor der Verarbeitung der letzten Reihe der Karte in 3. 9 veranschaulicht ein Beispiel von Kennzeichenbäumen und einer Äquivalenzkarte nach einem ersten Durchlauf für den vorliegenden Algorithmus für die Karte in 3.
  • In S218 wird ein Objekt mit dem minimalen Kennzeichen als stark markiert, falls ein beliebiges der nicht-minimalen Kennzeichen stark ist.
  • Merkmale (Eigenschaften) werden in S220 gesammelt, wann und wenn ein Kennzeichen einem Lauf zugeordnet wird. Jedes generierte Kennzeichen wird mit Objektmerkmalsinformationen assoziiert. Falls ein neues Kennzeichen generiert wird, werden die Objektmerkmalsinformationen initialisiert, um anzuzeigen, dass die Merkmalsinformationen ein neues Objekt repräsentieren. Wann immer ein Kennzeichen auf einen neuen Lauf ausgebreitet wird, z. B. in S212 oder S214, werden die mit dem Kennzeichen assoziierten Objektmerkmalsinformationen mit den Merkmalen des neuen Laufs aktualisiert. Beispielsweise werden in einer Ausführungsform in Bezug auf die Gesamtanzahl von Pixeln im Objekt die Objektmerkmalsinformationen aktualisiert, indem die Länge des neuen Laufs mit einer bestehenden Größe des Objekts addiert wird. Wann immer gefunden wird, dass ein Kennzeichen ein Kind eines anderen Kennzeichens ist, werden die Eltern-Objektmerkmalsinformationen (d. h. des anderen Kennzeichens) mit den Kind-Objektmerkmalsinformationen aktualisiert. Da nur der Wurzelknoten ausgebreitet wird, können alle Kind-Kennzeichen nach jeder Reihe verworfen werden.
  • In S222 wird das Kennzeichen als stark markiert, wenn der Lauf stark ist (z. B. wenn der Lauf ein starkes Pixel umfasst).
  • Der Algorithmus kann die Objektmerkmale zur Anwendung senden, wann und wenn das Objekt nach S224 vollendet ist. Das Verfahren zum Generieren von Kennzeichen und Aktualisieren von Entsprechungskarten, wie mit Bezugnahme auf 2 erläutert, hilft, die vollendeten Objekte leicht zu detektieren. Wann immer beispielsweise ein Kennzeichen von einer vorhergehenden Zeile auf eine aktuelle Zeile ausgebreitet wird, wird es als unvollendet markiert. Da nur Wurzelkennzeichen ausgebreitet werden, wird ein Objekt, welches einem Wurzelkennzeichen entspricht, das als unvollendet markiert ist, als vollendetes Objekt in S224 angesehen. So prüft, nach der Kennzeichenbildung jeder Reihe in S222, der Algorithmus in einer Ausführungsform in S224 auf die Wurzelkennzeichen, die in einer vorhergehenden Reihe vorliegen und in der aktuellen Reihe nicht vorliegen. Bei S226 wird das vollendete Objekt ausgewählt, falls es stark ist, und das Objekt wird verworfen, falls es schwach ist.
  • Es wird eine Anwendung angenommen, die Objekte identifiziert, deren Breite größer ist als eine vorherbestimmte Breite Wmin. Hier ist die Breite eine Eigenschaft/ein Merkmal des Objekts. Der Algorithmus speichert in S228 nur Objekte, die eine größere Breite aufweisen als die vorherbestimmte Breite. In einem herkömmlichen Verfahren werden zuerst alle Objekte identifiziert und gespeichert. Dann werden die Merkmale/Eigenschaften in einem zweiten Durchlauf berechnet, um zu entscheiden, ob die Objekte mit den Kriterien übereinstimmen. Dies erhöht unnötig den Speichergesamtaufwand zum Speichern von Objekten, die mit den Kriterien nicht übereinstimmen.
  • Ungefähre Konturmerkmale können extrahiert werden, wenn ein Intensitätsgradient einer Schwellenwertbildung unterzogen wird, anstelle eines Pixelbetrags. Die Konturmerkmale können ähnlich den Objektmerkmalen extrahiert werden. Der Algorithmus kann auch prüfen, ob eine Kontur für das Objekt von einer weiteren Kontur umschlossen wird.
  • Zusätzlich kann der Algorithmus parallelisiert werden, und so ist er für die Ausführung durch mehrfache Kernspeicher/Prozessoren geeignet. Ein jeweiliger Teilrahmen eines Bilds kann jedem Kernspeicher oder Prozessor zugeführt werden. Die Merkmale von Objekten, die mehrfache Teilrahmen überspannen, können durch die Berücksichtigung der Nachbarn oder Kennzeichen der ersten Reihe eines Teilrahmens und der letzten Reihe eines vorhergehenden Teilrahmens kombiniert werden. Entweder kann der Kernspeicher oder Prozessor die erste Reihe des einen Teilrahmens und die letzte Reihe des vorhergehenden Teilrahmens berücksichtigen. Alternativ oder zusätzlich dazu kann ein dritter Kernspeicher oder Prozessor die erste Reihe und die letzte Reihe der Teilrahmen berücksichtigen.
  • Der Algorithmus wurde auf einem Doppelkern-Festpunkt-Digitalsignalprozessor (DSP) mit einem Fließband-Visionprozessor implementiert, der bei 500 MHz läuft. Er wurde auf Objekt- und Kontureigenschaften, wie Länge, Bereich, Bildmomente, Hu-Momente, etc., getestet. Der Algorithmus und eine herkömmliche Technik wurden in einer Assemblersprache implementiert, um die besten Ergebnisse für das Bild des Satzes von Würfeln zu erhalten, die in 10 gezeigt sind. Ein DMA wurde verwendet, um Daten von einem externen Speicher in einen internen Speicher zu bringen.
  • Es wurde festgestellt, dass der Algorithmus die herkömmliche Technik hinsichtlich der Speichernutzung und Verarbeitungszeit übertrifft. Die Ausgabe mit den grafischen Begrenzungslinien, die auf dem Bild markiert sind, ist in 12 gezeigt. Tabelle 1 gibt einen Vergleich von einem Mittelwert von Zyklen pro Pixel und Speicheranforderungen für den Algorithmus und eine herkömmliche Technik zum Extrahieren einer grafischen Begrenzungslinie und einer Länge von Punkten für das in 11 gezeigte Bild. Die Bildschirmmarkierungen werden identifiziert, indem die Größe des Objekts und die Größe der grafischen Begrenzungslinie betrachtet werden. Die verwendete herkömmliche Technik ist eine Kombination einer Kantenverfolgung und Konturverfolgung, die in einer Berkeley Design-Technologie Inc. (BDTI)-Demonstration des gleichen Beispiels während einer Präsentation von Prozessoren von Analog Devices Inc. verwendet wurden. Wie aus Tabelle 1 ersichtlich ist, leistet der vorgeschlagene Algorithmus 6-mal mehr als die herkömmliche Technik. Auch die Speicheranforderung ist um das 5-fache reduziert verglichen mit der herkömmlichen Technik. Tabelle 1. Vergleich eines Mittelwerts von Zyklen pro Pixel und der Speicheranforderung für einen typischen Anwendungsfall
    Vorgeschlagen Herkömmlich
    Mittelwert Zyklen/Pixel 6,44 44,14
    Speicher (Bytes) 33228 186020
  • Ferner wird bei der herkömmlichen Technik die MIPS-Anforderung für die Konturverfolgung in Anwesenheit eines Rauschens mit zunehmender Anzahl von Objekten drastisch steigen. Es wird gefunden, dass eine Erhöhung von Zyklen des Algorithmus dieser Offenbarung mit der Anzahl von Objekten signifikant geringer ist.
  • Der Algorithmus dieser Offenbarung verbraucht somit signifikant weniger Rechen- und Speicherressourcen verglichen mit herkömmlichen Techniken.
  • 13 ist ein vereinfachtes Blockbild, welches Elektronik veranschaulicht, die mit einem beispielhaften Computersystem 1300 assoziiert ist, das programmiert werden kann, eine Ausführungsform der vorliegenden Offenbarung auszuführen. Das System 1300 umfasst eine Berührungseingabevorrichtung 1314, eine Berührungssteuereinheit 1302, einen oder mehrere Prozessoren 1304, eine Systemsteuerlogik 1306, die mit wenigstens einem (der) Prozessor(en) 1304 gekoppelt ist, einen Systemspeicher 1308, der mit der Systemsteuerlogik 1306 gekoppelt ist, einen nicht-flüchtigen Speicher und/oder (eine) Speichervorrichtung(en) 1310, die mit der Systemsteuerlogik 1306 gekoppelt ist (sind), eine Anzeigesteuereinheit 1312, die mit der Systemsteuerlogik 1306 gekoppelt ist, eine Anzeigesteuereinheit 1312, die mit einer Anzeige gekoppelt ist, eine Leistungsverwaltungs-Steuereinheit 1318, die mit der Systemsteuerlogik 1306 gekoppelt ist, und (eine) Kommunikationsschnittstelle(n) 1320, die mit der Systemsteuerlogik 1306 gekoppelt ist (sind).
  • Die Berührungseingabevorrichtung 1314 umfasst einen Berührungssensor 1316, und jede/r kann unter Verwendung einer geeigneten berührungsempfindlichen Technologie implementiert werden, wie beispielsweise und ohne Einschränkung kapazitive, resistive, akustische Oberflächenwellen- (SAW), Infrarot- und optische Bildverarbeitung. In einer bestimmten Ausführungsform wird die Berührungseingabevorrichtung 1314 unter Verwendung einer beliebigen geeigneten Einfach- oder Mehrfach-Berührungstechnologie implementiert.
  • In einer bestimmten Ausführungsform umfasst die Systemsteuerlogik 1306 geeignete Schnittstellensteuereinheiten, um eine beliebige geeignete Schnittstelle mit wenigstens einem Prozessor 1304 und/oder einer beliebigen geeigneten Vorrichtung oder Komponente in Kommunikation mit der Systemsteuerlogik 1306 vorzusehen. In einer bestimmten Ausführungsform umfasst die Systemsteuerlogik 1306 eine oder mehrere Speichersteuereinheiten, um eine Schnittstelle mit dem Systemspeicher 1308 vorzusehen. Der Systemspeicher 1308 kann verwendet werden, um Daten und/oder Instruktionen, wie beispielsweise Software 1326, zu laden und zu speichern. In einer bestimmten Ausführungsform umfasst der Systemspeicher 1308 einen beliebigen geeigneten Speicher, wie beispielsweise einen geeigneten dynamischen Speicher mit wahlfreiem Zugriff (DRAM) oder SDRAM oder ROM. In einer bestimmten Ausführungsform umfasst die Systemsteuerlogik 1306 eine oder mehrere Eingabe/Ausgabe-(I/O-)Steuereinheiten, um eine Schnittstelle zu einer Anzeigevorrichtung 1332, einer Berührungssteuereinheit 1302 und einem nicht-flüchtigen Speicher und/oder (einer) Speichervorrichtung(en) 1310 vorzusehen.
  • Der nicht-flüchtige Speicher und/oder die Speichervorrichtung(en) 1310 speichern Daten und/oder Instruktionen, beispielsweise innerhalb von Software 1328. Der nicht-flüchtige Speicher und/oder die Speichervorrichtung(en) 1310 können einen beliebigen geeigneten nicht-flüchtigen Speicher, wie beispielsweise einen Flash-Speicher, und/oder (eine) beliebige nicht-flüchtige Speichervorrichtung(en), wie beispielsweise ein oder mehrere Festplattenlaufwerke (HDDs), ein oder mehrere Kompaktdisk(CD)-Laufwerke und/oder ein oder mehrere digitale Bildplatten(DVD)-Laufwerke, umfassen.
  • Die Leistungsverwaltungssteuereinheit 1318 umfasst eine Leistungsverwaltungslogik 1330, die ausgelegt ist, verschiedene Leistungsverwaltungs- und/oder Leistungsersparnisfunktionen des Computers 1300 auf der Basis einer offenen Auslegung oder einer geschlossenen Auslegung und/oder einer physischen Orientierung oder eines ungenutzten Zustands des Computers 1300 zu steuern. In einer Ausführungsform ist die Leistungsverwaltungssteuereinheit 1318 ausgelegt, den Energieverbrauch von Komponenten oder Vorrichtungen des Systems 1300 zu reduzieren, das bei reduzierter Leistung betrieben werden kann. Beispielsweise nimmt in einer bestimmten Ausführungsform, wenn der Computer 1300 in letzter Zeit nicht verwendet wurde, die Leistungsverwaltungssteuereinheit 1318 eines oder mehreres des Folgenden vor: Herunterfahren eines ungenutzten Teils der Anzeige und/oder eines beliebigen damit assoziierten Hintergrundlichts; Gestatten eines oder mehrerer der Prozessoren 1304, in einen niedrigeren Energiezustand zu gehen, falls weniger Rechenleistung angebracht ist; und Abschalten beliebiger Vorrichtungen und/oder Komponenten, wie einer Tastatur, die ungenutzt sind.
  • (Eine) Kommunikationsschnittstelle(n) 1320 (kann) können eine Schnittstelle für das System 1300 vorsehen, um über ein oder mehrere Netze und/oder mit einer beliebigen anderen geeigneten Vorrichtung zu kommunizieren. (Die) Kommunikationsschnittstelle(n) 1320 (kann) können beliebige geeignete Hardware und/oder Firmware umfassen. In einer bestimmten Ausführungsform umfasst (umfassen) die Kommunikationsschnittstelle(n) 1320 beispielsweise einen Netzadapter, einen drahtlosen Netzadapter, ein Telefonmodem und/oder ein drahtloses Modem.
  • In einer bestimmten Ausführungsform umfasst die Systemsteuerlogik 1306 eine oder mehrere Eingabe/Ausgabe(I/O)-Steuereinheiten, um einen Schnittstelle mit (einer) beliebigen geeigneten Eingabe/Ausgabe(I/O)-Steuereinheit(en) vorzusehen, wie beispielsweise einem Mikrofon, einem Lautsprecher, einer Kamera, einem Camcorder, einem Drucker und/oder einem Scanner.
  • In einer Ausführungsform ist der wenigstens eine Prozessor 1304 gemeinsam mit einer Logik für eine oder mehrere Steuereinheiten der Systemsteuerlogik 1306 gepackt, um ein gepacktes System (SiP) zu bilden. In einer Ausführungsform ist der wenigstens eine Prozessor 1304 auf demselben Chip mit der Logik für eine oder mehrere Steuereinheiten der Systemsteuerlogik 1306 integriert. Für eine bestimmte Ausführungsform ist der wenigstens eine Prozessor 1304 auf demselben Chip mit der Logik für eine oder mehrere Steuereinheiten der Systemsteuerlogik 1306 integriert, um ein Ein-Chip-System (SoC) zu bilden.
  • Für eine Berührungssteuerung kann eine Berührungssteuereinheit 1302 einen Berührungssensor-Schnittstellenschaltungsaufbau 1322 und eine Berührungssteuerlogik 1324 umfassen. Der Berührungssensor-Schnittstellenschaltungsaufbau 1322 kann eine Berührungseingabe über eine erste Berührungsflächenschicht und eine zweite Berührungsflächenschicht einer Anzeige (z. B. Anzeigevorrichtung 1332) detektieren. Der Berührungssensor-Schnittstellenschaltungsaufbau 1322 kann einen beliebigen geeigneten Schaltungsaufbau umfassen, der beispielsweise wenigstens teilweise von der berührungsempfindlichen Technologie abhängig sein kann, die für die Berührungseingabevorrichtung 1314 verwendet wird. In einer Ausführungsform kann der Berührungssensor-Schnittstellenschaltungsaufbau 1322 eine beliebige geeignete Einfach- oder Mehrfach-Berührungstechnologie unterstützen. In einer Ausführungsform umfasst der Berührungssensor-Schnittstellenschaltungsaufbau 1322 einen beliebigen geeigneten Schaltungsaufbau, um Analogsignale, die der ersten Berührungsflächenschicht und der zweiten Berührungsflächenschicht entsprechen, in digitale Berührungseingabedaten umzuwandeln. Digitale Berührungseingabedaten für eine Ausführungsform umfassen beispielsweise Berührungsort- oder Koordinatendaten.
  • Die Berührungssteuerlogik 1324 hilft bei der Steuerung des Berührungssensor-Schnittstellenschaltungsaufbaus 1322, eine Berührungseingabe über die erste Berührungsflächenschicht und die zweite Berührungsflächenschicht zu detektieren. Die Berührungssteuerlogik 1324 kann für eine Ausführungsform digitale Berührungseingabedaten ausgeben, welche einer Berührungseingabe entsprechen, die vom Berührungssensor-Schnittstellenschaltungsaufbau 1322 detektiert wird. Die Berührungssteuerlogik 1324 kann unter Verwendung einer beliebigen geeigneten Logik implementiert werden, einschließlich einer Hardware-, Firmware- und/oder Software-Logik (z. B. nicht-transitorischer dinglicher Medien), die wenigstens teilweise von dem Schaltungsaufbau abhängig sein kann, der für den Berührungssensor-Schnittstellenschaltungsaufbau 1322 verwendet wird. Die Berührungssteuerlogik 1324 unterstützt eine beliebige geeignete Einfach- oder Mehrfach-Berührungstechnologie.
  • Die Berührungssteuerlogik 1324 kann gekoppelt sein, um digitale Berührungseingabedaten an die Systemsteuerlogik 1306 und/oder wenigstens einen Prozessor 1304 zur Verarbeitung auszugeben. Wenigstens ein Prozessor 1304 kann für eine Ausführungsform Software ausführen, um digitale Berührungseingabedaten zu verarbeiten, die von der Berührungssteuerlogik 1324 ausgegeben werden. Geeignete Software kann beispielsweise Treiber-Software und/oder Anwendungs-Software umfassen. Wie in 13 veranschaulicht, kann ein Systemspeicher 1308 geeignete Software 1326 speichern und kann in einem nichtflüchtigen Speicher und/oder (einer) Speichervorrichtung(en) implementiert werden.
  • Modifikationen
  • In der vorhergehenden Beschreibung wurde der Algorithmus an die Pixel in einer Rasterscanreihenfolge angewendet. Es können jedoch auch andere Reihenfolgen verwendet werden. Beispielsweise können die Pixel, anstatt die Pixel Reihe-für-Reihe zu berücksichtigen, Spalte-für-Spalte berücksichtigt werden. Alternativ dazu kann der Algorithmus in umgekehrter Rasterscanreihenfolge oder anderen Reihenfolgen implementiert werden.
  • Die Beschreibung bezieht sich allgemein auf Aktionen eines Prozessors. Ein derartiger Prozessor ist ein Beispiel einer Verarbeitungseinrichtung zum Vornehmen von Operationen des Algorithmus, der in 2 ausgeführt ist.
  • In einer Ausführungsform liest ein Prozessor Instruktionen aus einem Medium, um den Algorithmus vorzunehmen. Dieses Medium kann transitorisch oder nicht-transitorisch sein. Beispielhafte transitorische Medien umfassen eine sich ausbreitende Welle oder ein Signal, und Computerinstruktionen per se. Beispielhafte nicht-transitorische Medien umfassen einen Magnetplatte, eine optische Platte, eine magnetooptische Platte oder einen Flash-Speicher. Andere nicht-transitorische Medien umfassen einen RAM und ROM.
  • Die oben mit Bezugnahme auf die FIGUREN geoffenbarten Aktivitäten sind bei beliebigen Integrationsschaltungen anwendbar, die eine Bildverarbeitung involvieren, insbesondere jenen, die spezialisierte Software-Programme oder Algorithmen ausführen können, von denen einige mit der Verarbeitung digitalisierter Echtzeitdaten assoziiert sein können. Bestimmte Ausführungsformen können sich auf Mehrfach-DSP-Signalverarbeitung, Fließpunkt-Verarbeitung, Signal/Steuerungsverarbeitung, Festfunktionsverarbeitung, Mikrosteuereinheit-Anwendungen, etc., beziehen.
  • Die hier diskutierten Merkmale können allgemein bei der Computervision angewendet werden. Beispielsweise ist ein Kontext, bei dem die Merkmale angewendet werden können, die Defektdetektion auf Förderbändern bei automatischen Montagestrecken. In einer derartigen Anwendung kann das Objekt von Interesse eine Schraube, eine Flasche, etc., sein. Die Anwendung identifiziert ein fehlerhaftes Objekt und versieht es mit einer geeigneten Statuskennzeichnung.
  • Die Merkmale können auch bei der Druckzeichenerkennung angewendet werden, wie der Nummerntafelerkennung, Überwachung, etc. Die Lehren dieser Offenbarung können auch bei Automobilanwendungen angewendet werden, wie der Geschwindigkeitsbegrenzungserkennung, um Geschwindigkeitsbegrenzungen und assoziierte Zeichen (so vorhanden) im Geschwindigkeitsbegrenzungschild zu identifizieren. Bei derartigen Anwendungen werden Konturen extrahiert, die mit Eigenschaften eines Rechtecks übereinstimmen. So werden Objekte extrahiert, die Buchstaben/Zahlen entsprechen, und die Buchstaben/Zahlen werden auf der Basis ihrer Eigenschaften klassifiziert.
  • In anderen Kontexten können die Merkmale bei wissenschaftlichen Instrumenten, Radar, der industriellen Prozesssteuerung, Video-Ausrüstung und anderen auf digitaler Verarbeitung basierenden Systemen angewendet werden. Ferner können bestimmte Ausführungsformen in digitalen Signalverarbeitungstechnologien für medizinische Abbildungssysteme, medizinische Instrumente, die Patientenüberwachung und Gesundheitsbetreuung zu Hause vorgesehen werden. Dies könnte Lungenüberwachung, Akzelerometer, Herzüberwachung, Schrittmacher, etc., umfassen. Andere Anwendungen können Autotechnologien für Sicherheitssysteme (z. B. Fahrerunterstützungssysteme und Infotainment) involvieren.
  • In noch weiteren beispielhaften Szenarios können die Lehren der vorliegenden Offenbarung auf industriellen Märkten angewendet werden, welche Prozesssteuerungssysteme umfassen, die bei der Steigerung der Produktivität, Energieeffizienz und Zuverlässigkeit helfen. Bei Verbraucheranwendungen können die oben diskutierten Lehren der Signalverarbeitung für die Bildverarbeitung, Autofokus und Bildstabilisierung (z. B. digitale Fotokameras, Camcorder, etc.) verwendet werden. Andere Verbraucheranwendungen können Videoprozessoren für Heimkinosysteme, DVD-Recorder und Fernsehen mit hoher Auflösung umfassen. Noch weitere Verbraucheranwendungen können hochentwickelte Berührungsbildschirm-Steuereinheiten (z. B. für einen beliebigen Typ einer tragbaren Medienvorrichtung) involvieren. Daher könnten solche Technologien leicht ein Teil von Smartphones, Tablets, Sicherheitssystemen, PCs, Spieltechnologien, virtueller Realität, Simulationstraining, etc., sein.
  • Die Anordnungen von 1 bis 13 dienen einfach Diskussionszwecken, wobei verschiedene Alternativen und Modifikationen für solche Anordnungen im Umfang der vorliegenden Offenbarung liegen. Ähnlich können die Verarbeitung und Speicherzuordnungen von 1 bis 13 von anderen Komponenten gemeinsam genutzt, konsolidiert oder quer über unterschiedliche Vorrichtungen auf andere Weise verteilt werden. Solche Modifikationen können auf bestimmten Bildverarbeitungsanforderungen, spezifischen Umgebungen, etc., basieren.
  • In bestimmten Implementationen werden die hier ausgeführten Extraktionsfunktionen durch eine Logik implementiert, die in einem oder mehreren dinglichen Medien kodiert ist (z. B. eingebettete Logik, die in einer anwendungsspezifischen Integrationsschaltung (ASIC) vorgesehen ist, digitale Signalprozessor(DSP)-Instruktionen, Software (potenziell mit einem Objektcode und Quellkode), die von einem Prozessor oder einer beliebigen anderen ähnlichen Maschine auszuführen ist, etc.). In einigen dieser Fälle speichert ein Speicherelement Daten für die hier beschriebenen Extraktionsoperationen. Das Speicherelement kann Software, Logik, einen Kode oder Prozessorinstruktionen speichern, die ausgeführt werden, um die in dieser Offenbarung beschriebenen Aktivitäten durchzuführen. Ein Prozessor kann einen beliebigen Typ von Instruktionen ausführen, um die in dieser Offenbarung detailliert ausgeführten Operationen zu erzielen. In einem Beispiel transformiert der Prozessor ein Element oder einen Artikel (z. B. Daten) von einem Zustand oder Ding in einen anderen Zustand oder ein anderes Ding. In einem weiteren Beispiel werden die hier angegebenen Extraktionsaktivitäten mit einer festen Logik oder programmierbaren Logik (z. B. Software/Computerinstruktionen, die von einem Prozessor ausgeführt werden) implementiert, wie einem programmierbaren Prozessor, einer programmierbaren digitalen Logik (z. B. feldprogrammierbaren Gate-Anordnung (FPGA), einem löschbaren programmierbaren Nurlesespeicher (EPROM), einem elektronisch löschbaren programmierbaren Nurlesespeicher (EEPROM) oder einer ASIC), die eine digitale Logik, Software, einen Kode oder elektronische Instruktionen umfasst.
  • In einem allgemeinen Sinn können die in den vorhergehenden FIGUREN dargestellten Anordnungen in ihren Darstellungen logischer sein, wohingegen eine physische Architektur verschiedene Permutationen, Kombinationen oder Hybride dieser Elemente umfassen kann. In einer Ausführungsform werden die Merkmale dieser Offenbarung extern für ein beliebigen der oben angegebenen Elemente (z. B. in einem Server umfasst) vorgesehen oder in eine weitere Vorrichtung eingeschlossen, um die geoffenbarten Funktionalitäten zu erzielen. In anderen Ausführungsformen kann eine beliebige der Vorrichtungen der FIGUREN zusätzliche Algorithmen, Hardware, Software, Komponenten, Module, Schnittstellen oder Objekte umfassen, die diese Extraktionsoperationen erleichtern.
  • Alle der oben angegebenen Vorrichtungen können Informationen in einem beliebigen geeigneten Speicherlement, Software, Hardware oder in einer beliebigen anderen geeigneten Komponente, Vorrichtung, einem Element oder Objekt halten, wo angemessen und basierend auf bestimmten Anforderungen. Beliebige der potenziellen Verarbeitungselemente, Module und Maschinen, die in dieser Offenbarung beschrieben werden, sollten als innerhalb des breiten Ausdrucks ,Prozessor' umfasst angesehen werden.
  • Mit den hier vorgesehenen Beispielen wurde eine Interaktion hinsichtlich zwei, drei, vier oder mehreren Elementen beschrieben. Dies erfolgte jedoch nur für Zwecke der Klarheit und als bloßes Beispiel. In bestimmten Fällen kann es einfacher sein, eine oder mehrere der Funktionalitäten eines gegebenen Satzes von Flüssen zu beschreiben, indem nur auf eine begrenzte Anzahl von Elementen Bezug genommen wird. Das System 1300 (und seine Lehren) ist leicht skalierbar und kann eine große Anzahl von Komponenten aufnehmen, sowie kompliziertere/komplexere Anordnungen und Auslegungen. Demgemäß sollen die vorgesehenen Beispiele den Umfang nicht einschränken oder die weitgefassten Lehren des Systems 1300 nicht inhibieren, wie sie bei unzähligen anderen Architekturen potenziell angewendet werden.
  • Die vorhergehenden Flussdiagramme veranschaulichen nur einige der Szenarios und Karten, die durch das, oder in dem, System 1300 ausgeführt werden können. Einige Operationen können gelöscht, entfernt, modifiziert oder erheblich geändert werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Zusätzlich wurde eine Reihe dieser Operationen darin beschrieben, dass sie gleichzeitig mit, oder parallel zu, einer oder mehreren zusätzlichen Operationen ausgeführt werden. Die Zeiteinstellung dieser Operationen kann jedoch erheblich geändert werden. Die vorhergehenden Operationsflüsse wurden als Beispiel und für Diskussionszwecke angeboten. Vom System 1300 wird eine wesentliche Flexibilität darin vorgesehen, dass beliebige geeignete Anordnungen, Chronologien, Auslegungen und Zeitmechanismen vorgesehen werden können, ohne von den Lehren der vorliegenden Offenbarung abzuweichen.
  • Obwohl die vorliegende Offenbarung detailliert mit Bezugnahme auf bestimmte Anordnungen und Auslegungen beschrieben wurde, können diese beispielhaften Auslegungen und Anordnungen signifikant verändert werden, ohne vom Umfang der vorliegenden Offenbarung abzuweichen.
  • Obwohl das System 1300 mit Bezugnahme auf bestimmte Elemente und Operationen veranschaulicht wurde, die den Extrationsprozess erleichtern, können ferner diese Elemente und Operationen durch eine beliebige geeignete Architektur oder einen Prozess ersetzt werden, die bzw. der die beabsichtigte Funktionalität des Systems 1300 erzielt.
  • Obwohl die vorhergehenden Diskussionen auf Computer konzentriert waren, könnten zusätzlich Hand-Vorrichtungen, die Video-Anwendungen einsetzen, die Lehren der vorliegenden Offenbarung leicht anwenden. Beispielsweise können iPhones, iPads, Google Android-betriebene Vorrichtungen, persönliche Rechenanwendungen (z. B. Desktop-Videolösungen), etc., die oben detailliert ausgeführten Lehren verwenden. Ein beliebiges Kommunikationssystem oder eine Vorrichtung, das bzw. die Videodaten verarbeitet und/oder empfängt, wäre auch für die hier diskutierten Lehren empfänglich.
  • Zahlreiche andere Änderungen, Substitutionen, Variationen, Abänderungen und Modifikationen sind für Fachleute klar, und es wird beabsichtigt, dass die vorliegenden Offenbarung alle solchen Änderungen, Substitutionen, Variationen, Abänderungen und Modifikationen umfasst, die in den Umfang der beigeschlossenen Ansprüche fallen.

Claims (20)

  1. Verfahren, aufweisend: Bestimmen einer Position und Länge eines Nicht-Null-Laufs in einer Reihe einer Pixelkarte; Bestimmen einer Anzahl von Nachbarn für den Nicht-Null-Lauf in einer vorhergehenden Reihe, wenigstens teilweise auf der Basis der Position und der Länge; und Aktualisieren einer Entsprechungskarte des Nicht-Null-Laufs und einer Entsprechungskarte eines ersten Nachbarn des Nicht-Null-Laufs, wenigstens teilweise auf der Basis einer Entsprechungskarte eines zweiten Nachbarn des Nicht-Null-Laufs, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf wenigstens zwei Nachbarn in der vorhergehenden Reihe aufweist.
  2. Verfahren nach Anspruch 1, ferner aufweisend: Zuordnen eines Minimums von Wurzeln der Nachbarn zum Nicht-Null-Lauf.
  3. Verfahren nach Anspruch 1 oder 2, ferner aufweisend: Aktualisieren einer Größe eines Objekts, das den Nicht-Null-Lauf, den ersten Nachbarn und den zweiten Nachbarn enthält, als Reaktion auf die Feststellung.
  4. Verfahren nach Anspruch 3, ferner aufweisend: Aktualisieren der Größe des Objekts wenigstens teilweise auf der Basis der Länge des Nicht-Null-Laufs.
  5. Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Feststellen, dass ein Objekt vollendet ist, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf keine Nachbarn in der vorhergehenden Reihe aufweist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei welchem das Bestimmen der Anzahl von Nachbarn das ODER-Verknüpfen der Reihe mit der vorhergehenden Reihe aufweist.
  7. Verfahren nach einem der vorhergehenden Ansprüche, ferner aufweisend: Verwerfen eines Objekts, wenigstens teilweise auf der Basis einer Intensität eines Pixels im Nicht-Null-Lauf und einer vorherbestimmten Schwelle.
  8. Logik, die in wenigstens einem dinglichen Medium kodiert ist und welche einen Code zur Ausführung enthält und, wenn dieser von einem Prozessor ausgeführt wird, betreibbar ist, Operationen vorzunehmen, aufweisend: Bestimmen einer Position und Länge eines Nicht-Null-Laufs in einer Reihe einer Pixelkarte; Bestimmen einer Anzahl von Nachbarn für den Nicht-Null-Lauf in einer vorhergehenden Reihe, wenigstens teilweise auf der Basis der Position und der Länge; und Aktualisieren einer Entsprechungskarte des Nicht-Null-Laufs und einer Entsprechungskarte eines ersten Nachbarn des Nicht-Null-Laufs, wenigstens teilweise auf der Basis einer Entsprechungskarte eines zweiten Nachbarn des Nicht-Null-Laufs, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf wenigstens zwei Nachbarn in der vorhergehenden Reihe aufweist.
  9. Logik nach Anspruch 8, wobei die Operationen ferner aufweisen: Zuordnen eines Minimums von Wurzeln der Nachbarn zum Nicht-Null-Lauf.
  10. Logik nach Anspruch 8 oder 9, wobei die Operationen ferner aufweisen: Aktualisieren einer Größe eines Objekts, das den Nicht-Null-Lauf, den ersten Nachbarn und den zweiten Nachbarn enthält, als Reaktion auf die Feststellung.
  11. Logik nach Anspruch 10, wobei die Operationen ferner aufweisen: Aktualisieren der Größe des Objekts wenigstens teilweise auf der Basis der Länge des Nicht-Null-Laufs.
  12. Logik nach Anspruch 8, 9, 10 oder 11, wobei die Operationen ferner aufweisen: Feststellen, dass ein Objekt vollendet ist, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf keine Nachbarn in der vorhergehenden Reihe aufweist.
  13. Logik nach einem der Ansprüche 8 bis 12, bei welcher das Bestimmen der Anzahl von Nachbarn das ODER-Verknüpfen der Reihe mit der vorhergehenden Reihe aufweist.
  14. Logik nach einem der Ansprüche 8 bis 13, wobei die Operationen ferner aufweisen: Verwerfen eines Objekts, wenigstens teilweise auf der Basis einer Intensität eines Pixels im Nicht-Null-Lauf und einer vorherbestimmten Schwelle.
  15. Vorrichtung, aufweisend: einen Prozessor, der eine Position und Länge eines Nicht-Null-Laufs in einer Reihe einer Pixelkarte bestimmt, wobei der Prozessor ausgelegt ist, eine Anzahl von Nachbarn für den Nicht-Null-Lauf in einer vorhergehenden Reihe, wenigstens teilweise auf der Basis der Position und der Länge, zu bestimmen, und eine Entsprechungskarte des Nicht-Null-Laufs und eine Entsprechungskarte eines ersten Nachbarn des Nicht-Null-Laufs, wenigstens teilweise auf der Basis einer Entsprechungskarte eines zweiten Nachbarn des Nicht-Null-Laufs, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf wenigstens zwei Nachbarn in der vorhergehenden Reihe aufweist, zu aktualisieren.
  16. Vorrichtung nach Anspruch 15, bei welcher der Prozessor dem Nicht-Null-Lauf ein Minimum von Wurzeln der Nachbarn zuordnet.
  17. Vorrichtung nach Anspruch 15 oder 16, bei welcher der Prozessor eine Größe eines Objekts, das den Nicht-Null-Lauf, den ersten Nachbarn und den zweiten Nachbarn enthält, als Reaktion auf die Feststellung aktualisiert.
  18. Vorrichtung nach Anspruch 17, bei welcher der Prozessor die Größe des Objekts wenigstens teilweise auf der Basis der Länge des Nicht-Null-Laufs aktualisiert.
  19. Vorrichtung nach Anspruch 15, 16, 17 oder 18, bei welcher der Prozessor ausgelegt ist, zu bestimmen, dass ein Objekt vollendet ist, als Reaktion auf eine Feststellung, dass der Nicht-Null-Lauf keine Nachbarn in der vorhergehenden Reihe aufweist.
  20. Vorrichtung nach Anspruch 15, 16, 17, 18, oder 19, bei welcher die Verarbeitungseinheit die Anzahl von Nachbarn durch das ODER-Verknüpfen der Reihe mit der vorhergehenden Reihe bestimmt.
DE102014109525.1A 2013-07-25 2014-07-08 System, Verfahren und Medium zur Bildobjekt- und Konturmerkmalsextraktion Pending DE102014109525A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/951,193 US9292763B2 (en) 2013-07-25 2013-07-25 System, method, and medium for image object and contour feature extraction
US13/951,193 2013-07-25

Publications (1)

Publication Number Publication Date
DE102014109525A1 true DE102014109525A1 (de) 2015-01-29

Family

ID=52274148

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014109525.1A Pending DE102014109525A1 (de) 2013-07-25 2014-07-08 System, Verfahren und Medium zur Bildobjekt- und Konturmerkmalsextraktion

Country Status (3)

Country Link
US (1) US9292763B2 (de)
KR (1) KR101626538B1 (de)
DE (1) DE102014109525A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292763B2 (en) 2013-07-25 2016-03-22 Analog Devices Global System, method, and medium for image object and contour feature extraction

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10742961B2 (en) * 2015-09-02 2020-08-11 Industrial Technology Research Institute Depth sensing apparatus with self-calibration and self-calibration method thereof

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4718090A (en) 1986-04-14 1988-01-05 Cooper Jr James E Method and apparatus for high-speed processing of video images
US5841903A (en) 1992-01-17 1998-11-24 Yamaha Corporation Method and device for extracting a connected component of image data
US6937765B2 (en) * 2003-03-14 2005-08-30 The Regents Of The University Of California Method for contour extraction for object representation
US7386166B2 (en) 2004-02-12 2008-06-10 Xerox Corporation Systems and methods for connecting regions image data having similar characteristics
US7689038B2 (en) * 2005-01-10 2010-03-30 Cytyc Corporation Method for improved image segmentation
JP2008186124A (ja) 2007-01-29 2008-08-14 Seiko Epson Corp 画像データ処理方法、画像データ処理プログラム及び画像データ処理装置
CN100501762C (zh) 2007-04-17 2009-06-17 华东师范大学 图像连通元快速标记的方法
US8155450B2 (en) 2007-07-25 2012-04-10 The United States Of America As Represented By The Secretary Of The Navy Apparatus for single pass blob image analysis
KR101030430B1 (ko) 2007-09-12 2011-04-20 주식회사 코아로직 영상 처리 장치와 방법 및 그 기록매체
US8300945B2 (en) 2008-07-28 2012-10-30 Sharp Laboratories Of America, Inc. Methods and systems for connected-component labeling
US8320674B2 (en) * 2008-09-03 2012-11-27 Sony Corporation Text localization for image and video OCR
KR101225196B1 (ko) * 2011-04-25 2013-01-22 전자부품연구원 이미지 프로세싱에서 블롭 라벨링 방법 및 장치
US8965132B2 (en) * 2011-11-18 2015-02-24 Analog Devices Technology Edge tracing with hysteresis thresholding
US9275467B2 (en) * 2012-03-29 2016-03-01 Analog Devices, Inc. Incremental contour-extraction scheme for binary image segments
US9292763B2 (en) 2013-07-25 2016-03-22 Analog Devices Global System, method, and medium for image object and contour feature extraction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292763B2 (en) 2013-07-25 2016-03-22 Analog Devices Global System, method, and medium for image object and contour feature extraction

Also Published As

Publication number Publication date
US9292763B2 (en) 2016-03-22
KR101626538B1 (ko) 2016-06-01
KR20150013040A (ko) 2015-02-04
US20150030250A1 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
CN109214238B (zh) 多目标跟踪方法、装置、设备及存储介质
DE102018115440A1 (de) Techniken zum Trainieren tiefer neuronaler Netzwerke
DE112012004809B4 (de) Kantenverfolgung mit Hysterese-Schwellenwertbildung
DE102018008161A1 (de) Detektieren von Objekten unter Nutzung eines schwach überwachten Modells
DE112020005360T5 (de) Fein differenzierte optische erkennung in erweiterter realität
DE112016005059T5 (de) Unterkategorienbewusste faltende neuronale Netzwerke zur Objekterfassung
DE112015007176T5 (de) Visuelle Erkennung unter Verwendung von Deep Learning-Attributen
DE102016211642A1 (de) Patch-speichersystem
DE102016222036A1 (de) System für eine visuelle Objekt- und Ereignis-Erkennung und - Vorhersage unter Verwendung von Sakkaden
DE102017005964A1 (de) Techniken zum Auswählen von Objekten in Bildern
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE112016006922T5 (de) Erkennung einer Aktivität in einer Videobildfolge anhand von Tiefeninformationen
BE1029597B1 (de) Bildverarbeitungssysteme und -verfahren zum automatischen Erzeugen eines oder mehrerer Bildverarbeitungsaufträge auf Grundlage interessierender Regionen (ROIs) digitaler Bilder
DE112020004920T5 (de) Verfolgen von datenstromobjekten mit verzögerter objekterkennung
DE102021128523A1 (de) Hierarchische bildzerlegung zur defekterkennung
DE102014109525A1 (de) System, Verfahren und Medium zur Bildobjekt- und Konturmerkmalsextraktion
DE112011105949T5 (de) Techniken zur Hautfarbenaktivierung
DE102021119725A1 (de) Überlagern von metadaten über videoströme on-demand zur intelligenten videoanalytik
DE112021002291T5 (de) Verringern von ressourcenkosten bei visueller erkennung
DE112018006782T5 (de) Verfahren und vorrichtung zum abgleichen von bildern anhand semantischer merkmale
DE102020100210A1 (de) Neuronaler Netzwerkprozessor zum Komprimieren von Merkmalsabbildungsdaten und Computersystem dasselbe enthaltend
DE102021128522A1 (de) Identifizierung von regeln des netzwerkdatenverkehrs
DE102021129862A1 (de) Verfahren und Einrichtung zum Identifizieren von Hardwareperformanzzählereignissen zum Detektieren und Klassifizieren von Malware oder Arbeitslast unter Verwendung künstlicher Intelligenz
DE102015001699B4 (de) Connected Component Labeling bei Grafikprozessoren
DE112021005555T5 (de) Multitasking-lernen über gradienteilung zur umfangreichen menschlichen analyse

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: WITTE, WELLER & PARTNER PATENTANWAELTE MBB, DE

R081 Change of applicant/patentee

Owner name: ANALOG DEVICES GLOBAL, BM

Free format text: FORMER OWNER: ANALOG DEVICES TECHNOLOGY, HAMILTON, BM

Effective date: 20150209

R082 Change of representative

Representative=s name: WITTE, WELLER & PARTNER PATENTANWAELTE MBB, DE

Effective date: 20150209

R081 Change of applicant/patentee

Owner name: ANALOG DEVICES INTERNATIONAL UNLIMITED COMPANY, IE

Free format text: FORMER OWNER: ANALOG DEVICES GLOBAL, HAMILTON, BM

Owner name: ANALOG DEVICES GLOBAL UNLIMITED COMPANY, BM

Free format text: FORMER OWNER: ANALOG DEVICES GLOBAL, HAMILTON, BM

R082 Change of representative

Representative=s name: WITTE, WELLER & PARTNER PATENTANWAELTE MBB, DE

R081 Change of applicant/patentee

Owner name: ANALOG DEVICES INTERNATIONAL UNLIMITED COMPANY, IE

Free format text: FORMER OWNER: ANALOG DEVICES GLOBAL UNLIMITED COMPANY, HAMILTON, BM

R082 Change of representative

Representative=s name: WITTE, WELLER & PARTNER PATENTANWAELTE MBB, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009500000

Ipc: G06V0030184000

R016 Response to examination communication