-
Die
vorliegende Erfindung betrifft ein Bildverarbeitungsverfahren und
eine Bildverarbeitungsvorrichtung zum Detektieren eines linearen
Objektes wie zum Beispiel einer linearen Schramme, eines Haar- und
Fadenabfalls (nachfolgend gemeinsam als "das Linearobjekt" bezeichnet) auf dem Gebiet der Graustufen-Bilddatenverarbeitung
durch den Computer.
-
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 für alle Zeilen bestimmt, ob
eine 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 unter Verwendung der Randcodes (Ränder) von der Bildverarbeitung
mit hoher Genauigkeit detektiert wird. 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 den einzelnen Spitzen des Histogramms korrespondiert, wird
ein Etikett zugewiesen, welches eindeutig einer bestimmten Spitze
zugehörig
ist. Bei dem mit dem Etikettierungsvorgang erzeugten Etikettbild
wird eine Menge sukzessiver Randbilder mit dem gleichen Etikett
als zu einem Liniensegment korrespondierend verifiziert, und jeder
Menge ein eindeutiges Etikett 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 gibt der gleiche Teil der gleichen Beschreibung an, dass ein
linearer Kratzer 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
muss bei diesem konventionellen Verfahren grundsätzlich eine Anhäufung aufeinanderfolgender Bilder
mit dem gleichen Randcode detektiert werden. Daher können nur
geradlinige Konturlinien detektiert werden, und es ist schwierig,
gekrümmte
Linearobjekte wie zum Beispiel Haare und Fadenabfall 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
ergänzt
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 Steuervorgangs, 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.
-
Aus
US 6 141 437 A sind
ein auf Differenzbildbildung beruhendes Verfahren sowie eine auf
Differenzbildbildung beruhende zugehörige Vorrichtung zur Feststellung
von Lungenknötchen
bekannt.
-
Die
Erfindung ist im Hinblick auf die oben beschriebenen Probleme entwickelt
worden, und sie hat zur Aufgabe, ein Bildverarbeitungsverfahren
und eine Bildverarbeitungsvorrichtung zu schaffen, bei welchem/r
gekrümmte
Linearobjekte und ungleichmäßige 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, bei welchen 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, bei welchen 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 Rand pixel als Grenze ändert, und kann
durch den Differenziationsprozess bestimmt werden, indem das betreffende
Randpixel und eine vorbestimmte Anzahl von benachbarten Pixeldaten verwendet
werden. Die Randrichtung ist, wie in der oben zitierten Patentveröffentlichung,
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, das dem Kreuzungspunkt zwischen einer Konturlinie und
der geraden Linie entspricht, ist entgegengesetzt zur Richtung des
Dichtegradienten des anderen Randpixels (die beiden Randpixel, die
den Punkten entsprechen, 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 aus einem zu verarbeitenden Graustufen bild
extrahiert, und während
sequenziell die extrahierten Randpixel berücksichtigt werden, wird ein
Randpixel, welches als eine entgegengesetzte Richtung des Dichtegradienten
zu derjenigen des gerade berücksichtigten
Randpixels aufweisend verifiziert ist, innerhalb eines vorbestimmten Bereiches
in der Richtung gesucht, welche orthogonal zu der Randrichtung des
gerade berücksichtigten Randpixels
ist. Gleichzeitig wird nach erfolgreicher Extraktion eines Randpixels,
welches die Verifikationsbedingungen erfüllt, ein Liniensegment parallel zur
Randrichtung des gerade berücksichtigten
Randpixels gesetzt, welches durch einen vorbestimmten Punkt auf
einer Linie verläuft,
welche das extrahierten Randpixel mit dem gerade berücksichtigten Randpixel
verbindet. Wenn keine weiteren zu berücksichtigenden Pixel mehr 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 von
einem Pixel, mit dem die Suche gestartet wird, zu einem Pixel, bei
dem die Suche beendet wird, in der Richtung angegeben werden, welche
orthogonal zur Randrichtung des gerade betrachteten Randpixels ist
(nachfolgend als "die
Referenzrichtung" bezeichnet).
Das Pixel, mit dem die Suche gestartet wird, ist nicht auf das gerade
berücksichtigte
Randpixel beschränkt,
sondern kann alternativ ein Pixel sein, welches von dem gerade berücksichtigten
Pixel einen vorbestimmten Abstand in der Referenzrichtung entfernt
ist.
-
Der
Abstand, welcher den Suchbereich repräsentiert, kann auch durch die
Anzahl der Pixel angegeben werden. In dem Fall, wo die Suche nicht
von dem gerade berücksichtigten
Randpixel aus gestartet wird, kann der Suchbereich durch den Abstand von
dem gerade berücksichtigten
Randpixel zu dem Pixel, mit dem die Suche gestartet wird, und den
Abstand von dem gerade be rücksichtigten
Randpixel zu dem Pixel, bei dem die Suche beendet wird, angegeben
werden.
-
Ferner
kann ein Bereich innerhalb eines vorbestimmten Winkels zur Referenzrichtung
als ein Suchbereich definiert werden. In diesem Fall wird der Suchbereich
durch den Winkel zur Referenzrichtung zusätzlich zu den oben beschriebenen
Abständen angegeben.
-
Die
Länge jedes
oben beschriebenen Abstandes wird vorzugsweise gemäß der Breite
des zu detektierenden Linearobjektes gesetzt. In diesem Fall kann,
solange das gerade berücksichtigte
Randpixel die Konturlinie des Linearobjektes bildet, ein Randpixel,
welcher verifiziert ist, die Richtung des Dichtegradienten entgegengesetzt
zu jener des gerade berücksichtigten
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 gerade berücksichtigten Randpixels, sondern
die Richtung des Dichtegradienten eines Randpixels, welches benachbart
zu dem gegenüberliegenden
Randpixel angeordnet ist, ist entgegengesetzt zu jener des gerade
berücksichtigten
Randpixels. Indem der Winkel der Referenzrichtung gemäß dem Zustand
des zu detektierenden Linearobjektes eingestellt wird, kann daher
ein Randpixel extrahiert werden, welches die Verifikationsbedingungen
erfüllt.
-
Ferner
kann der Suchprozess, welcher mit dem gerade berücksichtigten Randpixel gestartet werden
kann, alternativ auch mit einem Pixel gestartet werden, welches
in einem vorbestimmten Abstand von dem gerade berücksichtigten
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 gerade berücksichtigten Randpixel und dem
zu suchenden Pixel innerhalb eines vorbestimmten zulässigen Bereiches
von 180 Grad ist. Der zulässige
Bereich bei diesem Bestimmprozess kann gemäß dem Zustand eines zu detektierenden
Linearobjektes beliebig 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 zulässige
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 zulässige 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, welches verifiziert
werden kann, eine entgegengesetzte Randrichtung zu dem gerade berücksichtigten
Pixel zu haben.
-
Bei
dem Liniensegmentsetzvorgang wird ein Liniensegment parallel zur
Randrichtung des gerade berücksichtigten
Randpixels so eingerichtet, dass es durch einen vorbestimmten Punkt
auf einer Linie verläuft,
welche das Randpixel, welches durch den Suchprozess extrahiert worden
ist, mit dem gerade berücksichtigten
Pixel verbindet. Zum Beispiel kann dieses Liniensegment sich in
die gleiche Richtung wie die Randrichtung des gerade berücksichtigten Randpixels
erstrecken.
-
Bei
dem Liniensegmentsetzvorgang kann auch ein Liniensegment so gesetzt
werden, dass es sich entlang der Richtung, welche entgegengesetzt zu
der Randrichtung des gerade berücksichtigten 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 Suchvorgang des Bildverarbeitungsverfahrens gemäß dieser
Erfindung wird mindestens ein Satz gegenüberliegender Randpixel, deren
Richtung der Dichtegradienten um 180 Grad voneinander verschieden
ist, aus 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 Liniensegmentsetzvorgang
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 dieses Bild angezeigt wird,
kann daher das Detektionsergebnis des Linearobjektes in einer einfach
zu verstehenden Art angezeigt werden.
-
Auch
ist gemäß diesem
Verfahren sogar in dem Fall, wo die Dichteverteilung des Hintergrundes sich
verändert,
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 Suchvorgang 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 Liniensegmentsetzvorgang gesetzt
ist, eingestellt wird. Auf diese Weise kann das Linearobjekt ohne
Rücksicht
auf den Kontrast sicher detektiert werden.
-
Bei
dem Liniensegmentsetzvorgang kann ein Liniensegment an einer willkürlichen
Position zwischen dem gesuchten Pixel und dem gerade berücksichtigten
Pixel gesetzt werden (wobei die Position ein Punkt zwischen dem
gesuchten Pixel und dem gerade berücksichtigten Pixel oder die
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
den 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 diese Werte eingestellt werden, kann daher 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,
anhand des Bildes 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, der der Randintensität eines
gerade berücksichtigten
Randpixels entspricht, 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
der Dichtewert der Pixel ist, 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 dem Linearobjekt entsprechen, 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 berücksichtigten
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
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 sein.
-
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,
das extrahierte Randpixel als ein Nachberücksichtigungs-Randpixel nach
dem Liniensegmentsetzprozess bestimmt.
-
Das
Nachberücksichtigungs-Randpixel
ist als ein Randpixel definiert, welches schon als ein Objekt des
Suchprozesses oder des Liniensegmentsetzprozesses verarbeitet worden
ist. Bei dem Prozess, bei dem das 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 das spezifische Randpixel schon verarbeitet worden
ist, an dem 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 Para meter 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 er wü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, welches 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 des
Suchmittels 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 keine zu berücksichtigenden
Randpixel mehr vorhanden sind, 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,
son dern 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 Suchmittel 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 voll ständigen
Detektionsprozess können
daher die optimalen Werte der Parameter bestimmt werden, während das
Verarbeitungsergebnisbild, 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
Richtung 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 Bildverarbeitungsvorrichtung 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 Posi tion 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 Kon sole 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, welches einen Messbereich 22 angibt,
eines Bildschirms zum Setzen von Parametern und eines Cursors auf
dem Bild benötigt
werden.
-
Der
Bildspeicher 8 hat eine Kapazität, welche ausreicht, um eine
Mehrzahl von Einzelbildern 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 Bildverarbeitungsvorgang aus, wobei das Randintensitätsbild und
das Randcodebild 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, welches 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
jedes 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.
-
Jedes
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 Bildverarbeitungsvorgang
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 diesem Bestätigungsvorgang
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 das 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 das
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ücksichtigenden
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 jedes 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
jedes Pixel des Verarbeitungsergebnisbildes basierend auf dem unteren Grenzwert 5 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 S0 überschreitet
oder nicht. In dem Fall, wo das Berechnungsergebnis den Schwellenwert
S0 ü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 S0 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 S0 ü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 unterworfen 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 unterworfen 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 S0 überschreitet),
auf "1" gesetzt sind und
die anderen Pixel auf "0" gesetzt sind.
-
Nach
Abschluss der Inspektion wird der Bewertungswert E0 der Inspektion
berechnet. Der Bewertungswert E0 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 jedes 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 Geradlinienlänge L und den unteren Grenzwert 5 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 E0 ist, wird der Prozess von
Schritt ST108 zu Schritt ST109 fortgesetzt, wo der Wert E0 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 E0 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 E0 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 E0 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 von dem Zeitpunkt ab 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 E0 und die Optimalwerte der Parameter festgelegt
sind. Wenn die Bewertungswerte E0 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 Steuervorgangs zunimmt.