Come rilevare un oggetto difficile
A volte, un oggetto può risultare più difficile da rilevare. Ad esempio:
- Quando una superficie di grandi dimensioni non è accessibile perché l'oggetto si trova su una parete
- Quando un oggetto è troppo grande e ci vuole troppo tempo per camminare intorno
- Quando la superficie dell'oggetto non viene rilevata dai sensori del dispositivo
Modifica dei valori delle query degli oggetti
Alcuni meccanismi offerti da Azure Object Anchors SDK che possono essere utili in queste situazioni sono:
La proprietà
ObjectQuery.MinSurfaceCoverage
. Rappresenta il rapporto minimo di copertura della superficie necessaria per considerare un'istanza dell'oggetto come un vero positivo. Consente un intervallo compreso tra 0 e 1,0 (che rappresenta il 0% al 100%). L'impostazione predefinita varia tra gli oggetti (maggiore sarà l'area della superficie, più piccola sarà la copertura minima richiesta). Funzionerà per la maggior parte delle situazioni così come sono. Tuttavia, in caso di oggetti difficili, è consigliabile abbassare il valore per questa proprietà, in modo che sia necessaria una minore copertura della superficie per rilevare l'oggetto.La proprietà
ObjectQuery.MaxScaleChange
. Se il modello originale non ha una1:1
scala verso l'oggetto rilevato, questa impostazione può essere modificata. Consente un intervallo compreso tra 0 e 1,0 (che rappresenta il 0% al 100%). L'impostazione predefinita, a 0, disabilita la stima della scala, che richiede un1:1
mapping di scalabilità. L'impostazione di questa proprietà su 10%, ad esempio, consente la stima della scala e consente una certa flessibilità nei casi in cui la scala del modello non ha una1:1
corrispondenza rispetto all'oggetto.La proprietà
ObjectQuery.ExpectedMaxVerticalOrientationInDegrees
. Rappresenta l'angolo massimo, espresso in gradi, tra la direzione in su dell'oggetto e la gravità. Varia da 0 a 180. In altre parole, rappresenta l'inclinazione dell'oggetto rispetto al modello originale. L'impostazione predefinita, a 3 gradi, può essere aumentata per consentire maggiore flessibilità nei casi in cui l'inclinazione dell'oggetto non corrisponde al modello originale.La proprietà
ObjectQuery.IsExpectedToBeStandingOnGroundPlane
. Si tratta di un valore booleano che indica se l'oggetto deve trovarsi a livello di terra o meno. Il valore predefinito è false. Può essere impostato su true per velocizzare il rilevamento per i casi in cui l'oggetto è a livello di terra.La proprietà
ObjectQuery.SearchAreas
. Rappresenta una raccolta di aree da cercare per gli oggetti. Fornendo aree di ricerca strette, pur coprendo tutto o la maggior parte dell'oggetto, migliora la velocità e l'accuratezza del rilevamento. È possibile scegliere:- Rettangolo di selezione orientato tramite
ObjectSearchArea.FromOriented
. - Campo di visualizzazione tramite
ObjectSearchArea.FromFieldOfView
. - Posizione, utilizzando
ObjectSearchArea.FromLocation
. - Una sfera, utilizzando
ObjectSearchArea.FromSphere
.
- Rettangolo di selezione orientato tramite
Per altre informazioni, vedere la ObjectQuery
classe per Unity o HoloLens C++/WinRT.
Passaggi successivi
In questa guida alla risoluzione dei problemi si è appreso come risolvere i problemi di rilevamento di oggetti difficili da rilevare. Ecco alcuni articoli correlati: