Sahne anlama
Sahne anlama, Karma Gerçeklik geliştiricilere çevreyle uyumlu uygulamalar için geliştirmeyi sezgisel hale getirmek için tasarlanmış yapılandırılmış, üst düzey bir ortam temsili sağlar. Sahne anlama bunu, yüksek oranda doğru ancak daha az yapılandırılmış uzamsal eşleme ve yeni yapay zeka temelli çalışma zamanları gibi mevcut karma gerçeklik çalışma zamanlarının gücünü birleştirerek yapar. Scene understanding, bu teknolojileri birleştirerek Unity veya ARKit/ARCore gibi çerçevelerde kullanmış olabileceğiniz ortamlara benzer 3B ortamların gösterimlerini oluşturur. Sahne anlama giriş noktası, uygulamanız tarafından yeni bir sahneyi hesaplamak için çağrılan Bir Sahne Gözlemcisi ile başlar. Günümüzde teknoloji 3 ayrı ama ilgili nesne kategorisi oluşturabilir:
- Dağınıklık olmadan planlı oda yapısını çıkartan basitleştirilmiş su geçirmez ortam külleri
- Dörtlü olarak adlandırdığımız yerleşim için düzlem bölgeleri
- Ortaya çıkardığımız Quads/Watertight verileriyle hizalanmış uzamsal eşleme örgüsünün anlık görüntüsü
Bu belge bir senaryoya genel bakış sağlamak ve Scene understanding ile Spatial eşlemesinin paylaştığı ilişkiyi netleştirmek için tasarlanmıştır. Scene Understanding'i uygulamada görmek isterseniz aşağıdaki Hologramları Tasarlama - Uzamsal Farkındalık video tanıtımımıza göz atın:
Bu video "Hologram Tasarlama" HoloLens 2 uygulamasından alınmıştır. Buradan tam deneyimi indirin ve keyfini çıkarın.
Scene Understanding ile geliştirme
Bu makale yalnızca Scene Understanding çalışma zamanını ve kavramlarını tanıtmaya hizmet eder. Scene Understanding ile geliştirme hakkında belgeler arıyorsanız, aşağıdaki makaleler ilginizi çekebilir:
Scene Understanding SDK'ya genel bakış
Örnek GitHub sitesinden Scene Understanding Sample uygulamasını indirebilirsiniz:
Cihazınız yoksa ve Scene Understanding'i denemek için örnek sahnelere erişmek istiyorsanız, örnek varlık klasöründe sahneler vardır:
SDK
Scene Understanding ile geliştirmeyle ilgili belirli ayrıntıları arıyorsanız , Scene Understanding SDK'sı genel bakış belgelerine bakın.
Örnek
Cihaz desteği
Özellik | HoloLens (1. nesil) | HoloLens 2 | Çevreleyici kulaklıklar |
Sahne anlama | ❌ | ✔️ | ❌ |
Genel kullanım senaryoları
Yaygın uzamsal eşleme kullanım senaryoları: yerleştirme, oklüzyon, fizik ve gezinti.
Çevreye duyarlı uygulamalar için temel senaryoların birçoğu hem Uzamsal eşleme hem de Sahne anlama ile ele alınabiliyor. Bu temel senaryolar yerleştirme, tıkanıklık, fizik vb. içerir. Sahne anlama ile Uzamsal eşleme arasındaki temel fark, maksimum doğruluğun ve gecikme süresinin yapıya ve basitliğe eşit olmasıdır. Uygulamanız mümkün olan en düşük gecikme süresine ve yalnızca sizin erişmek isteyeceğiniz örgü üçgenlerine ihtiyaç duyuyorsa, uzamsal eşlemeyi doğrudan kullanın. Daha üst düzey işleme yapıyorsanız, size bir işlev üst kümesi sağlaması gerektiğinden Sahne anlama modeline geçmeyi düşünebilirsiniz. Her zaman mümkün olan en eksiksiz ve doğru uzamsal eşleme verilerine erişebilirsiniz çünkü Scene understanding, gösteriminin bir parçası olarak uzamsal eşleme örgüsünün anlık görüntüsünü sağlar.
Aşağıdaki bölümler, yeni Scene understanding SDK bağlamında temel uzamsal eşleme senaryolarını yeniden ziyaret eder.
Yerleştirme
Sahne anlama, yerleştirme senaryolarını basitleştirmek için tasarlanmış yeni yapılar sağlar. Bir sahne, hologramların yerleştirilebileceği düz yüzeyleri açıklayan SceneQuads adlı ilkelleri hesaplayabilir. SceneQuads, yerleştirme ve 2B yüzeyi tanımlama etrafında tasarlanmıştır ve bu yüzeye yerleştirme için bir API sağlar. Daha önce, yerleştirme yapmak için üçgen ağı kullanırken, dörtlünün tüm alanlarını taramak ve nesne yerleştirme için iyi konumları belirlemek için delik doldurma/son işleme yapmak gerekiyordu. Sahne anlama çalışma zamanı hangi dörtlü alanların taranmadığını ve yüzeyin parçası olmayan alanları geçersiz kıldığını anladığı için bu her zaman Dörtlüler için gerekli değildir.
Görüntü 1 - Çıkarımı devre dışı bırakılmış SceneQuads, taranan bölgeler için yerleştirme alanlarını yakalar.
Görüntü 2 - Çıkarım etkinleştirilmiş dörtlüler, yerleştirme artık taranan alanlarla sınırlı değildir.
Uygulamanız ortamınızın katı yapılarına 2B veya 3B hologramlar yerleştirmeyi amaçlıyorsa, bu bilgileri uzamsal eşleme ağındaki hesaplama için SceneQuads'ın yerleşim için basitliği ve kolaylığı tercih edilir. Bu konu hakkında daha fazla bilgi için bkz. Scene understanding SDK başvurusu
Not Uzamsal eşleme ağında bağımlı olan eski yerleştirme kodu için, EnableWorldMesh ayarı ayarlanarak uzamsal eşleme ağı SceneQuads ile birlikte hesaplanabilir. Scene understanding API uygulamanızın gecikme süresi gereksinimlerini karşılamıyorsa Uzamsal eşleme API'sini kullanmaya devam etmenizi öneririz.
Tıkanık -lığı
Uzamsal eşleme okluzyonu , ortamın gerçek zamanlı durumunu yakalamanın en az gizli yolu olmaya devam eder. Bu, son derece dinamik sahnelerde tıkanıklık sağlamak için yararlı olsa da, çeşitli nedenlerle tıkanıklık için Sahne anlayışını göz önünde bulundurmak isteyebilirsiniz. Scene Understanding tarafından oluşturulan uzamsal eşleme ağı kullanırsanız, uzamsal eşlemeden yerel önbellekte depolanmayan ve algı API'lerinden kullanılamayabilecek veriler isteyebilirsiniz. Su geçirmez çizgiler ile birlikte okluzyon için Uzamsal Eşleme kullanılması, özellikle de taranmamış oda yapısının tamamlanması için ekstra değer sağlayacaktır.
Gereksinimleriniz Sahne anlamanın artan gecikme süresini tolere edebilirse, uygulama geliştiricilerin Scene understanding watertight mesh'i ve uzamsal harita ağı planlı gösterimlerle birlikte kullanmayı göz önünde bulundurması gerekir. Bu, basitleştirilmiş su geçirmez oklüzyonun mümkün olan en gerçekçi oklüzyon haritalarını sağlayan daha ince düzlem dışı geometriyle evlendiği bir "her iki dünyanın da en iyisi" senaryosu sağlar.
Fizik
Sahne anlama, uzayı semantikle ayrıştıran, özellikle uzamsal haritalama tirelerinin dayattığı fizikle ilgili birçok sınırlamayı ele alan su geçirmez ağlar oluşturur. Su geçirmez yapılar fizik ışınları dökümlerinin her zaman isabet etmesini sağlar ve semantik ayrışma iç mekan gezintisi için daha basit gezinti tirelerinin oluşturulmasını sağlar. Occlusion bölümünde açıklandığı gibi, EnableSceneObjectMeshes ve EnableWorldMesh ile bir sahne oluşturmak mümkün olan en fiziksel olarak tamamlanmış ağı üretir. Ortam örgüsünün watertight özelliği isabet testlerinin yüzeylere isabet etmemesini önler. Mesh verileri, fiziğin yalnızca oda yapısıyla değil sahnedeki tüm nesnelerle etkileşimde olmasını sağlar.
Gezinti
Anlam sınıfı tarafından ayrıştırılan planlı tireler, uzamsal eşleme gezintisine genel bakış bölümünde açıklanan sorunların çoğunu kolaylaştırarak gezinti ve yol planlaması için ideal yapılardır. Sahnede hesaplanan SceneMesh nesneleri, gezinti ağı oluşturma işleminin üzerinde yürünebilen yüzeylerle sınırlı olmasını sağlayan yüzey türü tarafından oluşturulur. Zemin yapılarının basitliği nedeniyle Unity gibi 3b motorlarda dinamik nav-mesh üretimi gerçek zamanlı gereksinimlere bağlı olarak ulaşılabilir.
Doğru gezinti çizgileri oluşturmak için şu anda hala işlem sonrası gerekir, yani gezintinin dağınıklık/tablolardan geçmediğinden emin olmak için uygulamaların yine de kat kat okluderleri yansıtması gerekir. Bunu gerçekleştirmenin en doğru yolu, sahne EnableWorldMesh bayrağıyla hesaplandığında sağlanan dünya mesh verilerini yansıtmaktır.
Görselleştirme
Uzamsal harita görselleştirmesi, ortamın gerçek zamanlı geri bildirimi için kullanılabilse de, planlı ve su geçirmez nesnelerin basitliğinin daha fazla performans veya görsel kalite sağladığı birçok senaryo vardır. Uzamsal haritalama kullanılarak açıklanan gölge projeksiyon ve topraklama teknikleri, Dörtlüler veya düzlemsal su geçirmez ağ tarafından sağlanan düzlemi yüzeylerde yansıtıldığında daha hoş olabilir. Bu durum özellikle sahne çıkarılacağı ve ortamlarla planlı varsayımların yapıtları en aza indireceği için kapsamlı ön taramanın en uygun olmadığı ortamlar/senaryolar için geçerlidir.
Buna ek olarak, Uzamsal Eşleme tarafından döndürülen toplam yüzey sayısı iç uzamsal önbellekle sınırlandırılırken, Scene understanding'in Uzamsal Eşleme ağı sürümü önbelleğe alınmamış uzamsal eşleme verilerine erişebilir. Bu nedenle, Sahne anlama görselleştirme veya daha fazla örgü işleme için daha büyük alanlar (örneğin, tek bir odadan daha büyük) için örgü gösterimlerini yakalamaya daha uygundur. EnableWorldMesh ile döndürülen dünya ağı tutarlı bir ayrıntı düzeyine sahip olacak ve bu da tel çerçeve olarak işlenirse daha hoş bir görselleştirme sağlayabilir.