DE19516274C1 - Optical sensing of objects for control on moving conveyor - Google Patents

Optical sensing of objects for control on moving conveyor

Info

Publication number
DE19516274C1
DE19516274C1 DE19516274A DE19516274A DE19516274C1 DE 19516274 C1 DE19516274 C1 DE 19516274C1 DE 19516274 A DE19516274 A DE 19516274A DE 19516274 A DE19516274 A DE 19516274A DE 19516274 C1 DE19516274 C1 DE 19516274C1
Authority
DE
Germany
Prior art keywords
data
feature vectors
programmable circuit
comparison
arrangement according
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19516274A
Other languages
German (de)
Inventor
Joerg Heitzig
Eberhard Graf
Axel Paetzold
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jenoptik Technologie GmbH
Jenoptik AG
Original Assignee
Jenoptik Jena GmbH
Jenoptik Technologie GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jenoptik Jena GmbH, Jenoptik Technologie GmbH filed Critical Jenoptik Jena GmbH
Priority to DE19516274A priority Critical patent/DE19516274C1/en
Application granted granted Critical
Publication of DE19516274C1 publication Critical patent/DE19516274C1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/0006Industrial image inspection using a design-rule based approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Abstract

Objects that are moved continuously on a conveyor belt are passed across the field of view of a CCD line sensor. The sensor provides an output that is digitised and then is fed to an image processing system. The image processing system consists of a programmable circuit that identifies motion vectors for the objects. The objects, eg pencils (8), lie perpendicular to the CCD, sensor (7) and move across it. The contour of the objects are in the form of position and edge vectors that are stored in a memory and these characterise the geometry. The system has a microcontroller that controls the process.

Description

Die Erfindung betrifft eine Anordnung zur Kontrolle von kontinuierlich an einem Kontrollpunkt vorbeibewegten Objekten, insbesondere zur vielfältigen Fehlerkontrolle von Objekten auf einem Transportband.The invention relates to an arrangement for checking continuously on a Control point moving past objects, especially for diverse ones Error control of objects on a conveyor belt.

In letzter Zeit haben sich zur Automatisierung der Kontrolle von Objekten zwischen einzelnen Bearbeitungsschritten oder als Endkontrolle vor allem optische berührungslose Verfahren durchgesetzt. Dies erfolgt häufig durch Sensorsysteme mit aufwendiger Bildverarbeitung, die sich dank der Entwicklung zunehmend schnellerer Computer - auch mittels eines PCs in Quasi-Echtzeit - durchführen läßt. Das Problem dieser Entwicklung ist also weniger die Verarbeitungsgeschwindigkeit, sondern vielmehr der Preis, den vor allem solche komplexen Bildverarbeitungsprogramme aufweisen. Das ist von um so größerer Bedeutung, da viele Firmen aufgrund wechselnder Produktlinien auf Flexibilität und Unabhängigkeit der Kontrolleinrichtungen angewiesen sind.Lately, the automation of objects control between individual processing steps or as a final inspection, especially optical non-contact procedures enforced. This is often done using sensor systems with complex image processing, which thanks to the development increasingly faster computer - also using a PC in quasi real time - can be carried out. So the problem with this development is less processing speed, but rather the price, especially those complex Have image processing programs. This is all the more important because many companies due to changing product lines on flexibility and independence the control devices are instructed.

Aus der DE 35 19 986 A1 sind Verfahren und Vorrichtung zum Prüfen von gedruckten Verdrahtungskarten bekannt. Es erfolgt ein vollständiger Bildeinzug, und die Bilddaten der Vorgängerkarte werden mit denen der nachfolgenden Verdrahtungskarte verglichen, wobei Ausrichtungsdifferenzen in einem Korrekturvorgang über einen Systemrechner behoben werden.DE 35 19 986 A1 describes methods and apparatus for testing printed wiring cards known. There is a complete image acquisition, and the image data of the previous card are compared with those of the following Wiring card compared, with alignment differences in one Correction process can be corrected using a system computer.

Die US-PS 4,811,410 offenbart ein linear abtastendes Inspektionssystem für Leiterplatten zum Nachweis von Defekten. Eine Zeilenkamera nimmt dabei sukzessive Bilddaten der Leiterbahnen auf, wobei nur repräsentative Daten von interessierenden, vorgewählten Bereichen auf Defekte untersucht werden. Der Datenvergleich erfolgt durch Zuordnung von Datenwörtern aus dem CAD-Datensatz der Verdrahtungskarten.U.S. Patent No. 4,811,410 discloses a linear scanning inspection system for Printed circuit boards for the detection of defects. A line scan camera takes successive image data of the conductor tracks, whereby only representative data of the selected areas of interest are examined for defects. Of the Data is compared by assigning data words from the CAD data set the wiring cards.

Den bekannten Bildverarbeitungssystemen fehlt es demnach an Kompaktheit zur unkomplizierten Prozeßintegration und einfachen Entscheidungsalgorithmen, die eine Vollbildanalyse umgehen.The known image processing systems therefore lack compactness uncomplicated process integration and simple decision algorithms that avoid a full screen analysis.

Letzteren Nachteil weist eine aus der US-PS 5,274,713 bekannte Einrichtung zum Nachweis von Oberflächenfehlern nicht auf, da die dort verwendete Signalverarbeitung auf bestimmte Oberflächendefekte ausgerichtet ist. Dabei wird die Oberfläche quer unter einer feststehenden CCD-Zeile hindurchbewegt. Die von der CCD-Zeile kommenden Signale werden von einer ADU-Einheit in 8-Bit-Datenwörter umgewandelt, einzeln mit einem Vorgabewert verglichen und in Abhängigkeit davon, ob das Datenwort kleiner (gleich) oder größer als der Vorgabewert ist, in einer Binärimpulsfolge codiert. Diese Impulsfolge wird mit einem Statistik-Algorithmus ausgewertet. Das Ergebnis gibt darüber Auskunft, ob ein Gebiet der Oberfläche große, kleine oder keine Fehler enthält. Die Statistik erlaubt Aussagen darüber, ob mehrere kleine Defekte möglicherweise in einen großen Fehler übergehen.The latter disadvantage has a device known from US Pat. No. 5,274,713 Proof of surface defects not because the used there Signal processing is aimed at certain surface defects. Doing so moving the surface across under a fixed CCD line. The of The signals coming from the CCD line are received by an ADC unit  8-bit data words converted, individually compared to a default value and in Depends on whether the data word is smaller (equal) or larger than that The default is coded in a binary pulse train. This pulse train is with a Statistics algorithm evaluated. The result provides information about whether a Surface area contains large, small, or no defects. The statistics allow Statements about whether several small defects may result in one big one Ignore errors.

Der Nachteil dieser Vorgehensweise ist, daß für jeden Grauwert, den eine fehlerfreie Oberfläche als Grundhelligkeit aufweisen kann, ein spezieller Vorgabewert im Speicher abgelegt werden muß, damit Helligkeitsabweichungen bei der Binärcodierung überhaupt als solche codiert werden. Weiterhin erfordert die statistische Auswertung der binären Impulsfolgen, daß erhebliche Datenmengen über längere Zeit verfügbar gehalten werden müssen, so daß eine vollständige Speicherung der Impulsfolgen von einer Vielzahl von CCD-Abtastungen notwendig ist. Außerdem ist lediglich die Anzahl von Defekten (unterschieden nach ihrer Größenklasse) für einen bestimmten Abschnitt der Oberfläche angebbar, jedoch keine Ortszuordnung möglich.The disadvantage of this procedure is that for each gray value there is an error-free one Surface as basic brightness, a special default value in Memory must be stored so that brightness deviations in the  Binary coding can be encoded as such at all. Furthermore, the statistical evaluation of the binary pulse sequences that significant amounts of data must be kept available for a long time, so that a complete Storage of the pulse trains from a large number of CCD scans necessary is. In addition, only the number of defects (differentiated according to their Size class) can be specified for a certain section of the surface, however no location assignment possible.

Der Erfindung liegt die Aufgabe zugrunde, eine neuartige Möglichkeit zur Kontrolle von kontinuierlich an einem Kontrollpunkt vorbeibewegten Objekten zu finden, die als Kompaktmodul für Bildaufnahme und Echtzeit-Bildauswertung auf verschiedene Fehlerarten einstellbar ist und keinen Rechner mit anspruchsvoller Bildverarbeitungssoftware benötigt.The invention has for its object a new way of control of objects continuously moving past a checkpoint that as a compact module for image acquisition and real-time image evaluation on various Error types is adjustable and no computer with demanding Image processing software needed.

Erfindungsgemäß wird die Aufgabe bei einer Anordnung zur Kontrolle von an einem Kontrollpunkt vorbei bewegten Objekten mit einer Bildsensoreinheit, bestehend aus einer CCD-Zeile, die im wesentlichen senkrecht zur Bewegungsrichtung des interessierenden Objekts angeordnet ist, sowie einem angeschlossenen ADU und einer nachgeordneten Bildverarbeitungseinheit mit interner Datenkomprimierung, Datenspeicher für die komprimierten Daten und Taktgenerator, dadurch gelöst, daßAccording to the invention the task at Arrangement for the control of objects moving past a control point with an image sensor unit consisting of a CCD line, which essentially is arranged perpendicular to the direction of movement of the object of interest, as well as a connected ADU and a subordinate Image processing unit with internal data compression, data storage for the compressed data and clock generator, solved in that

  • - die Bildverarbeitungseinheit einen programmierbaren Schaltkreis in Form einer konfigurierten Hardware enthält zur Ausführung einer Echtzeit- Datenkomprimierung und -verarbeitung auf Basis unterschiedlicher Vergleichsmodi, wobei charakteristische Merkmalsvektoren des Objekts mit eingelernten, im Datenspeicher abgelegten Merkmalsvektoren verglichen werden, sowie zur Ausübung der Steuerfunktion für alle Elemente der Bildverarbeitungseinheit,- The image processing unit in a programmable circuit Form of configured hardware contains to execute a real-time Data compression and processing based on different Comparison modes, with characteristic feature vectors of the object with learned feature vectors stored in the data memory be compared, as well as to exercise the tax function for all elements the image processing unit,
  • - der Taktgenerator eine einheitliche Systemtaktfrequenz für die Bildsensoreinheit und den programmierbaren Schaltkreis aufweist, die so hoch ist, daß jedem Datenwort einer Zeilenauslesung der Bildsensoreinheit zur Erstellung der Merkmalsvektoren mindestens ein Taktimpuls zugeordnet ist, und- The clock generator has a uniform system clock frequency for the Image sensor unit and the programmable circuit, which is so high that each data word of a line reading of the image sensor unit at least one clock pulse for creating the feature vectors is assigned, and
  • - eine Eingabe-Ausgabe-Einheit der Bildverarbeitungseinheit zugeordnet ist, die einfache Bedienelemente zur Auswahl von Einlern- und Vergleichszyklus, und verschiedenen Vergleichsmodi, Eingabe von Sollwerten sowie einen Ausgang zur Ausgabe eines binären Signalwertes als Vergleichsergebnis aufweist.an input / output unit is assigned to the image processing unit, the simple controls for selecting the learning and comparison cycle, and different comparison modes, input of setpoints and a Output for the output of a binary signal value as comparison result having.

Vorteilhaft enthält der programmierbare Schaltkreis einen Datenkomprimierer und ein Filter, die die Datenwörter der Zeilenauslesungen auf Signalsprünge benachbarter Datenwörter auswerten und diese Grauwertsprünge als Merkmalsvektoren des Objekts zur Speicherung als Soll- oder Istwert im Datenspeicher bereitstehen. The programmable circuit advantageously contains a data compressor and a filter that the data words of the line readings on signal jumps Evaluate neighboring data words and these gray value jumps as Characteristic vectors of the object for storage as setpoint or actual value in Data storage is available.  

Der Datenkomprimierer enthält zweckmäßig eine Differenzbildung zwischen jeweils benachbarten Datenwörtern der Bildsensoreinheit, und der Filter ist vorteilhaft ein Schwellwertkomparator zur Selektion von Grauwertsprüngen.The data compressor expediently contains a difference between each neighboring data words of the image sensor unit, and the filter is advantageously a Threshold value comparator for the selection of gray value jumps.

Die besagten Grauwertsprünge stellen vorzugsweise die Umsetzung von Kanten- und/oder Helligkeitskontrastlinien des Objekts dar, und die Merkmalsvektoren sind in diesem Fall reine Kantenvektoren.The said gray value jumps preferably represent the implementation of edge and / or Brightness contrast lines of the object and the feature vectors are in this case pure edge vectors.

Es erweist sich von Vorteil, daß der programmierbare Schaltkreis eine Vergleichseinheit aufweist, die einen Vergleich von aktuellen Merkmalsvektoren eines kontrollierten Objektes mit gespeicherten Merkmalsvektoren eines eingelernten Objektes vergleicht.It proves advantageous that the programmable circuit has a Has comparison unit that compares current feature vectors of a controlled object with stored feature vectors of a learned one Object compares.

Eine vorteilhafte Fehlerauswertung wird erreicht, wenn die Bildauswerteeinheit weiterhin einen Mikrocontroller zur Berechnung eines Idealwertes und eines Toleranzbandes der Merkmalsvektoren enthält.An advantageous error evaluation is achieved when the image evaluation unit also a microcontroller for calculating an ideal value and one Tolerance band of the feature vectors contains.

Der Mikrocontroller wird wie alle anderen Einheiten zwar von dem programmierbaren Schaltkreis angesteuert, weist aber vorteilhaft einen völlig selbständigen Arbeitstakt auf.The microcontroller is like all other units of the Programmable circuit driven, but advantageously has a completely independent work cycle.

Um die Einstellbarkeit des Toleranzbandes zu erreichen, ist der Mikrocontroller mit der Eingabe-Ausgabe-Einheit zur Realisierung der Einstellung gekoppelt. Insbesondere für eine Qualitätskontrolle erweist es sich von Vorteil, daß die Vergleichseinheit des programmierbaren Schaltkreises eine Logik enthält, die eine Fehlerquote der Merkmalsvektoren registriert, wobei bei Überschreitung einer bestimmten Fehlerquote ein Fehlersignal in anderer Weise an die Eingabe-Ausgabe- Einheit weitergeleitet wird, so daß ein grober Fehler angezeigt wird.To achieve the adjustability of the tolerance band, the microcontroller is included the input-output unit coupled to implement the setting. For quality control in particular, it proves advantageous that the Comparison unit of the programmable circuit contains a logic that a Error rate of the feature vectors registered, whereby if a certain error rate, an error signal in another way to the input-output Unit is forwarded so that a gross error is displayed.

Werden in besonderen Fällen kleinere Fehler zugelassen, ist es zweckmäßig, daß die Vergleichseinheit des programmierbaren Schaltkreises eine Logik enthält, die eine Fehlerquote der Merkmalsvektoren registriert, wobei nur bei Überschreitung einer akzeptierten Fehlerquote ein Fehlersignal an die Eingabe-Ausgabe-Einheit abgegeben wird.If minor errors are permitted in special cases, it is advisable that the Comparison unit of the programmable circuit contains a logic that a Error rate of the feature vectors registered, whereby only when a accepted error rate an error signal to the input-output unit is delivered.

Zur Erreichung einer weiteren Datenreduzierung ist es günstig, daß der programmierbare Schaltkreis eine Logik zum selbständigen Erkennen von Beginn und Ende eines Objekts enthält, wobei die Logik innerhalb jeder Zeilenauslesung der Bildsensoreinheit das Vorhandensein und Fehlen von Merkmalsvektoren auswertet und nur bei Vorhandensein mindestens eines Merkmalsvektors ein Bildverarbeitungszyklus ausgelöst wird.To achieve a further data reduction, it is favorable that the programmable circuitry logic for independent recognition from the start and end of an object, the logic within each line reading of the Image sensor unit evaluates the presence and absence of feature vectors and only in the presence of at least one feature vector Image processing cycle is triggered.

Bei der Erfindung basieren die Objektabtastung und Bildverarbeitung darauf, daß charakteristische Punkte eines Objektes erkannt und verarbeitet werden. Da die erfindungsgemäße Anordnung ein vom PC unabhängig arbeitendes System sein soll, muß infolge begrenzter Speicherkapazitäten und Echtzeitanforderungen eine geeignete Datenverarbeitung gefunden werden. Das Ziel dieser Datenverarbeitung besteht darin, daß ein kompliziertes Objekt mit mehreren beliebigen Kanten in einem relativ kleinen Speicher abgelegt werden kann und dazu nicht zu komplizierte Verarbeitungsschritte erforderlich sind. Eine Datenreduzierung erfolgt dabei ausschließlich durch Detektion von Kantenvektoren.In the invention, object scanning and image processing are based on the fact that characteristic points of an object are recognized and processed. Since the  arrangement according to the invention is intended to be a system operating independently of the PC, due to limited storage capacity and real-time requirements suitable data processing can be found. The goal of this data processing is that a complicated object with any number of edges in one relatively small memory can be stored and not too complicated Processing steps are required. Data is reduced exclusively by detection of edge vectors.

Die erfindungsgemäße Anordnung gestattet es, ein kompaktes Kamerasystem aus CCD-Zeilensensor und Bildauswertung für verschiedene Anwendungsfälle einzusetzen. Es besteht die Möglichkeit, unter drei verschiedenen Modi für den Betrieb der Kamera zu wählen. Dazu sind vorzugsweise zwei DIP-Schalter an der Eingabeeinheit angebracht. Die Kamera kann ein ganzheitliches Objekt 8 detektieren oder eine bzw. mehrere Endloskanten 8.1 erfassen. Der Anwender kann über die Eingabe-Ausgabe-Einheit 5 zwischen 3 Modi wählen:The arrangement according to the invention allows a compact camera system comprising a CCD line sensor and image evaluation to be used for various applications. It is possible to choose between three different modes for operating the camera. For this purpose, two DIP switches are preferably attached to the input unit. The camera can detect a holistic object 8 or capture one or more endless edges 8.1 . The user can choose between 3 modes via the input / output unit 5 :

  • - Modus 1 entspricht der Objektdetektion,- Mode 1 corresponds to object detection,
  • - Modus 3 aktiviert die Datenverarbeitung für die Detektion von Endloskanten,- Mode 3 activates data processing for the detection of endless edges,
  • - Modus 2 kann sowohl betrieben werden bei der Detektion eines Objektes als auch einer Endloskante. Er reguliert eine horizontale Verschiebung bezüglich der Bewegungsrichtung.- Mode 2 can be operated when detecting an object as well an endless edge. It regulates a horizontal shift in relation to the Direction of movement.

Die Erfindung soll nachstehend anhand eines Ausführungsbeispiels näher erläutert werden. Die Zeichnungen zeigen:The invention will be explained in more detail below using an exemplary embodiment will. The drawings show:

Fig. 1 ein Prinzipschema des erfindungsgemäßen Bildverarbeitungssystems, Fig. 1 is a schematic diagram of the image processing system according to the invention,

Fig. 2 ein Funktionsschema des programmierbaren Schaltkreises, Fig. 2 is a functional diagram of the programmable circuit,

Fig. 3 das Prinzipschema der Objektabtastung, Fig. 3 shows the principle diagram of the object scan,

Fig. 4 eine vorteilhafte Anwendung der Erfindung bei Objektlagefehlern, Fig. 4 shows an advantageous application of the invention in object position errors,

Fig. 5 eine weitere Anwendung zur Detektion einer Bandkante, Fig. 5 shows a further application for detecting a tape edge,

Fig. 6 das Funktionsprinzip für die Erstellung eines Toleranzbandes. Fig. 6 shows the principle of operation for the creation of a tolerance band.

Mit der erfindungsgemäßen Anordnung liegt eine kompakte, PC-unabhängige, selbständig arbeitende Kameraanordnung zur optischen Bildverarbeitung für Zwecke der Kontrolle von serienmäßig wiederkehrenden Objekten vor, die in Echtzeit arbeitet.With the arrangement according to the invention there is a compact, PC-independent, independently working camera arrangement for optical image processing for purposes the control of serial recurring objects in real time is working.

Der Aufbau der erfindungsgemäßen Anordnung ist in Fig. 1 zu sehen. Sie besteht im wesentlichen aus fünf Einheiten. Die Bildsensoreinheit hat die Aufgabe, die Bildaufnahme zu realisieren und die gewonnenen Daten zu verstärken und digitalisieren. Die Bildverarbeitungseinheit enthält einen programmierbaren Schaltkreis 2 mit einer Logik, in der Kantenvektoren generiert und in Abhängigkeit eines Eingabeparameters für die Weiterverarbeitung ausgewählt werden. In ihr verläuft ein ausgewählter Vergleichsmodus. Im Mikrocontroller 3 wird ein Toleranzband für die Größe und Lage von Kantenvektoren ermittelt. Der Datenspeicher 4 ist nichts anderes als eine bestimmte Anzahl von SRAM′s. Die Eingabe-Ausgabe-Einheit 5 stellt die Verbindung zum Anwender her. Dazu gehören eine Anzahl von Ausgangssignalen in Form von Leuchtdioden, Ausgangsstufen, Schalter zur Steuerung der Arbeitsweise und Parametereingabe und Anschlüsse für eine mögliche Kommunikation mit anderen Komponenten.The structure of the arrangement according to the invention can be seen in Fig. 1. It essentially consists of five units. The image sensor unit has the task of realizing the image acquisition and of amplifying and digitizing the data obtained. The image processing unit contains a programmable circuit 2 with logic, in which edge vectors are generated and selected as a function of an input parameter for further processing. A selected comparison mode runs in it. A tolerance band for the size and position of edge vectors is determined in the microcontroller 3 . The data memory 4 is nothing more than a certain number of SRAM's. The input-output unit 5 establishes the connection to the user. This includes a number of output signals in the form of light-emitting diodes, output stages, switches for controlling the mode of operation and parameter input, and connections for possible communication with other components.

Zwei Hauptgruppen von Sensoren sind generell als Bildsensor geeignet. Dies ist zum einen ein Matrixsensor und zum anderen ein Zeilensensor. Einfach beschrieben, tastet der Matrixsensor ein Feld in einer bestimmten Zeit ab und gibt die Informationen einer Bildverarbeitungseinheit weiter. Die Zeit ist abhängig von der Taktfrequenz.Two main groups of sensors are generally suitable as image sensors. This is for one a matrix sensor and the other a line sensor. Simply described the matrix sensor scans a field in a certain time and outputs the Information from an image processing unit. The time depends on the Clock frequency.

Der Zeilensensor beschränkt sich auf eine eindimensionale Abtastung. Die Daten eines Pixels werden durch in Reihe angeordnete Photoelemente erzeugt und als Spannungsimpulse weitergeleitet. Anschließend erfolgt eine Wandlung der Impulse durch einen ADU in ein Datenwort. Die zweite Dimension der Feldabtastung wird durch die häufig im Kontrollprozeß vorhandene Bewegung der zu kontrollierenden Objekte 8 auf einem Transportband realisiert. Ohne Beschränkung der Allgemeinheit (Matrixabtastung) soll im konkreten Fall vom vorteilhaften Einsatz eines Zeilensensors ausgegangen werden.The line sensor is limited to one-dimensional scanning. The data of a pixel are generated by photo elements arranged in series and forwarded as voltage pulses. The pulses are then converted by an ADC into a data word. The second dimension of the field scanning is realized by the movement of the objects 8 to be checked on a conveyor belt which is frequently present in the checking process. Without restricting generality (matrix scanning), the advantageous use of a line sensor should be assumed in the specific case.

Als Bildverarbeitungseinheit wird erfindungsgemäß ein programmierbarer Schaltkreis 2 verwendet, der vorzugsweise ein LCATM der Reihe 4000 von XILINX ist.According to the invention, a programmable circuit 2 is used as the image processing unit, which is preferably an LCA TM of the 4000 series from XILINX.

Als Mikrocontroller 3 kann vorteilhaft ein Typ der Serie 80x51 verwendet werden. Da der Mikrocontroller 3 ausschließlich außerhalb des Vergleichszyklus arbeitet, sind die Verarbeitungsgeschwindigkeiten für die Ermittlung der Toleranzen und deren Zwischenberechnungen irrelevant. A type of the 80x51 series can advantageously be used as the microcontroller 3 . Since the microcontroller 3 only works outside the comparison cycle, the processing speeds for determining the tolerances and their intermediate calculations are irrelevant.

Die Objektabtastung basiert darauf, daß charakteristische Punkte eines Objektes erkannt und verarbeitet werden. Da die erfindungsgemäße Anordnung ein vom PC unabhängig arbeitendes System sein soll, muß infolge begrenzter Speicherkapazitäten und Echtzeitanforderungen eine geeignete Datenverarbeitung gefunden werden. Das Ziel dieser Datenverarbeitung besteht darin, daß ein kompliziertes Objekt mit mehreren Kanten in einem relativ kleinen Speicher abgelegt werden kann und dazu nicht zu komplizierte Verarbeitungsschritte erforderlich sind.Object scanning is based on the characteristic points of an object recognized and processed. Since the arrangement according to the invention from a PC Independently working system has to be limited as a result Storage capacities and real-time requirements suitable data processing being found. The aim of this data processing is that a complex object with multiple edges stored in a relatively small memory can be and not too complicated processing steps are required for this.

Für eine einfache Objekterkennung wird vorteilhaft eine CCD-Zeile als Bildsensor verwendet. Die Abtastung geschieht auf der Basis einer Vektorerkennung. Die CCD-Zeile tastet das Objekt sukzessive zweidimensional ab. Legt man ein geeignetes Koordinatensystem fest, so soll die Abszisse der Richtung der CCD-Zeile entsprechen. Man unterscheidet hierbei die Anzahl der Bildsensoren pro Zeile. In diesem Beispiel soll die Bildsensoreinheit 1 eine 1024er Zeile enthalten. Die Ordinate ist unabhängig von der Bauart der CCD-Zeile und wird nur in der Auswerteeinheit berücksichtigt. Sie gibt die Anzahl der zu lesenden Zeilen an und liegt im wesentlichen parallel zur Bewegungsrichtung des Objektes 8.For simple object recognition, a CCD line is advantageously used as the image sensor. The sampling takes place on the basis of vector detection. The CCD line scans the object successively in two dimensions. If you determine a suitable coordinate system, the abscissa should correspond to the direction of the CCD line. A distinction is made here between the number of image sensors per line. In this example, the image sensor unit 1 should contain a 1024 line. The ordinate is independent of the design of the CCD line and is only taken into account in the evaluation unit. It indicates the number of lines to be read and is essentially parallel to the direction of movement of the object 8 .

