Computational Intelligence
Das Labor für Mustererkennung und Computational Intelligence
wurde zur Ausbildung unserer Studentinnen und Studenten im Studienschwerpunkt "Informations- und Automatisierungstechnik" und für den Wissens- und Technologietransfer zwischen Hochschule und Wirtschaft aufgebaut. Die zugehörige einsemestrige Lehrveranstaltung, die im 7. oder 8. Semester Pflicht ist, gliedert sich in einen Vorlesungsteil, in ein computerbasiertes Training und in ein Projektpraktikum. Parallel dazu laufen Studien- und Diplomarbeiten zu unserer anwendungsbezogenen Forschung und Entwicklung in Zusammenarbeit mit Unternehmen.
Im Labor bilden wir - dem Stand der Technik entsprechend in bescheidenem Umfang - Leistungen des menschlichen Gehirns auf Rechnern und anderen Maschinen ab. Wir bringen ihnen das Hören, Sehen, Sprechen , "auswendig lernen" und Entscheiden bei. Die zugehörigen numerischen Algorithmen, u.a. Neuronale Netze, Fuzzy Logic und genetische bzw. evolutionäre Algorithmen, implementieren wir auf PCs und Mikrocontrollern. Dabei ist die Anwendungsentwicklung mit industriellen Entwicklungsumgebungen für Computational Intelligence, Bild- und Sprachverarbeitung unser Ziel, nicht die Entwicklung der elementaren Algorithmen. Unsere Anwendungsschwerpunkte sind digitale Bildverarbeitung in der Automobil-, Automatisierungs- und Messtechnik, sprachgesteuerte Maschinen, intelligente Sensorik und Regelungstechnik.
Auf dieser Seite präsentieren wir Ihnen einen Überblick. Wir wünschen Ihnen viel Spaß beim Betrachten der folgenden Informationen.
Nach dem Vorlesungsteil in den ersten Wochen des Semesters schließt sich eine Einführung in spezielle Themen an, die unter Anleitung des Dozenten mit computerbasierten Trainingsprogrammen (CBT) am Rechner durchgeführt wird. Ziel dieses Trainings ist neben einer fachlichen Einführung bzw. einer Vertiefung der Vorlesungsinhalte auch eine Anleitung zum Umgang mit ausgewählten Entwicklungsumgebungen, die anschliessend zur Anwendungsentwicklung im Projektpraktikum eingesetzt werden.
Diese Lernprogramme behandeln derzeit:
1. Fuzzy Control und Fuzzy Logic
2. Neuronale Netze
3. Spracherkennung
4. Digitale Bildverarbeitung
Fuzzy Control und Fuzzy Logic
Seit etwa 1990 sind Fuzzy-Mikrokontroller z.B. in Antiblockiersystemen, Heizungsregelungen, Klimaanlagen, Durchlauferhitzern, Waschmaschinen und Geschirrspülern im Einsatz. Ist das Anwendungsgebiet nicht zeitkritisch, werden Standard Mikrocontroller eingesetzt, andernfalls spezielle Fuzzy-Mikrocontroller, welche die erforderlichen Rechenoperationen besonders schnell umsetzen. Sie basieren auf der typischen wenn (ich das mache) dann (passiert folgendes) Regelstruktur des Fuzzy-Reglers. Typische Anwendungsfälle sind approximative, leicht zu implementierende nichtlineare Regler, hybride und adaptive Regelungssysteme (Fuzzy-Regler in Zusammenarbeit mit konventionellen Reglern und evtl. mit neuronalen Netzen) und Regler, deren Algorithmus menschliches Wissen implementiert.
Da der Stellegrößenwert eines Fuzzy-Reglers allein aus den aktuell anliegenden Eingangsgrößenwerten ohne Berücksichtigung zurückliegender Eingangsgrößenwerten berechnet wird, besitzt ein Fuzzy-Regler kein Erinnerungsvermögen. Er zeigt also ein rein statisches Übertragungsverhalten. Damit gehört er zur Gruppe der Kennlinien- bzw. Kennfeldregler. Seine Kennlinie bzw. sein Kennfeld berechnet sich numerisch aus einer hochparametrisierten Funktion. Einen Fuzzy-Regler zu entwerfen bedeutet nichts anderes, als diese Parameter für den Anwendungsfall geeignet festzulegen. Kennt man das benötigte Kennfeld, so kann man die Parameter entsprechend anpassen.
Diese Strategie ist zwar nicht typisch für die Anwendung eines Fuzzy-Reglers, aber ideal für den Einstieg in den Entwurf. Wir verwenden zum Einstieg also keine mathematische unbeschreibbare Strecke im Regelkreis, über die nur unvollständiges oder widersprüchliches Wissen vorliegt, sondern eine wohl bekannte, einfache. Anhand der Kennlinien von klassischen linearen Reglern und bekannten Einstellregeln sollen die Studentinnen und Studenten zunächst mittels der grafischen Entwicklungsumgebung FuzzyTech Professional oder mit der Fuzzy Control Toolbox von Matlab Fuzzy-Regler entwickeln, die das Verhalten linearer Regler nachbilden. Sie können dann den Einfluß der Entwurfsparameter auf Kennfeld und Regelverhalten studieren. Durch Übertragen des Codes auf den PIC oder den C167 Mikrocontroller kann auch eine embedded fuzzy control Anwendung realisiert werden.
Die "wenn (ich das mache) dann (passiert folgendes)" Regelstruktur ist auch die Kernkomponente einer Fuzzy-Inferenzmaschine, die "menschliche Entscheidungen" fällt. Sie basiert auf der Fuzzy Logic. Wir setzen Sie zum Beispiel zum "rapid prototyping" bei der Entwicklung von Fahrerassistenzsystemen ein.
Neuronale Netze
Zur Einführung beschreiben wir ein Anwendungsprojekt aus der Robotik. Vorrangig werden neuronale Netze dort zur Bewegungssteuerung und zur Auswertung der Sensorik diskutiert. Ein typisches Anwendungsbeispiel ist das Erlernen der inversen Dynamik zur Drehmomentvorsteuerung. Sowohl die überwacht lernenden Systeme (bekanntester Vertreter: das Multilayer Perceptron) als auch die unüberwacht lernenden Systeme ( z. B. Kohonen-Netze und ART-Netze) leisten dies. Die Motivation zum Einsatz neuronaler Verfahren anstelle der mathematisch-physikalischen Modellierung mittels eines Differentialgleichungssystems liegt in der Erwartung, für dieses nichttriviale Problem auf einfache und schnelle Weise eine Lösung zu bekommen, die von praktischem Nutzen ist.
Ein Ziel unserer Untersuchungen im CI-Labor zusammen mit dem Labor für Robotik ist es, ein Modell der inversen Dynamik unseres Industrieroboters Reis RV6L zu entwickeln, das in einer Echtzeitanwendung im Sinne einer Drehmomentvorsteuerung die Achsregler entlastet und damit die Regelgenauigkeit erhöht. Wir verfolgen dabei einen hybriden Ansatz: das neuronale Modell wird zur Achsstromvorsteuerung eingesetzt, um real-world Probleme zu erfassen. Für die Stabilität des Systems sorgen klassische PID-Regler. Diese arbeiten nach der Vorsteuerung auf deutlich kleineren und damit sehr viel eher als linear anzunehmenden Regelabweichungen. Zudem sind Vorsteuerungen an vorhandene Industriesysteme leicht zu adaptieren.
In diesem Umfeld können die Studentinnen und Studenten selbst ein wenig experimentieren. Zu diesem Zweck sollen sie mit unserer Eigenentwicklung "OptiNet", mit der kommerziellen Entwicklungsumgebung "Brainmaker Professional" oder mit der Neural Network Toolbox von Matlab ein Neuronales Netz konstruieren, mit dem Backpropagation-Algorithmus belernen und mit einem genetischen Algorithmus optimieren. Weitere Arbeitsgebiete sind die adaptive Filterung und der Vergleich selbstorganisierender Abbildungen mit der Hauptkomponentenanalyse, z.B. zur Auswertung von Sensorarrays. Alle Themen sind in unsere aktuellen F&E-Arbeiten eingebunden.
Spracherkennung
Seit vielen Jahrzehnten befassen sich weltweit Forschungslabore damit, Computern das Sprechen und Hören beizubringen, also natürliche Sprache zu erzeugen und zu verstehen. Während das Erzeugen natürlicher Sprache vergleichsweise einfach ist und es dafür seit längerer Zeit Spezialelektronik und kommerzielle Anwendungen gibt, ist der Durchbruch im Sprachverständnis erst im letzten Jahrzehnt gelungen. Seit dieser Zeit sind Anwendungen auf dem Markt, die jedermann nutzen kann. Beispiele sind Diktierprogramme für den PC, automatische Auskunftsdialogsysteme und Telefone, in die man nicht mehr Nummern eintippen muß, sondern den Anzurufenden namentlich nennen kann.
Die Spracherkennung, um die es in unseren Anwendungen vornehmlich geht, ist ein Teilgebiet der digitalen Sprachverarbeitung, die sich neben der Sprachsynthese auch mit der Sprachdatenkomprimierung und der Sprachdatenübertragung beschäftigt. Sie benutzt Methoden der digitalen Signalverarbeitung und der Mustererkennung. Der Aufwand zur Realisierung eines Spracherkenners hängt insbesondere davon ab, ob fließende Sprache, einSchlüsselwort in fließender Sprache oder ein einzelnes Wort sprecherabhängig oder -unabhängig erkannt werden soll, ferner davon, wie groß der Wortschatz ist und schließlich auch davon, ob Phrasen, Wörter, Silben oder Laute verarbeitet werden sollen. Im Lehrbetrieb erläutern wir mit selbst entwickelter Software die Erkennung von Lauten und Lautübergängen zur Realisierung von sprecherunabhängigen Laut- und Ganzwortklassifikatoren für die Isoliertworterkennung mit begrenztem Wortschatz.
Zur Einarbeitung in Anwendungsprojekte setzen wir die kommerzielle Entwicklungsumgebung Vocon Designer ein, welche die entsprechenden Funktionen zur Spracherkennung und Sprachsynthese ebenso wie Schnittstellen zu den verwendeten Betriebssystemen und Programmiersprachen zur Verfügung stellt. Um diese Entwicklungsumgebung kennenzulernen, stellen wir eine umfassende Versuchsanleitung zur Sprachsteuerung eines Handys und eine Eigenentwicklung zur Sprachsteuerung unserer Domekamera zur Verfügung. Zur Realisierung mikrocontrollergesteuerter, eingebetteter Spracherkenner arbeiten wir mit einer Entwicklungsumgebung von Temic SDS.
Industrielle Bildverarbeitung
Die digitale Bildverarbeitung bearbeitet natürliche Bilder, um Bildinformationen zu codieren, auszuwerten oder automatisch zu erkennen. Um die letzten beiden Zielrichtungen geht es vornehmlich in der Automatisierungstechnik. Unsere Anwendungsbeispiele sind das Erkennen und Vermessen von Werkstücken, die optische Qualitätssicherung, die Bewertung von Thermografiebildern, die automatische Verkehrszählung und im Bereich der Fahrerassistenzsysteme z.B. die Erkennung von Fußgängern und Strassenrändern.
Etwa seit 1990 hat die Entwicklung aufgrund der verfügbaren Rechnerleistung einen mächtigen Aufschwung genommen, denn die digitale Bildverarbeitung stellt Ansprüche an die Verarbeitungsgeschwindigkeit und die Speicherkapazität des Rechners. In dieser Versuchsreihe verwenden wir PCs zusammen mit einem Framegrabber, um Bilder mit einem rechnergesteuerten, in die Labordecke eingebauten Kameradom, mit einer Mikroskopkamera oder einer Infrarotkamera einzulesen.
Die in den Rechner eingelesenen Bilder können mit der Entwicklungsumgebung "Hdevelop" des Softwarepakets "Halcon" oder mit OpenCV/C++ bearbeitet werden. Beide Werkzeuge enthalten eine Fülle von Operationen zur Bildverarbeitung, Merkmalsextraktion und Klassifikation, von denen wir im Einführungsteil einen kleinen Ausschnitt so präsentieren, dass man einen guten Einblick in die jeweilige Vorgehensweise bekommt. Für ein Anwendungsprojekt bietet beide Entwicklungsumgebungen die Möglichkeit, die verwendeten Operationen in ein Visual C - Programm einzubinden.
Im Projektpraktikum wird eine anwendungsbezogene Entwicklung im Sinne eines kleinen Forschungsprojekts durchgeführt. Das heißt, daß uns die Ergebnisse nicht von vornherein bekannt sind. Ferner heißt es, dass man in der Projektführung einen gewissen Gestaltungsspielraum hat, der mit eigenen Ideen kreativ ausgefüllt werden soll. Schließlich sollen die Projektgruppen einmal mehr üben, wie man ingenieurmäßig im Team an solch eine Aufgabenstellung herangeht. Wir bereiten dazu Themen aus Industrieanfragen bzw. aus unseren aktuellen Forschungs- und Entwicklungsarbeiten (FuE) so vor, dass ein schöner Erfolg erreicht werden kann. Alle Projektgruppen präsentieren ihre Ergebnisse abschließend in einem gemeinsamen Kolloqium, gegebenenfalls auch vor Vertretern der beteiligten Unternehmen.
Eine kleine Auswahl bereits bearbeiteter Themen:
- Translations- und geschwindigkeitsinvariante inverse Dynamik
- Eingebettete neuronale Robotervorsteuerung mit dem C167
- Adaptive neuronale Filterung
- Fuzzy-PID-Regelung mit dem C167
- Positionsregelung eines Solarpanels mit Fuzzy-Control
- Fuzzy Crashprediktor
- Multimodale Steuerung einer Domekamera
- Sprachsteuerung eines Multimeters mit Messwertansage
- Thermografische Bestimmung des thermischen Widerstands eines MOSFET-Gates
- Pixelweise Berechnung des Emissionsgrades in Thermografiebildern
- Automatische Messung der Verkehrsstromdichte
- Detektion von gerichteten Bewegungen im Bild einer Fahrzeugkamera
- Informationsreduzierung in Bewegtbildern durch Hintergrundsubtraktion






