2. Agenda
• Life before and after augmented reality
• Theory (CAUTION: Math included)
• Look and feel of ARCore / ARKit
• Comparison and future
• Practical example
8. ARKit
• Motion tracking
• Plane estimation with basics boundaries
• Ambient lighting estimation
• Scale estimation: iOS11+ only
• Support: Unity, Unreal, Sprite / Scene Kit
9. ARCore
• Motion tracking
• Environmental understanding
• Light estimation
• Scale estimation: Android use, Android
N+, currently Samsung S8(+), Google
Pixel(2)
• Support: Unity, Unreal, AS
• Not Tango
10.
11. Motion Tracking
ARKit
• Accelerometer
• Gyroscope
• Global Positioning System
• Other sensors when needed
• Really strong dead reckoning
and IMU errors removal
ARCore
• Accelerometer
• Gyroscope
• Global Positioning System
• Other sensors when needed
• Low IMU errors removal
17. API
ARKit
• Built on top of SceneKit /
SpriteKit / Metal
• Session, Frame, Anchor,
Configuration, HitTest and
so on
ARCore
• Built on top of OpenGL +
SurfaceView + Renderers
• Session, Frame, Anchor,
Configuration, HitResult and
so on
18. So what is better?
ARKit
• Better hw/sw integration
• Reliable tracking
• Huge GTM
• More money
ARCore
• Better mapping
• More reliable recovery
• Huge experience with Tango
R&D
• Better scaling
22. To be solved
• 6dof as standard
• 3D Scene Reconstruction &
Understanding
– Spatial Mapping
– Depth Perception
• Cloud + multi-user (REAL MMORPG
OMFGWTF)
23.
24. Interesting
• http://www.madewitharkit.com - projects made with ARKit
• https://twitter.com/hashtag/arcore?lang=en - all about ARCore and
projects made with it
• https://github.com/olucurious/Awesome-ARKit - apps made with ARKit
on Github
• https://medium.com/iotforall/arcore-vs-arkit-google-counters-apple-
33483c08d3da - ARKit + ARCore comparison
• https://medium.com/journey-of-one-thousand-apps/arkit-and-
corelocation-part-one-fc7cb2fa0150 - location-based ARKit
• https://medium.com/super-ventures-blog/how-is-arcore-better-than-
arkit-5223e6b3e79d - How is ARCore better than ARKit?
• https://medium.com/super-ventures-blog/why-is-arkit-better-than-the-
alternatives-af8871889d6a - ARKit deep understanding
• https://thinkmobiles.com/blog/best-ar-sdk-review/ - ten best AR SDK for
mobile development in 2017
• https://habrahabr.ru/post/166693/ - Kalman Filter
• https://en.wikipedia.org/wiki/Visual_odometry#Visual_Inertial_Odometr
y - Visual Inertial Odometry
1. Projection based ARAs the name clearly says this type of AR projects digital images on physical objects in the physical space. It can be interactive and project a digital keyboard on your desk, or a dialer on your hand. It might be non-interactive and it can be used to create projection of objects that you can position and see in depth – for example, it might show you if your future fridge will fit into that space you have near the oven by projecting the fridge in front of you.
2. Recognition based ARWhenever you scan a QR code, or scan an image and it comes to live (just like in iGreet cards) you are actually using a recognition based AR. This how iGreet works – the AR app detects and recognizes something called AR marker. Once it recognizes the marker, it replaces it with a corresponding object. Another type of recognition based AR tech is the one that translates words seen through the camera. This type of AR also seems to be the most widely used one – along with the next one.
3. Location based ARLocation based AR is taking advantage of the smart devices’ location detection features. If you’re a traveler and you want to discover new great places, this method will use your location by reading your smart device’s GPS, compass and accelerometer and give you relevant information about what you’re looking for on your screen.
4. Outlining ARThe line here is a bit blurry – outlining AR uses object recognition to work, and might look a bit like a projection based AR. For example, whenever you’re parking your modern car in the dark, outlining AR recognizes the boundaries of the road and outlines them for you. This method can also be used in architecture and engineering to outline buildings and their supporting pillars.
5. Superimposition based ARSuperimposition based AR also uses object recognition in order to replace an entire object or a part of it with an augmented view. For example, if you’ve ever played FPS games, you know how your soldier may have advanced military equipment showing infrared view, night vision, radioactive view, etc. – this is all superimposition based AR. Also, in medicine, a doctor can use this technology to superimpose an X-ray view of a patient’s broken arm bone on a real image to provide a clear understanding of what the bone’s damage actually is.
Six degrees of freedom (6DoF) refers to the freedom of movement of a rigid body in three-dimensional space. Specifically, the body is free to change position as forward/backward (surge), up/down (heave), left/right (sway) translation in three perpendicular axes, combined with changes in orientation through rotation about three perpendicular axes, often termed yaw (normal axis), pitch (lateral axis), and roll (longitudinal axis).
https://en.wikipedia.org/wiki/Six_degrees_of_freedom
Android use = all devices running Android (Android TV, Glasses etc.)
Other sensors: compass, pedometer etc.
The Tracker checks to see if there is a Map pre-(down)loaded & ready to go, so the tracker Initializes a new map by doing a stereo calculation as I described in my last post. This means we now have a nice little 3D map of just what is in the Camera’s field of view. As you start moving around, and new parts of the background scene move into the field of view, more 3D points are added to the map and it gets bigger. And bigger. And bigger. This never used to be a problem because trackers were so bad that they’d drift away unusably before the map got too big to manage. That isn’t the case anymore, and managing the Map is where much of the interesting work in SLAM is going on (along with Deep Learning & CNN AIs). ARKit uses a “sliding window” for it’s Map, which just means that it only stores a variable amount of the recent past (time and distance) in the map, and throws away anything old. The assumption is that you aren’t going to ever need to relocalize against the scene from a while ago. ARCore manages a larger map, which means that the system should be more reliable.
Hw/sw = hardware / software
GTM = Go to market
R&D = Research and develop team