So spannen die Abszisse und Ordinate des Koordinatensystems ein Feld 6 auf. Dieses wird abhängig vom Objekt 8 in Vektoren unterteilt. Die Bildverarbeitungseinheit, d. h. im wesentlichen der programmierbare Schaltkreis 2, hat die Aufgabe, diese Vektoren festzulegen. Sie paßt sich unabhängig von der Geometrie des Objektes 8 und der Helligkeit selbständig an. Es existiert keine starre Vorgabe auf Anzahl und Größe der Vektoren. Bei Verwendung einer 1024er Zeile und eines 32K-Speichers ist es beispielsweise möglich, 4000 Zeilen zu je 8 Vektoren abzulegen. Wird die Anzahl der Zeilen nicht ausgeschöpft, können mehr Vektoren pro Zeilen ermittelt oder bei größerer Zeilenanzahl weniger Vektoren pro Zeile gespeichert werden.The abscissa and ordinate of the coordinate system span a field 6 . This is divided into vectors depending on object 8 . The image processing unit, ie essentially the programmable circuit 2 , has the task of defining these vectors. It adjusts itself independently of the geometry of the object 8 and the brightness. There is no rigid specification for the number and size of the vectors. When using a 1024 line and a 32K memory, it is possible, for example, to store 4000 lines with 8 vectors each. If the number of lines is not exhausted, more vectors per line can be determined or, with a larger number of lines, fewer vectors per line can be saved.

Im folgenden soll anhand von Fig. 3 das Prinzip der Objekterkennung erklärt werden. Es ist ein Koordinatensystem als Feld 6 mit einem darauf liegenden Objekt 8 z. B. ein Bleistift zu sehen. Das Objekt 8 liegt senkrecht zur CCD-Zeile 7 und bewegt sich geradlinig, gleichmäßig durch den Abtaststrahl der Zeile. Die zwei Punkte A und B kennzeichnen eine Kante im Objekt 8. Abhängig von der Geschwindigkeit und der eingestellten Integrationszeit der CCD-Zeile 7 wird das Objekt 8 mehr oder weniger genau abgetastet.The principle of object recognition will be explained below with reference to FIG. 3. It is a coordinate system as a field 6 with an object 8 lying thereon. B. to see a pencil. The object 8 is perpendicular to the CCD line 7 and moves in a straight line, evenly through the scanning beam of the line. The two points A and B identify an edge in object 8 . Depending on the speed and the set integration time of the CCD line 7 , the object 8 is scanned more or less precisely.

Die Merkmalsvektoren werden folgendermaßen erkannt. Es werden Konturen des Objektes 8 abgebildet. Dadurch sind Kantenübergänge zu erkennen. Punkte, in denen die Änderung des Bildgrauwertes maximal ist, sind die gesuchten Vektoren für die Berechnung. In einer abgetasteten Zeile können mehrere Vektoren ermittelt werden. Die Anzahl ist von der Form des Objektes 8 und von den Umgebungsbedingungen abhängig. Somit wird im Speicher 4 nicht das Objekt 8 als Bild abgelegt, sondern ein Feld von Vektoren, welche die Kontur charakterisieren. Dabei ist es unerheblich, welche Geometrie das Objekt 8 aufweist. Ebenso können Helligkeitskontraste erkannt werden.The feature vectors are recognized as follows. Contours of object 8 are shown. This enables edge transitions to be recognized. Points in which the change in the image gray value is at a maximum are the vectors sought for the calculation. Several vectors can be determined in a scanned line. The number depends on the shape of the object 8 and on the ambient conditions. Thus, the object 8 is not stored in the memory 4 as an image, but rather an array of vectors which characterize the contour. It is irrelevant which geometry the object 8 has. Brightness contrasts can also be detected.

Bei der Abtastung eines Objektes sollte man darauf achten, daß eine homogene Beleuchtung vorhanden ist. Jede geringe Abweichung hat zur Folge, daß das Datenwort einen anderen Wert annimmt. Für die Datenauswertung bedeutet dies, es liegt ein anderer Wert an derselben Position vor. Es würde im Extremfall zu einer Fehlermeldung kommen.When scanning an object, you should make sure that it is homogeneous Lighting is present. Any slight deviation means that Data word takes on a different value. For data evaluation, this means it there is another value in the same position. In extreme cases, it would become one Error message coming.

Die möglichen Varianten für die Beleuchtung des Objektes 8 sind zum einen das Durchlicht und zum anderen das Auflicht. Ersteres ist die regelmäßig einfach realisierbare Variante. Der Vorteil des Durchlichts besteht darin, daß eine exakte Hell-Dunkel-Flanke sichtbar und das Auftreten von Reflexionen vernachlässigbar gering ist. Ebenso werden Fehler durch Schattenbildung verringert. Ein Nachteil des Durchlicht besteht darin, daß Helligkeitsübergänge sehr schwierig erkennbar sind und damit der Einsatz eingeschränkt wird. Weiterhin muß der Aufbau ein Durchlicht ermöglichen. Generell muß bei der Beleuchtung darauf geachtet werden, daß der Einfall von wechselndem Fremdlicht gering gehalten wird. Die möglichen Lagen von gleichen Objekten sind immer bezüglich des Abtaststrahls des Sensors zu betrachten. Die Verarbeitung von unterschiedlichen Lagemöglichkeiten und Objektarten erfolgt in unterschiedlichen Modi der Bildverarbeitungseinheit. Zunächst soll die Abtastung eines Objektes 8 (zum Beispiel ein Bleistift) betrachtet werden.The possible variants for the illumination of the object 8 are on the one hand the transmitted light and on the other hand the incident light. The former is the regularly easy to implement variant. The advantage of transmitted light is that an exact light-dark edge is visible and the occurrence of reflections is negligible. Errors caused by shadowing are also reduced. A disadvantage of transmitted light is that brightness transitions are very difficult to identify and thus the use is restricted. Furthermore, the structure must allow transmitted light. In general, care must be taken when lighting that the incidence of changing external light is kept low. The possible positions of the same objects must always be considered with regard to the scanning beam from the sensor. Different positions and object types are processed in different modes of the image processing unit. The scanning of an object 8 (for example a pencil) should first be considered.

Die Lagegenauigkeit eines Objektes 8 betreffend zeigt Fig. 4 zwei mögliche Abweichungen. Die Größe der Lageabweichungen der Istpositionen b und c zur Sollposition a sind für die Berechnung einsetzbar. Man sollte jedoch darauf achten, daß das Objekt 8 der Sollposition a anzunähern.The positional accuracy of an object 8 on Fig. 4 shows two possible variations. The size of the positional deviations of the actual positions b and c from the target position a can be used for the calculation. However, one should make sure that the object 8 approaches the target position a.

Die Realisierung der Berechnung unterschiedlicher Lage wird durch einen speziellen Modus im programmierbaren Schaltkreis 2 durchgeführt. Dem Anwender steht es frei, diesen Modus 2 einzustellen. Falls darauf verzichtet wird, muß eine exakte Übereinstimmung mit der Sollposition a gewährleistet sein. Dieser Fall entspricht dem Modus 1. Andernfalls gibt die Auswerteeinheit des programmierbaren Bausteins eine Fehlermeldung, wenn die Fehlergrenze überschritten wurde.Different positions are calculated using a special mode in programmable circuit 2 . The user is free to set this mode 2. If this is not done, an exact match with the target position a must be guaranteed. This case corresponds to mode 1. Otherwise, the evaluation unit of the programmable module issues an error message if the error limit has been exceeded.

Bei allen von Fig. 4 bezüglich der Winkellage abweichenden Stellungen des Objektes 8 würde die Kamera das Objekt 8 als grob fehlerhaft identifizieren. Häufig ist es für den Anwender unkompliziert, die Kamera so zu installieren, daß homogene und reproduzierbare Bedingungen herrschen. Die bezüglich des Winkels abweichenden Lagen des Objektes sind aber meist die Fälle, die vom Anwender vornehmlich erkannt werden sollen.In all of the positions of the object 8 which differ from FIG. 4 with respect to the angular position, the camera would identify the object 8 as grossly faulty. It is often uncomplicated for the user to install the camera in such a way that the conditions are homogeneous and reproducible. The positions of the object deviating in terms of the angle are mostly the cases that should primarily be recognized by the user.

