Azure / azure-spatial-anchors-samples

Azure Spatial Anchors sample code
Other
293 stars 139 forks source link

Controlling the amount of feature-points for each anchor #180

Closed clifflinmao closed 4 years ago

clifflinmao commented 4 years ago

When using ASA, parameter 'RecommendedForCreateProgress' indicates if it already collect enough feature-point for an anchor. Eventhough when it reaches 100%, you can continue scanning to get more feature-points, However, it seems when actually saving an anchor, the feature-points that really counts are only those captured during the 'last few seconds' when 'saving' the anchor, and how long is the 'few seconds' is not controllable. This is really confusing from an user's perspective. Because I may have scanned every single corner of the room, but in the end I can only localize the anchor in the position when 'saving' the anchor, which are few VERY LIMITED positions for localizing an anchor, that means as a user, I can only localize the anchor when I am accurately in those position sand facing the camera to specific direction. Users should be able to allowed to localize the anchor more easily.

(Please correct me if what I described above is not accurate)

The question here:

Is it possible to provide MORE feature points for an anchor, in another word, is it possible to control the amount of feature-points for an anchor??

For a simple example, with ASA, is it possible to achieve this: Say I have a round table, and I want to place an anchor on the table. I would like users to be able to localize it in any position around the table, specificaly, any position = 360-degrees, 1 meter away from the table. Currently with ASA, you can only localize from a few direction towards the table, not 360-degrees.

Hope you get what I mean. & Thanks for your help in advance.

darax commented 4 years ago

@clifflinmao I don't know how I missed this post! Thanks for the question. Currently applications have little control over the specific feature points being captured for Azure Spatial Anchors to localize an anchor. While the last few frames are important, we do try to accumulate frames with a diverse set of data. In addition, the feature points are augmented when recalling the anchor later. Incorporating the data takes some amount of processing, but over days the angles you can successfully recall the anchor from should increase.

For a round table, before placing the anchor, but while ASA is accumulating frame data, walk around the table. Then place and save the anchor. After this find a few positions around the table the anchor isn't found from, and from those positions move to a position where the anchor is discovered from. Do this a few times, and then check back the next day.

Many scenarios for spatial anchors are on the spot sharing, so waiting a day might not be acceptable. In this case, you can help the algorithm by having distinct features on the table surface. I'm curious how many degrees around the table you can recall from for a new anchor.

craigktreasure commented 4 years ago

I hope @darax response was helpful. Feel free to re-open the issue to continue the conversation if needed.