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.

Seminar Seminarname SS 2003

Seminar Seminarname SS 2003 Universität Karlsruhe (TH) Institut für Rechnerentwurf und Fehlertoleranz (IRF) Lehrstuhl Prof. Dr.-Ing. Dillmann Seminar Seminarname SS 2003 Beitragstitel Eva Muster Kaiserstraße 1 76133 Karlsruhe eva@muster.de

Mehr

Tracking Technologien für Augmented Reality

Tracking Technologien für Augmented Reality Tracking Technologien für Augmented Reality 1 Inhalt Motivation Tracking Methoden Optisch MarkerlessTracking (kleine Wiederholung) Aktiv und Passive Marker Modellbasiertes Markerless Tracking Sensoren

Mehr

NÜTZLICHE TIPPS FÜR OPTIMALE SCANS

NÜTZLICHE TIPPS FÜR OPTIMALE SCANS Bedingungen, um gute Scans zu erhalten Die Faktoren, von denen das Ergebnis eines Scans abhängt, sind einerseits die Umgebung sowie die Konfiguration und Kalibrierung des Scanners, aber auch das zu scannende

Mehr

FERNHEIZWERKE Software zur Sammlung der Betriebsdaten

FERNHEIZWERKE Software zur Sammlung der Betriebsdaten FERNHEIZWERKE Software zur Sammlung der Betriebsdaten Über dieses Programm können die Betriebsdaten einer Anlage eingegeben werden und dann automatisch via E-Mail ans Amt für Energieeinsparung an die Email

Mehr

Pocket KVM Switches USB + Audio

Pocket KVM Switches USB + Audio Handbuch Pocket KVM Switches USB + Audio deutsch Handbuch_Seite 2 Inhalt 1. Einleitung 4 2. Installation 4 3. Einfache Bedienung 6 3.1. KVM Switch Tasten 6 3.2. Keyboard Hotkeys 6 3.3. KVM Switch Software

Mehr

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

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

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

Objekterkennung durch Vergleich von Farben. Videoanalyse Dr. Stephan Kopf HWS2007 Kapitel 5: Objekterkennung

Objekterkennung durch Vergleich von Farben. Videoanalyse Dr. Stephan Kopf HWS2007 Kapitel 5: Objekterkennung Objekterkennung durch Vergleich von Farben 48 Farbräume (I) Definitionen: Farbe: Sinnesempfindung (keine physikalische Eigenschaft), falls Licht einer bestimmten Wellenlänge auf die Netzhaut des Auges

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

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

Mini-FAQ v1.3 CMS-50E. Fingerpulsoximeter

Mini-FAQ v1.3 CMS-50E. Fingerpulsoximeter Mini-FAQ v1.3 CMS-50E Fingerpulsoximeter 1.) Wie macht man einen Echtzeitdatentransfer vom PULOX CMS-50E zum Computer und wie speichert man diese Messdaten auf Festplatte? 2.) Wie nimmt man mit dem PULOX

Mehr

Programmierung eines NewsTickers in Java

Programmierung eines NewsTickers in Java Programmierung eines NewsTickers in Java ( & ) Projektarbeit Programmiertechnik:Java NTA FH Isny 12. Info David Mayr / Andreas Krug Seite 1 von 7 ::: David Mayr / Andreas Krug [ 12. Info NTA FH Isny ]

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

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

ODD-TV². ... die zukunftssichere Lösung für den modernen Wettanbieter! www.bookmaker5.com

ODD-TV². ... die zukunftssichere Lösung für den modernen Wettanbieter! www.bookmaker5.com ODD-TV²... die zukunftssichere Lösung für den modernen Wettanbieter! Arland Gesellschaft für Informationstechnologie mbh - Irrtümer und Änderungen vorbehalten. Version 5.7.6 - /05/2010 Handbuch ODD-TV

Mehr

Konfiguration der Messkanäle. Konfiguration der Zeitachse. Abb. 3: Konfigurationsmenü des Sensoreingangs A. Abb. 4: Messparameter Konfigurationsmenü

Konfiguration der Messkanäle. Konfiguration der Zeitachse. Abb. 3: Konfigurationsmenü des Sensoreingangs A. Abb. 4: Messparameter Konfigurationsmenü Anleitung zum Programm CASSY Lab für den Versuch E12 Starten Sie das Programm CASSY Lab durch Doppelklick auf das Icon auf dem Windows- Desktop. Es erscheint ein Fenster mit Lizensierungsinformationen,

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

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

Betriebssystem Windows 8

Betriebssystem Windows 8 Betriebssystem Windows 8 Inhaltsverzeichnis Startbildschirm...1 Neuanordnen der Kacheln auf der Startseite...1 So ändern Sie das Tastaturlayout für eine Sprache...2 Anschließen eines weiteren Monitors

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

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

Holz/Metall/AC- Spannungsdetektor 3 in 1 mit Laserwasserwaage

Holz/Metall/AC- Spannungsdetektor 3 in 1 mit Laserwasserwaage Holz/Metall/AC- Spannungsdetektor 3 in 1 mit Laserwasserwaage AX-903 BEDIENUNGSANLEITUNG Funktionen und Merkmale Detektion des Holzes, Metalls und der Leitungen unter Spannung Detektion des Holzes, Metalls

Mehr

"Memory Stick" zur Programmierung der comfort 8+ Lichtsteuranlage mit PC Software "scenes editor"

Memory Stick zur Programmierung der comfort 8+ Lichtsteuranlage mit PC Software scenes editor comfort 8+ IRPC "Memory Stick" zur Programmierung der comfort 8+ Lichtsteuranlage mit PC Software "scenes editor" 1: Programmstart, Einstellungen 1.1 Zuerst die Software der beiliegenden CD-ROM auf einem

Mehr

Kapitel 8 Texte schreiben

Kapitel 8 Texte schreiben Kapitel 8 Texte schreiben Das Erstellen und Weiterverarbeiten von Text zählt zu den am häufigsten genutzten Aufgaben am Computer. Sie als Windows-10-Besitzer haben es leicht, denn Sie können gleich anfangen.

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

14 Teiler verschieben

14 Teiler verschieben 14 Teiler verschieben In diesem Werkzeug sind alle Funktionen zusammengefasst, die Sie zum Verschieben, Ausrichten oder Drehen von Teilern benötigen. Als Teiler werden in diesem Zusammenhang Pfosten, Riegel,

Mehr

Datenblatt zu EOS Optical Infrared Tracking-System ZGDV, Darmstadt Stand: 06.2006

Datenblatt zu EOS Optical Infrared Tracking-System ZGDV, Darmstadt Stand: 06.2006 Datenblatt zu EOS Optical Infrared Tracking-System ZGDV, Darmstadt Stand: 06.2006 Das EOS Optical IR-Tracking-System ist eine kombinierte Hardware-Software-Lösung zur Messung von Positionen von starren

Mehr

Word 2010 Grafiken exakt positionieren

Word 2010 Grafiken exakt positionieren WO.009, Version 1.2 10.11.2014 Kurzanleitung Word 2010 Grafiken exakt positionieren Wenn Sie eine Grafik in ein Word-Dokument einfügen, wird sie in die Textebene gesetzt, sie verhält sich also wie ein

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

Kurzanleitung. SpaceController

Kurzanleitung. SpaceController Kurzanleitung SpaceController V ielen Dank, dass Sie sich für den SpaceController entschieden haben. Natürlich haben Sie hinreichende Erfahrung in der Installation von Treibern und Software. Dennoch sollten

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

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Windows XP Windows 7

Windows XP Windows 7 Umstieg von Windows XP auf Windows 7 DIE SYMBOLE IN DER TASKLEISTE Der Desktop des Standardarbeitsplatzes präsentiert sich unter Windows 7 nur mit dem Symbol und in der befinden

Mehr

Getting Started General Workflow. Anlegen von Schablonen Ausrichtung 3.2. Atoms Precision V2 Tutorial. Working with Images Direct from Camera

Getting Started General Workflow. Anlegen von Schablonen Ausrichtung 3.2. Atoms Precision V2 Tutorial. Working with Images Direct from Camera Getting Started General Workflow Anlegen von Schablonen Ausrichtung 3.2 Atoms Precision V2 Tutorial Working with Images Direct from Camera Die Ausrichtungseinstellungen ermöglichen die Ausrichtung der

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

GIMP Objekte frei stellen

GIMP Objekte frei stellen GIMP Objekte frei stellen Tutorial Teil 2 Aller Anfang ist eine Auswahl Gimp bietet dir eine Reihe von Werkzeugen, die dir dabei helfen können, ein Objekt frei zu stellen. Welches Werkzeug das Beste ist,

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

Übungshandbuch Organic Shape Modellierung

Übungshandbuch Organic Shape Modellierung Übungshandbuch Organic Shape Modellierung Ashlar Vellum Graphite Copyright: Ashlar Incorporated Copyright: Arnold CAD GmbH www.arnold-cad.com Handbuchversion: 1.0 Inhaltsverzeichnis EINLEITUNG...2 ORGANIC

Mehr

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen Wir wollen, dass ihr einfach für eure Ideen und Vorschläge werben könnt. Egal ob in ausgedruckten Flyern, oder in sozialen Netzwerken und

Mehr

Let's talk Gimp Farbräume. RGB-Farbraum. Digitales Gestalten mit Open Source

Let's talk Gimp Farbräume. RGB-Farbraum. Digitales Gestalten mit Open Source Unter Farbmodelle versteht man die Aufteilung in unterschiedliche Farbräume, über die eine Farbe definiert werden kann. Alle hier genannten Farbräume werden in Gimp dargestellt: Die bekanntesten sind:

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

Menüs und Sprache in M-Plot konfigurieren

Menüs und Sprache in M-Plot konfigurieren Einsteiger Fortgeschrittene Profis markus.meinl@m-quest.ch Version.0 Voraussetzungen für diesen Workshop Die M-Quest Suite 005 oder höher ist auf einem Rechner installiert Das Produkt M-Plot Suite ist

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

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

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

Polaroid DMC an DISKUS

Polaroid DMC an DISKUS Carl H. Hilgers Technisches Büro Hauptstraße 82 53693 Königswinter Tel.: 022 23-222 68 Fax: 022 23-275 94 E-Mail: hilgers@hilgers.com Polaroid DMC an DISKUS Die digitale Kamera von Polaroid hat einen SCSI-2

Mehr

C A L D E R A G R A P H I C S

C A L D E R A G R A P H I C S C A L D E R A G R A P H I C S Wie geht das? Druckaufträge vor dem Drucken kacheln Caldera Graphics 2008 Caldera Graphics und alle Caldera Graphics Produkte, die in dieser Publikation genannt werden, sind

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

White Paper "Objektberechtigung"

White Paper Objektberechtigung White Paper "Objektberechtigung" Seite 2 Inhaltsverzeichnis 1. Einführung...3 1.1. Sinn und Zweck der Objektberechtigungen...3 1.2. Wo können Objektberechtigungen vergeben werden?...3 1.3. Welche Berechtigungstypen

Mehr

Aufbau einer Testumgebung mit VMware Server

Aufbau einer Testumgebung mit VMware Server Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten

Mehr

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

Mehr

Erster Schritt mit Mocha:

Erster Schritt mit Mocha: Was ist Mocha for After Effects CS4? Mocha ist ein Advanced Tracking System das im Gegensatz zu After Effects nicht auf Pixeln und Kontrastkanten basiert, sondern auf Formen die unter Mustererkennung im

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

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

VOLTmonitor. VOLTmonitor. Schritt 1: Schaltung. file://localhost/users/rainer/xp-exchange/erzeugte%20websites/p... 1 of 10 07.07.

VOLTmonitor. VOLTmonitor. Schritt 1: Schaltung. file://localhost/users/rainer/xp-exchange/erzeugte%20websites/p... 1 of 10 07.07. VOLTmonitor VOLTmonitor LM3914 Voltanzeige Diese Voltanzeige wurde von www.pointofnoreturn.org vorgestellt. Meine Leistung besteht lediglich darin, die Anleitung ins Deutsche zu übersetzen. Schritt 1:

Mehr

1. Positionieren Textfelder. 1.1. Textfelder einfügen und bearbeiten. 1.2. Größe und Position des Textfeldes verändern

1. Positionieren Textfelder. 1.1. Textfelder einfügen und bearbeiten. 1.2. Größe und Position des Textfeldes verändern 1. Positionieren Textfelder 1.1. Textfelder einfügen und bearbeiten Textfelder können auf zwei Arten eingefügt werden. Entweder Textfeld einfügen und dann den Text hineinschreiben, oder zuerst den Text

Mehr

Entfernen Sie zuerst die Midex-Treiber-CD aus dem CD-ROM Laufwerk.

Entfernen Sie zuerst die Midex-Treiber-CD aus dem CD-ROM Laufwerk. ================================= Steinberg Media Technologies GmbH Midex 8 USB-Midi-Treiber 1.9.0.3 ================================= 1. Neuinstallation eines Midex-Treibers 2. Update eines älteren Midex-Treibers

Mehr

BILDBEARBEITUNGSPROGRAMM IRFANVIEW

BILDBEARBEITUNGSPROGRAMM IRFANVIEW Anleitung BILDBEARBEITUNGSPROGRAMM IRFANVIEW 2012, netzpepper Alle Rechte vorbehalten. Nachdruck oder Vervielfältigung auch auszugsweise nur mit schriftlicher Genehmigung des Autors. Stand: 17.02.2012

Mehr

ScanTop (Scan from Above) Installationsund. Benutzerbeschreibung

ScanTop (Scan from Above) Installationsund. Benutzerbeschreibung ScanTop (Scan from Above) Installationsund Benutzerbeschreibung Vers. 3.1 SanTop Installations- und Benutzerbeschreibung Hinweis: Alle Rechte liegen bei Flix-Data. Diese Dokumentation kann dennoch reproduziert,

Mehr

Bau eines digitalen Auflichtmikroskops

Bau eines digitalen Auflichtmikroskops Schüex 2009 Bau eines digitalen Auflichtmikroskops von Kilian Günthner (12 Jahre) Inhaltsverzeichnis 1. Kurzfassung... 3 2. Zielsetzung... 3 3. Die Funktionsweise eines Auflichtmikroskops... 4 4. Vorversuch...

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

Mehr

Technische Gesichtserkennung

Technische Gesichtserkennung Technische Gesichtserkennung Gliederung Was ist Gesichtserkennung? Anwendungsbereiche der Gesichtserkennung Technische Verfahren Paul-Viola Algorithmus Gesichtsverfolgung via Webcam Hardware Software Demo

Mehr

v i r t u A L C O M P o r t s

v i r t u A L C O M P o r t s v i r t u A L C O M P o r t s (HO720 / HO730) Installieren und Einstellen Installation and Settings Deutsch / English Installieren und Einstellen des virtuellen COM Ports (HO720 / HO730) Einleitung Laden

Mehr

Installation TKGS Hundesportprogramm unter Windows 8

Installation TKGS Hundesportprogramm unter Windows 8 Kunde: Projekt: Bereich: Auftrag: TKGS der SKG Hundesportprogramm Dokumentation PL: Installation TKGS Hundesportprogramm unter Windows 8 Das TKGS Hundesportprogramm läuft grundsätzlich auch unter Windows

Mehr

Projektdokumentation für den Fußballroboter Jaqueline. Rene Peschmann und Ronny Gorzelitz

Projektdokumentation für den Fußballroboter Jaqueline. Rene Peschmann und Ronny Gorzelitz Projektdokumentation für den Fußballroboter Jaqueline Rene Peschmann und Ronny Gorzelitz Inhaltsverzeichnis Inhaltsverzeichnis...2 Entwicklung von Jaqueline... 3 Das Getriebe und Gehäuse... 3 Die Schussvorrichtung

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

Software zur Gestensteuerung von Windows 7 über Kinect for Xbox

Software zur Gestensteuerung von Windows 7 über Kinect for Xbox WIN&I 1.0 Software zur Gestensteuerung von Windows 7 über Kinect for Xbox Steuern Sie mit WIN&I Windows 7 und tausende Applikationen über den Sensor Kinect for Xbox. WIN&I ersetzt die Computer-Maus und

Mehr

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

Mehr

Computergruppe Heimerdingen Grundkurs. Karlheinz Wanja & Richard Zeitler

Computergruppe Heimerdingen Grundkurs. Karlheinz Wanja & Richard Zeitler Computergruppe Heimerdingen Grundkurs Karlheinz Wanja & Richard Zeitler Grundsatz: Keine Panik!!! Das ist der wichtigste Satz, den man sich am Anfang seiner Computerkarriere immer wieder klar machen muss.

Mehr

SOFTWARE FÜR PRG-APPLIKATIONEN

SOFTWARE FÜR PRG-APPLIKATIONEN SOFTWARE FÜR PRG-APPLIKATIONEN Autor: Frank Bergmann Letzte Änderung: 04.12.2014 09:09 1 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis... 2 2 Allgemeines... 3 3 Installation und Programmaufruf... 3 4 Einstellungen...

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

Inbetriebnahme der I-7188EN Serie

Inbetriebnahme der I-7188EN Serie Inbetriebnahme der I-7188EN Serie Ethernet nach RS-232/485 Gateways, 1 bis 8 serielle Ports I-7188E1(D) I-7188E2(D) I-7188E3(D) I-7188E3-232(D) I-7188E4(D), I-7188E5(D) I-7188E5-485(D) 7188E8(D) I-7188E

Mehr

Bedienungsanleitung EasyStechuhr

Bedienungsanleitung EasyStechuhr Thomas Schiffler Langestrasse 4 65366 Geisenheim http://www.thomasschiffler.de info@thomasschiffler.de Version 1.2 Inhaltsverzeichnis Inhaltsverzeichnis... 2 Einleitung... 3 Datenspeicherung... 3 Grundvoraussetzung...

Mehr

C++ Tutorial: Timer 1

C++ Tutorial: Timer 1 C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und

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

Getting started with MillPlus IT V530 Winshape

Getting started with MillPlus IT V530 Winshape Getting started with MillPlus IT V530 Winshape Table of contents: Deutsche Bedienungshinweise zur MillPlus IT V530 Programmierplatz... 3 English user directions to the MillPlus IT V530 Programming Station...

Mehr

Installieren Sie zuerst die Software bevor Sie die Sonde an den PC anschließen!

Installieren Sie zuerst die Software bevor Sie die Sonde an den PC anschließen! VisualCount V3.0 Installationsanleitung Installieren Sie zuerst die Software bevor Sie die Sonde an den PC anschließen! Warenzeichen: WINDOWS, VISTA und Windows 7 sind eingetragene Warenzeichen der Firma

Mehr

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren:

Der Adapter Z250I / Z270I lässt sich auf folgenden Betriebssystemen installieren: Installationshinweise Z250I / Z270I Adapter IR USB Installation hints Z250I / Z270I Adapter IR USB 06/07 (Laden Sie den Treiber vom WEB, entpacken Sie ihn in ein leeres Verzeichnis und geben Sie dieses

Mehr

ECAD-MCAD Integration: Einfügen eines 3D- Gehäusemodells

ECAD-MCAD Integration: Einfügen eines 3D- Gehäusemodells 04.11.2008 ECAD-MCAD Integration: Einfügen eines 3D- Gehäusemodells Frage: Wie kann ich MCAD Objekte in meine PCB-Baugruppe integrieren? Zusammenfassung: Mechanische und elektrische Design-Komponenten

Mehr

VPN-System Benutzerhandbuch

VPN-System Benutzerhandbuch VPN-System Benutzerhandbuch Inhalt Einleitung Antiviren-Software 5 Einsatzgebiete 6 Web Connect Navigationsleiste 8 Sitzungsdauer 9 Weblesezeichen 9 Junos Pulse VPN-Client Download Bereich 9 Navigationshilfe

Mehr

Elektronische Bilderbücher mit Powerpoint 2010 erstellen

Elektronische Bilderbücher mit Powerpoint 2010 erstellen Anleitung Bücher in MS Powerpoint 2007 von Sabina Lange, Ergänzung und Übertragung für Powerpoint 2010 durch Igor Krstoski. Bedingt durch die wieder leicht veränderte Optik in Powerpoint 2010 und veränderte

Mehr

Zentrale Policy-Verwaltung mit ubicontrol und ubimanager. Hintergrund Technik. Sicherheit für mobile devices

Zentrale Policy-Verwaltung mit ubicontrol und ubimanager. Hintergrund Technik. Sicherheit für mobile devices Sicherheit für mobile devices Zentrale Policy-Verwaltung mit ubicontrol und ubimanager Hintergrund Technik Mobile Device Management von ubitexx stellt großen Unternehmen, Mobilfunkprovidern, Carriern und

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

Baby-LIN / HARP-5 Arbeitsablauf und Konfiguration

Baby-LIN / HARP-5 Arbeitsablauf und Konfiguration Baby-LIN / HARP-5 Arbeitsablauf und Konfiguration Andreas Lipowsky Lipowsky Industrie-Elektronik GmbH Folie-1 LIN Bus Anwendungsbereiche Baby-LIN/HARP-5 Geräte werden dazu verwendet, um mit LIN Bus ausgestattete

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

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

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

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

Inhaltsverzeichnis. Handbuch zur Installation der Software für die Bürgerkarte

Inhaltsverzeichnis. Handbuch zur Installation der Software für die Bürgerkarte Inhaltsverzeichnis Haftungsausschlussklausel... 3 Einführung... 4 Anforderungen und Hinweise... 5 Herunterladen der Software... 6 Installation der Software... 7 Schritt 1 Sprache auswählen... 7 Schritt

Mehr

Anleitung Installation und Kurzanleitung Tachostore/D-Box

Anleitung Installation und Kurzanleitung Tachostore/D-Box Anleitung Installation und Kurzanleitung Tachostore/D-Box Inhalt 1 Installation Tachostore...2 2 Beseitigung der Installationsprobleme...2 3 Registrierung bei Micropross...3 4 D-Box USB Treiber Installation...3

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

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

Tipps und Tricks zu Word. Flickflauder.ch Webdesign/Webprogramming. www.flickflauder.ch Mail: info@flickflauder.ch

Tipps und Tricks zu Word. Flickflauder.ch Webdesign/Webprogramming. www.flickflauder.ch Mail: info@flickflauder.ch Tipps und Tricks zu Word Flickflauder.ch Webdesign/Webprogramming www.flickflauder.ch Mail: info@flickflauder.ch Textpassagen markieren 1. Markieren mit Mausklicks: Mit Maus an den Anfang klicken, dann

Mehr

Paragon Online WinPE Builder Service

Paragon Online WinPE Builder Service PARAGON Software GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0)761 59018-201 Fax +49 (0)761 59018-130 Internet www.paragon-software.de E-Mail vertrieb@paragon-software.de

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

MobiDM-App Handbuch für Windows Mobile

MobiDM-App Handbuch für Windows Mobile MobiDM-App Handbuch für Windows Mobile Dieses Handbuch beschreibt die Installation und Nutzung der MobiDM-App für Windows Mobile Version: x.x MobiDM-App Handbuch für Windows Mobile Seite 1 Inhalt 1. WILLKOMMEN

Mehr

GUI Programmierung mit GTK

GUI Programmierung mit GTK LinuxFocus article number 295 http://linuxfocus.org GUI Programmierung mit GTK by Özcan Güngör About the author: Ich benutze Linux seit 1997. Freiheit, Flexibilität, Open

Mehr

Neue Funktionen in Autodesk 123D Beta 9

Neue Funktionen in Autodesk 123D Beta 9 Neue Funktionen in Autodesk 123D Beta 9 März 2012 In diesem Dokument erhalten Sie eine Einführung in die neuen Werkzeuge und Verbesserungen von 123D Beta 9. Die Familie der 123D-Produkte wächst ständig

Mehr

Jürgen Bayer. MDI-Anwendungen in C#

Jürgen Bayer. MDI-Anwendungen in C# Jürgen Bayer MDI-Anwendungen in C# Inhaltsverzeichnis 1 Grundlagen 2 1.1 Einrichten der Formulare 2 1.2 Öffnen von MDI-Childformularen 3 2 Menüs 4 2.1 Erstellen eines Menüs 4 2.2 Programmierung der Menüpunkte

Mehr