Neben den zwei möglichen Modi, die der Anwender mit Hilfe eines Schalters einstellen kann, verfügt der programmierbare Schaltkreis 2 über eine zweite mögliche Art zur Verarbeitung einer Objektabtastung. Sie erlaubt die Detektion von Endloskanten 8.1. Fig. 5 zeigt den Modus 3 bei einer möglichen Anwendung. Solch eine Endloskante 8.1 kann beispielsweise von einem Endlosband einer Papierlage stammen. Eingeschaltet wird dieser Modus 3 ebenfalls über einen Schalter. Das Prinzip läuft darauf hinaus, daß ein bestimmter Abschnitt der Endloskante 8.1 eingelernt wird. Eine solche Kante besteht aus ein und derselben Zeilenabtastung endlosmal. Der programmierbare Schaltkreis 2 und ein Mikrocontroller 3 ermittelt daraus ein Toleranzband 9 um eine Zeile. Dieses Toleranzband 9 charakterisiert demnach die ganze Endloskante 8.1 mit ihrer zulässigen Varianz.In addition to the two possible modes that the user can set using a switch, the programmable circuit 2 has a second possible way of processing an object scan. It allows the detection of endless edges 8.1 . Fig. 5 shows the mode 3 in a possible application. Such an endless edge 8.1 can originate, for example, from an endless belt of a paper layer. This mode 3 is also switched on via a switch. The principle is that a certain section of the endless edge 8.1 is taught. Such an edge consists of one and the same line scan endlessly. The programmable circuit 2 and a microcontroller 3 determine a tolerance band 9 by one line. This tolerance band 9 therefore characterizes the entire endless edge 8.1 with its permissible variance.

Der Mikrocontroller 3 hat die Aufgabe, mit jedem Signal vom programmierbaren Schaltkreis 2 eine Vorverarbeitung der in den Speichern stehenden Kantenvektoren und Positionswerte vorzunehmen. Die Ergebnisse werden wieder in die dafür vorgesehenen Speicherplätze geschrieben. Ein Toleranzband wird nur dann berechnet, wenn der Anwender diesen Vergleichsmodus wünscht. Vom eigentlichen Vergleichszyklus ist der Mikrocontroller 3 abgekoppelt.The microcontroller 3 has the task of preprocessing the edge vectors and position values stored in the memories with each signal from the programmable circuit 2 . The results are written back to the storage locations provided. A tolerance band is only calculated if the user wants this comparison mode. The microcontroller 3 is decoupled from the actual comparison cycle.

Fig. 6 zeigt die Wirkungsweise des Toleranzbandes 9. Um einen ermittelten Idealwert 9. 1 des Mikrocontrollers 3 berechnet dieser durch einen Algorithmus eine obere 9.2 und untere 9.3 Grenze. Das Toleranzband 9 wird sowohl um den durch den Mikrocontroller 3 ermittelten Idealwert gelegt (sprich: um den Kantenvektor 10, als auch um den örtlichen Idealwert 11, das entspricht der Abtastposition des Kantenvektors). Auf die Herstellung des Toleranzbandes 9 kann der Anwender durch eine Eingabe mit Hilfe von Schaltern direkten Einfluß nehmen. Der Anwender hat zwei Möglichkeiten zur Auswahl, um das Toleranzband 9 berechnen zu lassen. Erstens direkt durch eine Eingabekomponente oder zweitens mit Hilfe einer Statistik. Die ermittelten Ergebnisse des Mikrocontrollers 3 werden im Datenspeicher 4 abgelegt und stehen dem programmierbaren Schaltkreis 2 für den Vergleichszyklus zur Verfügung. Der programmierbare Schaltkreis 2 fungiert im Verbund der Komponenten der Bildverarbeitungseinheit als Master. Er kontrolliert den Speicherzugriff und sendet Signale, wann der Mikrocontroller 3 mit seinen Berechnungen beginnen soll. Der programmierbare Schaltkreis 2 übernimmt alle Aufgaben im Vergleichszyklus. Ein Zuschalten des Mikrocontrollers 3 in diesem Zyklus ist nicht vonnöten. Durch das Einbinden der Speicherorganisation in den programmierbaren Schaltkreis 2 können zusätzliche Bauelemente entfallen. Dadurch wird ein wesentlicher Platzgewinn erreicht. Der programmierbare Schaltkreis 2 wertet die Signale der CCD-Zeile 7 aus. Dies gilt sowohl für den Einlernzyklus als auch für den Vergleichszyklus, d. h. während der Kontrolle der Objekte 8. Fig. 6 shows the operation of the tolerance band. 9 At a determined ideal value 9 . 1 of the microcontroller 3 , this calculates an upper 9.2 and lower 9.3 limit using an algorithm. The tolerance band 9 is placed both around the ideal value determined by the microcontroller 3 (ie: around the edge vector 10 and also around the local ideal value 11, which corresponds to the scanning position of the edge vector). The user can have a direct influence on the production of the tolerance band 9 by input using switches. The user has two options to choose from in order to have the tolerance band 9 calculated. First, directly through an input component, or second, with the help of statistics. The determined results of the microcontroller 3 are stored in the data memory 4 and are available to the programmable circuit 2 for the comparison cycle. The programmable circuit 2 functions as a master in conjunction with the components of the image processing unit. It controls the memory access and sends signals when the microcontroller 3 should start its calculations. The programmable circuit 2 takes over all tasks in the comparison cycle. It is not necessary to switch on the microcontroller 3 in this cycle. By integrating the memory organization in the programmable circuit 2 , additional components can be omitted. This means that a significant amount of space is gained. The programmable circuit 2 evaluates the signals of the CCD line 7 . This applies both to the teach-in cycle and to the comparison cycle, ie during the inspection of objects 8 .

Er hat somit die Aufgabe, einen Sollwert zu ermitteln und diesen mit einer Folge von Istwerten zu vergleichen.It therefore has the task of determining a setpoint and this with a sequence of Compare actual values.

Ausgewertet werden von der CCD-Zeile 7 digitale Steuersignale und eine Folge von Datenwörtern. Der Systemtakt der CCD-Zeile 7 und der Bildverarbeitung im programmierbaren Schaltkreis 2 stimmen überein. Der programmierbare Schaltkreis 2 arbeitet in zwei verschiedenen Hauptzyklen, welche direkt voneinander abhängig sind. Es handelt sich hierbei um einen Einlern- und einen Vergleichszyklus. Der Einlernzyklus ist für das Einlernen der notwendigen Daten eines Objektes 8 erforderlich. Der Kamera werden dazu eine bestimmte Anzahl von Objekten 8 bereitgestellt. Es werden zuerst, abhängig vom eingestellten Verarbeitungsregime, eine bestimmte Anzahl von Objekten 8 hintereinander eingelesen. Aus den gewonnenen Daten wird eine Auswahl getroffen, welche Werte als sinnvoll gelten. In einem Einlernzyklus muß der Anwender anfangs notwendige Parameter einstellen. Zuerst muß er den entsprechenden Vergleichsmodus für den Vergleichszyklus auswählen. Es stehen folgende Grund-Modi für den Vergleichszyklus zur Verfügung: 7 digital control signals and a sequence of data words are evaluated by the CCD line. The system clock of the CCD line 7 and the image processing in the programmable circuit 2 match. The programmable circuit 2 works in two different main cycles, which are directly dependent on one another. This is a learning cycle and a comparison cycle. The learning cycle is required for teaching the necessary data of an object 8 . For this purpose, the camera is provided with a certain number of objects 8 . First, depending on the set processing regime, a certain number of objects 8 are read in succession. From the data obtained, a selection is made as to which values are considered useful. The user must initially set the necessary parameters in a teach-in cycle. First he has to select the appropriate comparison mode for the comparison cycle. The following basic modes are available for the comparison cycle:

  • - Der Modus 1 entspricht der Objektdetektion,- Mode 1 corresponds to object detection,
  • - Der Modus 3 aktiviert die Datenverarbeitung für die Detektion von Endloskanten 8.1,- Mode 3 activates data processing for the detection of continuous edges 8.1 ,
  • - Der Modus 2 kann sowohl betrieben werden bei der Detektion eines Objektes als auch einer Endloskante 8.1. Er reguliert eine horizontale Verschiebung bezüglich der Bewegungsrichtung.- Mode 2 can be operated when detecting an object as well as an endless edge 8.1 . It regulates a horizontal shift in the direction of movement.

Des weiteren müssen Toleranzwerte vorgegeben werden, um ein Toleranzband erstellen zu können. Der letzte Parameter ist die einzustellende Schwelle für eine Filterung der Vektoren (Filter 2.2). An dieser Stelle muß erwähnt werden, daß alle möglichen Einstellungen seitens des Anwenders Annahmewerte auf der Basis bisheriger Erfahrungen sind und nach Testversuchen verändert werden können.In addition, tolerance values must be specified in order to be able to create a tolerance band. The last parameter is the threshold to be set for filtering the vectors (filter 2.2 ). At this point it must be mentioned that all possible settings on the part of the user are acceptance values based on previous experience and can be changed after test attempts.

