RAUSCHER: Alles im Takt
Aufgabenstellung
Bei der hier beschriebenen Anwendung kommen fünf Progressive-Scan-Kameras mit einer Auflösung von 752 x 582 Pixel zum Einsatz, die zeitgleich gegrabbt werden. Die Kameras werden im asynchronen Reset-Modus betrieben, ein externer Signalgeber löst die Aufnahme von allen Kameras mit einer maximalen Frequenz von 50 Bilder/sec aus. Die Shutter-Zeit muss vom PC oder Framegrabber aus im Bereich von 1/10 000 s bis 200 ms stufenlos gesteuert werden. PC und Kameras sind dabei 10 m voneinander entfernt.
Die RAUSCHER GmbH stellte für die Applikation neben den erforderlichen Hardware-Komponenten wie Kameras, Framegrabber, Kabel etc. ein Software-Engineering-Sample zur Verfügung, das die Funktionsweise und eine prinzipielle Grab-Architektur eines derartigen Multi-Kamera-Systems demonstriert. Da dieses Engineering-Sample im Quellcode weitergegeben wird, können kundenspezifische Applikationen darauf aufsetzen und somit äußerst schnell und effizient umgesetzt werden.
Komponentenauswahl
Bei den Kameras fiel die Wahl auf die XC-HR300 von Sony, da sie die oben aufgeführten Anforderungen bezüglich Auflösung, Geschwindigkeit und Betriebsmodi komplett erfüllt. Um aus Kostengründen mit möglichst geringem Hardware-Aufwand auszukommen, wurde der Meteor-II/Multi-Channel Framegrabber von Matrox ausgewählt. Er verfügt über drei parallele Videoeingänge, mit denen sich synchronisierte Monochrom-Kameras parallel aufnehmen lassen, so dass drei Kameras an einer Meteor-II/Multi-Channel und die übrigen beiden an einer Weiteren betrieben werden können.
Die Kameras stellen alle für die Videodaten, Synchronisation und Stromversorgung benötigten Ein- und Ausgänge auf einem 12poligen Hirose-Stecker zur Verfügung. Das gleiche gilt für die Framegrabber, die mit einem 44poligen High-Density-Stecker ausgerüstet sind. Der Verkabelungsaufwand sinkt so auf ein Minimum, da vom Framegrabber aus zu jeder Kamera nur ein Kabel führt, über das alle Signale einschließlich der Stromversorgung übertragen werden.
Umsetzung
Der Framegrabber als Schnittstelle zwischen Kamera und PC ist integraler Bestandteil jedes Bildverarbeitungs-Systems. Er erfasst die Daten und schreibt sie über den PCI-Bus in Echtzeit und ohne CPU-Belastung in den Host- und/oder Display-Speicher. Bei der Meteor-II/Multi-Channel einem Variable-Scan-Framegrabber, wird das Video-Timing zusammen mit allen weiteren I/O-Signalen in einem DCF (Digitizer Configuration File) definiert. Ein FPGA steuert die Logik zum Erzeugen und Steuern der Timing- und Ein-/Ausgabe-Signale: Pixelclock, H- und VSync, Exposure1, Exposure2 und User-I/Os. Der Matrox VIA (Video Interface ASIC) dient als PCI-Interface und übernimmt bereits während der Aufnahme zusätzlich das gesamte Datenmanagement, z.B. das Sortieren von mehreren Datenströmen bei Multitap-Kameras. Für diese lokale Verarbeitung stehen 4 MByte Onboard-RAM zur Verfügung, das auch als FIFO für den PCI-Transfer dient.
Da eine zeitgleiche Aufnahme von bis zu drei Kameras pro Framegrabber in dieser Applikation erforderlich ist, werden die Kameras vom Framegrabber aus synchronisiert und im asynchronen Reset-Modus betrieben. Die Meteor-II/Multi-Channel generiert auf ein externes Signal hin, das über den optoentkoppelten Trigger-Eingang angeschlossen ist, auf Leitung Exposure1 das Trigger-Signal für die Kamera (1). Die Kamera wird darauf hin zurückgesetzt (asynchroner Reset) und beginnt mit der Belichtung. Die Shutter-Zeit entspricht der über einen Softwarebefehl frei programmierbaren Pulslänge von Exposure1 (2). Der Framegrabber gibt der Kamera über Exposure2 mit entsprechendem Delay nach dem Reset den korrekten VSync, auf den hin die Kamera die Videodaten ausgibt (3). Darüber hinaus werden über den HSync-Ausgang kontinuierlich die horizontalen Synchronisationssignale für die Kamera ausgegeben, damit die Bilddaten der Kameras zeilensynchron am Framegrabber anliegen. In diesem Betriebsmodus der Kameras lässt sich die Belichtungszeit über Exposure1 im Bereich von 1/25 000 s bis 250 ms frei programmieren. Die maximale Bildwiederholrate liegt bei 50 Bildern/s.
Paralleler Bildeinzug von fünf Kameras
Da in dieser Anwendung ein Framegrabber drei bzw. zwei Kameras parallel steuert, wird das DCF auf drei parallele Kameras erweitert. Exposure1-, Exposure2- und Hsync-Ausgang sowie die Stromversorgung werden an die jeweiligen Eingänge der Kameras (Trigger, External VD, External HD) parallel angeschlossen. Der Videoausgang jeder Kamera wird an Videoeingang 1 bis 3 des Framegrabbers gelegt. Alle Steuerausgänge der Meteor-II/Multi-Channel sind TTL-Pegel und die Leitungstreiber auf dem Board sind leistungsfähig genug, um alle drei Kameras über 10 m Kabelweg zu treiben.
Bei der Applikation werden fünf Kameras mit zwei Framegrabbern eingezogen, d.h. 3 Kameras sind an Framegrabber 1, 2 Kameras an Framegrabber 2 angeschlossen.. Die Synchronisation der Kameras geschieht dabei über die Framegrabber, die Synchronisation der Grabber untereinander über das externe Trigger-Signal. Die Aufnahmezeitpunkte für alle an einem Board angeschlossenen Kameras sind identisch, da sie mit den gleichen Sync-Signalen synchronisiert werden. Beide Framegrabber erhalten zeitgleich einen externen Trigger und generieren daraufhin die Synchronisationssignale (s.o.). Hardwarebedingte Laufzeitunterschiede der Exposure1- und Exposure2-Signale (evtl. durch unterschiedliche Laufzeiten auf den zwei Boards) konnten nicht gemessen werden, d.h. die Aufnahmezeitpunkte der drei Kameras an Board 1 und den beiden Kameras an Board 2 sind gleich.
Software
Das Software-Engineering-Sample, das die RAUSCHER GmbH zur Verfügung stellt, um die prinzipielle Funktionsweise eines solchen Aufnahmesystems zu demonstrieren, basiert auf MIL-Lite, der Basisbibliothek der Matrox Imaging Library. MIL-Lite beinhaltet umfangreiche Funktionen zur Ansteuerung der Framegrabber, Bildaufnahme, Bildspeicherung, Bildanzeige und Grafikdarstellung. Nach dem Grab-Kommando werden die Bilddaten von drei Kameras, die an Board 1 angeschlossen sind in einem RGB-Buffer (Speicherbereich) abgelegt. Die MIL-Lite verwaltet in jedem Band des RGB-Buffers einen virtuellen Buffer, einen sogenannten Child-Buffer. Für die Bilddaten der zwei Kameras an Board 2 wird genauso verfahren, mit dem Unterschied, dass lediglich zwei Child-Buffer in dem RGB-Buffer definiert werden (ein Child im Rot-Kanal, ein Child im Grün-Kanal). Die gesamte Weiterverarbeitung der Kameradaten erfolgt nun innerhalb dieser insgesamt fünf Child-Buffer. Eine aufwändige Sortierung der Pixeldaten per Software entfällt somit vollständig, da diese bereits durch den Matrox VIA, also per Hardware und ohne CPU-Belastung, durchgeführt wurde.
Das Engineering-Sample grabbt extern getriggert mit bis zu 50 Bilder/s parallel von allen Kameras und stellt optional die Videodaten in fünf voneinander getrennten Display-Fenstern dar. Der PCI-Bus ist in dieser Anwendung also konstant mit 109 MByte/s belastet, da die Videodaten in das Host-Memory transferiert werden. Hier sind die 4MB Onboard-RAM der Meteor-II/Multi-Channel äußerst wertvoll: Treten auf dem PCI-Bus Spitzenbelastungen (z.B. Netzwerk, SCSI, etc.) auf, ist es denkbar, dass die Bilddaten nicht über den Bus in das PC-Memory transferiert werden können, da die zur Verfügung stehende Bandbreite nicht ausreicht. In diesem Fall werden die Daten auf dem Framegrabber zwischengespeichert (Puffer) bis der Transfer sichergestellt ist. Ist der PCI-Bus nicht durch andere Devices belastet, werden die Bilddaten natürlich ohne FIFO-Pufferung transferiert.
Der gesamte Quellcode des Engineering-Samples umfasst einschließlich aller Kommentare sowie Allokierung und De-Allokierung sämtlicher Objekte lediglich 130 Code-Zeilen, von denen zehn Zeilen auf das Grabben und Darstellen entfallen.
Ausblick
Für diese konkrete Anwendung wurden fünf Kameras parallel eingesetzt. Eine Erweiterung auf sechs Kameras ist problemlos möglich, da auf der zweiten Meteor-Ei/Multi-Channel ein Eingangskanal ungenutzt bleibt. Prinzipiell ist ein solches System immer weiter nach oben skalierbar, da theoretisch bis zu zwölf Framegrabber in einem PC eingesetzt werden können. Das Bottleneck dieser Applikation ist der PCI-Bus, der ein maximales theoretisches Transfervolumen von 133MByte/s aufweist. Werden höhere Anforderungen an Bildrate und/oder Auflösung gestellt, ist man hier sehr schnell über diese Datenrate hinaus. Zudem muss bedacht werden, dass in einer modernen Inspektionsanlage sicherlich auch andere Geräte als Framegrabber die Bandbreite des PCI-Busses benötigen. Hier wird künftig der 64 Bit breite PCI/X Bus, der Datentransferraten von bis zu 1 GByte/s bietet, Abhilfe schaffen.
Natürlich ist auch die benötigte Rechenleistung in derartigen Anwendung enorm hoch, besonders wenn sehr rechenintensive Algorithmen zur Auswertung verwendet werden. Trotz der stark ansteigenden Performance der PC-Prozessoren, ist es hier mitunter sinnvoll, den Schritt von einem reinen Framegrabber auf ein High-Performance Vision-Processing-Board wie die Matrox Odyssey Serie zu gehen – Echzeit-Verarbeitung ist damit garantiert, da die gesamte Bildverarbeitungs-Aufgabe dann vollständig von Host-PC und Betriebssystem entkoppelt ist.
Equipment
PC:
1x Siemes Dual-Prozessor-System Celsius 670
(2x Intel Pentium IV mit je 2GHz, 2 GB RAM)
Kameras:
5 x Sony XC-HR300
Framegrabber:
2 x Matrox Meteor-II/Multi-Channel
Kabel:
2x RAUSCHER DBHD44-TO-3HR300+OT
Software:
Matrox MIL-Lite 7.0
für das Engineering-Samplern
RAUSCHER GmbH
Johann-G.Gutenberg-Str. 20
D-82140 Olching
Telefon 08142/49045
Fax 08142/49053
E-Mail: info@rauscher.de
www.rauscher.der