I'm making an app that captures data using ARKit and will ultimately send the images+depth+gravity to an Object Capture Photogrammetry agent. I need to use the depth data and produce a model with correct scale, so from what I understand I need to send the depth file + set proper exif data in the image. Since I'm getting the images+depth from ARKit I'll need to set the exif data manually before saving the images. Unfortunately the documentation on this is a bit light, so would you be able to let me know what exif data needs to be set in order for the Photogrammetry to be able to create the model with proper scale?
If I try and set my Photogrammetry agent with manual metadata like this:
var sample = PhotogrammetrySample(id: id, image: image)
var dict:[ String: Any ] = [:]
dict["FocalLength"] = 23.551325
dict["PixelWidth"] = 1920
dict["PixelHeight"] = 1440
sample.metadata = dict
I get the following error in the output and depth is ignored:
[Photogrammetry] Can't use FocalLenIn35mmFilm to produce FocalLengthInPixel! Punting...
Create 3D models with Object Capture
RSS for tagDiscuss the WWDC21 session Create 3D models with Object Capture.
Posts under wwdc21-10076 tag
2 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
I'm creating a custom scanning solution for iOS and using RealityKit Object Capture PhotogrammetrySession API to build a 3D model. I'm finding the data I'm sending to it is ignoring the depth and not building the model to scale. The documentation is a little light on how to format the depth so I'm wondering if someone could take a look at some example files I send to the PhotogrammetrySession. Would you be able to tell me what I'm not doing correctly?
https://drive.google.com/file/d/1-GoeR_KMhX_i7-y8M8ElDRrySasOdoHy/view?usp=sharing
Thank you!