Der programmierbare Schaltkreis 2 erhält eine Folge von Datenwörtern. Die Anzahl der Wörter ist abhängig von dem Sensortyp. Die verwendete 1024 CCD-Zeile 7 liefert demnach genauso viele Datenwörter pro Zeilenabtastung. Wieviel Zeilen benötigt werden, um ein Objekt ausreichend abzutasten, ist von mehreren Dingen abhängig. So entscheidet die einstellbare Integrationszeit, wie schnell der Sensor eine Zeile aufnimmt und zur Verarbeitung weiterleitet. Die Integrationszeit darf demnach maximal dem Meßtakt entsprechen. The programmable circuit 2 receives a sequence of data words. The number of words depends on the sensor type. The 1024 CCD line 7 used accordingly provides as many data words per line scan. How many lines are needed to scan an object sufficiently depends on several things. The adjustable integration time decides how quickly the sensor picks up a line and forwards it for processing. The integration time may therefore correspond at most to the measuring cycle.

In Abhängigkeit dieses Parameters ist die Geschwindigkeit des bewegten Objektes einzustellen. Der Anwender kann die Geschwindigkeit nach oben korrigieren, wenn es das Objekt 8 und die geforderte Genauigkeit zulassen.The speed of the moving object must be set depending on this parameter. The user can correct the speed upwards if the object 8 and the required accuracy allow it.

In Fig. 2 ist zu erkennen, daß eine Datenkomprimierung und Filterung der Datenwörter erfolgt. In einem Datenkomprimierer 2.1 wird von zwei aufeinanderfolgenden Datenwörtern eine Differenz gebildet. Diese Differenzbildung ist so ausgelegt, daß nur positive Werte als Ergebnis erscheinen. Dies sollte man beachten, da ein Datenwort einen Grauwert charakterisiert und dieser ganz unterschiedlich ausfallen kann. Das Ergebnis des Datenkomprimierers 2.1 wird einem Filter 2.2 in Form eines Schwellwertkomparators zugeführt. Er dient zur Rauschunterdrückung und Datenfilterung. Ein vom Anwender einzustellender Schwellwert wird mit dem Ergebnis verglichen. Erreicht das Ergebnis der Datenkomprimierung mindestens den Schwellwert, wird er als Kantenvektor deklariert und in einen Datenspeicher übertragen. Wichtiger als der Wert des Kantenvektors ist für den Vergleich seine Position. Dazu gibt es eine Logik, die zu arbeiten beginnt, sobald das LEN-Signal aktiv ist. Wenn ein Kantenvektor ermittelt wurde, wird gleichzeitig dessen Position in den Datenspeicher 4 geschrieben. Wieviel Kantenvektoren erkannt werden, ist von der Schwellwerteinstellung abhängig. Der programmierbare Schaltkreis 2 enthält zweckmäßig eine Logik, die selbständig Beginn und Ende eines Objektes 8 erkennt. Bei Verwendung einer CCD- Zeile 7 ist es z. B. von Vorteil, wenn der programmierbare Schaltkreis 2 mit der Datenverarbeitung erst mit der Zeile beginnt, nachdem der Schwellwertkomparator des Filters 2.2 mindestens einen Kantenvektor erkannt hat. D.h. die erste Zeile mit Objektdaten wird als Startbedingung deklariert. Dieser Informationsverlust ist nicht kritisch, wenn man bedenkt, daß beispielsweise ein Bleistift mit 1000 Zeilen abgetastet wird. Solch eine Startbedingung ist notwendig, weil der Algorithmus erkennen muß, wann Daten weiterverarbeitet werden sollen. Das Ende eines Objektes ist dann erreicht, wenn der programmierbare Schaltkreis 2 in einer gültigen Zeile keinen Kantenvektor erkannt hat. Dazu kann z. B. ein Zähler eingesetzt sein, der die Kantenvektoren pro Zeile bestimmt. Der Zählwert wird nach jedem Zeilenende ausgewertet und gibt beim Wert Null das Ende der Datenverarbeitung für ein abgetastetes Objekt 8 an, das ebenfalls im Speicher vermerkt wird. Des weiteren setzt der programmierbare Schaltkreis 2 beim Erkennen des Objektendes seinen Adresszähler für den Datenspeicher 4 zurück und schreibt in den Datenspeicher 4 auch die Anzahl der detektierten Zeilen pro Objekt 8, die z. B. durch Zählung aller LEN-Signale ermittelt wird. In Fig. 2 it can be seen that data compression and filtering of the data words takes place. A difference is formed in a data compressor 2.1 from two successive data words. This difference is designed so that only positive values appear as a result. This should be noted, since a data word characterizes a gray value and this can be very different. The result of the data compressor 2.1 is fed to a filter 2.2 in the form of a threshold value comparator. It is used for noise reduction and data filtering. A threshold value to be set by the user is compared with the result. If the result of the data compression reaches at least the threshold value, it is declared as an edge vector and transferred to a data memory. For the comparison, its position is more important than the value of the edge vector. There is a logic for this that starts to work as soon as the LEN signal is active. If an edge vector has been determined, its position is simultaneously written into the data memory 4 . How many edge vectors are recognized depends on the threshold setting. The programmable circuit 2 expediently contains logic which automatically recognizes the start and end of an object 8 . When using a CCD line 7 , it is e.g. B. advantageous if the programmable circuit 2 with data processing only starts with the line after the threshold value comparator of the filter 2.2 has recognized at least one edge vector. This means that the first line with object data is declared as a start condition. This loss of information is not critical when you consider that, for example, a pencil is scanned with 1000 lines. Such a start condition is necessary because the algorithm has to recognize when data should be processed further. The end of an object is reached when the programmable circuit 2 has not recognized an edge vector in a valid line. For this, e.g. B. a counter can be used which determines the edge vectors per line. The count value is evaluated after each line end and, when the value is zero, indicates the end of data processing for a scanned object 8 , which is also noted in the memory. Furthermore, when the end of the object is recognized, the programmable circuit 2 resets its address counter for the data memory 4 and also writes to the data memory 4 the number of lines detected per object 8 , which, for. B. is determined by counting all LEN signals.

Die vier Daten, Kantenvektor, Position, Anzahl der Vektoren pro Zeile und Zeilenzahl werden für die Ermittlung des Toleranzbandes und als Vergleichsdaten im Vergleichszyklus herangezogen.The four data, edge vector, position, number of vectors per line and Number of lines are used to determine the tolerance band and as comparison data in the Comparison cycle used.

Der Vergleichszyklus kann durch zwei Möglichkeiten der Bereitstellung von Vergleichsdaten durchgeführt werden. Erstens durch einen vorher durchgeführten Einlernzyklus oder zweitens durch Einlesen von Objektdaten in den Datenspeicher 4 über eine entsprechende Schnittstelle. Letztere Variante birgt aber einige Gefahren. Die Objektkontrolle ist abhängig von wichtigen Umgebungsparametern, wie Position der Kamera und Beleuchtung. Die Schnittstelle sollte deshalb nur als Kontrollmöglichkeit genutzt werden. Vor Beginn des Vergleichszyklus sollte der Anwender eine Fehlertoleranz eingeben. Diese gibt an, welche Fehleranzahl bezüglich der Kantenvektoren und deren Positionen zugelassen werden, ohne daß ein Abbruch des Vergleiches erfolgt. Im Datenspeicher 4 stehen die vom Mikrocontroller 3 ermittelten Toleranzgrenzen zur Verfügung. Die Aufteilung ist vorteilhaft so organisiert, daß in einer Speicherbank die obere Grenze und in einer weiteren Speicherbank die untere Grenze des Toleranzbandes stehen.The comparison cycle can be carried out in two ways of providing comparison data. Firstly, through a previously carried out learning cycle or secondly, by reading in object data into the data memory 4 via a corresponding interface. However, the latter variant carries some dangers. The object control depends on important environmental parameters such as the position of the camera and lighting. The interface should therefore only be used as a control option. Before the comparison cycle begins, the user should enter a fault tolerance. This specifies the number of errors with regard to the edge vectors and their positions, without the comparison being aborted. The tolerance limits determined by the microcontroller 3 are available in the data memory 4 . The division is advantageously organized in such a way that the upper limit is in one memory bank and the lower limit of the tolerance band in another memory bank.

