3. Thema 3: Virtual and Augmented Reality

05.05.2022 Gruppe 52

3.1. Einleitung

_images/RVContinuum.png

Abb. 3.1.1 Realitäts-Virtualitäts-Kontinuum nach Milgram

Von Aera - Eigenes Werk, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=78080198

Beim Realitäts-Virtualitäts-Kontinuum, nach Paul Milgram, werden die verschiedenen Variationen und Kompositionen der Virtualisierung auf einer kontinuierlichen Skala aufgezeichnet. Auf der einen Seite findet sich die vollständige Realität. Gegensätzlich dazu steht die komplett virtuelle Umgebung in der virtuellen Realität (virtual reality, VR). Der Bereich zwischen diesen beiden Extremen, wird als gemischte Realität (mixed reality, MR) bezeichnet. Darunter fallen die erweiterte Realität (augmented reality, AR) und erweiterte Virtualität (augmented virtuality, AV).

Während der Begriff der erweiterten Virtualität kaum von der Fachwelt benutzt wird, werden die erweiterte Realität und gemischte Realität meist synonym verwendet.

Obwohl die virtuelle Realität, beispielsweise im Kontext einer „Full Dive“-Technologie (Simulierte Realität), ganz beim virtuellen Extrem anzuordnen wäre, muss diese bei aktuellem Stand der Technik ebenso im Bereich der gemischten Realität platziert werden. Im Gegensatz zur virtuellen Realität, bei welcher der Benutzer komplett in eine virtuelle Welt eintauchen soll, steht bei der erweiterten Realität die Darstellung zusätzlicher Informationen im Vordergrund.

[Realitäts-Virtualitäts-Kontinuum]

3.2. Motivation

Die virtuelle, beziehungsweiße erweiterte Realität wird bereits jetzt in vielen Bereichen genutzt. Darunter fällt beispielsweise die Nutzung für Spiele, im Marketing sowie zur Bildung. Auch werden diese beiden Technologien in naher sowie fernerer Zukunft, sich voraussichtlich noch um Einiges weiterentwickeln, und so immer besser und umfangreicher in den verschiedensten Anwendungsbereichen zum Tragen kommen.

Somit lassen sie sich als wichtiger Aspekt der technologischen Entwicklung sehen, weshalb es nur von Vorteil sein kann sich in diesem Bereich auszukennen. Dazu haben wir uns mit beiden Technologien sowie deren Anwendungsgebieten beschäftigt.

3.3. Virtuelle Realität - Technologie

3.3.1. Allgemein

Als virtuelle Realität (virtual reality, VR), wird die gleichzeitige Darstellung und Wahrnehmung einer scheinbaren Wirklichkeit und ihrer physikalischen Eigenschaften in einer in Echtzeit computergenerierten, interaktiven virtuellen Umgebung bezeichnet. Im Gegensatz zur gemischten Realität, liegt hier der Fokus darauf eine vollständig virtuelle Umgebung zu erschaffen.

virtuell

„nicht echt, nicht in Wirklichkeit vorhanden, aber echt erscheinend“

– Google-Definition [virtuell]

Virtualität

„Virtualität ist die Eigenschaft einer Sache, nicht in der Form zu existieren, in der sie zu existieren scheint, aber in ihrem Wesen oder ihrer Wirkung einer in dieser Form existierenden Sache zu gleichen. Virtualität meint also eine gedachte Entität, die in ihrer Funktionalität oder Wirkung vorhanden ist.“

– Wikipedia-Definition [Virtualität]

[VR]

3.3.2. Anforderungen

Es können verschiedenste Anforderungen beim Erstellen einer virtuellen Welt definiert werden. Beispielhafte Anforderungen sind Immersion, Plausibilität, Interaktivität und Wiedergabetreue.

Immersion
  • Einbettung des Nutzers in die virtuelle Welt

  • Verminderung der Wahrnehmung der eigenen Person in der realen Welt

  • anspruchsvolle und spannende Gestaltung der virtuellen Welt

-> Nutzer fühlt sich mehr als Person in der virtuellen Welt

Plausibilität
  • Interaktion logisch und stimmig

  • Umgebung logisch und stimmig

-> Illusion von Realität

Interaktivität
  • Eigenen Aktionen haben Einfluss auf die virtuelle Umgebung

  • Ereignisse der Umgebung beeinflussen die Sinne des Nutzers

-> Nutzer kann in der virtuellen Welt agieren

Wiedergabetreue
  • virtuelle Umgebung genau und naturgetreu gestaltet

  • virtuelle Welt bildet Eigenschaften einer natürlichen Welt ab

-> Nutzer erscheint die virtuelle Welt glaubwürdig

motion sickness (~ „Bewegungsübelkeit“):

Ein häufiges Problem bei VR ist, dass Benutzern schwindelig werden kann, wenn die real empfundene von der virtuell gesehenen Beschleunigung abweicht. Dies kann beispielsweise eine Folge der Differenz zwischen dem real verfügbaren Raum und dem virtuellen genutzten Raum sein.

Dafür gibt es in verschiedenen Systemen verschiedene Lösungen, wie abweichende Steuerung des virtuellen Charakters oder die Einschränkung auf einen kleineren Bewegungsraum. Diese verursachen jedoch meist wiederum eine Minderung der Immersion oder anderer Anforderungen.

[VR]

3.3.3. Hardware

Ausgabegeräte

Um einen räumlichen Eindruck zu vermitteln, werden zwei Bilder aus unterschiedlichen Perspektiven erzeugt und dargestellt (Stereoprojektion). Um das jeweilige Bild dem richtigen Auge zuzuführen, existieren verschiedene Technologien.

Virtual-Reality-Headsets

Durch zwei Linsen im Headset, soll dem Nutzer das passende Bild in das jeweilige Auge projiziert werden.

  • Angebundene VR-Headsets:

    Um maximale Leistung zu erhalten, sind angebundene VR-Headsets nötig.

    • Verbindung mit Rechner verpflichtend

    • Rechenaufwand auf dem verbundenen PC

    Typische Bestandteile:
    • Zwei kleine, hochauflösende OLED- oder LCD-Monitore, die für beide Augen ein separates Bild liefern

    • Gyroskope und Bewegungssensoren zur Positions- und Rotationsverfolgung des Nutzers

    • Binaurales Audiosystem

    _images/HTC_Vive_Cosmos_-_1.jpg

    Abb. 3.3.1 HTC HTC Vive Cosmos

  • Standalone-VR-Headsets:

    Während die ersten VR-Headsets immer auf einen PC angewiesen waren, gibt es mittlerweile auch so genannte Standalone-VR-Headsets.

    • gänzlich autark

    • kabellos und mobil nutzbar

    • Leistung geringer (im Vergleich zu einem Angebundene VR-Headset)

    • aber ebenfalls verhältnismäßig grafikintensive virtuelle Umgebungen möglich

    _images/Oculus_Quest_II_(50844634326).jpg

    Abb. 3.3.2 Oculus Quest II

    Von Maximilian Prandstätter - Oculus Quest II, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=110173275

  • Halterungen für Smartphones:

    Eine simple Alternative sind VR-Headsets, welche lediglich eine Halterung für Handys darstellen. Dabei werden die beiden separaten Bilder auf einem Handybildschirm dargestellt, wodurch jedoch der selbe Effekt erzielt wird.

    _images/Assembled_Google_Cardboard_VR_mount.jpg

    Abb. 3.3.3 Google Cardboard

    Von othree - Google Cardboard, CC BY 2.0, https://commons.wikimedia.org/w/index.php?curid=40703922

  • Interaktion:
    • Knöpfe am Headset

    • Handgesten, Motion Control

    • externe Eingabegeräte (siehe Eingabegeräte)

[Virtual-Reality-Headset]

CAVE-System

Wenn kein VR-Headset genutzt wird, kann beispielsweise das CAVE-System zur Anwendung kommen. CAVE steht für „Cave Automatic Virtual Environment“ (Höhle mit automatisierter, virtueller Umwelt), was die eigene Funktionsweiße gut umschreibt. Bei einem solchen System wird durch Projektionen oder Bildschirme die virtuelle Welt direkt an Wänden, Decke und Boden des Raumes dargestellt.

_images/Roboterbasierter_Flugsimulator_Grenzebach_'FlightSim'.jpg

Abb. 3.3.4 Flugsimulator in einer CAVE

Von TheGrenzebachGroup - Eigenes Werk, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=28172269

[CAVE]

Um bei einem CAVE-System, aber auch bei anderen Ausgabegeräten, die Umgebung dreidimensional darzustellen, werden zum Beispiel folgende Techniken zur Stereoprojektion angewendet:

Shuttertechnik

Shutterbrillen:
  • Gläser, aus zwei verschiedenen Flüssigkristallflächen, die elektronisch durchlässig und undurchlässig geschaltet werden können

  • Damit lässt sich wahlweise das linke oder das rechte Auge abdunkeln.

  • Dazu wird abwechselnd das linke und rechte Bild angezeigt.

  • Von der Brille wird dabei synchron nur das passende Bild zum entsprechenden Auge durchgelassen

_images/Xpand-brille.jpg

Abb. 3.3.5 Shutterbrille

Von Gmhofmann - Selbst fotografiert (Originaltext: Selber fotografiert), Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=26520164

[Shutter-3D-System]

Polarisationsfiltertechnik

  • Die beiden benötigten Bilder werden in jeweils entgegengesetzt polarisiertem Licht ausgestrahlt.

  • Dazu jeweils entsprechend versetzte Polarisationsfilter vor den Projektionsobjektiven

  • Ebenso entsprechend versetzte Polarisationsfilter in den 3D-Brillen der Betrachter

_images/Light_Circular_Polarizer_Passing.svg

Abb. 3.3.6 Circularly polarized glasses - Prinzip

By Dave3457 - Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=9862713

  • Zur Aufrechterhaltung des Polarisationsstatus des Lichts wird eine metallisch beschichtete Leinwand benötigt. Eine normale weiße Leinwand würde das Licht wieder zerstreuen und die Kanaltrennung wäre aufgehoben.

  • Der Vorteil dieser Projektionstechnik liegt in der hohen Farbtreue der gezeigten Bilder.

  • Nachteile sind zum einen der Lichtabfall durch die verwendeten Filter und die extra für dieses Verfahren erforderliche metallische Leinwand.

_images/REALD.jpg

Abb. 3.3.7 Polarisationsfilterbrille

Von Midori iro - Eigenes Werk, Gemeinfrei, https://commons.wikimedia.org/w/index.php?curid=3203459

[Polarisationssystem]

Interferenzfiltertechnik

  • Funktionsweiße:

Es arbeitet nach einem Lichtwellenlängenfiltersystem (Wellenlängenmultiplex). Für jedes Auge wird jeweils ein Teil der vom Auge als Rot-Grün-Blau empfundenen Wellenlängen durchgelassen und der des anderen Auges sehr effektiv blockiert. Hierbei werden die Grundfarben der Bilder also für das linke und rechte Auge auf jeweils unterschiedliche überlappungsfreie Wellenlängenbereiche reduziert.

_images/ABB_2351_01_27_infitec.gif

Abb. 3.3.8 Prinzip des Wellenlängenmultiplex-Verfahrens - Farbtriplets

Diese werden dann parallel über die Leinwand bis zum Betrachter übertragen.

_images/Wellenlaengenmultiplex-bei-der-CWDM-Technik.png

Abb. 3.3.9 Prinzip des Wellenlaengenmultiplex-bei-der-CWDM-Technik

Um die beiden Farbtriplets, die den Betrachter sequentiell (= als Multiplex) erreichen, voneinander zu trennen, wird eine Interferenzbrille verwendet. Die Gläser dieser Brille sind mit dielektrischen Materialien mehrfachbeschichtet. Die Mehrfachbeschichtung wirkt ähnlich einem Saugkreis in der Funktechnik: nur in Resonanz befindliche Schwingungen werden durchgelassen. So können die Farbtriplets für beide Augen exakt ausgefiltert werden.

_images/FOT_2351_01_29_Brille_D.jpg

Abb. 3.3.10 Dolby 3D Interferenzfilter-Brille

  • Vorteile:

    • scheinbar farbneutral, d. h., es kommt zu keinen sichtbaren Farbänderungen In manchen Fällen kann es zu stärkeren Farbfehlern kommen, welche jedoch mit elektronischer Farbkorrektur in der Signalverarbeitung des Projektors behoben werden können.

    • Kopfneigung ohne Qualitätsverluste

    • keine Silberleinwand nötig

    • nur ein Projektor nötig

    • Streulicht, z.B. durch eine unvollständige Abdunkelung, wird ausgeblendet -> projiziertes Bild wirkt brillanter

  • Nachteile:

    • Brillengläser und Filter bestehen aus in einem Vakuumverfahren beschichtetem Glas -> vergleichsweise teuer

[Interferenzfiltertechnik]

Herstellerübersicht mit Modellen:

Facebook

(Oculus Rift, Oculus Go, Oculus Quest, Oculus Quest 2 und Oculus Rift S)

Google

(Google Cardboard, Google Daydream)

HTC & Valve

(HTC Vive)

Lenovo

(Lenovo Explorer für Windows Mixed Reality und Lenovo Mirage Solo für Google Daydream)

Microsoft

(Microsoft HoloLens, Windows Mixed Reality)

Razer

(OSVR Hacker Dev Kit)

Samsung

(Samsung Gear VR)

Sony Computer Entertainment

(PS VR)

Starbreeze Studios

(StarVR)

Valve

(Valve Index)

University of Illinois

(CAVE)

[Stereodisplay] [VR]

Eingabegeräte

Zur Interaktion mit der virtuellen Welt, sowie der ausführenden Software gibt es verschiedenste spezielle Eingabegeräte. Einige Eingabegeräte wirken eine Kraftrückkopplung auf den Nutzer (Force Feedback), sodass die Haptik als weitere Sinnesempfindungen zu einer realitätsnahen Simulationen beiträgt.

Ein beispielhafter Auszug:

Optische Sensoren

VR-Kontroller werden oft mit einem optischen Trackingsystem genutzt. Dabei, meist mithilfe von Infrarot-Kameras, wird kontinuierlich durch die Erfassung von Markern die Position des Nutzers im Raum bestimmt, damit dieser sich möglichst ohne Verkabelung frei bewegen kann.

_images/Oculus-Rift-CV1-Sensor-wStand.jpg

Abb. 3.3.11 Oculus Rift Constellation Sensor

By Evan-Amos - Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=62084284

Motion Controller

Ein „Motion controller“ ist ein Eingabegerät dass Beschleunigungsmesser oder andere Sensoren verwendet, um Bewegungen zu verfolgen um die Steuerung in einer virtuellen Umgebung zu übernehmen.

_images/Wii_Remote_Image.jpg

Abb. 3.3.12 Wii Remote

By Greyson Orlando - Own work, Public Domain, https://commons.wikimedia.org/w/index.php?curid=1447832

3D-Maus

„Maus“ welche mindestens drei „degrees of freedom“ zur Verfügung stellt.

degrees of freedom

(Anzahl unabhängiger Parameter welche die aktuelle Konfiguration definieren)

[3D-Mouse] [DoF]

_images/Space-Navigator.jpg

Abb. 3.3.13 3D-Maus mit „six-degrees-of-freedom“

Datenhandschuh

Die Steuerung in der virtuellen Umgebung erfolgt durch Bewegung der hand und Finger.

[Datenhandschuh]

_images/NES-Power-Glove.jpg

Abb. 3.3.14 NES-Power-Glove

omnidirektionales Laufband

Mithilfe eines Laufbands wird das Gehen im virtuellen Raum durch reale Gehbewegungen gesteuert.

_images/Cyberith_Virtualizer.jpg

Abb. 3.3.15 Cyberith Virtualizer

Von Oleg2525 - Eigenes Werk, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=27995550

[VR]

3.3.4. Software

Zur Erzeugung von virtueller Realität benötigt man speziell entwickelte Software.

Anforderung:

Berechnung von komplexen dreidimensionalen Welten …
  • in Echtzeit

  • in Stereo (getrennt für linkes und rechtes Auge)

Im Gegensatz zu den Beginnen der VR wurden die Möglichkeiten, durch deutlich leistungsfähigere Rechner und Grafikprozessoren, deutlich ausgeweitet.

benötigte Software:

  • CAD-/3D-Programme werden für die Modellierung von dreidimensionalen, virtuellen Objekten genutzt.

  • Zusätzlich wird Software für die Bild- und Tonbearbeitung benötigt.

  • Autorensysteme werden genutzt, um die modellierten Objekte zu interaktiven Simulationen zusammenzusetzen.

3.4. VR-Anwendungen

Für VR-Technik gibt es heutzutage viele Anwendungsbereiche. Ein kurzer Überblick im Folgenden:

3.4.1. Bildung

Schüler können mit VR-Brillen z.B. 3D-Modelle des Sonnensystems ansehen oder detailgetreu Nachbildungen von Tieren ansehen. Zudem gibt es auch virtuelle Führungen durch Zoos und Museen.

  • Einsatz von VR-Brillen in Schulen

https://www.herole.de/blog/wp-content/uploads/schueler-unterricht-vr-brille-1024x576.jpg

Abb. 3.4.1 @https://www.herole.de/blog/wp-content/uploads/schueler-unterricht-vr-brille-1024x576.jpg

3.4.2. Arbeit

VR kann eingesetzt werden für Schulungen von Mitarbeitern, Weiterbildungen oder das Simulieren von Einsatzszenarien. Dies wird bereits bei Pilotentraining, trainieren von Wartungskräften bei Intel und der US-amerikanischen Armee eingesetzt.

  • Einsatz von VR-Technik bei der Ausbildung von US-Streitkräften

https://l3apq3bncl82o596k2d1ydn1-wpengine.netdna-ssl.com/wp-content/uploads/2019/07/OEODCKQNMBAQ5GBIRD45EAP3PE.jpeg

Abb. 3.4.2 @https://l3apq3bncl82o596k2d1ydn1-wpengine.netdna-ssl.com/wp-content/uploads/2019/07/OEODCKQNMBAQ5GBIRD45EAP3PE.jpeg

3.4.3. Medizin

3.4.3.1. Ausbildung

Ärzte trainieren OPs und Behandlungen von Patienten mithilfe von simulierten Patienten. Dort können einfach Krankheiten und dazugehörige Krankenakten virtuell dargestellt werden. Somit müssen keine ansteckende Patienten besucht werden und fehlerhaften Diagnosen von angehenden Ärzten haben keine weiteren Folgen.

  • Einsatz von VR-Technik bei der Ausbildung von Ärzten

https://www.techbook.de/data/uploads/2018/11/gettyimages-608811629_1542978741-1000x667.jpg

Abb. 3.4.3 @https://www.techbook.de/data/uploads/2018/11/gettyimages-608811629_1542978741-1000x667.jpg

3.4.3.2. Therapie

Hier kann zum Beispiel ein virtuelles Meeting mit dem Psychologen abgehalten werden. Auch wird VR dort bereits für die Behandlung von Traumapatienten eingesetzt. In den Simulationen können die Traumasituationen von Patienten nachgespielt und verarbeitet werden. „Einige US-Studien bestätigen: Sie zeigen, dass die VR-Therapie bei etwa 80 Prozent der Trauma-Patienten wirkt. Vier von fünf Patienten hat die Virtual-Reality-Behandlung geholfen, wieder ein normales Leben führen zu können“

  • Mit VR werden schon heute Traumapatienten behandelt

https://images.ctfassets.net/qpn1gztbusu2/58YqrUR97EiUKHLq1cabiD/d6070af581acdd9a0048741e4570ec78/VR_Interview_Blog-1356x764.jpg

Abb. 3.4.4 @https://images.ctfassets.net/qpn1gztbusu2/58YqrUR97EiUKHLq1cabiD/d6070af581acdd9a0048741e4570ec78/VR_Interview_Blog-1356x764.jpg

3.4.4. E-Commerce

Auch im E-Commerce Bereich ist VR schon angekommen. Dort können Kunden sich z.B. neue Möbeleinrichtungen für ihr Haus ansehen, virtuell in Supermärkten einkaufen oder in virtuellen Umkleiden die neueste Mode ausprobieren.

  • Kunden können in virtuellen Umkleiden neue Mode ausprobieren

https://miro.medium.com/max/1400/1*UVCrPY9HG2cqq5eN-FWEEg.jpeg

Abb. 3.4.5 @https://miro.medium.com/max/1400/1*UVCrPY9HG2cqq5eN-FWEEg.jpeg

3.4.5. Unterhaltung

3.4.5.1. Sport

Seit 2016 werden Fußball-, seit 2017 Football- und Basketballspiele in VR übertragen. Die Fans können sich dabei frei im Raum umsehen und selbst entscheiden, welche Inhalte sie erleben möchten. „Dabei helfen einzigartige Perspektiven, welche abseits der virtuellen Welt gar nicht erst erlebbar wären: Court-View, Vogelperspektive oder etwa die Sicht der Cheerleader in der Spielfeldmitte“

  • Mit VR können Fans zusehen, als wären sie selbst im Stadion

https://www.basicthinking.de/blog/wp-content/uploads/2017/10/pexels-photo-128457.jpeg

Abb. 3.4.6 @https://www.basicthinking.de/blog/wp-content/uploads/2017/10/pexels-photo-128457.jpeg

3.4.5.2. Videospiele

Schon seit den 80er Jahren gibt es VR-Videospiele. Mehr als eine Spielerei sind diese jedoch erst mit dem Durchbruch von Playstation VR und Oculus Rift geworden. Heute gibt es bereits hunderte von VR Spielen. Von kleinen indie Titeln bis hin zu realitätsnahen Triple-A Spielen. Dieser Markt wächst stetig und Facebook versucht gerade mit Metaverse den Durchbruch in den Mainstream.

  • Facebook versucht virtuelle Welten Mainstream werden zu lassen

https://octalysisgroup.com/wp-content/uploads/2022/02/Metaverse-community.jpeg

Abb. 3.4.7 @https://octalysisgroup.com/wp-content/uploads/2022/02/Metaverse-community.jpeg

3.5. Augmented Reality

Augmented Reality(AR) ist die computergestützte Erweiterung der Realität, wie wir sie als Menschen wahrnehmen.

AR kann auf alle Sinnesmodalitäten angewendet werden, im Weiteren beschäftigen wir uns nur mit visuell wahrgenommener AR.

AR hat normalerweise 3 Features:

  • Echtzeitinteraktion

  • Die Kombination der Realität mit virtueller Realität

  • Die räumliche Registrierung von 3D Objekten in der Realität und virtuell.

3.6. AR Proof of Concept

Inspiriert von augmented-reality

Beispiel (Jupyter Notebook)

# Notwendig für AR
import cv2
import numpy as np

3.6.1. OBJ File, die geometrische Beschreibung der Animation

Was ist ein OBJ file? Hier ein Beispiel:

# List of geometric vertices, with (x, y, z [,w]) coordinates, w is optional and defaults to 1.0.
v 0.123 0.234 0.345 1.0
v ...
...
# List of texture coordinates, in (u, [,v ,w]) coordinates, these will vary between 0 and 1. v, w are optional and default to 0.
vt 0.500 1 [0]
vt ...
...
# List of vertex normals in (x,y,z) form; normals might not be unit vectors.
vn 0.707 0.000 0.707
vn ...
...
# Parameter space vertices in ( u [,v] [,w] ) form; free form geometry statement ( see below )
vp 0.310000 3.210000 2.100000
vp ...
...
# Polygonal face element (see below)
f 1 2 3
f 3/1 4/2 5/3
f 6/4/1 3/5/3 7/6/5
f 7//1 8//2 9//3
f ...
...
# Line element (see below)
l 5 8 1 2 4 9

https://en.wikipedia.org/wiki/Wavefront_.obj_file

3.6.2. Implementierung

def render(img, obj, projection, model, color=False):
    """
    Render a loaded obj model into the current video frame
    """
    scale = 1
    vertices = obj.vertices
    scale_matrix = np.eye(3) * scale
    h, w = model.shape

    for face in obj.faces:
        face_vertices = face[0]
        points = np.array([vertices[vertex - 1] for vertex in face_vertices])
        points = np.dot(points, scale_matrix)
        # render model in the middle of the reference surface. To do so,
        # model points must be displaced
        points = np.array([[p[0] + w / 2, p[1] + h / 2, p[2]] for p in points])
        dst = cv2.perspectiveTransform(points.reshape(-1, 1, 3), projection)
        imgpts = np.int32(dst)
        if color is False:
            cv2.fillConvexPoly(img, imgpts, DEFAULT_COLOR)
        else:
            color = hex_to_rgb(face[-1])
            color = color[::-1]  # reverse
            cv2.fillConvexPoly(img, imgpts, color)
    return img
def projection_matrix(camera_parameters, homography):
    """
    From the camera calibration matrix and the estimated homography
    compute the 3D projection matrix
    """
    # Compute rotation along the x and y axis as well as the translation
    homography = homography * (-1)
    rot_and_transl = np.dot(np.linalg.inv(camera_parameters), homography)
    col_1 = rot_and_transl[:, 0]
    col_2 = rot_and_transl[:, 1]
    col_3 = rot_and_transl[:, 2]
    # normalise vectors
    l = math.sqrt(np.linalg.norm(col_1, 2) * np.linalg.norm(col_2, 2))
    rot_1 = col_1 / l
    rot_2 = col_2 / l
    translation = col_3 / l
    # compute the orthonormal basis
    c = rot_1 + rot_2
    p = np.cross(rot_1, rot_2)
    d = np.cross(c, p)
    rot_1 = np.dot(c / np.linalg.norm(c, 2) + d / np.linalg.norm(d, 2), 1 / math.sqrt(2))
    rot_2 = np.dot(c / np.linalg.norm(c, 2) - d / np.linalg.norm(d, 2), 1 / math.sqrt(2))
    rot_3 = np.cross(rot_1, rot_2)
    # finally, compute the 3D projection matrix from the model to the current frame
    projection = np.stack((rot_1, rot_2, rot_3, translation)).T
    return np.dot(camera_parameters, projection)
def main():
    camera_parameters = np.array([[400, 0, 320], [0, 400, 240], [0, 0, 1]])
    # create ORB keypoint detector
    orb = cv2.ORB_create()
    # create BruteForceMatcher object based on hamming distance
    bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
    # load the reference surface that will be searched in the video stream
    dir_name = path
    model = cv2.imread(os.path.join(dir_name, 'reference/reference.jpg'), 0)
    # Compute model keypoints and its descriptors
    kp_model, des_model = orb.detectAndCompute(model, None)
    # Load 3D model from OBJ file
    obj = OBJ(os.path.join(dir_name, 'models/fox.obj'), swapyz=True)
    # init video capture
    cap = cv2.VideoCapture(0)
    display_handle=display(None, display_id=True)

    while True:
        if stopButton.value==True:
            cap.release()
            display_handle.update(None)
            return


        sleep(0.05)
        ret, frame = cap.read()
        #frame = cv2.flip(frame, 1)
        try:
            # find and draw the keypoints of the frame
            kp_frame, des_frame = orb.detectAndCompute(frame, None)
            # match frame descriptors with model descriptors
            matches = bf.match(des_model, des_frame)
            # sort them in the order of their distance
            # the lower the distance, the better the match
            matches = sorted(matches, key=lambda x: x.distance)

            # differenciate between source points and destination points
            src_pts = np.float32([kp_model[m.queryIdx].pt for m in matches]).reshape(-1, 1, 2)
            dst_pts = np.float32([kp_frame[m.trainIdx].pt for m in matches]).reshape(-1, 1, 2)
            # compute Homography

            homography, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC, homog_slider.value)

            if recButton.value:
                # Draw a rectangle that marks the found model in the frame
                h, w = model.shape
                pts = np.float32([[0, 0], [0, h - 1], [w - 1, h - 1], [w - 1, 0]]).reshape(-1, 1, 2)
                # project corners into frame
                dst = cv2.perspectiveTransform(pts, homography)
                # connect them with lines
                frame = cv2.polylines(frame, [np.int32(dst)], True, 255, 3, cv2.LINE_AA)
            # if a valid homography matrix was found render cube on model plane
            if match_slider.value <= len(matches):
                if homography is not None:
                    try:
                        projection = projection_matrix(camera_parameters, homography)
                        frame = render(frame, obj, projection, model, scale_slider.value, False)
                    except Exception:
                        pass
            if matchButton.value:
                frame = cv2.drawMatches(model, kp_model, frame, kp_frame, matches, 0, flags=2)
        except Exception:
            pass
        show_frame(frame, display_handle)
main()

3.7. AR-Anwendungen

3.7.1. Bildung

https://storage.googleapis.com/lunamag-cdn/2020/02/4557c72b-augmentedreality_slider.jpg

Abb. 3.7.1 @https://storage.googleapis.com/lunamag-cdn/2020/02/4557c72b-augmentedreality_slider.jpg

AR Technologie kann zum Beispiel dazu benutzt werden, um Kinderbücher interessanter und anschaulicher zu gestalten. Eine andere Möglichkeit ist die Verdeutlichung von Sachbüchern wie zum Beispiel Chemie Lehrbücher, hier kann der Inhalt veranschaulicht werden, indem die Modelle und andere Inhalte über Ar projiziert werden.

3.7.2. Arbeit

https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-architektur.jpg

Abb. 3.7.2 @https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-architektur.jpg

Im Professionellen Bereich gibt es viele Anwendungsmöglichkeiten für die Anwendung von AR Technologie. Ein Prominentes Beispiel ist Architektur, z.B. ist es möglich für Architekten ihre Arbeit direkt vor Ort zu Planen und direkt sehen zu können wie das Endergebnis aussieht.

3.7.3. Medizin

https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-medizin.jpg

Abb. 3.7.3 @https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-medizin.jpg

In der Medizin kann AR Anwendung selbst in so wichtigen Gebieten wie Operationen finden. Chirurgen können sich einfach Bilder der betroffenen Gebiete projizieren lassen, um Operationen einfacher und sicherer zu gestalten. Eine weite Möglichkeit ist es Patienten einfacher und anschaulicher zu erklären, was die Ursache ihrer Probleme ist.

3.7.4. E-Commerce

https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-moebel.jpg

Abb. 3.7.4 @https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-moebel.jpg

Ein Anwendungsgebiet im E-Commerce ist es, Gegenstände, die man über das Internet einkaufen will, mit eigenen Augen zu sehen. Eine konkrete Anwendung hierfür ist es, wenn man sich neue Möbel kaufen will und erst einmal sehen will wie diese Möbel in Kombination zu den bereits vorhanden aussehen.

3.7.5. Einzelhandel

https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-einzelhandel.jpg

Abb. 3.7.5 @https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-einzelhandel.jpg

Ein Einzelhandel kann so ausgelegt werden, dass Kunden mit ihrem Smartphone durch das Geschäft laufen und Wareninformationen wie Verfügbarkeit, Farboptionen oder Ablaufdatum schnell und einfach angezeigt bekommen. Zusätzlich können Läden für relativ wenig Geld oder Aufwand ihre Läden neu gestalten oder Events planen und ausführen.

3.7.6. Videospiele

https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-spiele.jpg

Abb. 3.7.6 @https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-spiele.jpg

AR Videospiele sind bereits seit einer längeren Zeit beliebt und bekannt. Das Hauptbeispiel hierfür ist Pokémon Go, ein Spiel wo Spieler durch die echte Welt laufen und Pokémon fangen die durch Digitale 3D-Marker angezeigt werden.

3.7.7. Events

https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-events.jpg

Abb. 3.7.7 @https://matthiashamann.work/files/layout/images/Ar-Inspiration/augmented-reality-events.jpg

Nicht nur alltägliche Situationen können mit AR Technologie aufgewertet werden, sondern auch einzigartige Events. Diese Technologie kann nicht nur Live-Events aufwerten, sondern auch Leuten die Möglichkeit bieten diese Events mithilfe einer AR-Brille von Zuhause mitzuerleben.

3.7.8. Quellen

https://www.gal-digital.de/de/digitalisierung-blog/anwendungsgebiete-augmented-reality#:~:text=Als%20Augmented%20Reality%20werden%20computergestützte,um%20eine%20Erweiterung%20der%20Realität. https://matthiashamann.work/de/guides/ar-technology

3.8. Quellen

Einleitung

Realitäts-Virtualitäts-Kontinuum
Simulierte-Realität

Virtuelle Realität - Technologie

VR(1,2,3,4)
virtuell
Virtualität
Stereodisplay
Virtual-Reality-Headset
CAVE
Shutter-3D-System
Polarisationssystem
Interferenzfiltertechnik
3D-Mouse
DoF
Datenhandschuh

Virtuelle Realität - Anwendung