Virtuelles Eingabemedium basierend auf optischen Trackingverfahren

Größe: px
Ab Seite anzeigen:

Download "Virtuelles Eingabemedium basierend auf optischen Trackingverfahren"

Transkript

1 Virtuelles Eingabemedium basierend auf optischen Trackingverfahren Sabine Bamberger DIPLOMARBEIT eingereicht am Fachhochschul-Diplomstudiengang Medientechnik und -design in Hagenberg im Juni 2004

2 c Copyright 2004 Sabine Bamberger Alle Rechte vorbehalten ii

3 Erklärung Hiermit erkläre ich an Eides statt, dass ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und die aus anderen Quellen entnommenen Stellen als solche gekennzeichnet habe. Hagenberg, am 16. Juni 2004 Sabine Bamberger iii

4 Inhaltsverzeichnis Erklärung Danksagung Kurzfassung Abstract iii v vi vii 1 Einleitung Zielsetzung Aufbau der Arbeit Trackingsysteme WasistTracking? MechanischesTracking Magnetisches Tracking AkustischesTracking InertialTracking OptischesTracking HybridesTracking OptischeFingertrackingverfahren TrackingdurchFarb-Segmentierung Konturbasiertes Tracking Detektion durch Korrelation Markerbasiertes Tracking Konzept und Design AnforderungenundFunktionsumfang CamShiftBoard LaserBoard Aufbau der Hardware CamShiftBoard LaserBoard Aufbau der Software iv

5 INHALTSVERZEICHNIS v 3.4 Keyboard Design Implementierung VerwendeteBibliotheken OpenCV LibXml Initialisierung CamShiftBoard Kalibrierung Camshift-Algorithmus LaserBoard Kalibrierung Blobanalyse xmlparser Auswertung der getrackten Koordinaten TrackBoard Bedienung CamShiftBoard LaserBoard Verwandte Arbeiten Keyboards mit Sensoren Senseboard Virtual Keyboard KITTY Lightglove InkLink Projizierte Keyboards VKey - Virtual Keyboard Siemens-Smartphone SX Weiterentwicklungen TrackingmitInfrarot Alternative Eingabeflächen Resumée 62 Literaturverzeichnis 63

6 Danksagung Ich möchte mich bei all jenen Menschen bedanken, die mich in der Zeit während der Diplomarbeit bewusst oder auch unbewusst unterstützt haben. Besonders möchte ich mich bei meinem Betreuer DI Dr. Michael Haller bedanken, der mich zu diesem Thema motivierte. Er stand mir jederzeit mit Rat und Tat zur Seite und gab mir genügend Druck, der mich bis zum ersten Termin im Juli fertig werden ließ und mir so einen schönen Sommer ermöglicht. Weiters gebührt mein Dank meinem Freund Daniel Schwarzenberger, der sehr viel Verständnis zeigte, wenn wieder einmal wegen dieser Arbeit keine Zeit für ihn blieb. Er gab mir stets Rückhalt und hatte in stressigen und von Verzweiflung geprägten Momenten immer aufmunternde Worte für mich parat. Schließlich möchte ich mich noch bei meinen Kollegen des Jahrgangs 2000 bedanken, mit denen ich in den letzten vier Jahren eine wirklich schöne Zeit verbringen durfte. Ich werde mich immer gerne daran erinnern. vi

7 Kurzfassung In den letzten Jahren ist die Bedeutung von mobilen Kommunikations- und Informationssystemen stetig größer geworden. Dabei sind diese Systeme immer mehr zusammengewachsen. Heutzutage ist z. B. der Persönliche Digitale Assistent (PDA) längst nicht nur noch der verlängerte Arm für den Desktop-PC. Auch dem Mobiltelefon kommt eine weitaus größere Rolle zu, als noch vor ein paar Jahren. Mittlerweile wird das Handy nicht nur zum Telefonieren genutzt, sondern auch zum Surfen im Internet, zum Chatten und für vieles mehr. Nicht zu Vergessen die große Beliebtheit der so genannten SMS (Short Message Service). Doch die Eingabemöglichkeiten sind auf Grund der immer kleiner werdenden Geräte sehr beschränkt, da z. B. der Ziffernblock eines Telefons deutlich weniger Tasten bietet als das Alphabet Buchstaben enthält. Auch bei PDAs, die im Gegensatz zu Mobiltelefonen mit berührungsempfindlichen, stiftgesteuerten Kleinbildschirmen ausgestattet sind, ist die Zeicheneingabe eher mühsam. Im Rahmen dieser Diplomarbeit soll nun die Grundlage zur Lösung dieser Probleme geschaffen werden. Es handelt sich hierbei um die Implementierung eines virtuellen Eingabemediums, das auf optischen Fingertrackingverfahren basiert. Das Hauptaugenmerk liegt dabei auf einer virtuellen Tastatur, die auf jede glatte Oberfläche mittels eines Projektors in Originalgröße projiziert werden kann. Der Benutzer kann nun wie gewohnt mit dem 10- Finger-System seine Texte eingeben, jedoch ohne jeglichen physischen Widerstand der Tasten. Damit soll auch die Basis für weitere Eingabemöglichkeiten, wie z. B. eine Maus, geschaffen werden. vii

8 Abstract In recent years the importance of mobile communications and information systems has been steadily increasing. Thereby, these systems grew together. Nowadays, the Personal Digital Assistant (PDA) for example is no longer the extended arm for the Desktop PC but merely an independent device. Also, the mobile phone plays a more important role than just a few years ago. Meanwhile, the cell phone is not only used for telephony, but also to surf the web, to chat and much more. Not to forget the large popularity of Short Message Service (SMS). But the input devices are very limited due to the small size. The numerical pad of a telephone for example clearly offers fewer keys than the number of letters in the alphabet. Also, with PDAs, which are equipped with touch-sensitive displays, usually used together with a stylus, typing texts is rather painful. This thesis is an approach to solve these problems by designing a virtual input medium based on optical fingertracking. The main focus lies on a full size virtual keyboard which can be projected on any flat surface. The users are able to type their texts using the 10-finger typing system, but without any physical response from the keys. This approach could also be the basis for exploring further input methods, as for example a virtual mouse. viii

9 Kapitel 1 Einleitung Der Markt wird immer mehr von mobilen Geräten übersäht. Dazu gehören Pocket PCs, PDAs, Smart Phones und noch vieles mehr. Diese Geräte werden nun immer kleiner und leichter und dadurch wird es aber dem Benutzer mehr und mehr erschwert, Daten bequem und schnell einzugeben, da ja wegen der Größe der Geräte auf eine brauchbare Tastatur z. B. verzichtet wird. Die Texteingabe ist somit meist sehr eingeschränkt bzw. sehr umständlich, da man z. B. jedes einzelne Zeichen mit einem Stift oder anhand eines Zifferblocks eingeben muss. Aber nicht jeder hat so flinke Finger wie mancher Teenager, der eine SMS in Sekundenschnelle in die Handy-Tasten haut. 1.1 Zielsetzung Ziel dieser Arbeit ist es, ein virtuelles Eingabemedium zu implementieren, das auf optischen Fingertrackingverfahren basiert und als Grundlage zur Lösung des oben geschilderten Problems dienen soll. Diese Anwendung trägt den Namen TrackBoard und setzt sich aus zwei Prototypen zusammen, denen jeweils ein anderes optisches Trackingverfahren zur Lokalisierung der Finger zu Grunde liegt. Die Hauptfunktion liegt dabei auf einer virtuellen Tastatur, die mittels eines Projektors auf eine glatte Oberfläche projiziert wird. Die projizierte Fläche hat dieselbe Größe wie eine normale Tastatur. Dem Anwender ist mit etwas Übung möglich, seine Texte wie gewohnt mit dem 10-Finger-System einzugeben. Da bereits ähnliche Produkte am Markt existieren, ist es das Ziel, ein Eingabemedium zu implementieren, das beliebig erweitert werden kann, wie zum Beispiel die Möglichkeit, eigene Keyboardlayouts zu kreieren. Im Rahmen dieser Arbeit sollen die Konzepte und Grundlagen vorgestellt werden, auf denen der funktionierende und ausbaufähige Prototyp aufbaut. Darüber hinaus werden auch Ansätze anderer Projekte vorgestellt. 1

10 KAPITEL 1. EINLEITUNG Aufbau der Arbeit Diese Arbeit und der Inhalt der einzelnen Kapitel gliedern sich wie folgt: Kapitel 2 erklärt den Begriff Tracking und gibt einen Überblick über Trackingsysteme, im Speziellen auch über Fingertrackingsysteme. Kapitel 3 stellt die Konzeption und den Systemaufbau von TrackBoard vor. Es werden die einzelnen Komponenten näher erläutert wie auch die dazugehörigen Hardware-Setups. Kapitel 4 stellt den Kern dieser Arbeit dar. Es wird die Implementierung des Konzeptes aus Kapitel 3 dargestellt. Dabei werden die verwendeten Algorithmen, um einen Finger zu tracken, genau erklärt. Kapitel 5 erklärt die Anwendung TrackBoard. Es wird darauf eingegangen, was bei der Bedienung von TrackBoard zu beachten ist. Kapitel 6 gibt einen Überblick über verwandte Arbeiten. Dabei wird zwischen Eingabemedien mit Sensoren und Eingabemedien mit projizierten Interaktionsflächen unterschieden. Kapitel 7 beschreibt die geplanten Weiterentwicklungen der Anwendung TrackBoard. Kapitel 8 bildet den Abschluss dieser Arbeit.

11 Kapitel 2 Trackingsysteme Im folgenden Abschnitt werden die Grundlagen für das Verständnis dieser Arbeit gelegt. Zunächst wird der Begriff Tracking erläutert, anschließend wird ein Überblick über existierende Trackingsysteme, im speziellen auch Fingertrackingsysteme, gegeben und dieser näher beleuchtet. 2.1 Was ist Tracking? Das Wort Tracking kommt aus dem Englischen und heißt übersetzt verfolgen. Tracking bedeutet das fortlaufende Ermitteln der Position und Orientierung von Benutzern (Körperteilen), Interaktionsgeräten und Objekten. Gerade für virtuelle Eingabemedien ist die Position und Orientierung von Hand/Finger von großer Relevanz. Trackingsysteme werden wie folgt eingeteilt [30]: Mechanisches Tracking Magnetisches Tracking Akustisches Tracking Inertial Tracking Optisches Tracking Hybrides Tracking Diese Trackingsysteme werden in folgenden Abschnitten näher in Betracht genommen. 3

12 KAPITEL 2. TRACKINGSYSTEME 4 (a) (b) Abbildung 2.1: (a) Mechanische Systeme am Oberkörper, (b) mechanischer Arm [7] Mechanisches Tracking Ein mechanischer Tracker ist vergleichbar mit dem haptischen Empfindungssystem beim Menschen. Es muss eine physikalische Verbindung zwischen zu trackendem Objekt und Messinstrument geben (siehe Abbildung 2.1(a)), z. B. einen beweglichen mechanischen Arm, der am Objekt befestigt ist. Bewegt sich nun das Objekt, so tut dies auch der Arm, dessen Positionsveränderung dann gemessen wird. Mechanische Tracker können z. B. genutzt werden um reale Objekte zu digitalisieren [7]. Man fährt dabei mit einem Stift, der an einem mechanischen Gelenkarm befestigt ist (siehe Abbildung 2.1(b)), die Konturen eines Modells nach. Die Bewegung wird aufgezeichnet und auf dem Monitor sichtbar gemacht. Durch die Änderung der Winkel in den Gelenken kann die abgefahrene Strecke rekonstruiert werden Magnetisches Tracking Ein solches System besteht aus einem Transmitter, der ein Magnetfeld um sich herum aufbaut und kleinen Sensoren, deren Position und Rotation in diesem Feld von einem Messgerät bestimmt werden kann (vgl. Abbildung 2.2). Die elektromagnetische Senderspule wird von einem Strom I durchflossen, dadurch entsteht ein elektromagnetisches Feld, welches in den Empfängerspulen eine Spannung U induziert. Aus der gemessenen Spannung und der geometrischen Anordnung der Spulen im Empfänger lassen sich Position und Orientierung des Sensorelements berechnen.

13 KAPITEL 2. TRACKINGSYSTEME 5 U I Quelle Elektromagnetisches Feld Sensor U Abbildung 2.2: Schema eines elektromagnetischen Trackingsystems [6]. Abbildung 2.3: InertiaCube der Firma Intersense [11] Akustisches Tracking Bei diesem System wird die Position von Objekten mit Hilfe von Ultraschallwellen ermittelt. Ein Sender strahlt Ultraschallwellen aus, die von einem oder mehreren Mikrophonen registriert werden. Die Position des Anwenders wird durch Laufzeit- und Phasendifferenzmessungen ermittelt. Eine übliche Konfiguration ist, drei Mikrophone in einem Dreieck anzuordnen und aus den Laufzeitdifferenzen die Position des Senders zu errechnen Inertial Tracking Dieses System ist ein Tracker, der auf Trägheitssensoren basiert. Zu diesen Sensoren zählen Beschleunigungsmesser, die die Beschleunigung in x-, y- und z-richtung messen, und Gyroskopsensoren, die die Orientierung im Raum ermitteln. Der InertiaCube von Intersense (siehe Abbildung 2.3) ist in der Lage, Orientierung in x, y und z sowie lineare Beschleunigung in diesen drei Richtungen zu messen.

