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.
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.
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“
„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.“
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.
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
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.
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.
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
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.
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.
Abb. 3.3.8 Prinzip des Wellenlängenmultiplex-Verfahrens - Farbtriplets
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.
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
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.
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.
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.
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
Ä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
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
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
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
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
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.v0.1230.2340.3451.0v......# List of texture coordinates, in (u, [,v ,w]) coordinates, these will vary between 0 and 1. v, w are optional and default to 0.vt0.5001[0]vt......# List of vertex normals in (x,y,z) form; normals might not be unit vectors.vn0.7070.0000.707vn......# Parameter space vertices in ( u [,v] [,w] ) form; free form geometry statement ( see below )vp0.3100003.2100002.100000vp......# Polygonal face element (see below)f123f3/14/25/3f6/4/13/5/37/6/5f7//18//29//3f......# Line element (see below)l581249
defrender(img,obj,projection,model,color=False):""" Render a loaded obj model into the current video frame """scale=1vertices=obj.verticesscale_matrix=np.eye(3)*scaleh,w=model.shapeforfaceinobj.faces:face_vertices=face[0]points=np.array([vertices[vertex-1]forvertexinface_vertices])points=np.dot(points,scale_matrix)# render model in the middle of the reference surface. To do so,# model points must be displacedpoints=np.array([[p[0]+w/2,p[1]+h/2,p[2]]forpinpoints])dst=cv2.perspectiveTransform(points.reshape(-1,1,3),projection)imgpts=np.int32(dst)ifcolorisFalse:cv2.fillConvexPoly(img,imgpts,DEFAULT_COLOR)else:color=hex_to_rgb(face[-1])color=color[::-1]# reversecv2.fillConvexPoly(img,imgpts,color)returnimg
defprojection_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 translationhomography=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 vectorsl=math.sqrt(np.linalg.norm(col_1,2)*np.linalg.norm(col_2,2))rot_1=col_1/lrot_2=col_2/ltranslation=col_3/l# compute the orthonormal basisc=rot_1+rot_2p=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 frameprojection=np.stack((rot_1,rot_2,rot_3,translation)).Treturnnp.dot(camera_parameters,projection)
defmain():camera_parameters=np.array([[400,0,320],[0,400,240],[0,0,1]])# create ORB keypoint detectororb=cv2.ORB_create()# create BruteForceMatcher object based on hamming distancebf=cv2.BFMatcher(cv2.NORM_HAMMING,crossCheck=True)# load the reference surface that will be searched in the video streamdir_name=pathmodel=cv2.imread(os.path.join(dir_name,'reference/reference.jpg'),0)# Compute model keypoints and its descriptorskp_model,des_model=orb.detectAndCompute(model,None)# Load 3D model from OBJ fileobj=OBJ(os.path.join(dir_name,'models/fox.obj'),swapyz=True)# init video capturecap=cv2.VideoCapture(0)display_handle=display(None,display_id=True)whileTrue:ifstopButton.value==True:cap.release()display_handle.update(None)returnsleep(0.05)ret,frame=cap.read()#frame = cv2.flip(frame, 1)try:# find and draw the keypoints of the framekp_frame,des_frame=orb.detectAndCompute(frame,None)# match frame descriptors with model descriptorsmatches=bf.match(des_model,des_frame)# sort them in the order of their distance# the lower the distance, the better the matchmatches=sorted(matches,key=lambdax:x.distance)# differenciate between source points and destination pointssrc_pts=np.float32([kp_model[m.queryIdx].ptforminmatches]).reshape(-1,1,2)dst_pts=np.float32([kp_frame[m.trainIdx].ptforminmatches]).reshape(-1,1,2)# compute Homographyhomography,mask=cv2.findHomography(src_pts,dst_pts,cv2.RANSAC,homog_slider.value)ifrecButton.value:# Draw a rectangle that marks the found model in the frameh,w=model.shapepts=np.float32([[0,0],[0,h-1],[w-1,h-1],[w-1,0]]).reshape(-1,1,2)# project corners into framedst=cv2.perspectiveTransform(pts,homography)# connect them with linesframe=cv2.polylines(frame,[np.int32(dst)],True,255,3,cv2.LINE_AA)# if a valid homography matrix was found render cube on model planeifmatch_slider.value<=len(matches):ifhomographyisnotNone:try:projection=projection_matrix(camera_parameters,homography)frame=render(frame,obj,projection,model,scale_slider.value,False)exceptException:passifmatchButton.value:frame=cv2.drawMatches(model,kp_model,frame,kp_frame,matches,0,flags=2)exceptException:passshow_frame(frame,display_handle)
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.
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.
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.
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.
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.
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.
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.