2017-06-29 30 views
8

Apple'ın ARKit'i vuforia gibi 3D nesne izleme (veya görüntü izleme) destekliyorsa, herhangi bir bilgi veremedim. Dünyanın herhangi bir yerinde bir 3D model yerleştirmek istemiyorum. Bunun yerine, belirli bir 3B nesneyi tespit etmek ve AR nesnesini bu nesnenin üstüne ve üstüne koymak istiyorum. Basit örnek: Gerçek dünyadaki belirli bir oyuncak arabayı izlemek ve AR sahnesinde bir spoiler eklemek istiyorum.ARKit - Vuforia gibi nesneleri izlemek mümkün mü?

Mümkün olan veya olmayan birisi bana bilgi verebilir mi?

+0

böylece ARKit ile yapabilirsiniz.Bir nesneyi algılamak için tensorflow veya watson gibi bazı gerçek zamanlı görüntü işleme kullanmalısınız. –

+0

@matloob Hasnain şu anda Vuforia, müşteri ARKit'i kullanıp kullanamayacağımızı bilmek istiyor. – Superwayne

+0

Evet Vaforia işaretleyici taraması hakkında biliyorum. –

cevap

20

iOS 11.3 beta sürümü için güncelleştirme: "ARKit 1.5" de (iOS 11.3 veya sonraki sürümlerde ARKit) ARKit'te yeni bir görüntü algılama özelliği vardır. Bilinen bir resminiz varsa (poster veya oyun kartı veya benzeri), Xcode projenize ekleyebilirsiniz ve/veya başka bir yerden ARReferenceImage olarak yükleyebilir ve oturum yapılandırmanızın detectionImages dizisine ekleyebilirsiniz. Ardından, ARKit bu görüntüleri kullanıcı ortamında bulduğunda, size nerede olduklarını söyleyen ARImageAnchor nesneler verir.

Bunun, diğer bazı araç takımlarından gördüğünüz "işaretçi tabanlı AR" gibi olmadığını unutmayın - ARKit, yalnızca bir kez bir referans görüntü buluyor, size zaman içinde nasıl hareket ettiğini anlatmıyor. Bu yüzden, AR içerik deneyimlerini tetiklemek (bir mağazadaki bir Star Wars posterinde telefonunuzu işaret ettiğiniz ve bir karakterin dışarı çıktığı yerdeki tanıtımlar gibi), ancak sanal karakterlerin bağlı kaldığı AR tahta oyunları için iyi değil. oyun parçalarına.


Hayır, Arkit algılamaz etmez ve parça nesneleri veya işaretleri hareketli.

Her bir yakalanan ARFrame'deki kamera görüntüsüne erişmek mümkündür, ancak bu tür görevlerde size yardımcı olabilecek başka bir yazılımınız varsa bunları ARKit ile birlikte kullanabilirsiniz. Örneğin, Vision framework (iOS 11'de de yeni) bu tür görevler için birçok yapı taşı sunar - barkodları algılayabilir ve dört köşesini bulabilir ve bir görüntüdeki ilgili bölgeyi manuel olarak tanımladıktan sonra, çerçeveler arasındaki hareketlerini izleyebilirsiniz.

+0

Yani bu, bir nesneyi bulabileceğiniz, bir süre bekleyeceğiniz, nesneyi tekrar bulabileceğiniz ve daha sonra hızı hesaplamanıza izin veren mesafeyi aldığınız anlamına gelir ve/veya nesnenin yönü? Bir nesnenin ne kadar hızlı hareket ettiğini anlatan bir uygulamayı görmeyi çok isterim. Bir yola yakın yaşamak bazen arabaların hızla ilerlediğini görüyorum ... – Netsi1964

2

Not: Bu kesinlikle bir kesintidir, ancak ARKit Unity'ye kalıcı görüntü takibi ekler. Aynı fikir Native lib'e de uygulanabilir. SessionRemoveUserAnchor altında bu kodu ekleyin UnityARSessionNativeInterface.cs yılında

extern "C" void SessionRemoveAllAnchors(void* nativeSession) { 
    UnityARSession* session = (__bridge UnityARSession*)nativeSession; 
    for (ARAnchor* a in session->_session.currentFrame.anchors) 
    { 
     [session->_session removeAnchor:a]; 
     return; 
    } 
} 

:

İndir Bu kod bloğunu ekleyin ARSessionNative.mm yılında 1.5 beta https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/branch/spring2018_update

Arkit

private static extern void SessionRemoveAllAnchors (IntPtr nativeSession); 

Ve bu, RemoveUserAnchor:

public void RemoveAllAnchors() { 
     #if !UNITY_EDITOR 

     SessionRemoveAllAnchors(m_NativeARSession); 
     #endif 
    } 

Sonra Güncelle veya eşyordam bu çağrı:

çapa kaldırılır
UnityARSessionNativeInterface.GetARSessionNativeInterface().RemoveAllAnchors(); 

, görüntü bir kez daha tanınabilir. Süper düzgün değil ama kesinlikle işe yarıyor.

Bunu faydalı buldunuz! Daha fazla yardıma ihtiyacın olursa bana bildir.