Die Datenkomprimierung und Filterung sind für den Einlernzyklus als auch Vergleichszyklus gleichartig. Im Vergleichszyklus vollzieht sich der Datentransfer von den Speicherbänken zu dem programmierbaren Schaltkreis 2. Es wird ein Vergleich von Ist- und Sollwert durchgeführt. Der Sollwert entspricht der unteren und oberen Grenze des Toleranzbandes. Wenn der Istwert oberhalb/unterhalb der oberen/unteren Grenze liegt, wird ein Fehlersignal generiert. Zur Ermittlung grober Fehler erfolgt durch Zählung der Fehlersignale eine ständige Kontrolle der momentanen Fehlerquote mit einer vorgegebenen Fehleranzahl. Überschreitet die ermittelte Fehlerquote den Vorgabewert, wird dem Anwender eine Mitteilung über eine Anzeige gemacht. Die Kontrolle auf Übereinstimmung der Position eines Kantenvektors erfolgt, sobald das LEN-Signal aktiv ist. Ermittelt werden die Impulse des Systemtaktes solange, bis ein Kantenvektor durch den Schwellwertkomparator des Filters 2.2 erkannt wurde. Der aktuelle Zählerstand wird zusammen mit dem Speicherwert aus dem Datenspeicher 4 einer Differenzbildung übergeben. Für den Modus 2 gilt prinzipiell der gleiche Ablauf, wobei jedoch eine Logik aktiviert wird, die die Lageverschiebungen des Objektes 8 toleriert. Der programmierbare Schaltkreis 2 kann vorteilhaft außer den typischen Fehlern drei weitere Fehlerquellen erkennen. So wird z. B. die Anzahl der Zeilenabtastung eines Objektes kontrolliert. Damit kann nicht nur eine Kontrolle des Objektes 8 stattfinden, sondern auch dessen Geschwindigkeit bezüglich des Abtaststrahls. Denn bei einer Erhöhung der Bandgeschwindigkeit verringert sich die Zeilenanzahl. Tritt ein Unterschied zwischen Ist- und Sollwert auf, so entspricht dies einem Fehler und der Anwender erhält eine Information.The data compression and filtering are identical for the learning cycle and the comparison cycle. The data transfer from the memory banks to the programmable circuit 2 takes place in the comparison cycle. A comparison of the actual and setpoint is carried out. The setpoint corresponds to the lower and upper limit of the tolerance band. If the actual value is above / below the upper / lower limit, an error signal is generated. To determine gross errors, a constant check of the current error rate with a predetermined number of errors is carried out by counting the error signals. If the determined error rate exceeds the default value, the user is notified of an advertisement. The control of the position of an edge vector is carried out as soon as the LEN signal is active. The pulses of the system clock are determined until an edge vector has been recognized by the threshold value comparator of filter 2.2 . The current counter reading is transferred together with the stored value from the data memory 4 to a difference. The same procedure applies in principle to mode 2, but a logic is activated which tolerates the positional displacements of object 8 . The programmable circuit 2 can advantageously recognize three further error sources in addition to the typical errors. So z. B. controls the number of line scans of an object. Not only can the object 8 be checked, but also its speed with respect to the scanning beam. Because if the belt speed increases, the number of lines decreases. If there is a difference between the actual and setpoint, this corresponds to an error and the user receives information.

Eine weitere Fehlermöglichkeit wäre, wenn die Anzahl der Kantenvektoren pro Zeile nicht übereinstimmt. Das Auftreten solch einer Fehlermeldung kann zwei Ursachen haben. Zum einen ist das Objekt tatsächlich fehlerhaft. Andererseits kann es Probleme mit dem Auflösungsvermögen der Kamera oder der Beleuchtung geben. So besteht die Möglichkeit, daß zum Beispiel an einer Spitze statt zwei nur ein Kantenvektor erkannt wurde. Dieser Sachverhalt würde einen Übergangszustand darstellen. Im Zusammenhang mit solchen Übergangszuständen ist ein weiterer möglicher Fehler zu betrachten. Als Sollwert wird eine Grenze des Toleranzbandes angenommen und ein Soll-Ist-Vergleich durchgeführt. Danach wird die Differenz mit einer festen Vorgabe verglichen, die eine maximal zulässige Verschiebung eines Positionswertes definiert.Another possibility of error would be if the number of edge vectors per line does not match. The occurrence of such an error message can have two causes to have. For one thing, the object is actually faulty. On the other hand, it can Problems with the resolution of the camera or the lighting. So there is the possibility that, for example, only one at one tip instead of two Edge vector was recognized. This would become a transitional situation represent. In connection with such transition states is another possible mistakes to consider. A limit of the tolerance band is used as the setpoint accepted and a target-actual comparison was carried out. After that, the difference compared with a fixed specification, which is a maximum permissible displacement of a Position value defined.

BezugszeichenlisteReference list

1 Bildsensoreinheit
2 programmierbarer Schaltkreis
2.1 Datenkomprimierer
2.2 Filter
2.3 Vergleichseinheit
3 Mikrocontroller
4 Datenspeicher
5 Eingabe-Ausgabe-Einheit
6 Feld
7 CCD-Zeile
8 Objekt
8.1 Endloskante
9 Toleranzband
9.1 Idealwert
9.2 obere Grenze
9.3 untere Grenze
10 Kantensektor
11 örtlicher Idealwert
A, B Punkte
a Sollposition
b, c Istpositionen
1 image sensor unit
2 programmable circuit
2.1 Data compressors
2.2 filters
2.3 Comparison unit
3 microcontrollers
4 data memories
5 input-output unit
6 field
7 CCD line
8 object
8.1 endless edge
9 tolerance band
9.1 Ideal value
9.2 upper limit
9.3 lower limit
10 edge sector
11 local ideal value
A, B points
a target position
b, c actual positions

Claims (11)

1. Anordnung zur Kontrolle von an einem Kontrollpunkt vorbeibewegten Objekten mit einer Bildsensoreinheit, bestehend aus einer CCD-Zeile, die im wesentlichen senkrecht zur Bewegungsrichtung des interessierenden Objekts angeordnet ist, sowie einem angeschlossenen ADU und einer nachgeordneten Bildverarbeitungseinheit mit interner Datenkomprimierung, Datenspeicher für die komprimierten Daten und Taktgenerator, dadurch gekennzeichnet, daß
  • - die Bildverarbeitungseinheit einen programmierbaren Schaltkreis (2) in Form einer konfigurierten Hardware enthält zur Ausführung einer Echtzeit- Datenkomprimierung und -verarbeitung auf Basis unterschiedlicher Vergleichsmodi, wobei charakteristische Merkmalsvektoren des Objekts (8) mit eingelernten, im Datenspeicher (4) abgelegten Merkmalsvektoren verglichen werden, sowie zur Ausübung der Steuerfunktion für alle Elemente der Bildverarbeitungseinheit,
  • - der Taktgenerator eine einheitliche Systemtaktfrequenz für die Bildsensoreinheit (1) und den programmierbaren Schaltkreis (2) aufweist, die so hoch ist, daß jedem Datenwort einer Zeilenauslesung der Bildsensoreinheit (1) zur Erstellung der Merkmalsvektoren mindestens ein Taktimpuls zugeordnet ist, und
  • - eine Eingabe-Ausgabe-Einheit (5) der Bildverarbeitungseinheit zugeordnet ist, die einfache Bedienelemente zur Auswahl von Einlern- und Vergleichszyklus, und verschiedenen Vergleichsmodi, Eingabe von Sollwerten sowie einen Ausgang zur Ausgabe eines binären Signalwertes als Vergleichsergebnis aufweist.
1. Arrangement for the control of objects moving past a control point with an image sensor unit consisting of a CCD line, which is arranged essentially perpendicular to the direction of movement of the object of interest, as well as a connected ADC and a downstream image processing unit with internal data compression, data storage for the compressed Data and clock generator, characterized in that
  • the image processing unit contains a programmable circuit ( 2 ) in the form of a configured hardware for executing real-time data compression and processing on the basis of different comparison modes, wherein characteristic feature vectors of the object ( 8 ) are compared with learned feature vectors stored in the data memory ( 4 ), and to exercise the control function for all elements of the image processing unit,
  • - The clock generator has a uniform system clock frequency for the image sensor unit ( 1 ) and the programmable circuit ( 2 ), which is so high that at least one clock pulse is assigned to each data word of a line reading of the image sensor unit ( 1 ) to create the feature vectors, and
  • - An input-output unit ( 5 ) is assigned to the image processing unit, which has simple operating elements for selecting the learning and comparison cycle, and different comparison modes, input of setpoints and an output for outputting a binary signal value as a comparison result.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß der programmierbare Schaltkreis (2) einen Datenkomprimierer (2.1) und ein Filter (2.2) enthält, die die Datenwörter der Zeilenauslesungen auf Signalsprünge benachbarter Datenwörter auswerten und diese Grauwertsprünge als Merkmalsvektoren des Objekts (8) zur Speicherung als Soll- oder Istwert im Datenspeicher (4) bereitstehen.2. Arrangement according to claim 1, characterized in that the programmable circuit ( 2 ) contains a data compressor ( 2.1 ) and a filter ( 2.2 ) which evaluate the data words of the line readings on signal jumps of adjacent data words and these gray value jumps as feature vectors of the object ( 8 ) are available for storage as a setpoint or actual value in the data memory ( 4 ). 3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß der Datenkomprimierer (2.1) eine Differenzbildung zwischen jeweils benachbarten Datenwörtern der Bildsensoreinheit (1) enthält und das Filter (2.2) ein Schwellwertkomparator zur Selektion von Grauwertsprüngen ist. 3. Arrangement according to claim 2, characterized in that the data compressor ( 2.1 ) contains a difference between adjacent data words of the image sensor unit ( 1 ) and the filter ( 2.2 ) is a threshold comparator for selecting gray value jumps. 4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß die besagten Grauwertsprünge die Umsetzung von Kanten- und/oder Helligkeitskontrastlinien des Objekts (8) darstellen und die Merkmalsvektoren reine Kantenvektoren sind.4. Arrangement according to claim 3, characterized in that said gray value jumps represent the implementation of edge and / or brightness contrast lines of the object ( 8 ) and the feature vectors are pure edge vectors. 5. Anordnung nach Anspruch 3 oder 4, dadurch gekennzeichnet, daß der programmierbare Schaltkreis (2) eine Vergleichseinheit (2.3) aufweist, die einen Vergleich von aktuellen Merkmalsvektoren eines kontrollierten Objektes (8) mit gespeicherten Merkmalsvektoren eines eingelernten Objektes (8) vergleicht.5. Arrangement according to claim 3 or 4, characterized in that the programmable circuit ( 2 ) has a comparison unit ( 2.3 ) which compares a comparison of current feature vectors of a controlled object ( 8 ) with stored feature vectors of a learned object ( 8 ). 6. Anordnung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß die Bildauswerteeinheit weiterhin einen Mikrocontroller (3) zur Berechnung eines Idealwertes und eines Toleranzbandes der Merkmalsvektoren enthält.6. Arrangement according to one of claims 1 to 5, characterized in that the image evaluation unit further contains a microcontroller ( 3 ) for calculating an ideal value and a tolerance band of the feature vectors. 7. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß der Mikrocontroller (3) zwar von dem programmierbaren Schaltkreis (2) angesteuert wird, aber einen völlig selbständigen Arbeitstakt aufweist.7. Arrangement according to claim 6, characterized in that the microcontroller ( 3 ) is controlled by the programmable circuit ( 2 ), but has a completely independent operating cycle. 8. Anordnung nach Anspruch 6, dadurch gekennzeichnet, daß der Mikrocontroller (3) mit der Eingabe-Ausgabe-Einheit (5) zur Realisierung eines einstellbaren Toleranzbandes gekoppelt ist.8. Arrangement according to claim 6, characterized in that the microcontroller ( 3 ) is coupled to the input-output unit ( 5 ) for realizing an adjustable tolerance band. 9. Anordnung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die Vergleichseinheit (2.3.) des programmierbaren Schaltkreises (2) eine Logik enthält, die eine Fehlerquote der Merkmalsvektoren registriert, wobei bei Überschreitung einer bestimmten Fehlerquote ein Fehlersignal in anderer Weise an die Eingabe-Ausgabe-Einheit (5) weitergeleitet wird, so daß ein grober Fehler angezeigt wird.9. Arrangement according to one of claims 1 to 8, characterized in that the comparison unit ( 2.3. ) Of the programmable circuit ( 2 ) contains logic that registers an error rate of the feature vectors, an error signal in a different way when a certain error rate is exceeded the input-output unit ( 5 ) is forwarded so that a gross error is displayed. 10. Anordnung nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die Vergleichseinheit (2.3.) des programmierbaren Schaltkreises (2) eine Logik enthält, die eine Fehlerquote der Merkmalsvektoren registriert, wobei nur bei Überschreitung einer akzeptierten Fehlerquote ein Fehlersignal an die Eingabe-Ausgabe-Einheit (5) abgegeben wird. 10. Arrangement according to one of claims 1 to 8, characterized in that the comparison unit ( 2.3. ) Of the programmable circuit ( 2 ) contains logic that registers an error rate of the feature vectors, an error signal to the input only when an accepted error rate is exceeded - Output unit ( 5 ) is delivered. 11. Anordnung nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der programmierbare Schaltkreis (2) eine Logik zum selbständigen Erkennen von Beginn und Ende eines Objekts (8) enthält, wobei die Logik innerhalb jeder Zeilenauslesung der Bildsensoreinheit (1) das Vorhandensein oder Fehlen von Merkmalsvektoren auswertet und nur bei Vorhandensein mindestens eines Merkmalsvektors ein Einlern- bzw. Vergleichszyklus ausgelöst wird.11. Arrangement according to one of claims 1 to 10, characterized in that the programmable circuit ( 2 ) contains logic for the independent detection of the beginning and end of an object ( 8 ), the logic within each line reading of the image sensor unit ( 1 ) the presence evaluates or lack of feature vectors and a teach-in or comparison cycle is triggered only if at least one feature vector is present.
DE19516274A 1995-05-08 1995-05-08 Optical sensing of objects for control on moving conveyor Expired - Fee Related DE19516274C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19516274A DE19516274C1 (en) 1995-05-08 1995-05-08 Optical sensing of objects for control on moving conveyor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19516274A DE19516274C1 (en) 1995-05-08 1995-05-08 Optical sensing of objects for control on moving conveyor

Publications (1)

Publication Number Publication Date
DE19516274C1 true DE19516274C1 (en) 1996-11-14

Family

ID=7761004

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19516274A Expired - Fee Related DE19516274C1 (en) 1995-05-08 1995-05-08 Optical sensing of objects for control on moving conveyor

Country Status (1)

Country Link
DE (1) DE19516274C1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998043752A1 (en) * 1997-04-02 1998-10-08 Festo Ag & Co. Method and device for detecting falsely oriented parts and or parts deviating from a given model
DE102005033759B4 (en) * 2005-07-15 2012-04-12 Eastman Kodak Company Method for detecting a side edge of a semitransparent printing substrate in a printing press

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3519986A1 (en) * 1984-06-12 1985-12-12 Dainippon Screen Manufacturing Co., Ltd., Kyoto METHOD AND DEVICE FOR CHECKING PRINTED WIRING CARDS FOR ERRORS
US4811410A (en) * 1986-12-08 1989-03-07 American Telephone And Telegraph Company Linescan inspection system for circuit boards
US5274713A (en) * 1991-09-23 1993-12-28 Industrial Technology Research Institute Real-time apparatus for detecting surface defects on objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3519986A1 (en) * 1984-06-12 1985-12-12 Dainippon Screen Manufacturing Co., Ltd., Kyoto METHOD AND DEVICE FOR CHECKING PRINTED WIRING CARDS FOR ERRORS
US4811410A (en) * 1986-12-08 1989-03-07 American Telephone And Telegraph Company Linescan inspection system for circuit boards
US5274713A (en) * 1991-09-23 1993-12-28 Industrial Technology Research Institute Real-time apparatus for detecting surface defects on objects

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998043752A1 (en) * 1997-04-02 1998-10-08 Festo Ag & Co. Method and device for detecting falsely oriented parts and or parts deviating from a given model
DE102005033759B4 (en) * 2005-07-15 2012-04-12 Eastman Kodak Company Method for detecting a side edge of a semitransparent printing substrate in a printing press

Similar Documents

Publication Publication Date Title
DE10361018C9 (en) Method for recognizing a structure to be applied to a substrate with a plurality of cameras and a device therefor
EP1716410B1 (en) Method and system for inspecting surfaces
EP0228500B2 (en) Method of and device for contactless measurement of the wheel profile of the wheels of railway wheel sets
EP1036003B1 (en) Method for checking that batches of cigarettes are complete and that the cigarettes are sufficiently filled
DE3623076C2 (en)
DE2753593C2 (en) Optical testing device
EP2128793B1 (en) Method and device for inspecting print products, computer program and computer program product
DE2518077B2 (en) System for determining the angular orientation of a continuous part relative to a sample part
EP1645839A1 (en) Apparatus and Method for Observing Moving Objects
DE4201514A1 (en) METHOD FOR DETERMINING DEFECTIVE SITES
DE112018008035T5 (en) Three-dimensional measuring device
DE3204086A1 (en) DEVICE FOR AUTOMATIC OPTICAL TEXTURE CHECK
WO2020148036A1 (en) Method and device for inspecting hard-to-reach components
DE4212404A1 (en) DEVICE FOR MEASURING THE SPATIAL FORM OF A LONG-STRETCHED COMPONENT
DE102011117894A1 (en) Apparatus and method for optical shape detection of moving objects
DE2704983A1 (en) METHOD FOR AUTOMATICALLY DETECTING DEFECTS IN THE SURFACE OR DIMENSIONS OF AN OBJECT AND DEVICE FOR EXECUTING THE METHOD
EP0471196A2 (en) Image analysis method
DE102020120887B4 (en) METHOD OF DETECTING A HANGING POSITION OF A SUPPORT BAR AND FLAT BED MACHINE TOOL
DE19516274C1 (en) Optical sensing of objects for control on moving conveyor
EP1047917A1 (en) Method and device for measuring fibre length
EP0104369A2 (en) Device and method for optically recognizing area patterns on objects
DE4130399A1 (en) Automatic window technique for object detection - reducing processing time for object orientation measurement by using only part for comparison with stored data
DE102018214307A1 (en) System and method for quality inspection in the manufacture of individual parts
DE2908483C2 (en)
DE10152851A1 (en) Component scanning system has an optical image processing system for comparing measured image data with CAD data, with additional CAD data supplied when alterations are made to the sampled component to simplify adaptation

Legal Events

Date Code Title Description
8100 Publication of the examined application without publication of unexamined application
D1 Grant (no unexamined application published) patent law 81
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee