Virtuelle RealitätVirtual Reality

Erweiterte Realität / Augmented RealityAugmented Reality

Dr. Thies Pfeiffer

Cognitive Interaction Technology Center of Excellence,
Technische Fakultät, Universität Bielefeld

Termin:Freitags, 10:15 Uhr

Raum: CITEC Auditorium

Schedule:Fridays, 10:15 a.m.

Room: CITEC Auditorium

RückblickLooking back...

Letzter Termin:Previous Lecture:

  • Verteilte VR SystemeDistributed VR Systems
    • Ebenen für eine Verteilung in VR SystemenRepresentation levels for distribution in VR systems
    • Netzwerk-ArchitekturenNetwork architectures
    • AnwendungsbeispieleApplication examples

ÜberblickOverview

Inhalte dieser VeranstaltungContent of this lecture

  • Definition von Erweiterter Realität/Augmented RealityDefinition of Augmented Reality
  • Grundlegende ProzessschritteBasic processing steps
  • Anwendungsbeispiel CITECApplication example: CITEC
  • Interaktionsmöglichkeiten mit ARUser interaction with AR

Augmented Reality (AR): Wie geht's?What is Augmented Reality?

Definiton Augmented RealityDefinition of Augmented Reality

Augmented Reality

Unter dem Begriff Augmented Reality versteht man die Ergänzung der Realität durch künstlich erzeugte Wahrnehmungsreize (siehe z.B. Paul Milgram und Kollegen 1985). Dabei kommt es im besten Fall zu einer Verschmelzung von virtuellen und realen Eindrücken, die nicht mehr bewusst getrennt werden. The term Augmented Reality refers to the embedding of content into reality using artificially created perceptions (see e.g. Paul Milgram and colleagues 1985). Ultimately virtual and real perceptions will fuse in such a way, that they can no longer be distinguished.

BeobachtungenObservations

  • Primär wird von Augmented Reality der visuelle Sinneskanal angesprochen, aber andere Modalitäten werden mittlerweile mit steigendem Interesse betrachtet.Primarily Augmented Reality has focused on visual perception, but today other modalities receive increasing attention.
  • Größtes Problem der Augmented Reality ist die genaue Einpassung der künstlichen Reize in die reale Umgebung.The greates challenge of Augmented Reality is fitting the artificial stimuli into the real environment.
  • Der technische Ansatz:
    Aufnahme der Sensordaten $\to$ Tracking/Lokalisierung $\to$ Registrierung $\to$ Darstellung $\to$ Ausgabe.
    The technical approach:
    Collecting sensor data $\to$ Tracking/Localization $\to$ Registration $\to$ Rendering $\to$ Display.

SensoraufnameSensing

SensoraufnahmeSensing

  • ZieleGoals
    • Möglichst genaue und schnelle Erfassung von UmgebungsdatenFast and exact capturing of sensor data
    • Aufbereitung der Daten in möglichst sensorunabhängiger RepräsentationPreprocessing of sensor data to achieve sensor independent representation
  • Beispiel: VideoaufnahmeExample: Video image acquisition
    • Ablesen der Bilddaten vom SensorReading the data from the sensor
    • Geeignetes Übertragungsformat (oft Kompromiss zwischen Wiederholrate und Qualität, z.B. MJPEG)Choosing the right data representation format (often tradeoff between speed and quality, e.g., MJPEG)
    • Entzerrung des Kamera-BildesUndistortion of the camera image based on camera calibration
Camera Undistortion

Tracking/LokalisierungTracking/Localization

Tracking/LokalisierungTracking/Localization

  • Drei Aufgaben:Three tasks:
    • Bestimmung der Position und Perspektive (Lage) des Nutzersdetermining position and perspective of the user
    • Bestimmung von Objekten im Raumdetecting objects
    • Ermöglichung von Interaktionenenabling interaction
  • Oft sind Erkennungsprozesse von neuen Situationen langsam aber genau, die Bestimmung von Änderungen aber schnell und dafür ungenau realisierbar.Often the identification is slow but precise, but detecting changes can be achieved quickly yet with some errors.
  • GPSGPS
  • OptischVision-based
    • Optischer Fluss zur schnellen BewegungserkennungOptical flow for detecting camera movements
    • Fiducial Marker (AR-Marker)Fiducial markers
    • Bilderkennung (z.B. SIFT, SURF)Image recognition (e.g. SIFT, SURF)
    • Geometrieerkennung (z.B. CAD)Geometry recognition (e.g. CAD)
  • InertialInertial
    • Beschleunigungssensor, Gyroskop, KompassAccelerometer, Gyroscope, Compass
  • Kombination von Verfahren (Hybride Verfahren)Combinations of approaches (hybrid approaches)
    • z.B. langsame, genaue Erkennung über Bildverarbeitung und schnelle Änderungen über inertiales Trackinge.g. slow but precise detection using computer vision and quick detection of changes using inertial tracking

RegistrierungRegistration

Registrierung / Geometrische RegistrierungRegistration / Geometric Registration

Einpassung der künstlichen Inhalte in die reale Szene. Fitting artificial content in the real scene.

  • benötigt eine gute Schätzung der Perspektive des Nutzersrelies on a good estimation of the perspective of the user
  • KriterienCriteria
    • Stabilität, insbesondere bei KamerabewegungenStability, especially when the camera is moving
    • Visuelle QualitätVisual quality
    • Interaktion mit der Umgebung (z.B. Schattenwurf, Umgebungslicht)Interaction with the environment (e.g. shadows, illumination)

DarstellungDisplay

DarstellungDisplay

  • Video-basierte AR (Realität wird durch Video abgebildet)Video See-Through AR (reality is displayed using video)
  • Optisch durchsichtige AROptical See-Through AR
  • Projektionsbasierte ARProjection-based AR

Anwendungsbeispiel: Wegführung in GebäudenApplication Example: Guidance through Buildings

Motivation

CITEC
Das CITEC GebäudeThe CITEC Building

Szenario: Der AuftragScenario: The Mission

Herr Jörg Heeren von der Presseabteilung des CITECs hat folgenden Auftrag: Mr. Jörg Heeren of the CITEC's public relations department has the following mission:

"Wir haben hier im CITEC viele externe Besucher, die für verschiedene Veranstaltungen oder Experimente das Gebäude betreten und sich möglichst schnell im Gebäude orientieren können sollen. Dafür hätten wir gerne eine technische Lösung, die unseren Besuchern hilft, und gleichzeitig die Innovation des CITEC betont." "Here at CITEC we have many external visitors. They come to CITEC for many different events or to take part in experiments. They enter the building and need to orient themselves quickly to find their destinations. For this we would like to offer a technical solution that supports our visitors and at the same time gives a statement about the innovativeness of CITEC."

ÜberblickOverview

Ziel des AnwendungsbeispielsGoal of this application example

Ihr werdet lernen, wie man ein einfaches Augmented-Reality Projekt umsetzt.You will learn to realize a basic augmented reality project.

AblaufProgram

  • Marker-TrackingMarker-Tracking
  • Wahl des AR FrameworksChoice of the AR Framework
  • GorillAR: Augmented Reality im Browser mit HTML5/WebGL/JavaScriptGorillAR: Augmented Reality using HTML5/WebGL/JavaScript in the Browser
  • Auswahl der 3D ModelleChoice of the 3D Models
  • Der erste AR-PrototypThe first AR-prototype
  • BenutzerinteraktionenUser Interactions

Marker Tracking: VerarbeitungsschritteProcessing Pipeline

Bildverarbeitungsschritte beim Marker Tracking
Bildverarbeitungsschritte: Original $\to$ Graustufen $\to$ Schwarzweiß basierend auf Schwellwert $\to$ Segmentierung $\to$ Liniendetektion $\to$ Konturendetektion $\to$ Eckpunkte Image processing: original $\to$ greyscale $\to$ black-and-white based on thresholding $\to$ segmentation $\to$ line detection $\to$ contour detection $\to$ corner points
Dörner, Broll, Grimm, & Jung (2014). Virtual und Augmented Reality. Springer

KamerabasiertesCamera-based Marker Tracking

  • Einfachste Variante des TrackingsBasic approach to visual tracking
  • Verwendet speziell konstruierte Marker, die gut über Methoden der Computer Vision gefunden werden können Makes use of specifically designed markers that can be easily identified using methods of Computer Vision.
  • Marker kodieren ID, um verschiedene Marker unterscheiden zu können. Markers encode an ID to make them unique.
  • Basierend auf Modellgeometrie kann aus dem 2D Kamerabild die ursprüngliche Lage bestimmt werden. Based on the knowledge about the geometry (here a square), the original 6 DOF transformation of the marker can be determined.

Marker Tracking: VerarbeitungsschritteProcessing Pipeline

Matrizenbestimmung
Bestimmung der Transformationsmatrix des MarkersDetermining the transformation matrix of the marker
Dörner, Broll, Grimm, & Jung (2014). Virtual und Augmented Reality. Springer

VerarbeitungsschritteProcessing Steps

  • VorbereitungPreparations
    • Kalibrierung der KameraCalibration of the camera
    • Herstellung der Marker, Bestimmung der Geometrie bzw. optischen MerkmalenConstruction of the markers, determination of the geometry or optical features
  • Zur LaufzeitAt run-time
    • Finden des Markers im KamerabildFinding a marker in the camera image
    • Identifizierung des MarkersIdentification of the marker
    • Bestimmung der TransformationsmatrixDetermining the transformation matrix
    • Weiterverarbeitung im GrafiksystemFurther processing in the graphics pipeline

Wahl des AR FrameworksChoosing the AR Framework

Augmented Reality Frameworks

AuswahlkriterienCriteria for selecting an AR framework

  • Verfügbarkeit auf verschiedenen PlattformenSupported platforms (Mobile, Desktop, Smart Glasses)
  • Objekt-/Kamera-Tracking Möglichkeiten (Marker, Poster (2D Bilder), 3D Objekte, Frei) Object-/Camera-Tracking options (Marker, Poster (2D images), 3D objects, free)
  • GeschwindigkeitPerformance
  • Flexibilität im Einsatz, Einbettung in den WorkflowFlexibility of use, compatibility with workflow
  • LernkurveLearning curve
  • ZukunftssicherheitFuture-proof
  • LizenzkostenLicensing costs
  • ...

Augmented Reality Frameworks

Qualcomm Vuforia
Qualcomm Vuforia für mobile Endgerätefor mobile devices

Qualcomm Vuforia

  • Targets: Bilder (eben und gekrümmt), Text, Multi-Targets (basierend auf Rechtecken), künstliche Marker Tracking targets: Images (plane or curved), Text, Multi-Targets (based on rectangles), artificial markers
  • Lizenz: kommerziell über Cloud Service, SDK selbst frei License: commercial license if using their cloud service, SDK itself free to use
  • Unterstützte Plattformen: Android/iOSSupported platforms: Android/iOS
  • Link: https://developer.vuforia.com/

Augmented Reality Frameworks

MetaIO SDK
MetaIO SDK für alle Plattformenfor all platforms

MetaIO

  • Targets: Bilder, CAD Modelle, Markerlos, künstliche Marker Tracking targets: Images, CAD Models, markerless, artificial markers
  • Lizenz: kommerziell ab 3000,- €/5000,- € für Pro Version License: commercial starting at 3000,- €/5000,- € for Pro Version
  • Unterstützte PlattformenSupported platforms: Android, iOS, Windows PC, Mac OS X
  • Link: http://www.metaio.com/products/sdk/

GorillAR: Augmented Reality im Browser
mit HTML5/WebGL/JavaScript
GorillAR: Augmented Reality in the Browser
using HTML5/WebGL/JavaScript

GorillAR: Augmented Reality im Browser GorillAR: Augmented Reality in the Browser

  • Aktuelle Entwicklung am CITEC/CLFCurrent project at CITEC/CLF
  • Unterstützte Plattformen: jedes HTML5/WebGL kompatibles System Supported platforms: any system that supports HTML5/WebGL
  • Lizenz: keine LizenzkostenLicense: no license fees
  • VorteileAdvantages:
    • leichte Integration in bestehende Infrastruktureasy integration in existing infrastructures
    • leicht zu erlernen, Kenntnisse in HTML5/JavaScript weit verbreiteteasy to learn as knowledge of HTML5/JavaScript is quite common
    • Nutzung offener Standards mach die Anwendung zukunftssicheruse of open standards makes the application future-proof
  • Nachteil: erwartete geringere Performanz als native AnwendungenDisadvantage: expected lower performance than native applications

GorillAR: Augmented Reality mitusing HTML5/X3DOM/Javascript

X3DOM
X3DOM (X-Freedom) wurde von der Fraunhofer IGD maßgeblich vorangetrieben.has been developed primarily by Fraunhofer IGD, Germany.

HTML + WebGL + X3D = X3DOM

  • X3DOM kombiniert HTML und X3Dcombined HTML and X3D based on WebGL
  • Verarbeitung basiert auf dem Document Object Model $\to$ einheitlicher Zugriff auf klassische 2D und 3D Inhalte Processing is based on the Document Object Model $\to$ coherent access of classic 2D and modern 3D content
  • Zum Browser-Kompatibilitätstest für X3DOM Try the X3DOM-compatibility check

Tracking

  • Benötigt Zugriff auf die Kamera $\to$ HTML5 getUserMedia Requires access to a camera $\to$ HTML5 getUserMedia
  • Bildverarbeitung erfogt dann über den HTML Canvas und JavaScriptImage processing is realized using HTML Canvas and JavaScript

Auswahl der 3D ModelleSelection of the 3D Models

AlternativenAlternatives

ModellierungModelling

  • Maya, 3D Studio, etc.
  • Blender
  • SketchUp (Pro)

RekonstruktionReconstruction

  • Professionelle AngeboteCommercial offers
  • Kleine Modelle mittelsSmaller models using Kinect Fusion, Autodesk 123D Catch, ...

3D Warehouses

3D ModellModel: CITEC GebäudeBuilding

Das CITEC GebäudeThe CITEC Building

  • Erster Entwurf aus dem WS2013First draft from the Winter Term 2013
  • Erstellt mit Blender, exportiert nach X3D und mit InstantReality/aopt optimiertCreated with Blender, exported to X3D and optimized with InstantReality/aopt

GorillAR: Verbinden von Tracking und 3D SzeneConnecting Tracking and 3D Scene

AblaufProcess

  • Media-API: WebCam $\to$ VIDEO-Objekt
  • VIDEO-Objekt $\to$ CANVAS
  • CANVAS $\to$ Raster-CANVAS
  • tracker.detectMarkers(Raster-CANVAS) $\to$ Liste der gefundenen MarkerList of found markers
  • jQuery('#Marker'+ID) .setAttribute("matrix", MarkerMatrix[ID]);

Code-Beispiel auf AnwendungsebeneExample on application level

<html>
  <body>
    ...
    <x3d>
      <scene>
        <MatrixTransform id="Marker1">
        <!-- ^= Matrix from tracking -->  
          <inline url="PATH_TO_3DMODELL">
          </inline>
        </MatrixTransform>
      </scene>
    </x3d>
  </body>
</html>

Der erste Prototyp der CITEC AR Anwendung
mit GorillAR
The first prototype of the CITEC AR application
based on GorillAR

Die CITEC AR AnwendungThe CITEC AR Application

CITEC AR

  • KombiniertCombines HTML+JavaScript+X3DOM
    • Offene Technologien, keine LizenzkostenOpen standards, no license costs
    • Leichte Zugänglichkeit für Webdesigner/-entwicklerLow learning curve for web designers/developers
  • Sowohl am Desktop und auf mobilen Endgeräten nutzbarSupports desktop and mobile platforms

GorillAR: Benutzerinteraktionen mit dem HTML5 EventmodellUser Interactions with the HTML5 Event Model

EventmodellEvent Model

  • Für alle X3D Objekte wurden die gängigen Interaktionsevents implementiert:All X3D objects support common HTML5 interaction events:
    • OnClick, OnMouseOver, OnMouseMove, OnMouseOut, ...
  • event.hitPnt liefert dann die 3D Koordinateprovides the 3D coordinate
  • über die X3D runtime lässt sich mittels calcPagePos(x,y,z) daraus die Position auf der Seite ausrechnen using the X3D runtime, the 2D position on the page can be calculated with calcPagePos(x,y,z)

Code-BeispielExample

<html>
  <body>
    ...
    <x3d>
      <scene>
        <MatrixTransform id="Marker1"
          onMouseOver="showInfo('My Model Description')">
          <inline url="PATH_TO_3DMODELL">
          </inline>
        </MatrixTransform>
      </scene>
    </x3d>
  </body>
</html>

Benutzerinteraktionen in der Erweiterten RealitätUser Interactions in Augmented Reality

Interaktion über Tracking-MarkerMarker-Based Interaction

Skeel Lee (2013)
  • Tracking-Marker können für Objekte stehen, deren Position und Orientierung in der Szene manipuliert werden kannTracking-markers can be used to represent objects and position/orient them in the scene
  • Tracking-Marker können als Regler (Drehknöpfe, Schieberegler) dienen, in dem ein oder mehrere Freiheitsgrade auf eine entsprechende Skala abgebildet werdenTracking-markers can also be used as sliders or radio dials by mapping one or more of their degrees of freedom to an appropriate scale

Interaktion über Tracking-MarkerMarker-Based Interaction

YouTube / AugmentedOne (2008)
  • Tracking-Marker können Funktionen auslösen: Marker sichtbar/unsichtbar als BooleanTracking-markers can trigger functions: marker visibility as boolean trigger

Finger-Tracking über FarbmarkierungenFinger-Tracking using colors

YouTube / Seokjun Lee and Soon Ki Jung (2012)
  • Farbmarkierungen können mittels Bildverarbeitung leicht erkannt und z.B. zum Finger-Tracking verwendet werdenColored markers can be easily detected by computer vision and e.g. be used for finger-tracking

Hand-Tracking über FormerkennungHand-Tracking using shape detection

YouTube / Grégoire Duhamel (2014)
  • Einfache Algorithmen zur Formerkennung können zur 2D Erkennung der Hand verwendet werden. Zielen durch ImagePlane-Technik (siehe Vorlesung zur Interaktion).Basic algorithms for shape detection can be used to detect the 2D position of the hand. Aiming is realized using a variation of the ImagePlane technique (see lecture on interaction)
  • Selektion kann dann z.B. durch Verweildauer und Schwellwert ausgelöst werden.The selection can than be triggered, e.g., based on dwell-time and a threshold.

Hand-Tracking über HautfarberkennungHand-Tracking using skin color detection

Lambrecht, Walzel & Kruger (2014)
  • Über eine Hautfarbenerkennung können Handposturen in 2D vor geeignetem Hintergrund detektiert werden.Skin-color segmentation can be used to detect 2D handshapes in front of appropriate backgrounds

Finger-Tracking über WärmeerkennungFinger-Tracking using heat detection

MetaIO (2014)
  • Die Wärme, die auf einem Zielobjekt durch die Fingerberührung hinterlassen wurde, dient zur Markierung des Ziels.The raise of the temperature that has been induced by putting the finger on the target is detected and used for aiming.

Blickbasierte InteraktionGaze-based Interaction

YouTube / Hyung Min Park (2008)
  • Zielen durch direktes AnschauenAiming by gazing at target
  • Auswahl über halbes BlinzelnTriggering of the selection by half-blink

ZusammenfassungSummary

ZusammenfassungSummary

Inhalte dieser VeranstaltungTopic of this lecture

  • Definition von Erweiterter Realität/Augmented RealityDefinition of Augmented Reality
  • Grundlegende ProzessschritteBasic processing steps
  • Anwendungsbeispiel CITECApplication example: CITEC
  • Interaktionsmöglichkeiten mit ARUser interaction with AR

AusblickOutlook

Nächster Termin: Immersion und PräsenzNext Appointment: Immersion and Presence

  • Was sind eigentlich Immersion und Präsenz?What are Immersion and Presence?
  • Wie kann man beide messen?How can we measure them?