-
1. Gebiet
der Erfindung
-
Die vorliegende Erfindung betrifft
ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung
zum Erfassen eines linearen Objektes wie zum Beispiel eines Linearschlitzes,
eines Haar- und Fadenüberstandes
(nachfolgend gemeinsam als "das
Linearobjekt" bezeichnet)
im Bereich der Graustufen-Bilddatenverarbeitung
durch den Computer.
-
2. Beschreibung des Standes
der Technik
-
Es gibt ein konventionelles Bildverarbeitungsverfahren
zum Detektieren eines Lineardefektes, bei dem Bilder sequenziell
aufgenommen werden, indem eine Zeilenkamera in Richtung orthogonal
zur Anordnung der Bildaufnahmeelemente bewegt wird, und Bildzeilen,
welche jedes Mal erzielt werden, verarbeitet werden. Gemäß diesem
Verfahren wird eine Position mit einer unterschiedlichen Dichte
detektiert, indem Bildzeilen in Binärwerte zerlegt werden, oder
die Dichtesumme wird für
jede Zeile verwendet, so dass die Dichtesumme für eine Zeile mit der Dichtesumme
der vorhergehenden und der nachfolgenden Zeilen verglichen wird.
Auf diese Weise wird bestimmt, ob jede Zeile einen Lineardefekt aufweist
oder nicht.
-
Andererseits hat der Anmelder der
vorliegenden Erfindung kürzlich
ein Bildverarbeitungsverfahren entwickelt, wie in der japanischen
ungeprüften Patentveröffentlichungsschrift
Nr. 2002-230562 offenbart, bei dem die Winkeldaten (Randcodes),
welche die Randrichtung der Randpixel, welche in einem Graustufenbild
enthalten sind, angeben, erfasst werden, und bei dem eine lineare
Konturlinie (Ränder) von
der Bildverarbeitung mit hoher Genauigkeit detektiert wird, welche
die Randcodes verwendet. Bei diesem Verfahren wird ein Histogramm erzeugt,
welches den Grad eines Randpixels anzeigt, welcher zu dem Wert jedes
Randcodes korrespondiert, und einem Randpixel für einen Winkel, welcher zu
jeder Spitze des Histogramms korrespondiert, wird ein Etikett zugewiesen,
welches eindeutig zur besonderen Spitze zugehörig ist. Bei dem Etikettbild,
welches von dem Etikettierverfahren erzeugt wird, wird eine Menge
sukzessiver Randbilder mit dem gleichen Etikett verifiziert, so
dass sie zu einem Liniensegment korrespondieren, und ein eindeutiges
Etikett wird zu jeder Menge zugewiesen. Auf diese Weise werden unterschiedliche
Merkmalsbeträge
berechnet und die Liniensegmente integriert. Anschließend wird
das Verfahren zur Spezifizierung eines Liniensegmentes, welches
die Extraktionsbedingungen erfüllt,
durchgeführt.
-
Insbesondere offenbart der Teil der
Beschreibung der zuvor erwähnten
Veröffentlichung
in Zusammenhang mit 13 ein Verfahren
der Extraktion eines Satzes paralleler Liniensegmente als eine Technik,
um ein Liniensegment zu spezifizieren, welches die Extraktionsbedingungen
erfüllt.
Ferner zeigt der gleiche Teil der gleichen Beschreibung an, dass ein
linearer Schlitz oder ein ähnliches
Objekt mit einer sehr kleinen Breite, welches auf dem Gehäuse gebildet
ist, extrahiert werden kann, indem ein sehr kleiner Abstand zwischen
den zu extrahierenden Liniensegmenten gesetzt wird.
-
Bei dem oben zuerst beschriebenen
konventionellen Verfahren, bei dem ein Defekt detektiert wird, indem
von einer Zeilenkamera erfasste Bilder in Binärwerte zerlegt werden, oder
indem die Dichtesummen für
jede Linie verglichen werden, ist die Vorbedingung, dass die Dichte
des Hintergrundabschnittes, welcher nicht der Defekt ist, in der
Dichte gleichförmig
ist, und sich die Dichte des Defektabschnittes von jener des Hintergrundabschnittes
beträchtlich unterscheidet.
Daher ist ein Defekt schwierig zu detektieren, wenn ein Bild einen
schwachen Kontrast oder einen Hintergrund mit ungleicher Dichte
aufgrund von Schmutz oder eines Musters aufweist.
-
Im Gegensatz dazu ist gemäß dem Verfahren,
welches in der erwähnten
Patentveröffentlichung beschrieben
ist, die Detektion sogar in dem Fall möglich, wo der Kontrast des
Bildes geschwächt
ist oder die Dichtevariation des Hintergrundes verstärkt ist. Jedoch
ist bei diesem konventionellen Verfahren eine Anhäufung aufeinanderfolgender
Bilder mit dem gleichen Randcode erforderlich, um grundsätzlich detektiert
zu werden. Daher können
nur geradlinige Konturlinien detektiert werden, und es ist schwierig,
gekrümmte
Linearobjekte wie zum Beispiel Haare und Fadenüberstände zu detektieren. Es ist
außerdem schwierig,
ein feines, ungleichmäßiges Linearobjekt wie
zum Beispiel einen Riss zu detektieren, weil sich der Randcode an
dem ungleichmäßigen Abschnitt häufig ändert.
-
Sogar in dem Fall, bei dem der Rand
eines Linearobjektes nur teilweise in einem Bild mit niedrigem Kontrast
extrahiert werden kann, können
gemäß dem Verfahren,
welches in der zitierten Patentveröffentlichung beschrieben ist,
die nicht extrahierten Abschnitte mittels des Liniensegment-Integrationsverfahrens
vervollständigt
werden. Jedoch ist es bei diesem Integrationsverfahren erforderlich,
für jedes
extrahierte Liniensegment zu bestätigen, ob es integriert werden
kann oder nicht, wobei die Merkmalsbeträge jedes Liniensegmentes verwendet
werden. Dies erhöht
den Aufwand des Steuerbetriebes, und das Verfahren ist bei einer
solchen Anwendung wie zum Beispiel einer Hochgeschwindigkeits-Defektinspektion
schwierig einzusetzen, welches durch sequenzielles Aufnehmen von
Bildern von Produkten durchgeführt
wird, welche auf dem Förderband
befördert
werden.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die Erfindung ist im Hinblick auf
die oben beschriebenen Probleme entwickelt worden, und es ist eine
ihrer Aufgaben, ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung
zu schaffen, bei welchem/r gekrümmte
Linearobjekte und unebene Linearobjekte genauso wie geradlinige
Objekte mit hoher Genauigkeit einfach detektiert werden können.
-
Es ist ein anderes Ziel der Erfindung,
ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung
zu schaffen, bei welchem/r ein Linearobjekt mit hoher Geschwindigkeit
und mit hoher Genauigkeit sogar in einem Bild mit einer niedrigen Randextraktionsgenauigkeit
des Linearobjektes detektiert werden kann.
-
Es ist noch ein weiteres Ziel der
Erfindung, ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung
zu schaffen, wobei optimale Parameter zum Detektieren eines Linearobjektes
einfach gesetzt werden können,
indem bestimmt wird, ob die gesetzten Werte geeignet sind oder nicht.
-
Es ist noch ein anderes Ziel der
Erfindung, ein Bildverarbeitungsverfahren und eine Bildverarbeitungsvorrichtung
zu schaffen, wobei Parameter zum Detektieren eines Linearobjektes
automatisch gesetzt werden können,
wobei eine vorbestimmte Zahl von Modellbildern eines Linearobjektes
verwendet werden.
-
Gemäß dieser Erfindung werden die
Randpixel, welche in einem Graustufenbild enthalten sind, extrahiert,
und das Bild wird verarbeitet, indem die Randrichtung und die Richtung
des Dichtegradienten der Randpixel verwendet werden.
-
Die Randpixel sind definiert als
solche Pixel, welche die Konturlinie eines Objektes in einem Graustufenbild
bilden. Die Randpixel werden vorzugsweise derart extrahiert, dass
der Grad des Dichtegradienten jedes Pixels des Graustufenbildes
(nachfolgend als "die
Randintensität" bezeichnet) bestimmt wird,
und dann jene Pixel mit einer Randintensität, welche größer als
ein vorbestimmter Wert ist, als Randpixel bestimmt werden.
-
Die Richtung des Dichtegradienten
ist definiert als die Richtung, in welcher sich die Dichte bei einem
gegebenen Randpixel als eine Grenze ändert, und kann durch den Differenziationsprozess
bestimmt werden, indem der besondere Randpixel und eine vorbestimmte
Anzahl von benachbarten Pixeldaten ver wendet werden. Die Randrichtung,
wie in der oben zitierten Patentveröffentlichung, ist als die Richtung
definiert, welche durch Rotation der Richtung des Dichtegradienten
um +90 Grad oder -90 Grad erzielt wird.
-
Es sei angenommen, dass ein zu detektierendes
Linearobjekt mit einer Breite von mindestens mehreren Pixeln auf
dem Graustufenbild erscheint. Zwei Konturlinien, welche im Wesentlichen
parallel zur Länge
des Linearobjektes sind, können
durch den Randextraktionsprozess für das Graustufenbild extrahiert
werden. Jede dieser Konturlinien ist aus einer Mehrzahl von Randpixeln
konfiguriert.
-
Es sei außerdem angenommen, dass eine gerade
Linie orthogonal zu einer der beiden Konturlinien gesetzt wird.
Die Richtung des Dichtegradienten eines Randpixels, korrespondierend
zum Kreuzungspunkt zwischen einer Konturlinie und der geraden Linie,
ist entgegengesetzt zur Richtung des Dichtegradienten des anderen
Randpixels (die beiden Randpixel, korrespondierend zu den Punkten,
welche die gerade Linie kreuzen, werden nachfolgend als "die gegenüberliegenden
Randpixel" bezeichnet).
Dieser Bezug zwischen zwei gegenüberliegenden
Randpixeln gilt auch für
den Bezug zur Randrichtung, so dass die Randrichtung des Randpixels
an einer beliebigen Position auf einer Konturlinie im Wesentlichen entgegengesetzt
zur Randrichtung des Randpixels ist, welcher dem ersten Randpixel
auf der anderen Konturlinie gegenüber liegt.
-
Basierend auf diesem Prinzip können gemäß der Erfindung
nicht nur ein geradliniges Objekt, sondern auch ein gekrümmtes Linearobjekt
oder ein Linearobjekt mit einer unregelmäßig ungleichmäßigen Kontur
auf einem Graustufenbild detektiert werden. In einem Bildverarbeitungsverfahren
gemäß der Erfindung
werden die Randpixel von einem zu verarbeitenden Graustufenbild
extrahiert, und während
sequenziell die extrahierten Randpixel berücksichtigt werden, wird ein
Randpixel, welcher verifiziert ist, eine entgegengesetzte Richtung
des Dichtegra dienten zu demjenigen eines zu berücksichtigenden Randpixels zu
haben, innerhalb eines vorbestimmten Bereiches in der Richtung gesucht,
welche orthogonal zu der Randrichtung des zu berücksichtigenden Randpixels ist.
Gleichzeitig wird nach erfolgreicher Extraktion eines Randpixels,
welcher die Verifikationsbedingungen erfüllt, ein Liniensegment parallel zur
Randrichtung des zu berücksichtigenden
Randpixels gesetzt, welches durch einen vorbestimmten Punkt auf
einer Linie passiert, welche den extrahierten Randpixel mit dem
zu berücksichtigenden
Randpixel verbindet. Wenn keine weiteren zu berücksichtigenden Pixel vorhanden
sind, wird ein Bild, welches das Ergebnis des Liniensegmentsetzens
angibt, als ein Bild angezeigt, welches das Ergebnis des Detektierens
eines Linearobjektes angibt.
-
Der Suchbereich im Suchprozess kann
zum Beispiel durch den Abstand, mit dem die Suche gestartet wird,
zu einem Pixel, bei dem die Suche beendet wird, in die Richtung
angegeben werden, welche orthogonal zur Randrichtung des zu berücksichtigenden
Randpixels ist (nachfolgend als "die
Referenzrichtung" bezeichnet).
Der Pixel, mit dem die Suche gestartet wird, ist nicht auf den zu
berücksichtigenden
Randpixel begrenzt, sondern kann alternativ ein Pixel sein, welcher
von dem zu berücksichtigenden Pixel
durch einen vorbestimmten Abstand in der Referenzrichtung entfernt
ist.
-
Der Abstand, welcher den Suchbereich
repräsentiert,
kann durch die Anzahl der Pixel angegeben werden. In dem Fall, wo
die Suche nicht von dem zu berücksichtigenden
Randpixel gestartet wird, kann der Suchbereich angegeben werden
durch den Abstand von dem zu berücksichtigenden
Randpixel zu dem Pixel, mit dem die Suche gestartet wird, und dem
Abstand von dem zu berücksichtigenden
Randpixel zu dem Pixel, bei dem die Suche beendet wird.
-
Ferner kann ein Bereich innerhalb
eines vorbestimmten Winkels zur Referenzrichtung als ein Suchbereich
definiert werden. In diesem Fall kann der Suchbereich angegeben
werden durch den Winkel zur Referenzrichtung zusätzlich zu den oben beschriebenen
Abständen.
-
Die Länge jedes oben beschriebenen
Abstandes wird vorzugsweise gemäß der Breite
des zu detektierenden Linearobjektes gesetzt. In diesem Fall kann,
solange der zu berücksichtigende
Randpixel die Konturlinie des Linearobjektes bildet, ein Randpixel,
welcher verifiziert ist, die Richtung des Dichtegradienten entgegengesetzt
zu jener des zu berücksichtigenden
Randpixels zu haben, innerhalb des Suchbereiches extrahiert werden.
-
Mit Bezug auf ein Linearobjekt, welches
eine beträchtlich
variierende Breite aufweist, und welches nicht notwendigerweise
zwei parallele Konturlinien aufweist, oder mit Bezug auf ein Linearobjekt
mit einem großen
Krümmungsradius,
ist die Richtung des Dichtegradienten des gegenüberliegenden Randpixels nicht
immer entgegengesetzt zu jener des zu berücksichtigenden Randpixels,
aber die Richtung des Dichtegradienten eines Randpixels, welcher
benachbart zu dem gegenüberliegenden
Randpixel angeordnet ist, ist entgegengesetzt zu jener des zu berücksichtigenden
Randpixels. Indem der Winkel der Referenzrichtung gemäß dem Zustand
des zu detektierenden Linearobjektes eingestellt wird, kann daher ein
Randpixel extrahiert werden, welcher die Verifikationsbedingungen
erfüllt.
-
Ferner kann der Suchprozess, welcher
mit dem zu berücksichtigenden
Randpixel gestartet werden kann, mit einem Pixel alternativ gestartet
werden, welcher in einem vorbestimmten Abstand von dem zu berücksichtigenden
Randpixel angeordnet ist.
-
Die Verifikation, ob die Richtung
des Dichtegradienten entgegengesetzt ist oder nicht, kann durchgeführt werden,
indem bestimmt wird, ob der Unterschied der Richtung des Dichtegradienten
zwischen dem zu berücksichtigenden
Randpixel und dem zu suchenden Pixel innerhalb eines vorbestimmten
gewährba ren
Bereiches von 180 Grad ist. Der gewährbare Bereich bei diesem Bestimmprozess
kann zufällig
gemäß dem Zustand
eines zu detektierenden Linearobjektes gesetzt werden, wie bei der
oben beschriebenen Einstellung des Winkels zur Referenzrichtung.
-
In dem Fall, wo erwünscht ist,
ein zum Beispiel nur im Wesentlichen geradliniges Objekt zu detektieren,
wird der gewährbare
Bereich vorzugsweise auf einen kleinen Wert gesetzt. Wenn ein Linearobjekt
mit einem Krümmungsradius,
ein Linearobjekt mit unregelmäßig ungleichmäßigen Konturlinien
oder ein Linearobjekt mit variierender Breite zwischen den beiden
Konturlinien detektiert wird, ist andererseits der gewährbare Bereich
vorzugsweise groß.
-
Im Hinblick auf die Tatsache, dass
die Randrichtung basierend auf der Richtung des Dichtegradienten
bestimmt wird, kann der Suchprozess so durchgeführt werden, dass nach einem
Pixel gesucht wird, welcher verifiziert werden kann, eine entgegengesetzte
Randrichtung zu dem zu berücksichtigenden
Pixel zu haben.
-
Bei dem Liniensegmentsetzprozess
wird ein Liniensegment parallel zur Randrichtung des zu berücksichtigenden
Randpixels gesetzt, um durch einen vorbestimmten Punkt auf einer
Linie zu passieren, welche den Randpixel, welcher durch den Suchprozess
extrahiert worden ist, mit dem zu berücksichtigenden Pixel verbindet.
Zum Beispiel kann dieses Liniensegment sich in die gleiche Richtung
wie die Randrichtung des zu berücksichtigenden
Randpixels erstrecken.
-
Bei dem Liniensegmentsetzprozess
kann auch ein Liniensegment so gesetzt werden, dass es sich entlang
der Richtung, welche entgegengesetzt zu der Randrichtung des zu
berücksichtigenden Randpixels
ist, erstreckt. Als eine Alternative kann ein Liniensegment so gesetzt
werden, dass es sich sowohl in die Randrichtung, als auch in die
entgegengesetzte Richtung erstreckt.
-
Bei dem Suchprozess des Bildverarbeitungsverfahrens
gemäß dieser
Erfindung wird mindestens ein Satz gegenüberliegender Randpixel, deren
Richtung der Dichtegradienten um 180 Grad voneinander verschieden
ist, von den Randpixeln extrahiert, welche die zwei Konturlinien
im Wesentlichen parallel zur Länge
des Linearobjektes bilden. Ferner wird ein Liniensegment parallel
zur Randrichtung jedes Randpixelsatzes durch den Liniensegmentsetzprozess
gesetzt. Die so gesetzten Liniensegmente werden einander überlagert
oder miteinander verbunden, wodurch es möglich ist, ein Bild zu erzeugen,
welches genau die Position, Größe und Neigung des
Linearobjektes widerspiegelt. Indem daher dieses Bild angezeigt
wird, kann das Detektionsergebnis des Linearobjektes in einer einfach
zu verstehenden Art angezeigt werden.
-
Außerdem, sogar in dem Fall,
wo die Dichteverteilung des Hintergrundes variiert wird, ist die Wahrscheinlichkeit
geringer, dass die Detektionsgenauigkeit des Linearobjektes durch
das Rauschen im Hintergrundabschnitt reduziert wird, und dies im Hinblick
auf die Tatsache, dass Randpixelsätze, welche die Konturlinien
des Linearobjektes ausmachen, mit hoher Genauigkeit durch den oben
beschriebenen Suchprozess spezifiziert werden können. Außerdem können sogar in dem Fall, wo
der Kontrast des Bildes so niedrig ist, dass ein Linearobjekt auf
dem Bild in Segmenten angezeigt wird, die Liniensegmente miteinander
verbunden werden, um die segmentierten Abschnitte des Linearobjektes
zu ergänzen, indem
die Länge
der Liniensegmente, welche in dem Liniensegmentsetzprozess gesetzt
ist, eingestellt wird. Auf diese Weise kann das Linearobjekt ohne Rücksicht
auf den Kontrast sicher detektiert werden.
-
Bei dem Liniensegmentsetzprozess
kann ein Liniensegment an einer willkürlichen Position zwischen dem
gesuchten Pixel und dem zu berücksichtigenden
Pixel gesetzt werden (wobei die Position ein Punkt zwischen dem
gesuchten Pixel und dem zu berücksichtigenden
Pixel oder der Position jedes Pixels sein kann). Außerdem kann
das Liniensegment an einer Mehrzahl von Positionen zwischen den
Pixeln gesetzt werden.
-
Bei dem Bildverarbeitungsverfahren
gemäß einer
bevorzugten Ausführungsform
der Erfindung wird eine numerische Eingabe entgegengenommen, welche
die Suchbereich-Setzbedingungen im Suchprozess angibt. Gemäß einer
noch stärker
bevorzugten Ausführungsform
wird eine numerische Eingabe entgegengenommen, welche die Liniensegment-Setzbedingungen
angibt.
-
Die Suchbereich-Setzbedingungen können den
Abstand von dem Pixel, mit dem die Suche begonnen wird, bis zu dem
Pixel, mit dem die Suche beendet wird, und den Winkel zur Referenzrichtung
aufweisen. Entweder der Abstand oder der Winkel können fixiert
werden, während
der andere verändert werden
kann. Besonders in dem Fall, wo ein zu verarbeitendes Linearobjekt
keine extreme Variation in der Linienbreite aufweist, wird der Winkel
zur Referenzrichtung auf 0 Grad gesetzt, und der Suchbereich wird
nur durch den Abstand angegeben.
-
Der oben erwähnte Abstand kann durch den Abstand
von einem Randpixel zu dem Pixel; mit dem die Suche begonnen wird
(nachfolgend als "der
untere Grenzwert" bezeichnet)
und dem Abstand von dem Randpixel zu dem Pixel, mit dem die Suche
beendet wird (nachfolgend als "der
obere Grenzwert" bezeichnet)
angegeben werden. Dennoch werden nicht notwendigerweise sowohl der
obere Grenzwert als auch der untere Grenzwert gesetzt, sondern nur einer
von ihnen. In dem Fall, wo die Suche von einem Randpixel oder einem
benachbarten Pixel gestartet wird, wird zum Beispiel nur der obere
Grenzwert gesetzt.
-
Aus dem gleichen Grund kann der Suchbereich
auch in Bezug auf den Winkel genau gesetzt werden.
-
Die Liniensegment-Setzbedingungen
können
die Breite des Liniensegmentes und die Anzahl der zu setzenden Liniensegmente
aufweisen, wie auch die Länge
des zu setzenden Liniensegmentes. Eine vergrößerte Länge oder Breite des Liniensegments
kann den Grad, mit dem die Liniensegmente einander überlagert werden,
erhöhen.
Indem daher diese Werte eingestellt werden, kann die optimale Überlagerung
der Liniensegmente, welche die Merkmale des zu detektierenden Linearobjektes
widerspiegeln, erzielt werden.
-
In dem Fall, wo numerische Werte,
welche die Suchbereich-Setzbedingungen
oder die Liniensegment-Setzbedingungen angeben, wie im zuvor erwähnten Fall
eingegeben werden können,
kann der Detektionsprozess durchgeführt werden, während die
gesetzten Werte des Suchbereiches und des Liniensegmentes verschiedenartig
geändert
werden, wobei ein Modellbild verwendet wird, bevor der gesamte Detektionsprozess
begonnen wird. Es ist daher möglich,
von dem Bild auf der Anzeige zu bestimmen, ob die gesetzten Werte
geeignet sind oder nicht. Somit können geeignete Parameter für den Detektionsprozess
einfach und genau gesetzt werden.
-
Ferner wird bei dem Bildverarbeitungsverfahren
gemäß einer
anderen Ausführungsform
der Erfindung ein numerischer Wert korrespondierend zu der Randintensität eines
zu berücksichtigenden Randpixels
zu dem Dichtewert der Pixel hinzugefügt, welche ein in dem Liniensegmentprozess
zu setzendes Liniensegment konstituieren. Und somit wird ein Bild,
welches das Ergebnis des Liniensegmentsetzens angibt, erzeugt.
-
Bei diesem Bildverarbeitungsverfahren
gemäß der Erfindung
werden die Liniensegmente, welche individuell zwischen einer Mehrzahl
von benachbarten Randpixeln der Kontur eines Linearobjektes gesetzt
sind, einander überlagert.
Gemäß dieser Ausführungsform
der Erfindung wird die Gewichtung aufgrund der Randintensität jedes überlagerten Randpixels
zum überlagerten
Abschnitt der Liniensegmente addiert, und daher kann ein Bild, welches das
Merkmal des Linearobjektes repräsentiert,
deutlicher angezeigt werden. Insbesondere gilt, dass, je höher die
Randintensität
der Randpixel ist, umso höher
ist der Dichtewert der Pixel, welche das zu setzende Liniensegment
konstituieren. Je höher
der Dichtegradient des Linearobjektes ist, umso höher ist daher
die Dichte, mit der das Liniensegment gesetzt werden kann.
-
Bezüglich Rauschwerten mit geringem
Dichtegradienten aufgrund der Dichteunregelmäßigkeiten werden andererseits
eine Mehrzahl von Liniensegmenten, wenn sie gesetzt und überlagert
werden, niedriger gewichtet. Bei einem Bild, welches das Detektionsergebnis
eines Linearobjektes angibt, können
daher die Liniensegmente, welche zum Linearobjekt korrespondieren,
mit Unterschied zum Rauschen klar angegeben werden.
-
Auf diese Weise kann das Detektionsergebnis
eines Linearobjektes durch Differenzierung der Gewichtung des Linearobjektes
gemäß der Randintensität der zu
berücksichtigenden
Randpixel deutlicher angegeben werden.
-
Gemäß einer stärker bevorzugten Ausführungsform
der Erfindung wird ein Bild, welches das Ergebnis des Liniensegmentsetzens
angibt, mittels eines vorbestimmten Schwellenwertes in Binärwerte zerlegt,
und das resultierende Binärbild
wird als das Ergebnis der Linearobjektdetektion angezeigt. Wenn so
vorgegangen wird, können
nur die Abschnitte, wo die Liniensegmente zu einem hohen Grad überlagert sind,
und die Abschnitte, welche durch die Randintensität stärker gewichtet
sind, angezeigt werden. Daher kann die Rauschkomponente von dem
anzuzeigenden Objekt eliminiert werden, wodurch es möglich ist,
das Detektionsergebnis des Linearobjektes deutlicher anzugeben.
-
Ferner spiegelt sich bei dem Bildverarbeitungsverfahren
gemäß noch einer
weiteren bevorzugten Ausführungsform
die Randintensität
des zu berücksichtigenden
Randpixels in der Länge
oder Breite des bei dem Liniensegmentsetzprozess zu setzenden Liniensegmentes
wider. Je höher
die Randintensität
des zu berücksichtigenden
Randpixels, umso mehr kann zum Beispiel die Breite oder die Länge des
Liniensegmentes vergrößert werden.
-
Gemäß dieser Ausführungsform
kann das Liniensegment des zu detektierenden Linearobjektes deutlicher
angezeigt werden als das Liniensegment aufgrund anderer Rauschquellen,
und daher kann das Ergebnis der Linearobjektdetektion klarer angegeben
werden.
-
Ferner wird bei dem Bildverarbeitungsverfahren
gemäß noch einer
weiteren bevorzugten Ausführungsform
nach der Extraktion eines Randpixels, welches die Verifikationsbedingungen
durch den Suchprozess erfüllt,
der extrahierte Randpixel als ein Nachberücksichtigungs-Randpixel nach
dem Liniensegmentsetzprozess bestimmt.
-
Der Nachberücksichtigungs-Randpixel ist
als ein Randpixel definiert, welcher schon als ein Objekt des Suchprozesses
oder des Liniensegmentsetzprozesses verarbeitet worden ist. Bei
dem Prozess, bei dem der extrahierte Pixel als ein Nachberücksichtigungs-Randpixel
gesetzt wird, wird die Randintensität des besonderen Pixels auf
Null gesetzt, oder anderenfalls werden die Daten, welche den Dichtegradienten
angeben, modifiziert. Als eine Alternative wird ein Kennzeichen,
welches angibt, dass der spezifische Randpixel schon verarbeitet
worden ist, an den Randpixel angebracht, während dessen Dichtegradient
beibehalten wird.
-
Gemäß dieser Ausführungsform
braucht jeder Satz gegenüberliegender
Randpixel, deren Richtung eines Dichtegradienten um 180 Grad voneinander
unterschiedlich ist, wobei die einander gegenüberliegenden Randpixel in zwei
Konturlinien angeordnet sind, nur mit einem Suchprozess und einem Liniensegmentsetzprozess
beaufschlagt werden, und daher ist die Verarbeitungsgeschwindigkeit
erhöht.
In diesem Fall erstreckt sich bei dem Liniensegmentsetzprozess das
Liniensegment sowohl in die Randrichtung des zu berücksichtigenden
Randpixels als auch in die entgegengesetzte Richtung. Dann kann
das Liniensegment auf ähnliche
Weise wie in dem Fall gesetzt werden, wo alle extrahierten Randpixel
sequenziell verarbeitet werden.
-
Ferner werden in einem anderen Bildverarbeitungsverfahren
gemäß der Erfindung
die Randpixel eines Graustufenbildes extrahiert und sequenziell berücksichtigt,
während
der Suchprozess und der Liniensegmentsetzprozess ähnlich wie
in dem oben erwähnten
Fall durchgeführt
werden. Wenn keine Randpixel mehr zu berücksichtigen sind, wird die
Position oder Größe des Linearobjektes
auf dem Graustufenbild detektiert, basierend auf dem Ergebnis des Liniensegmentsetzens.
-
Die Position des Schwerpunktes der
integrierten Einheit der Liniensegmente kann als die Position des
Linearobjektes bestimmt werden. Andererseits kann die Größe des Linearobjektes
als die Fläche,
Länge oder
die periphere Länge
der integrierten Einheit der Liniensegmente bestimmt werden.
-
Ferner weist das Bildverarbeitungsverfahren gemäß dieser
Erfindung auf: den Schritt der Eingabe einer vorbestimmten Zahl
von Graustufenbildern, welche ein Bild eines Linearobjektes aufweisen,
den Schritt der Entgegennahme der Betätigung, mit der ein Linearobjekt
auf jedem Graustufenbild bestimmt wird, den Schritt der Durchführung des
Suchprozesses und des Liniensegmentsetzprozesses für jedes Graustufenbild,
während
zur gleichen Zeit die Werte der Parameter für die jeweiligen Prozesse geändert werden
und der Prozess des Detektierens des Linearobjektes, basierend auf
dem Ergebnis des Liniensegmentsetzens, durchgeführt wird, und den Schritt der
Auswahl eines optimalen Satzes von Parameterwerten, basierend auf
dem Ergebnis des Detektierens des Linearobjektes und dem Ergebnis
der Bestimmung des Linearobjektes für jedes Graustufenbild.
-
Die Parameter für den Suchprozess sind numerische
Werte, welche die Suchbereich-Setzbedingungen angeben, und die Parameter
für den
Liniensegmentsetzprozess sind numerische Werte, welche die Liniensegment-Setzbedingungen
angeben. Diese Parameter sind ähnlich
zu den oben beschriebenen Parametern. Der Abstand zu dem Pixel,
mit dem die Suche gestartet wird, zu dem Pixel, mit dem die Suche
beendet wird, und der Winkel, welcher zur Referenzrichtung gebildet
wird, können
als die Parameter für
den Liniensegmentsetzprozess verwendet werden. Andererseits können die
Länge,
Breite und die Zahl der gesetzten Liniensegmente als die Parameter
für den
Liniensegmentsetzprozess verwendet werden. Die Parameter sind nicht
auf einen einzelnen numerischen Wert begrenzt, sondern können eine Mehrzahl
von numerischen Werten, wie zum Beispiel die Obergrenze und die
Untergrenze der oben beschriebenen Werte aufweisen.
-
Bei dem Verfahren zur Bestimmung
eines Linearobjektes auf dem Graustufenbild können die Koordinaten der Pixel,
welche das Linearobjekt auf dem Graustufenbild ausmachen, gesetzt
werden. Dennoch werden nicht alle konstituierenden Pixel notwendigerweise
bestimmt, aber die Pixel auf den Konturlinien des Linearobjektes
oder eines vorbestimmten Bildbereiches in dem Linearobjekt können bestimmt
werden. Basierend auf dem Bestimmungsergebnis können die konstituierenden Pixel
des Linearobjektes bestimmt werden. Der Bestimmungsbetrieb kann
durchgeführt
werden, indem die Maus oder eine ähnliche Zeigervorrichtung auf
dem Bildschirm, welcher das Graustufenbild anzeigt, bewegt wird,
oder indem eine Eingabevorrichtung wie zum Beispiel das Bediengerät oder die
Tastatur verwendet werden.
-
Bei dem oben beschriebenen Verfahren
werden der Suchprozess und der Liniensegmentsetzprozess auf jedem
Graustufenbild durchgeführt,
von dem ein Linearobjekt bestimmt worden ist, während der Suchbereich oder
die Liniensegment-Setzbedingungen geändert werden, um ein Linearobjekt
zu detektieren. Bei diesem Prozess des Detektierens des Linearobjektes
kann, wie oben beschrieben, ein repräsentativer Punkt, wie zum Beispiel
nur der Schwerpunkt, bestimmt werden. Es ist jedoch stärker erwünscht, als
konstituierende Pixel eines Linearobjektes eine Mehrzahl von Pixeln
zu detektieren, welche einen Dichtewert aufweisen, der einen vorbestimmten
Pegel nicht unterschreitet, oder eine Mehrzahl von Pixeln zu detektieren,
welche zu den Positionen korrespondieren, wo eine vorbestimmte Anzahl von
Liniensegmenten überlagert
wird.
-
Bei einem Beispielprozess des Selektierens eines
optimalen Satzes von Parameterwerten werden die Pixel, welche als
jene detektiert worden sind, die das Linearobjekt konstituieren, überprüft, um festzustellen,
ob sie in dem bestimmten Linearobjekt enthalten sind oder nicht,
und das Ergebnis dieser Bestimmung wird digitalisiert als "1" oder "0".
Ferner wird der Prozess der Bestimmung der Gesamtheit der numerischen
Werte, welche das Bestimmungsergebnis als einen Beurteilungswert
angeben, für
jeden Satz von Parameterwerten durchgeführt, und der Satz der Parameterwerte,
welcher mit dem höchsten Beurteilungswert
assoziiert ist, wird als ein Optimalsatz gewählt. Dieser Bestimmungsprozess
kann nicht nur für
die konstituierenden Pixel des Linearobjektes durchgeführt werden,
sondern auch für
die Pixel, welche den Hintergrund bilden.
-
Bei dem Prozess der Linearobjekt-Detektion wird
angenommen, dass die Merkmalswerte, wie zum Beispiel der Schwerpunkt
und die Länge
des Linearobjektes, bestimmt werden. Der Merkmalswert, welcher für jeden
Satz von Parameterwerten bestimmt wird, wird mit dem Merkmalswert
des bestimmten Linearobjektes verglichen, und der Satz der Parameterwerte,
welcher zu dem Merkmalswert des Linearobjektes am nächsten ist,
wird als ein Optimalsatz gewählt.
-
Bei diesem Verfahren wird eine vorbestimmte
Zahl von Graustufenbildern, welche ein zu detektierendes Modell-Linearobjekt
aufweisen, eingegeben, und indem die Bestimmung des Linearobjektes in
den Bildern entgegengenommen wird, können die am besten geeigneten
Parameter zum Detektieren des Linearobjektes automatisch bestimmt
werden. Indem das Ergebnis des Liniensegmentsetzens in Binärform angezeigt
wird, kann der Schwellenwert für den
Binärwert-Zerlegungsprozess
auf ähnliche
Art und Weise auch automatisch gesetzt werden.
-
Gemäß einem anderen Aspekt der
Erfindung ist eine Bildverarbeitungsvorrichtung vorgesehen, welche
aufweist: Bildeingabemittel zum Eingeben eines zu verarbeitenden
Graustufenbildes, Anzeigemittel zum Anzeigen des Ergebnisses der
Detektion eines Linearobjektes von dem eingegebenen Graustufenbild,
Randpixel-Detektionsmittel zum Detektieren der Randpixel auf dem
Graustufenbild, Suchmittel zum Berücksichtigen eines vorbestimmten
Randpixels und Suchen nach einem Randpixel, welcher verifiziert
werden kann, eine entgegengesetzte Richtung des Dichtegradienten
zu jenem des vorbestimmten zu berücksichtigenden Randpixels innerhalb
eines vorbestimmten Bereiches zu haben, basierend auf der Richtung,
welche orthogonal zur Randrichtung des besonderen zu berücksichtigenden Randpixels
ist, Liniensegmentsetzmittel zum Setzen eines Liniensegmentes, nach
der Extraktion eines Randpixels, welcher die Verifikationsbedingungen von
dem Suchmittel erfüllt,
parallel zur Randrichtung des zu berücksichtigenden Randpixels an
einer vorbestimmten Position zwischen dem extrahierten Randpixel
und dem zu berücksichtigenden
Randpixel, und Steuermittel zum sequenziellen Berücksichtigen
der Randpixel, welche von dem Randpixel-Detektionsmittel detektiert werden,
zum Betreiben des Suchmittels und des Liniensegmentsetzmittels,
und wenn es keine zu berücksichtigenden
Randpixel gibt, Anzeigen eines Bildes auf dem Anzeigemittel, wobei das
Bild das Ergebnis des Liniensegmentsetzens durch das Liniensegmentsetzmittel
angibt.
-
Das Bildeingabemittel ist mit dem
Bilderzeugungsmittel, wie zum Beispiel einer Kamera oder einem Scanner,
verbunden und bringt das von diesen Mitteln erzeugte Graustufenbild
hervor. Das Bildeingabemittel ist aus einem Schnittstellenschaltkreis und
einem A/D-Wandler konfiguriert. Dennoch ist das Bildeingabemittel
nicht auf diese Konfiguration begrenzt, sondern kann alternativ
einen Schaltkreis zum Empfangen eines Bildes, welches durch Kommunikation übermittelt
wird, und ein Lesegerät
zum Lesen eines Bildes, welches in einem vorbestimmten Speicher
gespeichert ist, aufweisen.
-
Das Anzeigemittel kann aus einer
Bildanzeigeeinheit wie zum Beispiel CRT oder LCD und einem korrespondierenden
Schnittstellenschaltkreis konfiguriert sein. Das Anzeigemittel kann
ferner die Funktion haben, die Bildeingabe von dem Bildeingabemittel
und das Ergebnis der Detektion von dem Randbild-Detektionsmittel anzuzeigen, genauso
wie es die Funktion haben kann, das Ergebnis der Detektion eines
Linearobjektes anzuzeigen.
-
Das Randpixel-Detektionsmittel, das
Suchmittel, das Liniensegmentsetzmittel und das Steuermittel sind
von einem Computer implementiert, welcher darin die Software zum
Durchführen
des jeweiligen Prozesses aufweist. Jedes Mittel kann auch als ein
bestimmter Schaltkreis wie zum Beispiel ein ASIC (IC für spezielle
Anwendung) konfiguriert sein, so dass der gemeinsame Betrieb der
bestimmten Schaltkreise von dem Computer gesteuert werden kann.
Ebenso kann ein Teil der Mittel (wie zum Beispiel das Randpixel-Detektionsmittel)
als ein bestimmter Schaltkreis konfiguriert sein, während die verbleibenden
Mittel vom Computer und der Software implementiert sind. Gleichzeitig
kann die Funktion der Betriebssteuerung der bestimmten Schaltkreise im
Computer integriert sein.
-
Zusätzlich weist diese Bildverarbeitungsvorrichtung
vorzugsweise einen Speicher auf zum individuellen Speichern der
Bilder, welche von dem Bildeingabemittel eingegeben werden, der
Randbilder, welche von dem Detektionsprozess des Randdetektionsmittels
erzeugt werden, und der Bilder, welche das Ergebnis des Liniensegmentsetzens
von dem Liniensegmentsetzmittel angeben.
-
Mit der oben beschriebenen Bildverarbeitungsvorrichtung
wird das Graustufenbild, welches von dem Bildeingabemittel eingegeben
wird, dem Randdetektionsprozess unterzogen, und die detektierten
Randpixel, während
sie sequenziell berücksichtigt werden,
werden dem Prozess unterzogen, basierend auf dem oben beschriebenen
Bildverarbeitungsverfahren, wodurch ein Verarbeitungsergebnisbild
produziert wird, welches aus einer Menge von Liniensegmenten konfiguriert
ist, korrespondierend zur Position, Länge und der Form eines Linearobjektes. Von
dem Bild, welches auf dem Anzeigemittel angezeigt wird, kann daher
die Form und Position eines Linearobjektes bestätigt werden.
-
Eine Bildverarbeitungsvorrichtung
gemäß einer
bevorzugten Ausführungsform
weist Eingabemittel zum Eingeben der Parameter auf, welche für den Prozess
des Linearobjekt-Detektierens verwendet werden. Dieses Eingabemittel
kann konfiguriert werden als eine Eingabevorrichtung, wie zum Beispiel die
Tastatur, Maus oder das Bediengerät oder eine Schnittstelle,
zum Hervorholen der gesetzten Werte der Parameter. Ferner kann dieses
Eingabemittel ergänzt
werden, falls erforderlich, mit einem Computer und der Software
zur Verarbeitung auf dem Anzeigemittel, etc., und einer Benutzerschnittstelle
zum Eingeben der gesetzten Werte.
-
Dieses Eingabemittel ist gesetzt,
um numerische Werte, welche die Suchbereich-Setzbedingungen angeben,
als Parameter einzugeben für
den Suchprozess, welcher von dem Suchprozess durchgeführt wird.
Gemäß einer
stärker
bevorzugten Ausführungsform
ist das Eingabemittel auch gesetzt, um numerische Werte, welche
die Liniensegment-Setzbedingungen anzeigen, als Parameter für den Liniensegmentsetzprozess
einzugeben, welcher durch das Liniensegmentsetzmittel durchgeführt wird.
Spezifische Beispiele zu diesen Parametern sind ähnlich zu jenen, welche bei
dem Bildverarbeitungsverfahren gemäß der Erfindung vorgestellt
worden sind.
-
Das oben beschriebene Eingabemittel
macht es möglich,
den Prozess des Linearobjekt-Detektierens durchzuführen, während die
Werte der Parameter frei geändert
werden. Vor dem vollständigen
Detektionsprozess können
daher die optimalen Werte der Parameter bestimmt werden, während das
Verarbeitungsergeb nisbild, welches auf dem Anzeigemittel angezeigt
wird, geprüft
wird. Jedes Mal, wenn die Merkmale des zu detektierenden Linearobjektes
einer Änderung
unterzogen werden, werden auch die Werte der Parameter geändert, oder
andere vielseitige Maßnahmen
werden ergriffen, um zu einer deutlich verbesserten Zufriedenheit
beizutragen.
-
Gemäß einer anderen Ausführungsform
der Bildverarbeitungsvorrichtung extrahiert das Steuermittel, wenn
es keine zu berücksichtigenden
Randpixel gibt, konstituierende Pixel von mindestens einer vorbestimmten
Zahl der Liniensegmente, welche von dem Liniensegmentsetzmittel
gesetzt und einander überlagert
werden, und erzeugt und zeigt auf dem Anzeigemittel ein Binärbild der
extrahierten Pixel in Unterscheidung zu den anderen Pixeln an.
-
Bei dieser Ausführungsform sind die Abschnitte,
wo mindestens eine vorbestimmte Zahl (es sei "N" angenommen)
der Liniensegmente überlagert sind,
in weiß (schwarz)
gesetzt, während
die Abschnitte, welche überhaupt
keine überlagerten
Liniensegmente aufweisen, oder die Abschnitte, wo der Grad der Überlagerung
der Liniensegmente kleiner als N ist, in schwarz (weiß) gesetzt
sind. Auf diese Weise kann ein Binärbild erzeugt und angezeigt
werden. Als ein Ergebnis wird das Bild einer Vielzahl von überlagerten
Liniensegmenten weiterhin angezeigt, während das Bild der Liniensegmente
von Rauschbestandteilen oder Ähnlichem
mit einem kleineren Grad von Überlagerung
gelöscht
wird. Wie oben mit Bezug auf ein Linearobjekt beschrieben, werden
die Liniensegmente, welche zwischen benachbarten Randpixeln gesetzt
sind, eher verwendet, um überlagert
zu werden. Indem der Wert N gemäß dem Grad an Überlagerung
eingestellt wird, kann daher das Detektionsergebnis des Linearobjektes
klar angegeben werden.
-
Bei der Bildverarbeitungsvorrichtung
gemäß einer
anderen Ausführungsform
erzeugt das Liniensegmentsetzmittel ein Bild, welches das Ergebnis des
Liniensegmentsetzens angibt, indem ein numerischer Wert, korrespondierend
zur Randintensität
des zu berücksichtigenden
Randpixels, zum Dichtewert der Pixel, welche das zu setzende Liniensegment konstituieren,
hinzugefügt
wird. Bei der Bildverarbeitungsvorrichtung gemäß einer stärker bevorzugten Ausführungsform
wird das Bild, welches das Ergebnis des Liniensegmentsetzens anzeigt,
mittels eines vorbestimmten Schwellenwertes von dem Steuermittel
in Binärwerte
zerlegt, wenn es keine zu berücksichtigenden
Randpixel gibt, und durch das Steuermittel wird das resultierende
Binärbild
auf dem Anzeigemittel angezeigt.
-
Sogar in dem Fall, wo ein Hintergrundbild
mit großer
Dichteunregelmäßigkeit
verarbeitet wird, hat bei dieser Konfiguration das durch den Dichtegradienten
bedingte Rauschen des Hintergrundabschnittes einen kleineren Effekt,
wodurch es möglich
ist, das Bild des Liniensegmentes, korrespondierend zum Linearobjekt,
klar anzugeben.
-
Bei der Bildverarbeitungsvorrichtung
gemäß noch einer
anderen Ausführungsform
weist das Steuermittel ein Nachberücksichtigungssetzmittel auf, welches,
nach der Extraktion eines Randpixels, welcher die Verifikationsbedingungen
erfüllt,
den extrahierten Randpixel als einen Nachberücksichtigungs-Randpixel nach
der vollständigen
Durchführung
des Liniensegmentsetzprozesses durch das Liniensegmentsetzmittel
setzt. Das Nachberücksichtigungssetzmittel ändert die
Daten des extrahierten Randpixels (indem die Randintensität auf Null
reduziert wird, oder auf andere Weise) in eine Form, welche nicht
mit den Randpixeln korrespondiert. Als eine Alternative können Mittel
geschaffen werden, in welchen die Pixeldaten beibehalten werden,
während die
besonderen Daten mit einer Markierung versehen werden, welche anzeigt,
dass der Prozess durchgeführt
worden ist.
-
Bei dem oben beschriebenen Nachberücksichtigungssetzmittel
werden Sätze
von einander gegenüberliegenden
Randpixeln, welche zwischen den beiden Konturlinien sind, und deren
Rich tung des Dichtegradienten um 180 Grad voneinander unterschiedlich
ist, dem Suchprozess und dem Liniensegmentsetzprozess nur einmal
unterzogen, wodurch es möglich
ist, die Geschwindigkeit des Prozesses der Linearobjekt-Detektion
zu erhöhen.
-
Ferner kann die oben beschriebene
Bildverarbeitungsvorrichtung Detektionsmittel zum Detektieren der
Position oder Größe eines
Linearobjektes auf dem Graustufenbild aufweisen, basierend auf dem Ergebnis
des Liniensegmentsetzens durch das Liniensegmentsetzmittel. Dieses
Detektionsmittel macht es möglich,
spezifische Merkmale des Linearobjektes in einem numerischen Wert
anzugeben, und trägt daher
zu einer verbesserten Zweckmäßigkeit
bei.
-
Das Ergebnis der Detektion durch
das Detektionsmittel kann auf dem Anzeigemittel zusammen mit dem
Ergebnis des Liniensegmentsetzens angezeigt werden.
-
Die Bildverarbeitungsvorrichtung
gemäß einer
stärker
bevorzugten Ausführungsform
weist Bestimmungsmittel zum Bestimmen des Vorhandenseins oder Nichtvorhandenseins
eines Linearobjektes auf, basierend auf dem oben beschriebenen Detektionsergebnis,
und weist Ausgabemittel auf für das
Ausgeben des Bestimmungsergebnisses im Hinblick auf das Vorhandensein
oder Nichtvorhandensein eines Linearobjektes. Das Bestimmungsmittel
wird durch einen Computer implementiert, wobei darin ein Algorithmus
für den
Bestimmungsprozess oder ein Komparator für das Vergleichen des Detektionsergebnisses
mit einem vorbestimmten Schwellenwert vorgesehen ist. Das Ausgabemittel
ist aus einem Schnittstellenschaltkreis oder Ähnlichem konfiguriert, korrespondierend
zu einer vorbestimmten externen Ausrüstung.
-
In dem Fall, wo die Ausgabe des Ausgabemittels
mit einer Lampe, einem Lautsprecher oder einer ähnlichen Vorrichtung gekoppelt
ist, wird eine solche Vorrichtung aktiviert, nachdem das Bestimmungsergebnis "Vorhandensein des
Linearobjektes" erfasst
ist. Auf diese Weise ist eine Bildverarbeitungsvor richtung vorgesehen,
welche für
die Inspektion eines Lineardefektes geeignet ist. In dem Fall, wo
die Ausgabe, welche das Bestimmungsergebnis über das Vorhandensein oder
Nichtvorhandensein eines Linearobjektes repräsentiert, auf eine Vorrichtung
angewendet wird, welche die Steuerfunktion aufweist, wie zum Beispiel
eine programmierbare Steuerung oder ein Personal Computer, macht
es andererseits eine solche Vorrichtung, welche mit einer Bildverarbeitungsvorrichtung
gekoppelt ist, möglich, ein
System für
das Detektieren und Entfernen eines Lineardefektes zu konstruieren.
-
Ferner kann diese Bildverarbeitungsvorrichtung
Parametersetzmittel zum Setzen eines optimalen Wertes jedes Parameters
in der Form eines numerischen Wertes aufweisen, welche die Suchbereich-Setzbedingungen
für den
Suchprozess durch das Suchmittel und die Liniensegment-Setzbedingungen
für den
Liniensegmentsetzprozess von dem Liniensegmentsetzmittel angeben.
Dieses Parametersetzmittel weist auf: Bestimmungsbetriebsmittel zum
Bestimmen eines Linearobjektes auf einem Graustufenbild nach dem
Empfang eines Graustufenbildes, welches das Linearobjekt aufweist,
von dem Bildeingabemittel, Detektionssteuermittel zum Betreiben
des Suchmittels und des Liniensegmentsetzmittels, während die
Werte der Parameter für
jeden Prozess des Suchmittels bzw. des Liniensegmentsetzmittels
für eine
Mehrzahl von Graustufenbildern, welche dem Bestimmungsbetrieb unterzogen werden,
geändert
werden, und somit der Prozess der Linearobjekt-Detektion basierend
auf dem Ergebnis des Liniensegmentsetzens durchgeführt wird,
und Auswahlmittel zum Auswählen
eines optimalen Satzes von Parameterwerten, basierend auf dem Detektionsergebnis
und dem Ergebnis des Linearobjektbestimmens für jedes Graustufenbild. Die
unterschiedlichen Parameter für
jede Setzbedingung sind nicht auf einen einzelnen numerischen Wert
begrenzt, sondern können
eine Mehrzahl von numerischen Werten sein, einschließlich der
Obergrenze und Untergrenze jedes Wertes.
-
Die oben beschriebene Konfiguration
kann einen Schnittstellenschaltkreis für die Entgegennahme des Bestimmungsbetriebes
einer Eingabevorrichtung wie zum Beispiel einer Tastatur, einer
Maus oder einem Bediengerät
aufweisen, und außerdem
können
Mittel zum Setzen einer Benutzerschnittstelle an das Anzeigemittel
angebracht werden, falls erforderlich. Der Hardware-Abschnitt des
Bestimmungs-Betriebsmittels kann der gleiche sein wie der Hardware-Abschnitt
des Eingabemittels.
-
Das Detektionssteuermittel und das
Auswahlmittel, welche erforderlich sind, um eine Vielzahl von Graustufenbildern
mit hoher Geschwindigkeit zu verarbeiten, sind vorzugsweise durch
die Computer-Software oder andere Software implementiert, welche
für die
Verarbeitung durch das gleiche Detektionssteuermittel und das Auswahlmittel
verwendet werden.
-
Das Bildverarbeitungsverfahren für das automatische
Bestimmen eines optimalen Satzes von Parameterwerten wird bei der
oben beschriebenen Konfiguration implementiert, indem eine Mehrzahl
von Modellbildern von Linearobjekten eingegeben werden und die Linearobjekte
auf diesen Bildern bestimmt werden. Auf diese Weise können optimale
Parameter für
das Detektieren eines Linearobjektes automatisch gesetzt werden.
Sogar solche Anwender, welche mit dem Parametersetzprozess nicht
vertraut sind, können
somit einfach den erforderlichen Setzprozess für eine Linearobjekt-Detektion
durchführen, wodurch
ferner der Nutzen der Vorrichtung verbessert wird.
-
Die Bildverarbeitungsvorrichtung
mit der oben beschriebenen Konfiguration kann eine Inspektionsvorrichtung
zum Detektieren eines Lineardefektes bilden, welcher in einem vorbestimmten
Objekt aufgetreten ist. Bei einer solchen Inspektionsvorrichtung,
bei der die Position und die Form eines gekrümmten Lineardefektes oder eines
Lineardefektes mit unregelmäßigen, ungleichmäßigen Konturlinien wie
auch die Position und die Form eines geradlinigen Defektes mit hoher Genauigkeit
detektiert werden kann, verbessert die Detektionsgenauigkeit beträchtlich.
-
KURZBESCHREIBUNG DER ZEICHNUNG
-
1 zeigt
ein Blockdiagramm, welches eine Konfiguration einer Bildverarbeitungsvorrichtung
gemäß einer
Ausführungsform
der Erfindung zeigt.
-
2 zeigt
ein Schaubild zur Erklärung
des Prinzips des Defektdetektionsverfahrens.
-
3 zeigt
ein Schaubild zur Erklärung
eines Beispiels eines zu bearbeitenden Bildes.
-
4 zeigt
ein Schaubild zur Erklärung
eines Anzeigebeispiels eines Bildes des Verarbeitungsergebnisses
eines in 3 dargestellten
zu verarbeitenden Bildes, während
der Parameterwertsatz geändert
wird.
-
5 zeigt
ein Flussdiagramm, welches die Schritte des Defektinspektionsverfahrens
zeigt.
-
6 zeigt
ein Flussdiagramm, welches die Schritte des Verfahrens zum automatischen
Setzen von Parametern zeigt.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
1 zeigt
eine Konfiguration einer Bildverarbeitungsvorrichtung gemäß einer
Ausführungsform der
Erfindung.
-
Die Bildverarbeitungsvorrichtung 1 ist
in der Umgebung einer Inspektionslinie in einer Fabrik angeordnet,
um die Inspektion mittels sequenziellen Aufnehmens eines Bildes
von Produkten durchzuführen,
welche auf der Prüfinspektionslinie
befördert werden,
um zu sehen, ob das Bild irgendwelche Bilddaten im Hinblick auf
einen linearen Defekt oder andere Dinge aufweist. Die Vorrichtung 1 ist
mit peripheren Vorrichtungen verbunden, welche eine Kamera 2,
einen Monitor 3 und eine Externeinrichtung 4 aufweisen.
Die Externeinrichtung 4 weist eine Mehrzahl von Vorrichtungen
auf, wie zum Beispiel eine Konsole zum Eingeben von Daten und eine
Alarmlampe, um das Auftreten eines defekten Produktes anzukündigen.
Zusätzlich
kann eine programmierbare Steuerung und ein Personal Computer als
die externe Ausrüstung 4 angeschlossen
werden.
-
Die Bildverarbeitungsvorrichtung 1 weist
auf: eine CPU 5 als eine Hauptkomponente für den Steuerbetrieb,
eine Randintensitäts-Extraktionseinheit 6, eine
Randcode-Extraktionseinheit 7,
einen Bildspeicher 8, einen Flashspeicher 9, einen
Arbeitsspeicher 10, einen Graphikspeicher 11,
eine Schnittstellenschaltung 12 für die Kamera 2, eine
Schnittstellenschaltung 13 für den Monitor 3 und
eine Schnittstellenschaltung 14 für die Externeinrichtung 4 (nachfolgend
als "die Kameraschnittstelle 12", "die Monitorschnittstelle 13" und "die Externeinrichtungsschnittstelle 14" bezeichnet),
wobei "die Schnittstelle" in 1 als "I/F" bezeichnet
ist.
-
Im Flashspeicher 9 ist ein
Programm gespeichert, welches die Verarbeitungsschritte der CPU 5 und
Voreinstellungen unterschiedlicher Parameter aufweist. Außerdem wird
der Benutzerdatensatz, wie zum Beispiel der Parameterwertsatz, in
den Flashspeicher geschrieben, wenn es die Situation erfordert.
-
Der Arbeitsspeicher 10 wird
zum Lesen und Schreiben der Arbeitsdaten verwendet, welche während einer
Reihe von mittels der CPU 5 durchgeführten Steuerbetrieben erzeugt
werden. Im Graphikspeicher 11 sind die Daten gespeichert,
welche zum Anzeigen eines Fensters benötigt werden, welches einen
Messbereich 22 angibt, eines Bildschirms zum Setzen von
Parametern und eines Cursors auf dem Bild.
-
Der Bildspeicher 8 hat eine
Kapazität,
welche ausreicht, um eine Mehrzahl von Bildrahmen einzeln zu speichern.
Der Bildspeicher 8 speichert die Bilddatenausgabe von der
Randintensitäts-Extraktionseinheit 6 und
der Randcode-Extraktionseinheit 7 einerseits und führt andererseits
die Bilddaten zur CPU 5 durch einen CPU-Bus 15 zu.
Ferner ist die CPU 5 geeignet, um die Bilddaten, welche
mit dem später
beschriebenen Verarbeitungsergebnisbild assoziiert sind, in einen
vorbestimmten Speicherbereich des Bildspeichers 8 zu schreiben.
-
Die Kamera 2 ist von einer
solchen Art, dass sie ein Standbildsignal in analoger Form ausgibt.
Die Kameraschnittstelle 12 weist einen Eingangsanschluss
zur Kamera 2 und einen A/D-Wandler auf zum Konvertieren
eines Analogbildsignals, welches vom Eingangsanschluss eingebracht
wird, in ein Digitalsignal. Nach der Konversion von analogen zu
digitalen Signalen werden die Graustufenbilddaten zur Randintensitäts-Extraktionseinheit 6 und
parallel dazu zur Randcode-Extraktionseinheit 7 zugeführt und
gleichzeitig an die Monitorschnittstelle 13 ausgegeben.
-
Die Monitorschnittstelle 13 weist
zusätzlich zu
einem Ausgangsanschluss zum Monitor 3 einen D/A-Wandler,
eine Bildsynthetisierschaltung und einen Schaltkreis auf. Die Bildausgabe
vom Bildspeicher 8 oder dem Graphikspeicher 11 oder
dem Graustufenbild von der Kameraschnittstelle 12 wird
in eine oder eine Mehrzahl von Bildern synthetisiert und zum Monitor 3 ausgegeben.
Der Ausgabebild-Schaltbetrieb der Monitorschnittstelle 13 wird
von der CPU 5 gesteuert, welche den Schaltbetrieb vom Bediengerät u.ä. empfangen
hat.
-
Die Randintensitäts-Extraktionseinheit 6 und die
Randcode-Extraktionseinheit 7 sind Chipteile, welche ein
Schieberegister, einen Logikschaltkreis und eine Tabelle aufweisen.
Die Randintensitäts-Extraktionseinheit 6 dient
zum Bestimmen der Größe des Dichtegradienten
(Randintensität)
jedes Pixels des Graustufenbildes, welches von der Kameraschnittstelle 12 eingegeben
wird, und die Randcode-Extraktionseinheit 7 dient zum Bestimmen
der Winkeldaten, welche die Richtung der Ränder in jedem Pixel (nachfolgend
als "der Randcode" bezeichnet) des
gleichen Graustufenbildes angeben.
-
Die Randintensität korrespondiert zur Größe des resultierenden
Vektors der Dichtegradientenvektoren (welche die Richtung und die
Größe der Dichtegradienten
anzeigen) in X- und Y-Richtungen der zu berücksichtigenden Randpixel. Gemäß dieser Ausführungsform
werden die Graustufenbilddaten mit einem weißen Pegel durch einen Hochdichtewert formuliert,
und die Richtung des Dichtegradienten wird als die Richtung abnehmender
Dichte definiert. Der Randcode korrespondiert zur Richtung des Dichtegradienten,
um +90 Grad oder -90 Grad gedreht, und ist als ein Winkel bezüglich der
Positivrichtung entlang der X-Achse beschrieben.
-
Im Hinblick auf ein detailliertes
Verfahren zur Berechnung der Randintensität und des Randcodes wird auf
die oben zitierte Quellenangabe verwiesen. Die Randintensitäts-Extraktionseinheit 6 und
die Randcode-Extraktionseinheit 7 gemäß dieser Ausführungsform
weisen eine Tabelle auf, um die Randintensität und den Randcode der Pixel
im Zentrum eines Maskenbereiches vorbestimmter Größe zu bestimmen,
basierend auf der Dichteverteilung in der Maske, gemäß der Berechnungsgleichung,
wie sie in der Quellenangabe beschrieben ist. Bei dem Extraktionsprozess
werden die Dichtedaten der Pixel, welche von der Kameraschnittstelle 12 ausgegeben
werden, sequenziell eingegeben, während auf die Tabelle zugegriffen
wird, wodurch die Randintensität
und der Randcode jedes Pixels mit hoher Geschwindigkeit extrahiert
wird.
-
Die Randintensität-Extraktionseinheit 6 erzeugt
ein Bild mit den Randintensitäten,
welche gemäß dem Array
der Pixel angeordnet sind (nachfolgend als "das Randintensitätsbild" bezeichnet) und gibt es an den Bildspeicher 8 aus.
Auf gleiche Weise erzeugt die Randcode-Extraktionseinheit 7 ein
Bild mit den extrahierten Randcodes, welche gemäß dem Pixelarray angeordnet
sind (nachfolgend als "das Randcodebild
bezeichnet") und
gibt es an den Bildspeicher 8 aus.
-
Die CPU 5 führt den
später
beschriebenen Bildverarbeitungsbetrieb aus, wobei das Randintensitätsbild und
das Randccdebild verwendet werden, welche im Bildspeicher 8 gespeichert
sind, und erzeugt somit ein Verarbeitungsergebnisbild, welches das
Ergebnis des Defektdetektion zeigt. Ferner bestimmt die CPU 5 das
Vorhandensein oder das Nichtvorhandensein eines Defektes, indem
ein vorbestimmter Messprozess für
das Verarbeitungsergebnisbild durchgeführt wird, und gibt das Bestimmungsergebnis
durch die Externeinrichtungsschnittstelle 14 aus.
-
Die Bildverarbeitungsvorrichtung 1 gemäß dieser
Ausführungsform
ist vorgesehen, um einen auf dem Bild auftretenden Lineardefekt
zu detektieren, welcher so breit wie mehrere Pixel ist. Daher ist es
notwendig, dass die Position, bei der die Kamera 2 installiert
wird, und die Vergrößerung der
Kamera in einer solchen Weise eingestellt werden, dass ein Bild eines
zu detektierenden Defektes mit einer Breite aufgenommen wird, welche
so breit wie mehrere Pixel ist.
-
2 zeigt
das Prinzip des Defektdetektionsprozesses in der Bildverarbeitungsvorrichtung 1.
-
2(1) zeigt
ein Graustufenbild eines zu verarbeitenden Objektes. Dieses Bild
weist ein Bild 20 eines Linearobjektes auf (nachfolgend einfach
als "das Linearobjekt 20" bezeichnet),
welches äquivalent
zu einem Defekt ist. 2(2) zeigt
in vergrößerter Form
das Ergebnis des Randextraktionsprozesses, welcher auf ein Bild
im Bereich 21, welcher von der gestrichelten Linie in dem
Graustufenbild definiert ist, angewendet worden ist. Die 2(1) und 2(2) zeigen einen Fall, bei dem die Dichte
des Linearobjektes 20 niedriger ist als jene des Hintergrundes.
-
Das Randbild der 2(2) weist zwei Ränder E1 und E2 auf, welche
zu den Längskonturlinien des
Linearobjektes 20 korrespondieren. Dieses Linearobjekt 20,
wie in 2(1) gezeigt,
ist in der Form gekrümmt,
aber die zwei Randlinien E1 und E2 werden als sich im Wesentlichen
parallel in die Längsrichtung
erstreckend betrachtet, wobei sie im Wesentlichen die gleiche Linienbreite
aufweisen. Es wird daher, wie in 2(2) ersichtlich,
ein willkürlicher Punkt
P1 auf dem Rand E1 und ein Punkt P2 auf dem Rand E2 berücksichtigt,
wobei der Punkt P2 zum Punkt P1 entlang der Richtung B orthogonal
zur Randrichtung korrespondiert. In diesem Fall, wo der korrespondierende
Punkt P2 auf dem Rand E2 extrahiert wird, werden die Ränder dieser
Punkte P1 und P2 als im Wesentlichen parallel zueinander betrachtet.
-
Im Fall von 2 ist die Dichte des Linearobjektes 20 niedriger
als jene des Hintergrundes, und daher ist die Richtung des Dichtegradienten
am Punkt P1 entlang der Richtung B zum Punkt P2 gerichtet. Andererseits
ist die Richtung des Dichtegradienten am Punkt P2 entgegengesetzt
zur Richtung B. Solange wie die zwei Ränder E1 und E2 parallel zueinander
sind, sind somit die Richtungen des Dichtegradienten an den beiden
Punkten P1 und P2, welche in entgegengesetztem Bezug zwischen den
Rändern
E1 und E2 sind, zueinander entgegengesetzt.
-
Wie oben beschrieben ist, zeigt der
Randcode die Richtung orthogonal zur Richtung des Dichtegradienten
an. Die Beziehung der Richtung des Dichtegradienten zwischen den
Punkten P1 und P2 kann daher mit gleicher Wirkung ersetzt werden durch
die äquivalente
Beziehung der Randcodes. In 2(2) bestimmt
das Zeichen A1 einen Vektor, welcher am Punkt P1 die Richtung anzeigt,
welche von dem Randcode definiert wird (nachfolgend als "der Randcode-Vektor" bezeichnet), und
das Zeichen A2 bestimmt einen Randcode-Vektor, welcher am Punkt P2
von dem Randcode definiert wird. Diese Vektoren A1 und A2 sind entgegengesetzt
zueinander gerichtet.
-
In dem Fall, wo das gezeigte Linearobjekt eine
höhere
Dichte als der Hintergrund aufweist, ist die Richtung B der Suche
von Punkt P1 zu Punkt P2 (nachfolgend als "die Suchrichtung B" bezeichnet) entgegengesetzt zur Richtung
des Dichtegradienten am Punkt P1. Außerdem sind die Randcode-Vektoren
A1 und A2 an den Punkten P1 und P2 auch in entgegengesetzten Richtungen
gesetzt.
-
Der Defektdetektionsprozess gemäß dieser Ausführungsform
wird mit Bezug auf 2(2) erklärt.
-
Gemäß dieser Ausführungsform
werden die Randpixel auf dem Bild sequenziell berücksichtigt,
so dass ein Randpixel P2 mit einem entgegengesetzten Randcode zu
einem zu berücksichtigenden
Randpixel P1 vom Randpixel P1 aus in einem Bereich korrespondierend
zur Breite W des zu detektierenden Linearobjektes gesucht wird,
entlang der Richtung, welche orthogonal zum Randcode (der Richtung
des Dichtegradienten oder der entgegengesetzten Richtung) des zu
berücksichtigenden
Randpixels P1 ist. In dem Fall, wo ein Randpixel, welcher die Suchbedingungen
erfüllt,
erfolgreich extrahiert wird, wird ein Liniensegment mit einer vorbestimmten
Länge L
in die Richtung C parallel zum Randcode-Vektor A1 gesetzt, welcher
zu dem zu berücksichtigenden
Randpixel P1 zugehörig
ist, mit einem Punkt Q, welcher ein Ursprung/Startpunkt zwischen
dem extrahierten Randpixel P2 und dem zu berücksichtigenden Randpixel P1
ist.
-
Bei diesem Liniensegmentsetzprozess
wird die Randintensität
des zu berücksichtigenden
Randpixels zum Pixelwert (anfänglich
Null) jedes konstituierenden Pixels des zu setzenden Liniensegments addiert,
wobei dies im Speicherbereich für
das Verarbeitungsergebnisbild im Bildspeicher 8 geschieht.
-
Wenn der Liniensegmentsetzprozess
für jeden
die Ränder
E1 und E2 des Linearobjektes 20 bildenden Randpixel durchgeführt wird,
werden die Liniensegmente, welche zu einer Mehrzahl von benachbarten
Randpixeln zugehörig
sind, überlagert und
miteinander verbunden. Die Neigung jedes Liniensegmentes ist parallel
zur Randrichtung eines korrespondierenden Randpixels.
-
Solange die Länge eines Liniensegmentes hinreichend
ist, spiegelt daher das Bild, welches durch Überlagerung und Verbinden wie
oben beschrieben gebildet ist (nachfolgend als "das Montagebild" bezeichnet) die Neigung und die Krümmung des
Linearobjektes wider.
-
Jeder konstituierende Pixel des Montagebildes
wird auf einen numerischen Wert gesetzt, welcher äquivalent
zur gesamten Randintensität
der Randpixel ist, korrespondierend zu einer Mehrzahl von überlagerten
Liniensegmenten. Daher kann das Linearobjekt einfach von den anderen
Abschnitten unterschieden werden. Zu diesem Zeitpunkt, wenn dieser
Prozess für
alle Randpixel auf dem Eingabebild beendet ist, wird gemäß dieser
Ausführungsform das
Verarbeitungsergebnisbild mittels eines vorbestimmten Schwellenwertes
in Binärwerte
zerlegt, und dieses Binärbild
wird für
die Messung verwendet, um die Anwesenheit oder Nichtanwesenheit
eines Defektes zu bestimmen, und dieses Binärbild wird auf dem Monitor 3 angezeigt.
-
Bei dem Suchprozess für einen
korrespondierenden Punkt wird nicht nur ein Pixel mit einem Randcode,
welcher sich um 180 Grad von dem Randcode des zu berücksichtigenden
Pixels unterscheidet, sondern auch ein Pixel mit einem Randcode
innerhalb eines vorbestimmten Fehlerbereichs von der Richtung, welche
sich von dem zu berücksichtigenden
Pixel unterscheidet, wünschenswerterweise
extrahiert. Besonders in dem Fall, wo ein zu detektierendes Linearobjekt
eine variierende Breite oder einen unregelmäßig ungleichmäßigen Rand aufweist,
wird der oben erwähnte
Fehlerbereich wünschenswerterweise
auf einen etwas größeren Wert gesetzt.
-
Bei diesem Suchprozess können die
Pixel, welche die Ränder
eines Linearobjektes konstituieren, mit hoher Genauigkeit von all
denjenigen Pixeln bestimmt werden, welche in einem zu verarbeitenden Graustufenbild
enthalten sind.
-
Als nächstes wird mit Bezug auf die 3 und 4 der Prozess zum Setzen von Parametern,
um nach dem korrespondierenden Punkt zu suchen und um ein Liniensegment
zu setzen, für
die Inspektion eines Lineardefektes, basierend auf dem oben beschriebenen
Prinzip, erklärt.
-
3 zeigt
einen Anzeigeschirm eines zu verarbeitenden Graustufenbildes. In 3 bezeichnet das Bezugszeichen 22 einen
vom Anwender gesetzten Messbereich. Zu Illustrationszwecken ist
das Bild von 3 als Binärbild dargestellt.
Tatsächlich jedoch
ist es ein Bild mit einer Dichteverteilung (dieses Graustufenbild
wird nachfolgend als "Verarbeitungsbild" bezeichnet). Die 4A, 4B und 4C zeigen
Anzeigeschirme für
das Verarbeitungsergebnisbild im Messbereich 22. Für die verwendeten
Parameter wird eine Bestätigungsschaltfläche 24 zum Festlegen
der Parameter usw. am Rand des Anzeigeschirms angezeigt. Die Verarbeitungsergebnisbilder
von 4 sind zu Illustrationszwecken
als Umkehrbild dargestellt.
-
In 4 ist
die "Geradlinienbreite" ein Parameter, welcher
den Suchbereich W für
den Suchprozess für
einen korrespondierenden Punkt anzeigt, und die "Geradlinienlänge" ist ein Parameter, welcher die Länge L des
gesetzten Liniensegmentes basierend auf dem Vektor C anzeigt. Ferner
ist der "untere Grenzwert" ein Binärschwellwert
zur Binärverarbeitung
des Verarbeitungsergebnisbildes.
-
Das in 3 gezeigte
zu verarbeitende Bild weist ein Bild 23 des Konturabschnittes eines
benachbarten Objektes (nachfolgend als "das Konturbild 23" bezeichnet)
wie auch das Linearobjekt 20, welches einen Defekt hat,
auf.
-
Das in 4A gezeigte
Verarbeitungsergebnisbild weist ein Montagebild 20a des
korrespondierenden Liniensegmentes für das Linearobjekt 20 bzw.
ein Montagebild 23a des korrespondierenden Liniensegmentes
des Konturbildes 23 auf. Beide Montagebilder 20a und 23a spiegeln
die Geometrie der Originalbilder mit hoher Genauigkeit wider.
-
Andererseits zeigt das Verarbeitungsergebnisbild
von 4B das Ergebnis
des Nachdetektionsprozesses, welcher bei einer kleineren Geradlinienbreite
W als im Fall von 4A durchgeführt worden
ist. Bei diesem Bild ist das Montagebild 23a, korrespondierend
zum Konturbild 23, mit einer dicken Linienbreite verschwunden,
und nur das Montagebild 20a, korrespon dierend zu einem
Linearobjekt 20, mit einer dünnen Linienbreite wird angezeigt.
-
Das Verarbeitungsergebnisbild von 4C zeigt das Ergebnis des
Nachdetektionsprozesses, welcher mit einer größeren Geradlinienlänge L als
im Fall von 4A durchgeführt worden
ist. Auch in diesem Bild, wie in 4A,
sind das zum Linearobjekt 20 korrespondierende Montagebild 20a und
das zum Konturbild 23 korrespondierende Montagebild 23a angezeigt.
Weil jedoch der gesetzte Wert der Geradlinienbreite L sehr groß ist, wird
eine Rauschkomponente erzeugt, welche sich von der Originalform
des Originalbildes entfernt.
-
Wie oben beschrieben ist, schaffen
die gesetzten Werte der Geradlinienbreite W und der Geradlinienlänge L wichtige
Parameter, um die Detektionsgenauigkeit des Linearobjektes zu bestimmen. Der
untere Grenzwert, welcher einen Binärschwellwert des Verarbeitungsergebnisbildes
schafft, kann, obgleich in den 4A bis 4C festgesetzt, geändert werden,
um den mit den Randpixeln erscheinenden Grad der Rauschkomponenten
einzustellen, welche fehlerhafterweise durch den Suchprozess für den korrespondierenden
Punkt extrahiert worden sind (dieser untere Grenzwert wird nachfolgend
als "der unter Grenzwert
S" bezeichnet).
-
Wie in 4 gezeigt
ist, werden im Bildverarbeitungsbetrieb gemäß dieser Ausführungsform die
gesetzten Werte der Parameter, welche die Geradlinienbreite W, die
Geradlinienlänge
L und den unteren Grenzwert S aufweisen, im Setzmodus vor der Inspektion über den
gesamten Skalenbereich geändert,
während
das Verarbeitungsergebnisbild korrespondierend zu den gesetzten
Werten erzeugt und dasselbe Ergebnisbild auf dem Monitor 3 angezeigt wird.
Der Benutzer, welcher den Monitor 3 beobachtet, stellt
den Wert jedes Parameters ein, und er legt den gesetzten Wert durch
Betätigen
der Bestätigungsschaltfläche 24 fest.
Bei dieser Bestätigungsbetätigung wird
der gesetzte Wert jedes Parameters im Flashspeicher 9 gespeichert, und
basierend auf diesen gesetzten Werten wird eine Defektinspektion durchgeführt. Im
Setzmodus wird das Verarbeitungsergebnisbild für die Anzeige erzeugt, indem
die Schritte ST1 bis ST13 in 5 ausgeführt werden. Die
Einzelheiten dieser Schritte sind unten beschrieben.
-
In 5 sind
die Inspektionsverarbeitungsschritte in der Bildverarbeitungsvorrichtung 1 dargestellt.
Dieser Inspektionsprozess wird zu dem Zeitpunkt durchgeführt, nachdem
ein Analogbildsignal von der Kamera 2 in die Kameraschnittstelle 12 eingegeben
und in die Digitalform konvertiert worden ist, und ferner der Extraktionsprozess
durch die Randintensitäts-Extraktionseinheit 6 und
die Randcode-Extraktionseinheit 7 beendet ist. In der nachfolgenden Beschreibung
und in 5 ist jeder Schritt
mit "ST" bezeichnet.
-
Als erstes werden in den Schritten
ST1 und ST2 die Koordinaten (x, y) des zu berücksichtigenden Pixels auf die
Position (x1, y1) in der oberen linken Ecke im Messbereich 22 gesetzt,
und danach wird der unten beschriebene Prozess wiederholt, bis der zu
berücksichtigende
Pixel eine Position (x2, y2) in der unteren rechten Ecke im Messbereich
erreicht.
-
Im Schritt ST3 wird die Randintensität Ei (x, y)
des zu berücksichtigenden
Pixels geprüft,
wobei das Randintensitätsbild
verwendet wird. In dem Fall, wo die Randintensität Ei (x, y) größer als
ein vorbestimmter Schwellenwert Eh ist, wird der Prozess zum nächsten Schritt
ST4 fortgesetzt, während
andererseits in dem Fall, wo die Randintensität Ei (x, y) nicht größer als
der Schwellenwert Eh ist, die Schritte einschließlich des Schrittes ST4 und
nachfolgend zu ST4 übersprungen
werden und der Prozess mit Schritt ST9 fortgesetzt wird, um den
zu berücksichtigenden
Pixel zu ändern.
-
In Schritt ST4 wird der Randcode
Ec (x, y) des zu berücksichtigenden
Pixels ausgelesen, wobei das Randcodebild verwendet wird, und die
Suchrichtung wird mit Bezug auf den Randcode Ec (x, y) gesetzt.
Gemäß dieser
Ausführungsform
werden der Randcode und die Richtung des Dichtegradienten in die
Richtung entlang der positiven X-Richtung mit 0 Grad formuliert.
In dem Fall, wo ein Linearobjekt eine niedrigere Dichte als der
Hintergrund aufweist, wird die Richtung, welche äquivalent zum Randcode Ec (x,
y) plus 90 Grad ist, als die Suchrichtung gesetzt. In dem Fall,
wo ein Linearobjekt eine höhere
Dichte als der Hintergrund aufweist, wird andererseits die Richtung,
welche äquivalent
zum Randcode Ec (x, y) minus 90 Grad ist, als die Suchrichtung bestimmt.
-
Wenn die Suchrichtung bestimmt ist,
werden die Pixel von dem zu berücksichtigenden
Pixel einer nach dem anderen entlang der Suchrichtung gescannt,
wobei wieder das Randcodebild verwendet wird, und der Randcode für jede Scanposition
wird mit dem Randcode Ec (x, y) des zu berücksichtigenden Pixels verglichen.
In dem Fall, wo der Unterschied zwischen den beiden Randcodes einen
numerischen Wert zwischen dem erlaubten Fehlerbereich bezüglich 180
Grad einnimmt, wird die momentane Scanposition als ein Punkt korrespondierend
zu dem zu berücksichtigenden
Pixel betrachtet, und die Antwort in Schritt ST6 wird mit JA ausgegeben.
-
In dem Fall, wo andererseits der
Randcode an der Scanposition die oben beschriebenen Bedingungen
nicht erfüllt,
ist die Antwort in Schritt ST6 NEIN, so dass zu prüfen ist,
ob die Suche entlang der Geradlinienbreite W durchgeführt worden
ist. In dem Fall, wo die Antwort NEIN ist, wird ein Pixel in der Suchrichtung
gescannt, und der Schritt ST6 wird erneut durchgeführt.
-
Wenn auf diese Weise ein korrespondierender
Punkt innerhalb des Bereiches der Geradlinienbreite W extrahiert
ist, wird der Scanprozess sofort beendet, und der Prozess wird mit
Schritt ST7 fortgesetzt. In Schritt ST7 wird der Liniensegmentsetzprozess
durchgeführt,
basierend auf dem Randcode Ec (x, y) und der Geradlinienlänge L mit
dem Zwischenpunkt (Punkt Q in 2(2))
zwischen dem zu berücksichtigen den
Pixel und dem korrespondierenden Punkt als ein Ursprung. Dieser
Liniensegmentsetzprozess wird durchgeführt, indem die Randintensität Ei (x,
y) zu dem Wert der Pixel hinzugefügt wird, welche das Liniensegment
in dem Speicherbereich für das
Verarbeitungsergebnisbild konstituieren, wie oben beschrieben.
-
Auf gleiche Weise wird ein Punkt
korrespondierend zu jedem Randpixel mit einer Randintensität, welche
höher als
der Schwellenwert Eh in dem Messbereich 22 ist, sequenziell
gesucht, und der Liniensegmentsetzprozess wird für jeden Randpixel durchgeführt, für den der
korrespondierende Punkt durch den Suchprozess extrahiert worden
ist. Am Ende des Setzprozesses im Messbereich schwenkt die Antwort in
Schritt ST12 auf JA, und der Prozess wird mit Schritt ST13 fortgeführt, wo
jeder Pixel des Verarbeitungsergebnisbildes basierend auf dem unteren Grenzwert
S in Binärwerte
zerlegt wird.
-
Im nächsten Schritt ST14 werden
die Pixel des in Binärwerte
zerlegten Verarbeitungsergebnisbildes, welche den unteren Grenzwert
S überschritten
haben und auf "1" gesetzt worden sind,
extrahiert, und ein Bildbereich mit einer sukzessiven Reihe dieser
Pixel wird ausgeschnitten und etikettiert. Ferner wird in Schritt
ST15 der Bereich des so etikettierten Bildbereiches berechnet. In
Schritt ST16 wird das Berechnungsergebnis geprüft, um zu erkennen, ob es einen
vorbestimmten Schwellenwert SO überschreitet
oder nicht. In dem Fall, wo das Berechnungsergebnis den Schwellenwert
SO überschreitet,
schreitet der Prozess zum Schritt ST17 fort, wo ein Signal ausgegeben
wird, welches anzeigt, dass ein Defekt vorliegt. In dem Fall, wo
das Berechnungsergebnis den Schwellenwert SO nicht überschreitet,
wird andererseits der Prozess zu Schritt ST18 fortgesetzt, wo ein
Signal ausgegeben wird, welches nicht anzeigt, dass ein Defekt vorliegt.
Das in Schritt ST14 etikettierte Montagebild ist nicht auf eines
begrenzt, sondern eine Mehrzahl von Montagebildern können einbezogen
sein. In dem Fall, wo der Bereich irgendeines der Montagebilder
den Schwel lenwert SO überschreitet,
schwenkt die Festlegung in Schritt ST16 auf JA.
-
Bevor die Inspektion durchgeführt und
die Parameter gesetzt werden, ist es erforderlich, dass der Prozess
des Setzens des Messbereiches 22 und der Prozess des Setzens
der Suchrichtung für
einen korrespondierenden Punkt durchgeführt worden sind. Der Messbereich
kann jedoch das gesamte Bild sein. Ferner ist die Suchrichtung für einen
korrespondierenden Punkt nicht auf eine begrenzt, sondern kann sowohl
die Richtung des Randcodes Ec (x, y) plus 90 Grad als auch minus
90 Grad sein.
-
Ferner ist der Ursprung, von dem
ein Liniensegment gesetzt ist, nicht notwendigerweise ein Punkt
zwischen dem zu berücksichtigenden
Randpixel und einem korrespondierenden Randpixel, sondern irgendeiner
dieser Pixel. Als eine weitere Alternative kann eine Mehrzahl von
Liniensegmenten zwischen diesen Pixeln gesetzt werden. Ferner ist
die Richtung, in die sich das Liniensegment erstreckt, nicht auf
eine begrenzt, sondern eine Mehrzahl von Liniensegmenten können in
zwei Richtungen vom Ursprung erstreckt werden.
-
In dem Fall, wo ein Punkt korrespondierend zu
dem zu berücksichtigenden
Randpixel in Schritt ST6 von 5 gefunden
wird, kann ferner nach der Durchführung des Schrittes ST7 der
Prozess folgen, bei dem die Randintensität am korrespondierenden Punkt
auf eine Randintensität
neu beschrieben wird, welche nicht als ein Randpixel verifiziert
ist, wie zum Beispiel der Schwellenwert Eh oder 0. Indem so vorgegangen
wird, wird ein Satz gegenüberliegender Randpixel
daran gehindert, dem Suchprozess oder dem Liniensegmentsetzprozess
zum zweiten Mal ausgesetzt zu werden. Somit wird der Prozess mit höherer Geschwindigkeit
durchgeführt.
-
In dem Fall, wo ein Randpixel, welcher
als ein korrespondierender Punkt extrahiert worden ist, dem nachfolgenden
Prozess auf diese Weise nicht ausgesetzt ist, wird in Schritt ST7 ein
Liniensegment, welches sich in zwei Richtungen vom Ursprung erstreckt,
vorzugsweise gesetzt.
-
Wenn bei der Defektinspektion, basierend auf
den in den 2 bis 5 beschriebenen Techniken, die
Parameter korrekt gesetzt sind, wie in 4B gezeigt, kann ein Bild mit im Wesentlichen
den gleichen Merkmalen wie der Form des Linearobjektes erzeugt werden
mittels eines Montagebildes der Liniensegmente, welche die Neigung
an jeder Position des Randes in der Längsrichtung des Linearobjektes
widerspiegeln. Somit kann nicht nur ein geradliniges Defektobjekt,
sondern auch ein Defekt-Linearobjekt mit gekrümmter Form, wie zum Beispiel
ein Haar- und Fadenüberstand,
oder mit einer unebenen Oberfläche,
wie ein Riss, mit hoher Genauigkeit detektiert werden.
-
Bei diesem Liniensegmentsetzprozess
wird ein Liniensegment mit einer gewichteten Randintensität des zu
berücksichtigenden
Randpixels gesetzt. In dem Fall, wo die Randintensität jedes
Randpixels aufgrund eines geringen Kontrastes des Eingabebildes
schwach ist, kann daher die Überlagerung
der Liniensegmente das Gewicht des Montagebildes gegen den Hintergrund
verstärken,
wodurch es möglich gemacht
wird, ein Bild mit einem Defekt zu erzeugen, welcher sowohl in Form
als auch Größe deutlich
erkennbar ist.
-
Es sei angenommen, dass ein Rand
einen Randabfall mit einer niedrigeren Randintensität als dem
Schwellenwert Eh entwickelt hat. Solange, wie die Geradlinienlänge auf
einen genügend
großen Wert
gesetzt ist, kann jedoch die Neigung des Randabfallabschnittes ergänzt werden,
indem die zu den benachbarten Randpixeln zugehörigen Liniensegmente verbunden
werden. Daher kann ohne den Prozess der Liniensegment-Integration
der Defekt, welcher den Abfallabschnitt aufweist, durch den Algorithmus
für den
normalen Inspektionsprozess detektiert werden. Somit kann eine hochgenaue
Inspektion durchgeführt
werden, ohne den Aufwand des Steuerbetriebes auf der CPU 5 zu
erhöhen.
-
Ferner werden gemäß dieser Ausführungsform
die gesetzten Parameterwerte eingegeben, während das auf dem Monitor 3 angezeigte
Bild beobachtet wird. Als eine Alternative können die Parameter automatisch
gesetzt werden, indem die Schritte wie in 6 gezeigt ausgeführt werden.
-
Die in 6 gezeigten
Schritte verdeutlichen, was mit "das
Bergsteigerverfahren" bezeichnet ist.
Vor der Ausführung
dieser Schritte wird eine Mehrzahl von Modell-Graustufenbildern
(nachfolgend als "die
Modellbilder" bezeichnet),
welche einen Defekt aufweisen, in die Bildverarbeitungsvorrichtung 1 eingegeben,
und ein Binärbild,
welches anzeigt, ob jedes Pixel der Modellbilder einen Defekt aufweist
oder nicht (nachfolgend als "das
Modelldefektbild" bezeichnet),
wird für
jedes dieser Modellbilder gesetzt. Das Modelldefektbild wird durch
die Benutzerbetätigung
erzeugt, bei welcher die Defektposition der Modellbilder bestimmt
wird. Zum Beispiel werden die Modellbilder sequenziell auf dem Monitor 3 angezeigt,
während
der Benutzer angewiesen ist, eine Mehrzahl von Defektpunkten auf
den Konturlinien auf dem Bildschirm zu bezeichnen. Die Pixel im Bildbereich,
welche durch Verbinden der bezeichneten Punkte gebildet werden,
werden auf "1" gesetzt, und die
Pixel außerhalb
des Bereiches werden auf "0" gesetzt. Auf diese
Weise kann das Modelldefektbild erzeugt werden. (Beim Bezeichnen
der Punkte auf den Konturlinien wird empfohlen, dass das Bild in vergrößerter Form
angezeigt wird.) In 6 sind
die Schritte (ST) durch Zahlen, beginnend mit 101, bezeichnet.
-
Nach vollständiger Eingabe der Modellbilder und
Erzeugung der Modelldefektbilder, wie oben beschrieben, wird der
Prozess mit Schritt ST101 fortgesetzt, wo die Anfangswerte der Parameter,
wie zum Beispiel die Geradlinienbreite B, die Geradlinienlänge L und
der untere Grenzwert S, ausgelesen werden und vorläufig als
optimale Werte der jeweiligen Parameter gesetzt werden. Die Standard-Parameterwerte,
welche in dem Flashspeicher 9 gehalten werden, können als
die Anfangswerte der Parameter verwendet werden.
-
Als nächstes wird in Schritt ST102
jedes Modellbild genau untersucht, wobei die Optimalwerte der Parameter
verwendet werden. Beim Untersuchungs-/Inspektionsprozess für jedes
Modellbild werden die Schritte, welche ähnlich zu jenen der in 5 gezeigten sind, ausgeführt, nachdem
ein Binärinspektions-Ergebnisbild
erzeugt wird, in welchem die konstituierenden Pixel eines Montagebildes,
welches als Defekt bestimmt wird (ein Montagebild einer Größe, welche
den Bereich SO überschreitet),
auf "1" gesetzt sind und
die anderen Pixel auf "0" gesetzt sind.
-
Nach Abschluss der Inspektion wird
der Bewertungswert EO der Inspektion berechnet. Der Bewertungswert
EO wird aus der untenstehenden Gleichung (1) bestimmt, wobei das
Inspektionsergebnisbild jedes Modellbildes und des Modelldefektbildes verwendet
werden. Gleichung (1) wird auch in den Schritten ST105 und ST106
verwendet, und daher wird der Bewertungswert allgemein als E ausgedrückt.
-
-
In obiger Gleichung (1) bezeichnet
das Zeichen N die Anzahl von Pixeln, welche das Modellbild konstituieren,
das Zeichen T die Anzahl der Modellbilder und MTN das Bestimmungsergebnis
für jeden Pixel
jedes Modellbildes. Das Bestimmungsergebnis wird erzielt, indem
das Inspektionsergebnisbild, welches vom Modellbild erzeugt wird,
mit dem Modelldefektbild verglichen wird. Insbesondere in dem Fall,
wo der gleiche Wert auf die korrespondierenden Pixel zwischen dem
Inspektionsergebnisbild und dem Modelldefektbild gesetzt wird, wird
MTN als +1 bestimmt, während
in dem Fall, wo unterschiedliche Werte gesetzt werden, MTN als -1
bestimmt wird.
-
Im nächsten Schritt ST104 wird einer
der ausgewählten
Parameter, welcher die Geradlinienbreite W, die Geradlinien länge L und
den unteren Grenzwert S aufweist, gewählt. Es sei angenommen, dass
zum Beispiel die Geradlinienbreite W gewählt wird. Im Schritt ST105
wird der gewählte
Parameter auf einen Wert gesetzt, welcher vom Optimalwert um eine
Zufallszahl α vergrößert ist,
und die Inspektion wird durch ein im Vergleich zu Schritt ST102 ähnliches
Verfahren durchgeführt.
In Schritt ST106 wird der Parameter auf einen Wert gesetzt, welcher
vom Optimalwert um α verringert
worden ist, und die Inspektion wird in ähnlicher Weise durchgeführt.
-
In Schritt ST107 werden die Bewertungswerte
mit Gleichung (1) berechnet, basierend auf dem Ergebnis der Inspektion,
welche in den Schritten ST105 und ST106 durchgeführt worden ist. In dem Fall,
wo mindestens einer der Bewertungswerte höher als der oben beschriebene
Bewertungswert EO ist, wird der Prozess von Schritt ST108 zu Schritt ST109
fortgesetzt, wo der Wert EO durch den größten der drei Bewertungswerte überschrieben
wird. Ferner wird in Schritt ST110 der Optimalwert der gewählten Parameter
durch den Parameterwert überschrieben,
welcher durch Überschreiben
des Wertes EO erzielt wird.
-
Danach wird, indem zu Schritt ST105
zurückgekehrt
wird, der Prozess, welcher ähnlich
zu dem oben beschriebenen Prozess ist, wiederholt durchgeführt. In
dem Fall, wo der Bewertungswert EO jenseits des Bewertungswertes
des Inspektionsergebnisses der Schritte ST105 und ST106 zu einem
vorbestimmten Zeitpunkt ansteigt, kehrt der Prozess von ST108 durch
ST111 zu ST104 zurück,
um einen zweiten Parameter ( zum Beispiel L) zu wählen. Wenn
der Optimalwert dieses Parameters und der größte Wert des Bewertungswertes
EO durch den gleichen Prozess bestimmt sind, wird der Prozess wieder
durch die Schritte ST108 und ST111 bis zu ST104 zurückgeführt, wo
ein dritter Parameter (zum Beispiel S) gewählt wird und ein ähnlicher
Prozess ausgeführt
wird.
-
Nachdem alle Parameter auf diese
Art ausgewählt
sind, schwenkt die Antwort in Schritt ST111 auf JA, und im nächsten Schritt
ST112 wird der momentane Optimalwert jedes Parameters des Zeitpunktes
verglichen, wenn der erste Parameter W gewählt ist. In dem Fall, wo die
Optimalwertsätze
voneinander unterschiedlich sind, kehrt der Prozess zu Schritt ST104
zurück,
und der erste Parameter wird wieder gewählt.
-
Auf gleiche Weise wird der Prozess
der Schritte ST104 bis ST112 wiederholt, bis der Bewertungswert
EO und die Optimalwerte der Parameter festgelegt sind. Wenn die
Bewertungswerte EO und der Optimalwert jedes Parameters festgelegt
werden, schreitet der Prozess von Schritt ST112 zu ST113 fort, und
der Optimalwert jedes Parameters zum vorherrschenden Zeitpunkt wird
als ein Wert des Inspektionsparameters festgelegt und im Flashspeicher 9 gespeichert.
-
Aus der vorhergehenden Beschreibung
ist somit ersichtlich, dass mit dem erfindungsgemäßen Bildverarbeitungsverfahren
und der erfindungsgemäßen Bildverarbeitungsvorrichtung
ein gekrümmtes
Linearobjekt und ein geringfügig
unebenes Linearobjekt genauso wie ein geradliniges Objekt einfach
und genau detektiert werden können.
Außerdem
kann, sogar mit Bezug auf ein Bild mit einer geringen Randextraktionsgenauigkeit
eines Linearobjektes, das Linearobjekt mit hoher Genauigkeit gemäß einem
gewöhnlichen
Algorithmus detektiert werden, indem die Parameter eingestellt werden.
Somit kann der Prozess der Detektion eines Linearobjektes mit höherer Geschwindigkeit
durchgeführt
werden, ohne dass der Aufwand des Steuerbetriebes zunimmt.