Top Banner
Mobile Augmented Reality Mobile Augmented Reality Steffen Tröster - Mobile / Fullstack Developer Steffen Tröster - Mobile / Fullstack Developer @stetro @stetro
47

Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Jun 20, 2019

Download

Documents

nguyendien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Mobile Augmented RealityMobile Augmented RealitySteffen Tröster - Mobile / Fullstack Developer Steffen Tröster - Mobile / Fullstack Developer

�� �� @stetro@stetro

Page 2: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Was ist Augmented Reality? (AR)Was ist Augmented Reality? (AR)

Page 3: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind
Page 4: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

AnwendungsgebieteAnwendungsgebiete

Page 5: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

SpieleSpiele

Page 6: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

NavigationNavigation

Page 7: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Bilderung (Museen, Schulen ...)Bilderung (Museen, Schulen ...)

Page 8: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

EinrichtungEinrichtung

Page 9: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

MessungenMessungen

Page 10: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

IndustrieIndustrie

Page 11: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

MedizinMedizin

Page 12: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Mobile AnsätzeMobile Ansätze

 

Page 13: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Head-up-DisplayHead-up-Display

Einblendung von InformationKein Kamerabild - Keine BildkompositionTracking eher anhand GPS und Kompass

Page 14: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Standardhardware mit MarkernStandardhardware mit Markern

Begrenzte Einsatzmöglichkeiten

Page 15: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

SLAM auf spezieller HardwareSLAM auf spezieller Hardware

Tango, Hololense, structure.ioWeniger für den MassenmarktVielseitig durch Tiefeninformationen

SLAM - Simultaneous Localization and Mapping

Page 16: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

SLAM Verfahren (ARKit + ARCore)SLAM Verfahren (ARKit + ARCore)

Einsatz in unbekannten UmgebungenLäuft auf Standardhardware ohne spezielle Sensoren *

* Vorausgesetzt sind kalibrierte Sensoren & entsprechende Permformance

Page 17: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

vormals Google Project TangoPositionstracking, Raycasting, Pointcloud,Ebenenerkennung, LightEstimationAPIs für C/C++, Java, Unity, UnrealDeveloper Release

Page 18: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Wie funktioniert das?Wie funktioniert das?

Page 19: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

3D Szene3D Szene

Page 20: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Virtuelle KameraVirtuelle KameraExtrinsische Merkmale: 6 FreiheitsgradeIntrinsische Merkmale: Fokus, Verzerrungen

Ziel in AR: Merkmale der virtuellen Kamera mit der echten Kameragleichsetzen

Page 21: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Video HintergrundVideo Hintergrund

Page 22: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Herausforderung:Herausforderung:

Page 23: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Augmented Reality Pipeline in DepthAugmented Reality Pipeline in Depth

Page 24: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

  

Feature DetectionFeature DetectionZiel: Das �nden Markanter Merkmale im BildKantendetektion (Canny, ...)Eckenerkennung / Interest Points (FAST, SURF,FREAK, ...)

FAST - Features from Accelerated Segment Test

Page 25: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Feature DescriptionFeature DescriptionRobustheit: Invarianz gegenüber Rotation SkalierungAusgangswerte - Float / BinärKombinationen wie ORB oder LIFT

SIFT - Scale-Invariant Feature Transform BRIEF - Binary Robust Independent Elementary Features BRISK - Binary Robust Invariant Scalable Keypoints ORB - Oriented FAST and Rotated BRIEF LIFT - Learned Invariant Feature Transform

Page 26: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Feature MatchingFeature MatchingDas Finden korrespondierender Punkte in 2 Bildern"Die Distanz zwischen Featuren"zB. Euclidean oder Hamming Distanz

Page 27: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Beispiel Rotations InvarianzBeispiel Rotations Invarianz

Page 28: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

LIFT - Learned Invariant Feature TransformLIFT - Learned Invariant Feature TransformLIFT: Learned Invariant Feature Transform

Page 29: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Augmented Reality Pipeline in DepthAugmented Reality Pipeline in Depth

Page 30: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Visual Inertial Odometry (1/4)Visual Inertial Odometry (1/4)IMU: Gyroscope & Accelerometer (noisy sensors)Integration über Beschleunigung und Lageänderungenführt zu 6 DOF

Page 31: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Visual Inertial Odometry (2/4)Visual Inertial Odometry (2/4)

Page 32: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Visual Inertial Odometry (3/4)Visual Inertial Odometry (3/4)Feature Detection zwischen mehreren Bildern3D Triangulation führt zu gewinnung der 6 DOF

Aus Matching Triangulation entsteht Pointcloud

Page 33: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Visual Inertial Odometry (4/4)Visual Inertial Odometry (4/4)6DoF aus 2 QuellenKalmann Filter wird angewendet

"Das Kalman-Filter dient dazu, Fehler in realenMesswerten zu reduzieren und Schätzungen fürnicht messbare Systemgrößen zu liefern"(Wikipedia)

ARCore kann zB. 1 Sekunde ohne Bild überbrücken

Page 34: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Augmented Reality Pipeline in DepthAugmented Reality Pipeline in Depth

Page 35: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

SLAMSLAMSimultaneous Localization and MappingPointcloud (mit Merkmalen) + Poses => KarteRinge können detektiert werdenKorrigiert Drift aus Visual Inertial Odometry

Page 36: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Tatsächliche UmsetzungTatsächliche UmsetzungLeider bei ARCore & ARKit unbekanntWelche Features + Matcher werden verwendet?Wie sieht das Kartenmodell aus?Verfahren zur Drift Korrektur?

Page 37: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Typische ProblemstellungenTypische Problemstellungen

 

Page 38: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Interaktion - RaycastingInteraktion - Raycasting

Page 39: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Umgebung Verstehen - Ebenen (1/2)Umgebung Verstehen - Ebenen (1/2)

Bestimmung aus Pointcloud mit RANSAC (RAndom SAmple Consensus)Bestimmt Ebene, nicht die Ausbreitung (Ortsvektor + Normale)

Page 40: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Umgebung Verstehen - Ebenen (2/2)Umgebung Verstehen - Ebenen (2/2)

Polygone aus 3D Punkten => Schwer bestimmbar!Auf 2D reduzieren für gutes LaufzeitverhaltenKonvexe Hülle in O(n log n)Vorheriges Clustering möglich

Page 41: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Umgebung Verstehen - Rekonstruktion (1/4)Umgebung Verstehen - Rekonstruktion (1/4)

Wie von Pointcloud zu Polygonen kommen?TSDF: Truncated Signed Distance Function

Tiefenrepräsentation in VoxelEntfertung zur nächsten Ober�äche

Page 42: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Umgebung Verstehen - Rekonstruktion (2/4)Umgebung Verstehen - Rekonstruktion (2/4)

Umwandlung von Raster in PolygonenMarching-Cubes

Page 43: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Umgebung Verstehen - Rekonstruktion (3/4)Umgebung Verstehen - Rekonstruktion (3/4)Project Tango - real-time 3D reconstruction on mobile phone

Page 44: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Umgebung Verstehen - Rekonstruktion (4/4)Umgebung Verstehen - Rekonstruktion (4/4)

Spatial mapping with #ARKit7:04 PM - Feb 3, 2018

2,160 700 people are talking about this

Tim Field@nobbis

Page 45: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Occlusion (1/2)Occlusion (1/2)

Tiefeninformationen aus Pointcloud oderRekonstruktionenFilter der Tiefeninformationen durch Bild Material

Page 46: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Occlusion (2/2)Occlusion (2/2)Project Tango - Unity Mesh Builder Occlusion

Page 47: Mobile Augmented Reality - inovex.de · SLAM Verfahren (ARKit + ARCore) Einsatz in unbekannten Umgebungen Läuft auf Standardhardware ohne spezielle Sensoren * * Vorausgesetzt sind

Vielen Dank!Vielen Dank!Fragen?Fragen?Steffen Tröster Mobile Application Developer

inovex GmbH Mail: [email protected]