14 KAPITEL 2. TRACKINGSYSTEME 6 Target Reference Reference Target (a) (b) Abbildung 2.4: (a)inside-out-verfahren: Die Kamera, hier dargestellt als target, bewegt sich um das Objekt herum; (b)outside-in-verfahren: Die Kamera, hier dargestellt als reference, ist fixiert und das Objekt bewegt sich [22] Optisches Tracking Beim optischen Tracking wird zwischen zwei Techniken unterschieden. Das Inside-out-Verfahren und das Outside-in-Verfahren unterscheiden sich darin, ob die Sensoren auf dem Objekt und die Signalquellen im Raum angebracht sind oder umgekehrt. Inside-out Systeme: Sensoren werden am Target angebracht und tasten die Verschiebung von Merkmalen (wie z. B. LEDs, reflektierende Marker usw.) in der räumlichen Umgebung ab (siehe Abbildung 2.4(a)). Outside-in Systeme: Sensoren werden im Referenzsystem fixiert und tasten die Bewegung des Targets ab [2] (siehe Abbildung 2.4(b)). Als Sensoren kommen z. B. Kameras oder auch Photodioden zum Einsatz. In Abbildung 2.5 ist je ein Beispiel für das Inside-out und für das Outsidein-Verfahren zu sehen. Optisches Tracking sollte nur dann eingesetzt werden, wenn freie Sichtverbindungen zwischen Objekt und Sensorik möglich ist, da dann die höchste Genauigkeit erzielt werden kann Hybrides Tracking Die Bezeichnung hybrides Tracking steht für eine Kombination mehrerer verschiedener Verfahren. Idealerweise versucht man hierbei, dass eine Technik die Nachteile einer weiteren kompensiert oder zumindest abschwächt und umgekehrt.

15 KAPITEL 2. TRACKINGSYSTEME 7 (a) (b) Abbildung 2.5: (a) stellt ein Beispiel für das Inside-out-Verfahren dar und (b) für das Outside-in-Verfahren, wobei vier Kameras angebracht sind, die die am Handschuh angebrachten reflektierenden Marker tracken [22]. 2.2 Optische Fingertrackingverfahren Die meisten Fingertrackingsysteme haben das Ziel, Eingabegeräte wie Maus oder Tastatur zu ersetzten. Dafür ist es aber nötig eine stabile Lokalisierung der Hand oder des Fingers zu gewährleisten. In den nächsten Abschnitten werden einige Fingertrackingverfahren vorgestellt Tracking durch Farb-Segmentierung Das mit am häufigsten genutzte Trackingverfahren zur Lokalisierung der Hand oder des Fingers ist die so genannte Farb-Segmentierung. Hier werden aus einem Farb-Kamerabild Regionen, die der Hautfarbe entsprechen, extrahiert. Diese Segmentierung erfolgt meist mit Hilfe von Farbhistogrammen, die die Verteilung der Farbtöne von Haut wiedergeben. Es erfolgt eine Aufteilung in Hautfarbbereiche und Nicht-Hautfarbbereiche. Die so (a) (b) Abbildung 2.6: (a) Kamerabild (b) und die dazugehörige Segmentierung von Hautfarbe [5]. entstandenen Regionen werden im Kamerabild getrackt. Dieses Tracking-

16 KAPITEL 2. TRACKINGSYSTEME 8 system setzt jedoch voraus, dass gute Lichtverhältnisse herrschen und dass keine anderen Objekte, die ähnlich der Hautfarbe sind, wie z. B. Möbelstücke aus hellem Holz, sich im Kamerabild befinden. Ein Beispiel für das Tracking mit Farb-Segmentierung ist der Camshift- Algorithmus (vgl. Abschnitt 4.3.2). Oft wird Ansatz der Farb-Segmentierung mit dem nächsten beschriebenen Ansatz, das Konturbasierte Tracking, kombiniert, um so eine höhere Genauigkeit zu erzielen Konturbasiertes Tracking In [18] wird ein Trackingsystem beschrieben, das anhand der Konturen einen Finger im Kamerabild trackt. Mit der beschriebenen Anwendung ist es möglich, ein einfaches Blatt Papier als Graphiktablett zu nutzten. Mit der Fingerspitze des Zeigefingers wird gezeichnet. Dabei kann sogar die Liniendicke kontrolliert werden (vgl. Abbildung 2.7(b)), indem der Winkel des Zeigefingers relativ zur Hand ermittelt wird. Der Daumen kann Mausklicks generieren. (a) (b) Abbildung 2.7: (a) Konturbasiertes Tracking der Finger, (b) mit dem Winkel des Zeigefingers kann die Dicke der zu zeichnenden Linie bestimmt werden [18]. Es wird zuerst die Anfangsposition der Hand im Kamerabild mittels Farb-Segmentierung bestimmt. Die Konturen der Hand werden anhand von Übereinstimmungen von vordefinierten Kontursegmenten, z. B. die Konturen eines einzelnen Fingers, mit dem Ergebnis des mit einem Kantendetektor- Filters neu berechneten Kamerabildes gefunden. Die so ermittelten Konturen werden mit dem so genannten Condensation-Algorithmus getrackt. Condensation steht für Conditional Density Propagation. Der Algorithmus verfolgt mit Hilfe eines probabilistischen Ansatzes, der die konkurrierende Betrachtung verschiedener Handlungshypothesen erlaubt, ein Objekt in einer Videoszene. Genauere Informationen zu diesem Algorithmus sind unter [12] zu finden.

17 KAPITEL 2. TRACKINGSYSTEME Detektion durch Korrelation Zur Auffindung von Hand- oder Gesichtspositionen ist das Wissen um deren Farbe bei der Einschränkung des Suchraums hilfreich. In diesem Suchraum kann dann per Template Matching nach einem bekannten Muster, z. B. die zuletzt beobachtete Handform, gesucht werden. Unter Template Matching versteht man den Vergleich ( Matching ) eines in Rasterform vorliegenden Prototypen eines Musters ( Template ) mit einem zu untersuchenden Rasterbild. Für jede Position im Rasterbild wird die Korrelation (wechselseitige Beziehung) zwischen dem Prototyp und dem korrespondierenden Bildbereich ermittelt [8]. (a) (b) (c) Abbildung 2.8: (a) ist das Kamerabild, (b) ist das Template der Hand und (c) zeigt das Ergebnis der 2D-Korrelation von Template und Kamerabild, die hellen Bereiche zeigen Positionen mit hoher Übereinstimmung an, in diesem Fall die Hand [4]. Eine Anwendung dieses Trackingverfahrens wird in [4] beschrieben. Es handelt sich hierbei um die Steuerung des Fernsehers mit Hilfe von Handbewegungen Markerbasiertes Tracking Eine weitere Möglichkeit, um einen Finger in einem Kamerabild zu lokalisieren, ist die Zuhilfenahme von Markern. In [3] wird so ein System beschrieben. Es handelt sich hierbei um reflektierende Marker, die an einem Handschuh angebracht sind (siehe Abbildung 2.9(a)) und von einer Infrarot- Diode beleuchtet werden. Das System besteht aus zwei Kameras an denen auch die Infrarot-Dioden angebracht sind, damit die Marker in die Richtung der Kameras reflektieren.

18 KAPITEL 2. TRACKINGSYSTEME 10 Die Kameras sind mit Infrarot-Filtern ausgestattet, um so den störenden Hintergrund herauszufiltern (vgl. Abbildung 2.9(b)). (a) (b) Abbildung 2.9: (a) Handschuh mit reflektierenden Markern, (b) Kamerabild mit durch IR-Dioden reflektierende Marker und herausgefiltertem Hintergrund [3].

19 Kapitel 3 Konzept und Design Ziel dieser Arbeit ist es, ein Eingabemedium für einen Personal Computer zu entwerfen auf der Basis von verschiedenen optischen Fingertrackingverfahren. In diesem Kapitel wird die Gesamtstruktur dieser Anwendung in Betracht genommen. Es werden die einzelnen Komponenten näher erläutert wie auch die dazugehörigen Hardware-Setups. 3.1 Anforderungen und Funktionsumfang Das im Rahmen dieser Arbeit entwickelte Programm TrackBoard ermöglicht dem Benutzer die Zeicheneingabe mit seinen Fingern ohne Verwendung einer Tastatur. Um die Finger des Anwenders zu tracken, werden Webcams eingesetzt. Im Laufe der Implementierung sind verschiedene Prototypen entstanden, die jeweils auf einem anderen Trackingverfahren basieren. In den folgenden Abschnitten werden die Prototypen CamShiftBoard und LaserBoard im Einzelnen näher erläutert CamShiftBoard Der Ausdruck CamShiftBoard bezeichnet den ersten Prototyp. Der Name leitet sich vom verwendeten Trackingverfahren ab. Es handelt sich hierbei um den so genannten Camshift-Algorithmus, der in Abschnitt ausführlich erklärt wird. Mit diesem Algorithmus ist es möglich, ein Objekt einer bestimmten Farbe im Kamerabild zu tracken. Der Camshift-Algorithmus ist also nur im Stande, einen Finger im Kamerabild zu verfolgen. Durch diese Einschränkung und der etwaigen Ungenauigkeiten beim Tracking sieht auch das Layout der Eingabefläche sehr einfach aus. Der Benutzer hat die Möglichkeit, die Zahlen von 1 bis 9 an eine Applikation, deren Fenster gerade aktiv ist, anhand einer quadratischen Eingabefläche zu senden. Die Fläche ist dabei in 3x3 Felder unterteilt. Dieses Layout ist in Abbildung 3.1 zu sehen und wird mittels einer XML-Datei definiert (vgl. Abschnitt 3.4). 11

20 KAPITEL 3. KONZEPT UND DESIGN 12 4 cm cm Abbildung 3.1: Eingabefläche für den Prototyp CamShiftBoard. Da ein Kamerabild keine Tiefeninformation des von vorne getrackten Fingers liefert, wird eine zweite Webcam benötigt, die den Finger seitlich erfasst, um so die zweite Koordinate ermitteln zu können LaserBoard Nachdem das Fingertracking mit dem Camshift-Algorithmus nicht sehr exakt funktioniert, da der Algorithmus stark von den Lichtverhältnissen abhängig ist, war die nächste Überlegung das Fingertracking mit Hilfe von Infrarotlicht zu realisieren. Dieser Ansatz wird in Abschnitt 7.1 genauer beschrieben. Man braucht aber für dieses Trackingverfahren spezielle Hardware, wie Infrarotkamera, optischer Filter und leistungsstarke IR-Dioden. Daher benötigte die Hardwareanschaffung mehr Zeit, als der Zeitrahmen für diese Arbeit zugelassen hätte. Aus diesem Grund wird anstatt der Infrarotdiode ein Linienlaser eingesetzt, daher auch die Bezeichnung Laser- Board. Das Lasermodul projiziert eine dünne rote Linie, die ca. 2mm über der Tischoberfläche verläuft. Berührt der Anwender die Tischoberfläche mit seinem Finger, wird der Fingernagel vom roten Laserstrahl beleuchtet. Diese rote Region wird im Kamerabild extrahiert (siehe Abschnitt 4.4.2) und die Koordinaten dieses Flecks werden mit Hilfe einer Blobanalyse ermittelt. Bei diesem Algorithmus können beliebig viele Finger getrackt werden. Weiters ist die Genauigkeit des Trackingalgorithmus viel höher als beim Camshift-Algorithmus. Dadurch ist ein Layout mit einer viel höheren Anzahl an Unterteilungen für die Eingabefläche möglich, wie zum Beispiel eine gesamte Tastatur. In Abbildung 3.2 ist ein Layout für diesen Prototyp zu sehen. Das Layout wird ebenfalls in einer XML-Datei definiert.

21 KAPITEL 3. KONZEPT UND DESIGN cm 2 cm 2 cm 10 cm Abbildung 3.2: Eingabefläche für den Prototyp LaserBoard. 3.2 Aufbau der Hardware Beide Anwendungen wurden mit Webcams der Marke Philips ToUCam Pro II getestet. Bei manchen Systemen tritt jedoch das Problem auf, dass es abstürzt, sobald zwei Webcams derselben Art angeschlossen werden. Der Grund hierfür ist leider unbekannt. Wird eine dieser Webcams mit einem anderen Modell (z. B. Philips ToUCam Pro I) ersetzt, tritt dieses Problem nicht mehr auf. Für jeden Prototyp ist natürlich ein eigenes Hardware-Setup nötig, die in den folgenden Abschnitten beschrieben werden CamShiftBoard Für den ersten Prototyp kommen, wie zuvor erwähnt, zwei Webcams zum Einsatz. Wie in Abbildung 3.3 dargestellt, werden die beiden Webcams im rechten Winkel platziert. Die erste Kamera ermittelt dabei die x-koordinate und die zweite die y-koordinate des getrackten Fingers. Die Webcams werden ca. 18cm von der Eingabefläche entfernt so angebracht, damit die Seitenlänge dieser Fläche das gesamte Kamerabild einnimmt (siehe Abbildung 3.4). Die Eingabefläche befindet sich auf einen 1cm hohen Sockel, da sonst die Kameras diese Fläche nicht erfassen können LaserBoard Das Hardware-Setup für den zweiten Prototyp ist schon etwas aufwendiger als beim ersten. Hierfür werden auch zwei Webcams benötigt, da das Blickfeld einer Webcam zu klein ist (ca. 30 ), um die ganze Tastatur zu erfassen. Wie in Abbildung 3.5 ersichtlich, erfasst die erste Kamera also den linken Teil und die zweite den rechten Teil der Tastatur. Die beiden Kameras befinden sich auf kleinen Stativen und zeigen somit von schräg oben auf die Tastatur (siehe Abbildung 3.6(a)), dadurch ist

22 KAPITEL 3. KONZEPT UND DESIGN cm Webcam Webcam 2 18 cm Abbildung 3.3: Hardware-Setup für den Prototyp CamShiftBoard. (a) (b) Abbildung 3.4: (a) Positionierung der Webcams für den Prototyp Cam- ShiftBoard, (b) Kamerabild einer Webcam. es möglich, neben der x-koordinate auch die y-koordinate des getrackten Fingers zu ermitteln. Zusätzlich wird auch ein Lasermodul benötigt. Dabei handelt es sich um einen Laserpointer mit integrierter Linienoptik und einer Laserdiode mit einer Wellenlänge von 635nm (brillantrot). Dieses sehr kleine Lasermodul erzeugt bei ca. 1m Abstand eine ca. 1.5m lange und 1mm breite Linie, die auch bei normaler Raumbeleuchtung gut sichtbar ist. Bei kürzeren Abständen ist die Linie entsprechend kürzer und schmaler. Das Lasermodul ist an einer

23 KAPITEL 3. KONZEPT UND DESIGN cm Webcam 1 Laser Webcam 2 19 cm 28 cm Abbildung 3.5: Hardware-Setup für den Prototyp LaserBoard. (a) (b) Abbildung 3.6: Hardware-Setup für den zweiten Prototyp mit (a) zwei Webcams und einem Lasermodul (b) und einem Projektor vertikal über dem Tisch. weißen Holzplatte so angebracht (vgl. Abbildung 3.6(a)), dass die Laserlinie knapp über der Oberfläche verläuft. Die Tastatur selbst wird mit Hilfe eines Projektors, der vertikal über dem Tisch angebracht ist, projiziert (vgl. Abbildung 3.6(b)).

24 KAPITEL 3. KONZEPT UND DESIGN Aufbau der Software Bei der Konzeption der Software-Architektur ist ausschlaggebend, dass der Aufbau sehr modular gehalten ist, um die Applikation entsprechend erweitern zu können. In Abbildung 3.7 ist der schematische Aufbau der Software dargestellt. Initialisierung der Kameras XML-Datei einlesen Kamerabilder '1' Kommandozeilen Argumente '2' CamShiftBoard Kalibrierung LaserBoard Kalibrierung Tracking mit CamShift Algorithmus Tracking mit Blobanalyse Algorithmus x-, y-koordinaten Auswertung der getrackten Koordinaten Tastaturereignisse an aktive Applikation versenden Abbildung 3.7: Schematischer Aufbau der Applikation TrackBoard. Wie aus diesem Blockschaltbild hervorgeht, erfolgt als erster Schritt die Initialisierung der Kameras. Als nächstes wird die XML-Datei, die das Layout für die Eingabefläche definiert, mittels eines XML-Parsers eingelesen. Die eingelesenen Daten werden zur Auswertung weitergegeben. Die Ka-

25 KAPITEL 3. KONZEPT UND DESIGN 17 merabilder werden abhängig von den Kommandozeilen-Argumenten an den jeweiligen Prototyp übergeben. D. h., wenn das Argument den Wert 1 hat werden die Kamerabilder an den Prototyp CamShiftBoard übergeben und bei einem Wert von 2 an den Prototyp LaserBoard. Beim Prototyp CamShiftBoard wird bei der Kalibrierung die Farbe ermittelt, die im Anschluss mit Hilfe des Camshift-Algorithmus im Kamerabild getrackt wird. Der Prototyp LaserBoard besteht ebenfalls aus Kalibrierung und Tracking- Algorithmus. Bei der Kalibrierung werden die Kameras richtig ausgerichtet und die perspektivisch verzerrten Bilder korrigiert. Der Trackingalgorithmus filtert den Laserstrahl, der sich am Finger abzeichnet, aus dem Bild und ermittelt die Koordinaten dieser Region. Die getrackten Koordinaten werden ausgewertet, d. h. einer Taste zugeordnet, und das richtige Tastaturereignis wird an eine aktive Anwendung verschickt. 3.4 Keyboard Design Um sich von ähnlichen Arbeiten abzuheben, ist der große Vorteil dieser Arbeit, dass das Keyboard Design kein fixes Layout besitzt. Das Layout wird in einer XML-Datei eingelesen. Durch Verändern dieser Datei, kann das Layout nach Belieben angepasst werden. Die Gründe für XML sind: die zugrunde liegende Syntax ermöglicht eine äußerst flexible Datenstrukturierung, Daten können durch Parser leicht ausgelesen werden und XML ist einfach zu implementieren. Der XML-Parser (beschrieben in Abschnitt 4.5) liest die XML-Dateien mit folgender Struktur ein. <?xml version= 1.0 encoding= ISO ?> <!DOCTYPE keyboard [ <!ENTITY keyboard (size, unitsize, matrix)> <!ELEMENT size (width, height)> <!ELEMENT width (#PCDATA)> <!ELEMENT height (#PCDATA)> <!ELEMENT unitsize (#PCDATA)*> <!ELEMENT matrix (row+)> <!ELEMENT row (numofkeys?, key+)> <!ELEMENT numofkeys (left, right)> <!ELEMENT left (#PCDATA)> <!ELEMENT rigth (#PCDATA)> <!ELEMENT key (unit, character)> <!ELEMENT unit (#PCDATA)> <!ELEMENT character (#PCDATA)> ]>

26 KAPITEL 3. KONZEPT UND DESIGN 18 Das obenstehende Codefragment beschreibt die Document Type Definition (DTD). Die Aufgabe der DTD ist es, den genauen Aufbau eines XML- Dokuments zu definieren. Es wird angegeben, wo welche Elemente auftreten, in welcher Hierarchie und in welcher Menge. Diese DTD beschreibt, dass ein keyboard die Elemente size, unitsize und matrix enthält. Das Element size enthält die Elemente width und height, welche die Dimensionen des Arrays, indem die eingelesenen XML-Daten gespeichert werden, darstellen. Das Element width gibt also die maximale Anzahl der Tasten in einer Reihe an und height die Anzahl der Tastenreihen. Da die Größe der Tasten in Einheiten angeben werden, definiert das Element unitsize die Größe einer Einheit in Pixel, also die Größe im Kamerabild. Das Element matrix enthält das Element row, welches eine Tastenreihe definiert. Das + gibt hier an, dass das Element matrix 0 bis n Elemente vom Typ row enthalten kann. Dieses Element wiederum enthält die Elemente numofkeys und key. Das Zeichen? bedeutet, dass das Element numofkeys optional ist. Dieses Element enthält left und right, welche angeben, wie viele Tasten einer Reihe (ausgehend vom äußeren Rand der Tastatur) von der linken bzw. rechten Webcam getrackt werden. Dies ist für den Prototyp LaserBoard von großer Relevanz. Jedes Element key, das auch wieder 0 bis n Mal enthalten ist, besteht aus den Elementen unit und character und beschreibt eine Taste. Das Element unit gibt die Breite einer Taste in Einheiten an, so z. B. hat eine Zahlentaste die Breite 1 und die rechte Shifttaste dagegen die Breite 2. Das letzte Element character enthält den so genannten virtual keycode für eine Taste. Virtual keycodes haben einen Wert von 1 bis 254 und dienen dazu, Tastaturereignisse an andere Applikationen zu verschicken. Nachstehend ist ein Auszug aus der XML-Datei für den Prototyp LaserBoard zu sehen: Abbildung 3.8: Die gelben Tasten werden von der linken Webcam erfasst und die blauen Tasten von der rechten.

27 KAPITEL 3. KONZEPT UND DESIGN 19 <keyboard> <size> <width>14</width> <height>5</height> </size> <unitsize>42</unitsize> <matrix> <row> <numofkeys> <left>8</left> <right>6</right> </numofkeys> <key> <unit>0.5</unit> <character>220</character> </key> <key> <unit>1.0</unit> <character>49</character> </key> <key> <unit>1.0</unit> <character>50</character> </key>... </row>... </matrix> </keyboard> Dieser XML-Code gibt an, dass die Tastatur aus 5 Tastenreihen mit je maximal 14 Tasten besteht und dass eine Einheit 42 Pixel groß ist. D. h., dass z. B. die Taste mit dem Buchstaben z, die eine Einheit groß ist, im Kamerabild 42 Pixel breit und hoch ist. Diese Daten sind relevant, um später die getrackten Koordinaten einer Taste zuordnen zu können. Weiters definiert dieser Codeauszug, dass bei der ersten Tastenreihe die linke Webcam die 8 links äußeren Tasten trackt und die rechte Webcam die 6 rechts äußeren Tasten. Diese Aufteilung ist bei jeder Tastenreihe etwas anders (siehe Abbildung 3.8). Zuletzt werden hier für die ersten drei Tasten der ersten Zeile die Größe und der dazugehörige Keycode definiert. Der Keycode 49 beispielsweise steht für die Ziffer 1. Die XML-Dateien für beide Prototypen sind auf der CD-ROM zu finden.

28 Kapitel 4 Implementierung Das folgende Kapitel beschreibt die Implementierung des Konzeptes aus Kapitel 3. Es handelt sich hierbei um das Programm TrackBoard, welches in zwei Prototypen umgesetzt wurde, dem CamShiftBoard und dem Laser- Board. Die Implementierung erfolgt in den Programmiersprachen C/C++ unter Verwendung der beiden Bibliotheken OpenCV 1 und libxml2 2, die in den folgenden Abschnitten näher beschrieben werden. 4.1 Verwendete Bibliotheken OpenCV OpenCV ist die Kurzform für Intel r Open Source Computer Vision Library und ist eine Sammlung von C Funktionen und C++ Klassen, die bekannte Algorithmen im Bereich der Bildverarbeitung und Computer Vision enthalten. Das Softwarepaket wurde von Intel für die Betriebssysteme Linux und Windows entwickelt und wurde erstmals im Jahr 2000 vorgestellt. Für die Implementierung der Applikation, die diese Arbeit beschreibt, wurde die Version 3.1 verwendet, die bei [27] zum Download bereit steht. OpenCV ist kompatibel mit der Intel r Image Processing Library (IPL), die low-level Bildoperationen beinhaltet und bei der mehr als die Hälfte der Funktionen auf Assembler-Ebene optimiert wurden. Dagegen bietet OpenCV neben vielen Grundfunktionen wie zum Beispiel die Binarisierung von Bildern vor allem high-level Funktionen wie [10]: 3D Rekonstruktion Objekterkennung Finden und Manipulieren von Konturen

29 KAPITEL 4. IMPLEMENTIERUNG 21 Distanz-Transformation Kamera-Kalibrierung Histogramme Gesten-Erkennung Matrix-Rechnungen Bewegungsanalyse und Objektverfolgung Zielsetzung dieser Bibliothek ist, die Grundlage für einen breiten Einsatz von Personal Computern im Bereich der Computer Vision zu schaffen. Intel proklamiert als spezielles Einsatzgebiet besonders den Bereich der Echtzeit- Anwendungen. Um alle Funktionen von OpenCV nutzen zu können, muss im Falle eines Windowssystems auch Microsoft DirectX SDK installiert sein. Im Rahmen dieser Arbeit wurde die Version DirectX 9.0 SDK Update (Summer 2003) verwendet LibXml2 LibXml2 ist eine freie Programmbibliothek und entstand im Rahmen des GENOME-Projekts 3. Es handelt sich dabei um einen XML-Parser, der vorwiegend auf UNIX-Plattformen Verwendung findet, aber kann auch auf anderen Plattformen benutzt werden. Der Parser liegt als C-Bibliothek vor und der Zugriff erfolgt über Schnittstellen. Vor der Benutzung muss der Parser erst für das Betriebssystem kompiliert werden. Es gibt jedoch auch schon bereits für Windows kompilierte Versionen, die bei [32] zum Download bereit stehen. Es sind mehrere Softwarepakete erhältlich, die in Abhängigkeiten stehen wie in Abbildung 4.1 ersichtlich. Für die Anwendung TrackBoard xmlsec xsldbg libxslt libxml openssl iconv zlib Abbildung 4.1: libxml Package-Abhängigkeiten. sind folgende Softwarepakete notwendig: 3

30 KAPITEL 4. IMPLEMENTIERUNG 22 Iconv: zur Zeichenkodierung Zlib: zur Komprimierung Libxml2: XML Parser und Prozessor Die Implementierung des XML-Parsers (siehe Abschnitt 4.5) erfolgte mit der Version libxml win32 (ist auf beiliegender CD-ROM enthalten). 4.2 Initialisierung Bei Start der Applikation werden die Kameras initialisiert. Dafür ist nötig, dass für jede Kamera gewisse Eigenschaften gesetzt werden. Die wichtigsten Eigenschaften sind in folgender Liste zu finden: CVCAM PROP ENABLE: selektiert die Kamera, CVCAM PROP RENDER: rendert die Kamera, CVCAM PROP WINDOW: selektiert ein Fenster für den gerenderten Videostream, CVCAM PROP CALLBACK: definiert eine Callback-Funktion, die bei jedem Frame einer Kamera aufgerufen wird, CVCAM STEREO CALLBACK: definiert eine Callback-Funktion, die bei jedem synchronen Frame zweier Kameras aufgerufen wird. Diese Eigenschaften werden mit der Funktion cvcamsetproperty() gesetzt. Der nachstehende Programmcode beschreibt das Initialisieren einer Kamera. //returns the number of available cameras in the system int numofcameras = cvcamgetcamerascount(); if (numofcameras < 1) { printf("unable to attach a camera...\n"); exit(1); } Als erstes wird die Anzahl der zu Verfügung stehenden Kameras im System mit der Funktion cvcamgetcamerascount() abgefragt. Ist die Anzahl der Kameras kleiner als 1, wird die Applikation wieder beendet, da keine angeschlossene Webcam im System gefunden wurde. //selects the first found camera cvcamsetproperty(0, CVCAM_PROP_ENABLE, CVCAMTRUE); // renders the stream from this source cvcamsetproperty(0, CVCAM_PROP_RENDER, CVCAMTRUE);

31 KAPITEL 4. IMPLEMENTIERUNG 23 Als nächster Schritt werden die ersten zwei Eigenschaften für die Webcam gesetzt, um die Kamera zu selektieren bzw. zu rendern. Dabei steht das erste Argument der Funktion cvcamsetproperty() für die Nummer der Webcam, für die die Eigenschaft gesetzt werden soll. Das zweite Argument definiert den Namen der Eigenschaft, welche gesetzt werden soll und beim dritten Argument wird CVCAMTRUE, was für die Zahl 1 steht, übergeben, um die Eigenschaft zu aktivieren. //creates a window to display the left camera char *winnamel = "Left"; int leftwin = cvnamedwindow (winnamel, CV_WINDOW_AUTOSIZE); HWND HLeft = (HWND)cvGetWindowHandle(winnameL); //selects the window for rendering camera s stream cvcamsetproperty(0, CVCAM_PROP_WINDOW, &HLeft); Nun wird ein Fenster mit dem Namen Left erzeugt. Um anzugeben, dass in diesem Fenster das Kamerabild gerendert werden soll, muss die Eigenschaft CVCAM PROP WINDOW mit einem Zeiger auf den Window-Handler des Fensters gesetzt werden. if (numofcameras == 1) { //this callback is processed every frame cvcamsetproperty(0, CVCAM_PROP_CALLBACK, callback); } Wenn eine Kamera im System gefunden wurde, muss der Name der Callback- Funktion, die nach jedem Frame aufgerufen wird, mit der Kameraeigenschaft CVCAM PROP CALLBACK gesetzt werden. In diesem Fall heißt die Funktion callback. //makes the settings, set by cvcamsetproperty active //and does the final step of cvcam initialization cvcaminit(); cvcamstart(); //The application is working Nach dem Aufruf der Funktionen cvcaminit() und cvcamstart() arbeitet die Applikation (die Funktion callback() oder stereocallback() wird automatisch immer wieder aufgerufen), d. h. jeder Kameraframe wird zur Auswertung abhängig von den Kommandozeilen-Argumenten an die jeweilige Prototyp-Klasse übergeben. cvwaitkey(0); cvcamstop(); //frees all resources used by cvcam cvcamexit(); Die Funktion cvwaitkey() wartet auf ein Tastaturereignis, d. h. die Applikation arbeitet so lange in einem anderen Thread, bis eine Taste gedrückt wird. Aus diesem Grund ist es wichtig, dass beim Schreiben auf der projizierten Tastatur immer ein anderes Fenster als die Applikation selbst aktiv

32 KAPITEL 4. IMPLEMENTIERUNG 24 ist, da sich sonst die Applikation schließt, wenn an diese ein Tastaturereignis verschickt wird. Nach Initialisierung der Kameras wird abhängig von den Kommandozeilen-Argumenten das Keyboardlayout des jeweiligen Prototypen mit Hilfe des XML-Parsers (siehe Abschnitt 4.5) eingelesen. 4.3 CamShiftBoard Der Name CamShiftBoard bezeichnet den ersten Prototyp. Dem Anwender ist es möglich anhand einer Eingabefläche, die in 3x3 Felder unterteilt ist, die Zahlen von 1 bis 9 mittels seines Fingers an eine Applikation zu versenden Kalibrierung Nach dem einlesen des Keyboardlayouts für den ersten Prototyp wird der Benutzer aufgefordert seinen Finger innerhalb des im Kamerabild für zehn Sekunden dargestellten Rechtecks (siehe Abbildung 4.2) zu positionieren. Dieses Rechteck wird in Abschnitt als Berechnungsfenster bezeichnet. So wird die Farbe, die getrackt werden soll, ermittelt. Nach Verstreichen dieser Zeit wird der Trackingvorgang gestartet. Das Fingertracking wird mit Hilfe des Camshift-Algorithmus, der von OpenCV zu Verfügung gestellt wird, realisiert. (a) (b) Abbildung 4.2: (a) Linkes (b) und rechtes Kamerabild mit eingezeichnetem Berechnungsfenster, aus dem die zu trackende Farbe ermittelt wird Camshift-Algorithmus Wie in Kapitel 3 erklärt, wird beim ersten Prototyp der Camshift-Algorithmus verwendet, um einen Finger zu tracken. Camshift heißt in diesem Zu-

33 KAPITEL 4. IMPLEMENTIERUNG 25 sammenhang Continuously Adaptive Mean Shift und ist eine Weiterentwicklung des Meanshift-Algorithmus, um ein farbiges Objekt zu tracken. Der Meanshift-Algorithmus findet den Schwerpunkt (mean) von farbigen Objekten, indem er den Schwerpunkt eines zu untersuchenden Fensters (wird als Suchfenster bezeichnet) in einem Bild so lange mit dem Schwerpunkt eines Objekts vergleicht, bis diese beinahe übereinstimmen. Die Genauigkeit der Übereinstimmung lässt sich mit einem Schwellwert einstellen. Die Objekte werden anhand einer Farbwahrscheinlichkeitsverteilung bestimmt. Je deutlicher das Objekt sich also farblich vom Hintergrund unterscheidet, desto besser ist es zu tracken. Choose initial search window size and location HSV Image Set calculation region at search window center but larger in size than the search window Use (X,Y) to set search window center 2*area 1/2 to set size. Color histogram lookup in calculation region Color probability distribution image Find center of mass within the search window Center search window at the center of mass and find area unter it Report X, Y, Z and Roll YES Converged? NO Abbildung 4.3: Blockschaltbild des Camshift-Algorithmus, der Meanshift- Algorithmus ist im grauen Fenster dargestellt [1]. Anders gesagt, wird beim Camshift-Algorithmus eine Farbe bestimmt und im Bild eine rechteckige Fläche gesucht, die mit dieser (oder ähnlichen) Farbe gefüllt ist. Von nun an wird versucht, diese einmal bestimmte Farbfläche in jedem Kamerabild neu zu identifizieren. Continuously Adaptive bedeutet, dass die Wahrscheinlichkeitsverteilung sich über der Zeit verändern kann, d. h., dass der Camshift-Algorithmus für Videoströme ge-

34 KAPITEL 4. IMPLEMENTIERUNG 26 eignet ist. Beim Fingertracking wird also die Hautfarbe in diesem Fenster gesucht und dabei die Position, die Größe und die Neigung des Objekts ermittelt. Der Ablauf des Camshift-Algorithmus erfolgt wie in Abbildung 4.3 dargestellt. Um mit dem Camshift-Algorithmus ein farbiges Objekt zu tracken, ist es zuerst nötig, das Kamerabild vom RGB-Farbraum in einen anderen Farbraum zu konvertieren, da nur der Farbton und nicht Helligkeit oder Farbintensität relevant ist und diese Separation der RGB-Farbraum nicht bietet. Aus diesem Grund ist das HSV-Farbsystem ideal dafür geeignet. Im HSV- Farbraum wird jede Farbe nach folgenden drei Komponenten beurteilt: Farbton (Hue): wird durch den Farbwinkel angegeben, Sättigung (Saturation): gibt an, wie stark der jeweilige Farbton ausgeprägt ist, Helligkeit (Value): gibt die Helligkeit an. Grün H=120 Cyan H=180 Blau H=240 Helligkeit V Weiß V=1 Schwarz V=0 (a) Gelb H=60 Magenta H=300 Rot H=0 Sättigung S Farbtonwinkel H Farbton H Weiß H e l l i g k e i t V Schwarz Farbton H Sättigung S (b) Grün Gelb Cyan Rot Magenta Blau Sättigung S H e l l i g k e i t V Abbildung 4.4: (a) HSV-Farbraum als Pyramide (b) HSV-Farbraum als Kegel (mit Querschnitt) [15]. Wie in Abbildung 4.4 dargestellt, ist die Skala für den Farbton zyklisch, d. h. er wird durch einen Winkel zwischen 0 und 360 um die vertikale Achse beschrieben. Dabei liegt Rot bei 0,Grün bei 120 und Blau bei 240.DieSättigung ist der horizontale Anteil von der Mittelachse bis zum Randpunkt und nimmt Werte zwischen 0 (Graustufe) und 1 (voll gesättigte Farbe) an. Die Helligkeit ist der vertikale Anteil entlang der Mittelachse und läuft von Schwarz (V=0) bis zu den Farben mit maximaler Helligkeit, inkl. Weiß (V=1). Je niedriger der V-Wert (je dunkler also die Farbe),

35 KAPITEL 4. IMPLEMENTIERUNG 27 desto weniger Sättigung kann noch erreicht werden. Dadurch entsteht die typische Zylinderform des HSV-Farbraums [16]. Um nun ein farbiges Objekt zu tracken, muss man zuerst ein Farbmodell mittels eines 1D-Histogramms erstellen. Dieses Histogramm wird aus dem H-Kanal für das Berechnungsfenster, in dem der Benutzer seinen Finger positionieren muss (siehe Abbildung 4.2), berechnet. Unter einem Histogramm versteht man die statistische Analyse eines Bildes. Es werden die Häufigkeiten der einzelnen Graustufen (in diesem Fall Farbtöne) des Bildes als Säulendiagramm dargestellt, d. h. je häufiger der Tonwert vorkommt, desto höher der Balken im Histogramm. Ein Histogramm für Hautfarbe ist in Abbildung 4.5 zu sehen. Abbildung 4.5: Histogramm aus dem H-Kanal für Hautfarbe. Mit diesem Histogramm wird nun eine Farbwahrscheinlichkeitsverteilung für das gesamte Kamerabild erstellt (siehe Abbildung 4.6). Die Wahrscheinlichkeitswerte reichen hierbei von 0 bis 255. In Abbildung 4.7 sind alle Schritte zur Berechnung der Wahrscheinlichkeitsverteilung dargestellt. (a) (b) Abbildung 4.6: (a) Kamerabild (b) und die dazugehörige Wahrscheinlichkeitsverteilung für Hautfarbe.

36 KAPITEL 4. IMPLEMENTIERUNG 28 6 Farbwahrscheinlichkeitsverteilung mittels Histogramm 1 RGB-Kamerabild 5 2 Konvertierung in HSV-Farbraum 3 Histogramm 4 H - Kanal mit Berechnungsfenser für Histogramm S - Kanal V - Kanal Abbildung 4.7: Blockschaltbild zur Berechnung der Wahrscheinlichkeitsverteilung. 1. RGB-Bild einer Kamera 2. Konvertierung des Kamerabildes in den HSV-Farbraum 3. Aufteilung in die einzelnen Kanäle des HSV-Farbraums 4. Berechnung des Histogramms aus dem Berechnungsfenster des H-Kanals, dieser Schritt wird nur einmal beim Start des Trackingvorgangs durchgeführt 5. Berechnung der Wahrscheinlichkeitsverteilung aus dem H-Kanal und dem gespeichertem Histogramm (berechnet in Schritt 4) 6. Start des Meanshift-Algorithmus Der Meanshift-Algorithmus ermittelt nun den Schwerpunkt im zuerst angegebenen Suchfensters anhand der Wahrscheinlichkeitsverteilung. Die Reihenfolge des Meanshift-Algorithmus sieht folgendermaßen aus: 1. Wähle die Größe und die Anfangsposition des Suchfensters (entspricht im ersten Schritt dem Berechnungsfenster, das die zu trackende Farbe ermittelt),

37 KAPITEL 4. IMPLEMENTIERUNG Berechne den Schwerpunkt im Suchfenster, d. h. den Punkt mit der größten Dichte an hohen Wahrscheinlichkeitswerten, 3. Zentriere das Suchfenster am Schwerpunkt (berechnet in Schritt 2), 4. Wiederhole Schritt 2 und 3 bis zur Konvergenz (oder bis die Bewegung der Position des Schwerpunktes kleiner ist als der voreingestellte Schwellwert) und speichere das nullte Moment (Bereich oder Größe) sowie die Position der Mitte. Um nun den Schwerpunkt des Suchfensters zu ermitteln, sind das nullte und erste Moment 4 zu berechnen [1]: M 00 = I(x, y) (4.1) (x,y) R Das nullte Moment berechnet die Fläche des Objekts (vgl. in Abbildung 4.8 die Region G). M 10 = (x,y) R xi(x, y) M 01 = (x,y) R yi(x, y) (4.2) Das erste Moment enthält Informationen über den Schwerpunkt des Objekts, d. h. es wird die Summe der Pixelwerte aller x-koordinaten und die Summe der Pixelwerte aller y-koordinaten ermittelt. Der Schwerpunkt (x c,y c ) wird durch x c = M 10 M 00 y c = M 01 M 00 (4.3) berechnet. Dabei ist I(x, y) der Pixelwert an der Position (x, y) im Bild, und x und y verlaufen über das Suchfenster. D. h. um den Schwerpunkt des Suchfensters R in Abbildung 4.8 zu berechnen, wird die Summe der Pixel-Spalten und die Summe der Pixel-Reihen jeweils durch die Anzahl aller Pixel des Suchfensters R (entspricht der Fläche G) geteilt. Der Meanshift-Algorithmus alleine würde als Tracker bei Videosequenzen nicht funktionieren, da sich Objekte annähern und entfernen können. D. h., zu kleine Suchfenster können das Objekt nicht richtig in der Videoszene verfolgen und zu große Suchfenster können auch andere Objekte derselben Farbe enthalten, wie zum Beispiel eine Person im Hintergrund. Darum ist es wichtig, dass sich die Suchfenstergröße dem Objekt immer anpasst. Für den nächsten Videoframe zentriert man das Suchfenster an der Position die im 4. Schritt des Meanshift-Algorithmus gespeichert wurde und setzt die

38 7 4 1 KAPITEL 4. IMPLEMENTIERUNG 30 G y c R x c Abbildung 4.8: Ermittlung des Massemittelpunkt(x c,y c ): Suchfenster dar und G das zu trackende Objekt. R stellt das Step Step Step Step Step Step Abbildung 4.9: Querschnitt einer Farbverteilung von Hautfarbe aus einem Bild mit Kopf und einer Hand [1]. Fenstergröße auf den Wert, den das nullte Moment bestimmt hat. Es wird wieder eine Farbwahrscheinlichkeitsverteilung für diesen Frame errechnet. In Abbildung 4.9 wird der Suchprozess im linken oberen Bild gestartet und im rechten unteren Bild beendet. Bei diesen Bildern handelt es sich beim roten Graph um einen 1D-Querschnitt der aktuellen Wahrscheinlichkeitsverteilung von Hautfarbe aus einen Bild mit einem Gesicht und einer 4 Momente sind Objektmerkmale, die eine geometrische Rekonstruktion von Objekten ermöglichen [13].

39 KAPITEL 4. IMPLEMENTIERUNG 31 sich links daneben befindenden Hand. Die gelbe Farbe stellt das Camshift Suchfenster dar und blau den aktuellen Schwerpunkt des Fensters. Die y- Achse gibt den Wahrscheinlichkeitswert an und die x-achse die horizontal räumliche Position innerhalb des Originalkamerabilds. Das Suchfenster wird im 1. Bild mit der Größe 3 initialisiert und wird bei jedem Schritt breiter, bis das Suchfenster das gesamte Gesicht beinhaltet, jedoch nicht die Hand. Nach sechs Wiederholungen ist der Schwerpunkt des Gesichts gefunden. Hier wird das typische Verhalten des Camshift-Algorithmus gezeigt. Der Algorithmus findet das Zentrum der naheliegensten Verteilungsfläche (Gesicht) und ignoriert benachbarte Flächen (Hand). Abbildung 4.10 zeigt den nächsten Kameraframe, indem sich Hand und Gesicht etwas nach links bewegt haben. Das Suchfenster startet an der vorher berechneten Position und nähert sich in einer Wiederholung dem neuem Zentrum des Gesichts an. Step 1 Step Abbildung 4.10: Nächster Videoframe. Wie schon bereits erwähnt, ermittelt der Camshift-Algorithmus neben der x- und y-koordinate auch die Neigung und die Größe des getrackten Objekts. Dafür muss das zweite Moment errechnet werden. Nähere Informationen sind in [1] zu finden. M 20 = x 2 I(x, y) M 02 = y 2 I(x, y) M 11 = xyi(x, y) (x,y) R Neigung des Objekts wird durch arctan (x,y) R ( M11 2 ( M20 M 00 x 2 c x c y c M ) 00 ) ( M02 M 00 y 2 c Ø= 2 ermittelt. Um die Größe des Objekts zu bestimmen, legt man fest a = M ( ) 20 x 2 M11 c b =2 x c y c M 00 M 00 ) (x,y) R (4.4) (4.5) c = M 02 M 00 y 2 c (4.6)

40 KAPITEL 4. IMPLEMENTIERUNG 32 und daraus ergibt sich für die Länge l und die Breite w des Objekts (a + c)+ b l = 2 +(a c) 2 (a + c) b w = 2 +(a c) 2. (4.7) 2 2 OpenCV bietet für den Camshift-Algorithmus eine in C++ implementierte Klasse namens CvCamShiftTracker an. Der folgende Codeauszug zeigt die Verwendung dieser Klasse: CvCamShiftTracker m_ccamshift; CvCamShiftParams m_params; CvRect m_object; Die Variable m ccamshift ist eine Instanz der Klasse CvCamShiftTracker und m params ist eine Struktur, in der die Parameter für m ccamshift definiert werden. m object stellt zu Beginn das Berechnungsfenster dar und nach Berechnung des Histogramms das Suchfenster des Camshift-Algorithmus. void CamShift::track_finger(IplImage* image){ if (IsTracking) { ApplyCamShift(image, false); } else { CvSize size = cvgetsize(image); if (IsInit) { m_object.x = cvround(size.width * m_params.x); m_object.y = cvround(size.height * m_params.y); m_object.width = cvround(size.width * m_params.width); m_object.height = cvround(size.height * m_params.height); } } } ApplyCamShift(image, true); IsTracking = true; Die Funktion track finger wird bei jedem Kameraframe, nach Verstreichen der Kalibrierungszeit (beschrieben in Abschnitt 4.3.1) aufgerufen. Beim ersten Aufruf wird der else-zweig betreten, wobei m object zu diesem Zeitpunkt das Berechnungsfenster darstellt, für das nun das Histogramm für den H-Kanal des Kamerabildes mittels der Funktion ApplyCamShift() berechnet wird. Bei jedem weiteren Kameraframe wird nun der if-zweig betreten, in dem das Objekt wieder mittels der Funktion ApplyCamShift() getrackt wird.

41 KAPITEL 4. IMPLEMENTIERUNG 33 void CamShift::ApplyCamShift(IplImage* image, bool initialize) { m_ccamshift.set_window(m_object) if (initialize) { m_ccamshift.reset_histogram(); m_ccamshift.update_histogram((cvimage*)image); } } m_ccamshift.track_object((cvimage*)image); m_object = m_ccamshift.get_window(); In dieser Funktion wird, wie bereits erwähnt, beim Start des Trackingvorgangs das Histogramm für die zu trackende Farbe mit Hilfe der Funktion update histogram() der Klasse CvCamShiftTracker berechnet, nachdem das Berechnungsfenster m object an diese Klasse übergeben wurde. Schließlich wird das Objekt mitder Funktiontrack object() getrackt und das nun neu berechnete Suchfenster wieder in m object gespeichert. Mit dem Camshift-Algorithmus ist es also möglich, die Größe, Position und Ausrichtung farbiger Objekte zu bestimmen. Jedoch ist das Tracking- Ergebnis sehr vom Umgebungslicht und dem Bildhintergrund abhängig. Des weiteren war festzustellen, dass der Finger zwar getrackt wird, jedoch wenn die gesamte Hand ins Bild kommt, liegt der Schwerpunkt nicht beim Finger sonder am Handrücken (siehe Abbildung 4.11(a)). Für die Applikation ist aber die Position der Fingerspitze relevant. Daher ist die ideale Lösung ein farbiger Fingerhut, der sich vom Hintergrund stark abhebt (siehe Abbildung 4.11(b)). (a) (b) Abbildung 4.11: Kamerabild (a) mit Schwerpunkt am Handrücken und (b) mit Schwerpunkt an der Fingerspitze mit Hilfe eines farbigen Fingerhuts.

42 KAPITEL 4. IMPLEMENTIERUNG LaserBoard Die Bezeichnung LaserBoard stellt den zweiten Prototyp dar. Der Benutzer kann auf einer projizierten Eingabefläche alle Zeichen einer Tastatur an eine Anwendung versenden Kalibrierung Zuerst müssen die beiden Kameras richtig ausgerichtet werden, um ein exaktes Fingertracking sicherzustellen. Um die Ausrichtung zu erleichtern, wird ein Viereck ins Kamerabild gezeichnet, an dem man sich orientieren kann, d. h. die Eckpunkte des Vierecks entsprechen den Eckpunkten der projizierten Tastatur. Wie in Abbildung 4.12 ersichtlich, wird für jede Kamera ein (a) (b) Abbildung 4.12: Linkes (a) und rechtes (b) Kamerabild mit eingezeichnetem Ausrichtungsviereck. eigenes Viereck benötigt. Die Kameras müssen nun so ausgerichtet sein, dass sich ca. die Hälfte der Tastatur, das schließt auch die Taste mit der Ziffer 7 mit ein, in dem gezeichneten Viereck befindet. In der Applikation selbst ist das Ausrichtungsviereck in blau eingezeichnet, da rote Linien im Kamerabild getrackt und somit falsche Tastaturereignisse verschickt werden würden. Aber aus Gründen der besseren Sichtbarkeit sind in Abbildung 4.12 die Ausrichtungsvierecke in rot eingezeichnet. Da die Tastatur durch die Position der Kameras perspektivisch verzerrt wird, wäre es um einiges schwieriger die getrackten Koordinaten einer Taste zuzuordnen. Aber OpenCV bietet Funktionen, die es ermöglichen perspektivisch verzerrte Bilder zu entzerren. Der nachfolgende Programmcode implementiert diesen Vorgang.

43 KAPITEL 4. IMPLEMENTIERUNG 35 //points of the quad without distortion CvPoint2D32f srcquad[4]; srcquad[0].x = 0; srcquad[0].y = 0; srcquad[1].x = 0; srcquad[1].y = 213; srcquad[2].x = 320; srcquad[2].y = 213; srcquad[3].x = 320; srcquad[3].y = 0; //points of the quad with distortion CvPoint2D32f dstquad[4]; dstquad[0].x = 3; dstquad[0].y = 32; dstquad[1].x = 1; dstquad[1].y = 135; dstquad[2].x = 234; dstquad[2].y = 161; dstquad[3].x = 318; dstquad[3].y = 83; Zuerst werden in der Variable CvPoint2D32f srcquad[4] die vier Eckpunkte der Tastatur ohne jeglicher Verzerrung angeben und in CvPoint2D32f dstquad[4] die vier Eckpunkte der Tastatur mit perspektivischer Verzerrung, die den Punkten des Ausrichtungsvierecks entsprechen (siehe Abbildung 4.13). Man könnte die Punkte für die Variable CvPoint2D32f dstquad[4] auch mit Hilfe des Mauszeigers angeben, sprich die Punkte werden im Kamerabild per Maus automatisch ermittelt. Jedoch war diese Verbesserung aus Zeitmangel leider nicht mehr möglich. y y 1/ /161 0/ / /83 3/32 x 0/0 320/0 x Abbildung 4.13: Links: Tastatur mit perspektivischer Verzerrung; Rechts: Tastatur ohne Verzerrung.

44 KAPITEL 4. IMPLEMENTIERUNG 36 double coeffs[3][3]; //Computes perspective coeffs for transformation from src to dst quad icvcomputeperspectivecoeffs(srcquad, dstquad, coeffs); //creates a 240x bit float matrix with 2 channel CvMat* perspectivemap = cvcreatemat(240,320,cv_32fc2); //computes a perspective map using previously calculated coeffs cvcomputeperspectivemap(coeffs, perspectivemap); Aus den zwei Arrays srcquad[4] und dstquad[4] wird eine 3x3 Matrix (double coeffs[3][3]) mit Hilfe von icvcomputeperspectivecoeffs() berechnet, die die Transformationsmatrix zwischen dem perspektivisch unverzerrten Viereck und dem verzerrten Viereck ist. Mit dieser Transformationsmatrix wird nun eine perspektivische Abbildung für das gesamte Bild mittels der Funktion cvcomputeperspectivemap() errechnet und in einer 240x320 Matrix mit zwei Kanälen gespeichert. Es wird also für jeden Bildpunkt die Verzerrung für die x-koordinate (Kanal 1) und für die y-koordinate (Kanal 2) berechnet. IplImage* undistortimage = cvcreateimage(cvsize(320,240), 8, 3); //creates a 240x bit signed matrix with 3 channels CvMat* rectmap = cvcreatemat(240,320,cv_32sc3); //converts floating-point map to a faster fixed-point map cvconvertmap(image, perspectivemap,rectmap,1); //corrects distortion using previously calculated rectmap cvundistort(orgimage, undistortimage, rectmap, 1); Nach der Konvertierung der Matrix perspectivemap mit Hilfe der Funktion cvconvertmap() wird mit cvundistort() aus dem Originalkamerabild ein neues perspektivisch entzerrtes Bild berechnet (siehe Abbildung 4.14) (a) (b) Abbildung 4.14: Neu berechnete Bilder der (a) linken und (b) rechten Kamera ohne perspektivische Verzerrung.

45 KAPITEL 4. IMPLEMENTIERUNG 37 (a) (b) (c) (d) (e) Abbildung 4.15: (a) Originalkamerabild (b) und in den HSV-Farbraum konvertiertes Kamerabild; Die einzelnen Kanäle des HSV-Bildes: (c) H- Kanal, (d) S-Kanal und (e) V-Kanal. Die neu berechneten Bilder, die für den Anwender nicht sichtbar sind, werden an dem Trackingalgorithmus Blobanalyse übergeben, um die Anzahl der Tastenanschläge und die dazugehörigen Koordinaten zu ermitteln. Dieser Vorgang wird im nächsten Abschnitt ausführlich erläutert Blobanalyse Um einen Finger zu tracken, muss die rote Laserlinie, die sich bei einem Tastenanschlag am Fingernagel abzeichnet, aus dem Kamerabild gefiltert und die Koordinaten ermittelt werden. Zuerst sind nun einige Bildoperationen nötig, um den roten Laserstrahl aus dem Bild zu extrahieren. Als erster Schritt wird das Kamerabild in den HSV-Farbraum konvertiert (siehe Abbildung 4.15(b)), ausführliche Informationen über den HSV-Farbraum findet man in Abschnitt Das konvertierte Bild wird dann in seine einzelnen Kanäle aufgeteilt(vgl. Abbildung 4.15(c) bis 4.15(e)). Die Konvertierung in den HSV-Farbraum und die Aufteilung in die einzelnen Kanäle beschreibt das nun folgende Codefragment.

46 KAPITEL 4. IMPLEMENTIERUNG 38 IplImage* hsv = cvcreateimage(cvsize(320, 240), 8, 3); IplImage* h_plane = cvcreateimage(cvsize(320, 240), 8, 1); IplImage* s_plane = cvcreateimage(cvsize(320, 240), 8, 1); IplImage* v_plane = cvcreateimage(cvsize(320, 240), 8, 1); cvcvtcolor(sampleimage, hsv, CV_BGR2HSV); cvcvtpixtoplane(hsv, h_plane, s_plane, v_plane, 0); Zunächst werden 8-bit Bilder von der Größe 320x240 erzeugt. Davon hat ein Bild drei Kanäle und die anderen jeweils einen Kanal. Mit der Funktion cvcvtcolor() wird das Kamerabild SampleImage in den HSV-Farbraum konvertiert und in der Variable hsv gespeichert. Dieses Bild wird mittels der Funktion cvcvtpixtoplane() in seine einzelnen Kanäle aufgeteilt. Es erfolgt eine Binarisierung der Bilder der einzelnen Kanäle. Bei der Binarisierung von Bildern wird ein Schwellwert festgelegt. Liegt der Grauwert über dem Schwellwert, zählt das Pixel zum Objekt, andernfalls zum Hintergrund. IplImage* ThresholdedImage = cvcreateimage(cvsize(320, 240), 8, 1); cvthreshold(h_plane, ThresholdedImage, 60, 255, CV_THRESH_BINARY); cvthreshold(h_plane, h_plane, 130, 255, CV_THRESH_BINARY_INV); cvthreshold(s_plane, s_plane, 90, 255, CV_THRESH_BINARY_INV); cvthreshold(v_plane, v_plane, 150, 255, CV_THRESH_BINARY_INV); Mit der Funktion cvthreshold() werden in OpenCV Bilder binarisiert. Die ersten beiden Parameter geben das Quell- und das Zielbild an, der dritte den Schwellwert und der vierte Parameter den maximalen Grauwert, den ein Pixel haben kann. Der letzte Parameter gibt den Typ der Binarisierung an. Bei CV THRESH BINARY erhält das Pixel den maximalen Grauwert, wenn der Pixelwert über dem Schwellwert liegt, und bei CV THRESH BINARY INV wird das Pixel schwarz, falls der Wert über dem Schwellwert liegt. In diesem Fall werden für den H-Kanal zwei Schwellwerte festgelegt (siehe Abbildung 4.16(b) und 4.16(c)) und für den S- und V-Kanal jeweils einer (siehe Abbildung 4.16(e) und 4.16(g)). Die Schwellwerte sind genau den Lichtverhältnissen eines abgedunkelten Raums mit eingeschaltetem Projektor angepasst. Sollten sich die Lichtverhältnisse ändern, z. B. es steht kein Projektor für die Projektion der Tastatur zur Verfügung, so müssen die Schwellwerte dieser Situation angepasst werden. Mit der Binarisierung wird Speicherplatz gespart und die spätere Auswertung wird erheblich erleichtert, da das Bild nur noch aus schwarz (Laserlinie) und weiß (Hintergrund) besteht. Um die aus der Binarisierung erhaltenen Bilder wieder zu einem einzigen zusammenzufügen, werden eine UND-Verknüpfung und zwei Additionen angewendet.

47 KAPITEL 4. IMPLEMENTIERUNG 39 (a) (b) (c) (d) (e) (f) (g) Abbildung 4.16: Mit Schwellwert binarisierte Bilder: (a) zeigt den H- Kanal, (b) und (c) sind die binarisierten Bilder davon, (d) zeigt den S-Kanal, (e) das binarisierte Bild davon, (f) zeigt den V-Kanal und (g) das binarisierte Bild davon.

A) Durchsuchen von Datenbanken im Internet durch Endnote

A) Durchsuchen von Datenbanken im Internet durch Endnote EINLEITUNG/ANWEISUNGEN ZU DIESEM TEXT Wir werden die obere Liste (File/ Edit usw.) benutzen, obwohl die meisten Funktionen auch möglich mit rechtem Mausklick, mit Kombinationen der Tastatur oder mit den

Mehr

03/ DISKUS Erweiterungen 2003

03/ DISKUS Erweiterungen 2003 03/ DISKUS Erweiterungen 2003 03/ 1. Diverses a) Größe der Markier-Pfeile ist konfigurierbar Für Nutzer hochauflösender Kameras, stehen bei dem größeren Bild auch größere Pfeile zum einstanzen zur Verfügung.

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr

Parallele und funktionale Programmierung Wintersemester 2013/14. 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr 8. Übung Abgabe bis 20.12.2013, 16:00 Uhr Aufgabe 8.1: Zeigerverdopplung Ermitteln Sie an folgendem Beispiel den Rang für jedes Listenelement sequentiell und mit dem in der Vorlesung vorgestellten parallelen

Mehr

Tipps & Tricks ArCon. Schriftfeldmakro. Informationszeitschrift der DI KRAUS & CO GesmbH Seite 18

Tipps & Tricks ArCon. Schriftfeldmakro. Informationszeitschrift der DI KRAUS & CO GesmbH Seite 18 Im Konstruktionsmodus ist in der rechten unteren Ecke des Blattes ein Schriftfeld zu sehen. Dieses können Sie verändern, indem Sie doppelt darauf klicken. Nun haben Sie, je nach Schriftfeld, verschiedene

Mehr

Printer Driver. In dieser Anleitung wird die Einrichtung des Druckertreibers unter Windows 7, Windows Vista, Windows XP und Windows 2000 beschrieben.

Printer Driver. In dieser Anleitung wird die Einrichtung des Druckertreibers unter Windows 7, Windows Vista, Windows XP und Windows 2000 beschrieben. 4-129-746-32 (1) Printer Driver Einrichtungsanleitung In dieser Anleitung wird die Einrichtung des Druckertreibers unter Windows 7, Windows Vista, Windows XP und Windows 2000 beschrieben. Vor Verwendung

Mehr

Was kann mein Handy mir bieten? Referent: Andreas Neumann

Was kann mein Handy mir bieten? Referent: Andreas Neumann Was kann mein Handy mir bieten? Referent: Andreas Neumann Modelle Netz Bedienung Übersicht Mobiltelefone SmartPhones sonstiges Modelle Mobiltelefone Candybar, Monoblock Klapphandy, Clamp-Shell Slider Smart

Mehr

Leica DISTO Transfer Wie verbinde ich meinen Leica DISTO mit meinem PC

Leica DISTO Transfer Wie verbinde ich meinen Leica DISTO mit meinem PC Wie verbinde ich meinen Leica DISTO mit meinem PC PC, Labtop 2 Tablet PC, UMPC Installation 1. Bitte laden Sie die aktuellste Version der Leica DISTO Transfer Software auf unserer Homepage herunter: http://ptd.leica-geosystems.com/en/support-downloads_6598.htm?cid=11104

Mehr

Fingerpulsoximeter. A. Wie führt man einen Echtzeitdatentransfer vom PULOX PO-300 zum Computer durch und speichert diese Messdaten auf dem PC?

Fingerpulsoximeter. A. Wie führt man einen Echtzeitdatentransfer vom PULOX PO-300 zum Computer durch und speichert diese Messdaten auf dem PC? Mini-FAQ v1.5 PO-300 Fingerpulsoximeter A. Wie führt man einen Echtzeitdatentransfer vom PULOX PO-300 zum Computer durch und speichert diese Messdaten auf dem PC? B. Wie nimmt man mit dem PULOX PO-300

Mehr

Das vorliegende Skript ist aktualisiert für die Processing Version 1.1 von März 2010.

Das vorliegende Skript ist aktualisiert für die Processing Version 1.1 von März 2010. Was ist Processing? Processing ist eine Open Source-Programmiersprache für die Programmierung von Bildern, Animation und Sound. Es wurde speziell für Studenten, Künstler und Designer entwickelt. Durch

Mehr

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise

A-Plan 12.0. Zeiterfassung 2.0. Ausgabe 1.1. Copyright. Warenzeichenhinweise A-Plan 12.0 Zeiterfassung 2.0 Ausgabe 1.1 Copyright Copyright 1996-2014 braintool software gmbh Kein Teil dieses Handbuches darf ohne ausdrückliche Genehmigung von braintool software gmbh auf mechanischem

Mehr

Design Betrachtungen für r Tablet PC Software

Design Betrachtungen für r Tablet PC Software Design Betrachtungen für r Tablet PC Software Stefan Wick Software Design Engineer / Test Lead Tablet PC Group - Microsoft Corporation swick@microsoft.com Überblick Design Betrachtungen Richtlinien für

Mehr

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

Mehr

PO-250. Fingerpulsoximeter. 1. Wie führe ich eine Echtzeitübertragung vom PULOX PO-250 zum PC durch und speichere meine Messdaten auf dem PC?

PO-250. Fingerpulsoximeter. 1. Wie führe ich eine Echtzeitübertragung vom PULOX PO-250 zum PC durch und speichere meine Messdaten auf dem PC? Mini-FAQ v1.5 PO-250 Fingerpulsoximeter 1. Wie führe ich eine Echtzeitübertragung vom PULOX PO-250 zum PC durch und speichere meine Messdaten auf dem PC? 2. Wie nehme ich mit dem PULOX PO-250 Daten auf

Mehr

SemTalk Services. SemTalk UserMeeting 29.10.2010

SemTalk Services. SemTalk UserMeeting 29.10.2010 SemTalk Services SemTalk UserMeeting 29.10.2010 Problemstellung Immer mehr Anwender nutzen SemTalk in Verbindung mit SharePoint Mehr Visio Dokumente Viele Dokumente mit jeweils wenigen Seiten, aber starker

Mehr

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich? KURZANLEITUNG Firmware-Upgrade: Wie geht das eigentlich? Die Firmware ist eine Software, die auf der IP-Kamera installiert ist und alle Funktionen des Gerätes steuert. Nach dem Firmware-Update stehen Ihnen

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Windows Vista Produktivität mit erleichterter Bedienung

Windows Vista Produktivität mit erleichterter Bedienung Windows Vista Produktivität mit erleichterter Bedienung Optimieren Sie Ihren Umgang mit dem PC, auch bei Einschränkungen Ihrer Sehfähigkeit, Ihrer Fingerfertigkeit, Ihres Hörvermögens oder Ihrer Sprechfähigkeit.

Mehr

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM ÜBERSICHT Android Android Dalvik Virtuelle Maschine Android und Desktop Applikationen Android Entwicklung Tools R Activity

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

Linear Workflow. Linear Workflow. Version 1.0-2011-10-11

Linear Workflow. Linear Workflow. Version 1.0-2011-10-11 Version 1.0-2011-10-11 Verfahren, Bilder unter Rücksichtnahme ihres Farbprofils und der des Ausgabegeräts zu berechnen (3D), bzw. zu bearbeiten (Compositing), um eine mathematisch und physikalisch korrekte

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Computer Graphik I (3D) Dateneingabe

Computer Graphik I (3D) Dateneingabe Computer Graphik I (3D) Dateneingabe 1 3D Graphik- Pipeline Anwendung 3D Dateneingabe Repräsenta

Mehr

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3

1. General information... 2 2. Login... 2 3. Home... 3 4. Current applications... 3 User Manual for Marketing Authorisation and Lifecycle Management of Medicines Inhalt: User Manual for Marketing Authorisation and Lifecycle Management of Medicines... 1 1. General information... 2 2. Login...

Mehr

Headtrackr Anleitung. P a g e 1 7

Headtrackr Anleitung. P a g e 1 7 Headtrackr Anleitung Inhaltsverzeichnis Einleitung... 2 Anleitung... 2 Installieren... 2 Einrichten... 2 Opentrack Einstellungen... 2 Einstellungen, die abhängig sind vom Spiel und von der Art und Weise

Mehr

OpenGL. (Open Graphic Library)

OpenGL. (Open Graphic Library) OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Ab jetzt: Java ohne Kara

Ab jetzt: Java ohne Kara Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen JavaKara -> Java Ablauf in JavaKara: 1. Programm schreiben 2. Kompilieren 3. Programm starten Ablauf in Java

Mehr

Kurzanleitung. colorcontrol Software C4. colorsensor OT-3-MA-200 OT-3-GL-200 OT-3-HR-200

Kurzanleitung. colorcontrol Software C4. colorsensor OT-3-MA-200 OT-3-GL-200 OT-3-HR-200 Kurzanleitung colorcontrol Software C4 colorsensor OT-3-MA-200 OT-3-GL-200 OT-3-HR-200 PC-Software für Microsoft Windows Vista, XP, 2000, NT 4.0, Me, 98, 95 MICRO-EPSILON Eltrotec GmbH Heinckelstraße 2

Mehr

Kurzanleitung zu WinZeit und dem Scanndy

Kurzanleitung zu WinZeit und dem Scanndy Kurzanleitung zu WinZeit und dem Scanndy Inhaltsverzeichnis Benötigte Materialien Seite 3 Grundlegende Bedienung des Scanndys Seite 4 Die Hauptmenü Punkte Seite 5 Das Drucken mit Barcode Seite 6 Zuordnen

Mehr

Das Handbuch zu KCM Tablet. Jörg Ehrichs Übersetzung: Burkhard Lück

Das Handbuch zu KCM Tablet. Jörg Ehrichs Übersetzung: Burkhard Lück Jörg Ehrichs Übersetzung: Burkhard Lück 2 Inhaltsverzeichnis 1 Wacom-Tablett-Einstellungen 5 1.1 Profilverwaltung...................................... 5 1.2 Allgemeine Tablett-Einstellungen und -Informationen.................

Mehr

phycam VM-012 - Remapping

phycam VM-012 - Remapping Application Note No.: LAN-062d_1 Version: 1.0 Autor: H. Fendrich Date: 20.10.2014 Historie: Version Änderungen Datum Autor 1.0 Erstellung des Dokuments 20.10.2014 H. Fendrich phycam VM-012 - Remapping

Mehr

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01 Installation, Konfiguration, Verwendung Version 1.01 Seite 2 von 20 OPC-Server VM OPC Revision Version Erstellt am Versionsnummer Bemerkung 1.00 26.07.2013 Erstellung 1.01 05.11.2013 2.14 - Reiter der

Mehr

Technical Support Knowledge Base

Technical Support Knowledge Base Seite 1 von 6 Hello, Alois : Germany search Advanced Search Home» Support» Technical Support» Technical Support Knowledge Base Technical Support Knowledge Base Ist dies das von Ihnen gesuchte Dokument?

Mehr

Einführung in die Cross-Plattform Entwicklung Responsive Webdesign mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Responsive Webdesign mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Responsive Webdesign mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Responsive Webdesign vertraut. Es wird

Mehr

Programmierung eines GIMP-Plugin

Programmierung eines GIMP-Plugin Programmierung eines GIMP-Plugin Was ist GIMP? GNU Image Manipulation Program Bildbearbeitungssoftware Bildkonvertierer Open Source Erweiterbar durch Plugins Mögliche Programmiersprachen für Plugin-Entwicklung

Mehr

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2 ReadMe zur Installation der BRICKware for Windows, Version 6.1.2 Seiten 2-4 ReadMe on Installing BRICKware for Windows, Version 6.1.2 Pages 5/6 BRICKware for Windows ReadMe 1 1 BRICKware for Windows, Version

Mehr

KLEINE DISPLAYS MIT GROSSER WIRKUNG!

KLEINE DISPLAYS MIT GROSSER WIRKUNG! Kleine, quadratische LC-Displays, die sich aufgrund ihrer Dimensionen und technischen Eigenschaften perfekt für kreative Anordnungen in modular aufgebauten Videowänden eignen. Dieses Anforderungsprofil

Mehr

Ihr Benutzerhandbuch HP COMPAQ PRESARIO V6339EU http://de.yourpdfguides.com/dref/4171123

Ihr Benutzerhandbuch HP COMPAQ PRESARIO V6339EU http://de.yourpdfguides.com/dref/4171123 Lesen Sie die Empfehlungen in der Anleitung, dem technischen Handbuch oder der Installationsanleitung für HP COMPAQ PRESARIO V6339EU. Hier finden Sie die Antworten auf alle Ihre Fragen über die in der

Mehr

PRESS RELEASE. Kundenspezifische Lichtlösungen von MENTOR

PRESS RELEASE. Kundenspezifische Lichtlösungen von MENTOR Kundenspezifische Lichtlösungen von MENTOR Mit Licht Mehrwert schaffen. Immer mehr Designer, Entwicklungsingenieure und Produktverantwortliche erkennen das Potential innovativer Lichtkonzepte für ihre

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Dokumentation: wi://googlemaps

Dokumentation: wi://googlemaps 1 Dokumentation: wi://googlemaps zur Einbindung von eigenen GoogleMaps Karten im TYPO3 Backend 2 Inhalt Einrichtung des Plugins... 3 Schritt 1: Frontend Plugin anlegen... 3 Schritt 2: Speicherort der Datensätze

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

PADS 3.0 Viewer - Konfigurationen

PADS 3.0 Viewer - Konfigurationen PADS 3.0 Viewer - Konfigurationen Net Display Systems (Deutschland) GmbH - Am Neuenhof 4-40629 Düsseldorf Telefon: +49 211 9293915 - Telefax: +49 211 9293916 www.fids.de - email: info@fids.de Übersicht

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Windows das erste Mal

Windows das erste Mal Windows das erste Mal Ist der Computer betriebsbereit? Dann ist es jetzt an der Zeit, sich mit der Bedienung des Betriebssystems Windows vertraut zu machen. Haben Sie noch gar keine oder nur wenig Erfahrung

Mehr

Häufig gestellte Fragen zum Bookeye

Häufig gestellte Fragen zum Bookeye Häufig gestellte Fragen zum Bookeye Allgemeines Was kostet die Benutzung des Scanners?...2 Welche Bücher dürfen gescannt werden?...2 Was ist mit urheberrechtlich geschützten Werken?...2 Ich habe meinen

Mehr

w-lantv 50n Kurzanleitung Eine Schritt für Schritt Anleitung zum erfolgreichen, drahtlosen TV Erlebnis. Bitte zuerst lesen!

w-lantv 50n Kurzanleitung Eine Schritt für Schritt Anleitung zum erfolgreichen, drahtlosen TV Erlebnis. Bitte zuerst lesen! Eine Schritt für Schritt Anleitung zum erfolgreichen, drahtlosen TV Erlebnis. Bitte zuerst lesen! Änderungen von Design und /oder Technik vorbehalten. 2008-2009 PCTV Systems S.à r.l. 8420-20056-01 R1 Lieferumfang

Mehr

Benutzerhandbuch. Kabelloser USB Videoempfänger. Modell BRD10

Benutzerhandbuch. Kabelloser USB Videoempfänger. Modell BRD10 Benutzerhandbuch Kabelloser USB Videoempfänger Modell BRD10 Einführung Herzlichen Glückwunsch zum Kauf des Extech BRD10 Kabellos USB Videoempfängers für die Anwendung mit der Extech Endoskop Produktserie.

Mehr

Für AX 4.0, den letzten Hotfix rollup einspielen. Der Hotfix wurde das erste Mal im Hotfix rollup 975357 eingeschlossen:

Für AX 4.0, den letzten Hotfix rollup einspielen. Der Hotfix wurde das erste Mal im Hotfix rollup 975357 eingeschlossen: I. DOCTYPE-Deklaration Die INDEX.XML-Datei, die beim GDPdU-Export erstellt wird, beinhaltet eine DOCTYPE-Deklaration, die inkorrekterweise als Kommentar herausgegeben wird:

Mehr

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 Inhaltsverzeichnis Software ekey TOCAhome pc 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 3. MONTAGE, INSTALLATION UND ERSTINBETRIEBNAHME... 3 4. VERSION... 3 Version 1.5 5. BENUTZEROBERFLÄCHE...

Mehr

DRESDEN. Ermitteln von Sprunghöhen mit einem Windows Phone. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht.

DRESDEN. Ermitteln von Sprunghöhen mit einem Windows Phone. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht. ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht DRESDEN Ermitteln von Sprunghöhen mit einem Windows Phone Felix Guttbier Schule: Gymnasium Brandis Jugend forscht 2014 ERMITTELN VON SPRUNGHÖHEN

Mehr

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy

Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy Installationsanleitung für das Touch Display: S170E1-01 LCD A170E1-T3 ChiMei - egalaxy 1. Schnellanleitung - Seite 2 2. Ausführlichere Anleitung - Seite 3 a) Monitor anschließen - Seite 3 Alternativer

Mehr

Computer Vision: 3D-Geometrie. D. Schlesinger () Computer Vision: 3D-Geometrie 1 / 17

Computer Vision: 3D-Geometrie. D. Schlesinger () Computer Vision: 3D-Geometrie 1 / 17 Computer Vision: 3D-Geometrie D. Schlesinger () Computer Vision: 3D-Geometrie 1 / 17 Lochkamera Modell C Projektionszentrum, Optische Achse, Bildebene, P Hauptpunkt (optische Achse kreuzt die Bildebene),

Mehr

Monitor-Gamma. Michael v.ostheim Übersetzung: Marco Wegner Deutsche Übersetzung: Kilian Kluge

Monitor-Gamma. Michael v.ostheim Übersetzung: Marco Wegner Deutsche Übersetzung: Kilian Kluge Michael v.ostheim Übersetzung: Marco Wegner Deutsche Übersetzung: Kilian Kluge 2 Inhaltsverzeichnis 1 Einleitung 4 2 Testbilder benutzen 4 2.1 Testbild Grauskala..................................... 4

Mehr

DEUTSCHE VERSION. CITO CounterControl. Benutzerhandbuch. CITO ProcessLine

DEUTSCHE VERSION. CITO CounterControl. Benutzerhandbuch. CITO ProcessLine DEUTSCHE VERSION CITO CounterControl Benutzerhandbuch CITO ProcessLine 1 Inhaltsverzeichnis Inhaltsverzeichnis Einführung 3 Warnung 3 Allgemeine Sicherheitsvorschriften 3 Das CITO CounterControl-Gerät

Mehr

EMCO Installationsanleitung Installation instructions

EMCO Installationsanleitung Installation instructions EMCO Installationsanleitung Installation instructions Installationsanleitung Installation instructions Digitalanzeige digital display C40, FB450 L, FB600 L, EM 14D/17D/20D Ausgabe Edition A 2009-12 Deutsch...2

Mehr

EINLEITUNG/ANWEISUNGEN ZU DIESEM TEXT

EINLEITUNG/ANWEISUNGEN ZU DIESEM TEXT Autoren: Georgius Tsoussis, Amely Ovelhey EINLEITUNG/ANWEISUNGEN ZU DIESEM TEXT Ziele der Nutzung von EndNote: - Referenzen sammeln und verwalten - Referenzen in ein (Word-)Dokument einfügen (in-text-citation

Mehr

POB-Technology Dokumentation. POB-Technology Produkte. Deutsche Übersetzung von roboter-teile.de Alle Rechte vorbehalten Seite 1 von 13

POB-Technology Dokumentation. POB-Technology Produkte. Deutsche Übersetzung von roboter-teile.de Alle Rechte vorbehalten Seite 1 von 13 POB-Technology Produkte Deutsche Übersetzung von roboter-teile.de Alle Rechte vorbehalten Seite 1 von 13 Inhaltsverzeichnis Inhaltsverzeichnis Inhaltsverzeichnis... 2 Einführung...4 POB-EYE... 5 POB-LCD128...

Mehr

Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek

Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek Release MIL 9.2 Matrox Imaging Library weltweit ein voller Erfolg! RAUSCHER BILDVERARBEITUNG Telefon

Mehr

Direkter Internet-Anschluss für das PSR-3000/1500

Direkter Internet-Anschluss für das PSR-3000/1500 PHONES PHONES PHONES Sie können Songdaten und andere Daten von der speziellen Website erwerben und herunterladen, wenn das Instrument direkt mit dem Internet verbunden ist. Dieser Abschnitt enthält Begriffe,

Mehr

Tastatur auf Hebräisch umstellen

Tastatur auf Hebräisch umstellen Tastatur auf Hebräisch umstellen 19.08.2015 Inhaltsverzeichnis 1. Die hebräische Tastatur in Windows Vista und XP, Windows 7, Windows 8 und Windows 10 anlegen... 2 1.1 Die Tastatur in Windows XP und Windows

Mehr

Browserbasiertes, kollaboratives Whiteboard

Browserbasiertes, kollaboratives Whiteboard WS 2011/12 Bachelorarbeit Browserbasiertes, kollaboratives Whiteboard Sebastian Dorn 1 von 21 Inhalt 1. Motivation 2. Analyse 3. Design 4. Evaluation 5. Fazit Inhalt 2 von 21 Motivation Zusammenarbeit

Mehr

Seminar Komplexe Objekte in Datenbanken

Seminar Komplexe Objekte in Datenbanken Seminar Komplexe Objekte in Datenbanken OPTICS: Ordering Points To Identify the Clustering Structure Lehrstuhl für Informatik IX - Univ.-Prof. Dr. Thomas Seidl, RWTH-Aachen http://www-i9.informatik.rwth-aachen.de

Mehr

Industrielle Bildverarbeitung mit OpenCV

Industrielle Bildverarbeitung mit OpenCV Industrielle Bildverarbeitung mit OpenCV Zhang,Duoyi 6.7.2 Gliederung. Einführung für OpenCV 2. Die Struktur von OpenCV Überblick Funktionsumfang in Ausschnitten mit Beispielen 3. Industrielles Anwendungsbeispiel

Mehr

Erste Schritte und Bedienungshinweise mit chiptan (ausführliche Anleitung)

Erste Schritte und Bedienungshinweise mit chiptan (ausführliche Anleitung) Erste Schritte und Bedienungshinweise mit chiptan (ausführliche Anleitung) Das chiptan-verfahren macht Online-Banking noch sicherer. Anstelle Ihrer Papier-TAN-Liste verwenden Sie einen TAN-Generator und

Mehr

KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website

KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website KompetenzManager http://www.kompetenzmanager.ch/mah Manual für die Benutzung der Website Inhalt Inhalt... 1 1. Anmelden beim Kompetenzmanager... 3 2. Erstellen eines neuen Kompetenzprofils... 4 2.1. Wizard

Mehr

Klausur in Programmieren

Klausur in Programmieren Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Winter 2009/2010, 18. Februar 2010 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name:

Mehr

FB Informatik. Fehler. Testplan

FB Informatik. Fehler. Testplan Fehler #include int i,n,summe; int summe (int); cout 0) cin>n; i=summme(n); cout

Mehr

Bilder im Internet. Hans Magnus Enzensberger

Bilder im Internet. Hans Magnus Enzensberger Kapitel 4 Alle reden von Kommunikation, aber die wenigsten haben sich etwas mitzuteilen. Hans Magnus Enzensberger Bilder im Internet Nach der etwas umfangreichen vorangehenden Lektion zum Ausklang der

Mehr

inviu NFC-tracker für Android Funktionsweise und Bedienung

inviu NFC-tracker für Android Funktionsweise und Bedienung inviu NFC-tracker für Android Funktionsweise und Bedienung 1 Inhaltsverzeichnis inviu NFC-tracker...1 1 Inhaltsverzeichnis...1 2 Installation...2 3 Einrichtung im Webportal inviu pro...2 3.1 Benannte Positionen

Mehr

Nachdem es bisher vor allen Dingen darum ging, Bekanntschaft mit Windows 8.1 zu schließen, machen Sie sich nun daran, das Betriebssystem individuell

Nachdem es bisher vor allen Dingen darum ging, Bekanntschaft mit Windows 8.1 zu schließen, machen Sie sich nun daran, das Betriebssystem individuell Windows 8. auf Desktop- PC, Notebook & Tablet individuell einrichten Nachdem es bisher vor allen Dingen darum ging, Bekanntschaft mit Windows 8. zu schließen, machen Sie sich nun daran, das Betriebssystem

Mehr

Die Hifidelio App Beschreibung

Die Hifidelio App Beschreibung Die Hifidelio App Beschreibung Copyright Hermstedt 2010 Version 1.0 Seite 1 Inhalt 1. Zusammenfassung 2. Die Umgebung für die Benutzung 3. Der erste Start 4. Die Ansicht Remote Control RC 5. Die Ansicht

Mehr

Welche Schritte sind nötig, um ein Update per Computer durchzuführen?

Welche Schritte sind nötig, um ein Update per Computer durchzuführen? Flashanleitung Vorraussetzung für ein Update über den PC - Windows PC (XP, VISTA, 7) - 32-Bit- oder 64-Bit-Betriebssystem - Bildschirmauflösung: mind. 1024 x 768 px Welche Schritte sind nötig, um ein Update

Mehr

Auf der Homepage steht

Auf der Homepage steht Auf der Homepage steht VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product

Mehr

OpenCV - Open Source Computer Vision

OpenCV - Open Source Computer Vision OpenCV - Open Source Computer Vision Niklas Beuter und Christian Lang 6. Mai 2009 OpenCV - Open Source Computer Vision 1 Übersicht Vorteile von OpenCV 1 Vorteile von OpenCV 2 Aufbau 3 OpenCV einbinden

Mehr

Trademarks Third-Party Information

Trademarks Third-Party Information Trademarks campus language training, clt and digital publishing are either registered trademarks or trademarks of digital publishing AG and may be registered in Germany or in other jurisdictions including

Mehr

2. Kundendaten Damit Kunden SMS Bestätigungen erhalten, muss die Option SMS/Text Messaging im Profil des Kunden angehakt sein.

2. Kundendaten Damit Kunden SMS Bestätigungen erhalten, muss die Option SMS/Text Messaging im Profil des Kunden angehakt sein. Millennium SMS Service Bedienungsanleitung Seite 1 von 11 1. Grundsätzliches / Ablauf Kunden, welche eine Mobile/Handy Nummer angegeben haben können mit dem folgenden Service eine Bestätigung (Confirmation)

Mehr

Telephone Integration für Microsoft CRM 4.0 (TI)

Telephone Integration für Microsoft CRM 4.0 (TI) Telephone Integration für Microsoft CRM 4.0 (TI) Benutzerhandbuch Der Inhalt des Dokuments ist Änderungen vorbehalten. Microsoft und Microsoft CRM sind registrierte Markenzeichen von Microsoft Inc. Alle

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Anleitung zum Erstellen von Moodle-Quizfragen in Word

Anleitung zum Erstellen von Moodle-Quizfragen in Word Anleitung zum Erstellen von Moodle-Quizfragen in Word Die Vorlagedateien Speichern Sie die.zip Datei an den gewünschten Ort und entpacken Sie diese. In dem neuen Ordner befinden sich nun folgende Dateien:

Mehr

Aufgabe 2: Anzahl Erdbeben als Funktion der Zeit

Aufgabe 2: Anzahl Erdbeben als Funktion der Zeit Übung 2 Analyse von Zeitreihen in der Umweltphysik und Geophysik 1 Aufgabe 2: Anzahl Erdbeben als Funktion der Zeit In dieser Übung wollen wir der Frage nachgehen, was war die Anzahl Erdbeben mit M>1 pro

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Software-Paket Projektzeiterfassung. Version 1.203. Copyright 2006 Holger Söhne

Software-Paket Projektzeiterfassung. Version 1.203. Copyright 2006 Holger Söhne Software-Paket Projektzeiterfassung Version 1.203 Copyright 2006 Holger Söhne Einleitung Vorraussetzungen Installation Projektzeiterfassung Auswertung Aktive Lizenzüberwachung Einleitung Vielen Dank für

Mehr

TL-SC4171G Fernsteuerbare Überwachungskamera

TL-SC4171G Fernsteuerbare Überwachungskamera TL-SC4171G Fernsteuerbare Überwachungskamera Rev.: 2.0.0 COPYRIGHT & HANDELSMARKEN Spezifikationen können ohne vorherige Ankündigung geändert werden. ist ein eingetragenes Warenzeichen von TP-LINK TECHNOLOGIES

Mehr

Die Dreipunkt- Beleuchtung

Die Dreipunkt- Beleuchtung Die Dreipunkt- Beleuchtung Die Dreipunkt- Beleuchtung ist eine der Standard -Methoden bei der Ausleuchtung in der Materie Film und Foto und wurde auch für die Ausleuchtung im Bereich der Computer-generierten

Mehr

Begleitendes Praktikum zur Vorlesung Mustererkennung

Begleitendes Praktikum zur Vorlesung Mustererkennung Begleitendes Praktikum zur Vorlesung Mustererkennung WS14/15 Übersicht Kontakt Aufgaben Bibliotheken Hinweise zu C# Kontakt Internet: http://cvpr.unimuenster.de/teaching/ws1415/me_praktikum/ Softwareumgebung:

Mehr

KURZANLEITUNG CLOUD BLOCK STORAGE

KURZANLEITUNG CLOUD BLOCK STORAGE KURZANLEITUNG CLOUD BLOCK STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung......Seite 03 2. Anlegen eines dauerhaften Block Storage...Seite 04 3. Hinzufügen von Block Storage

Mehr

USB Treiber updaten unter Windows 7/Vista

USB Treiber updaten unter Windows 7/Vista USB Treiber updaten unter Windows 7/Vista Hinweis: Für den Downloader ist momentan keine 64 Bit Version erhältlich. Der Downloader ist nur kompatibel mit 32 Bit Versionen von Windows 7/Vista. Für den Einsatz

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Inhalt Das Zeichnen von Strukturformeln mit ISIS/Draw

Inhalt Das Zeichnen von Strukturformeln mit ISIS/Draw Inhalt Das Zeichnen von Strukturformeln mit ISIS/Draw 2 A Zeichnen von Strukturen mit Hilfe der Vorlagen und Zeichenwerkzeuge 2 B Vorlagen von den Vorlageseiten verwenden 3 C Zeichnen von Bindungen und

Mehr

5.1 Anforderungen an die SVG-Datei

5.1 Anforderungen an die SVG-Datei Kapitel 5 Toolchain Nachdem wir nun experimentell die Grundlagen und Einstellungen herausgefunden haben, wollen wir uns mit der Toolchain befassen, um von der Datei zum fertigen Objekt zu kommen. 5.1 Anforderungen

Mehr

SOFTWARE. ekey TOCAhome pc. Herausgeber: ekey biometric systems GmbH Lunzerstraße 64 A-4030 Linz office@ekey.net n www.ekey.net

SOFTWARE. ekey TOCAhome pc. Herausgeber: ekey biometric systems GmbH Lunzerstraße 64 A-4030 Linz office@ekey.net n www.ekey.net SOFTWARE ekey TOCAhome pc Herausgeber: ekey biometric systems GmbH Lunzerstraße 64 A-4030 Linz office@ekey.net n www.ekey.net Ihr Finger ist der Schlüssel Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS 3

Mehr

Grundlagen Programmierung

Grundlagen Programmierung 1. Aufgabe (Spielen mit Objekten) Gegeben sei der auch von der Veranstaltungsseite erhältliche Programmcode auf der rechten Seite, der im Detail zuerst nicht verstanden werden muss. a) Erzeugen Sie sich

Mehr

Färben, texturieren und rendern in Solid Edge

Färben, texturieren und rendern in Solid Edge Färben, texturieren und rendern in Solid Edge Man kann den Objekten in Solid Edge Farben geben, transparent oder opak und Texturen. Das sind Bilder die auf die Oberflächen aufgelegt werden. Dabei bekommt

Mehr

RS-232 SERIAL EXPRESS CARD 1-PORT. Expansion 111829

RS-232 SERIAL EXPRESS CARD 1-PORT. Expansion 111829 RS-232 SERIAL EXPRESS CARD 1-PORT Expansion 111829 1. Introduction equip RS-232 Serial Express Card works with various types of RS-232 serial devices including modems, switches, PDAs, label printers, bar

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr