2017-06-29 40 views
8

如果Apple的ARKit支持vuforia那樣的3D對象跟蹤(甚至圖像跟蹤),我無法找到任何信息。我不想在世界任何地方放置3D模型。相反,我想要檢測特定的3D對象,並在該對象的infront和ontop上放置AR對象。 簡單的例子:我想跟蹤真實世界中的特定玩具車,並在AR場景中在其頂部添加擾流板。ARKit - 是否可以使用vuforia跟蹤對象?

有人可以提供我可以或不可以的信息嗎?

+0

所以你可以用ARKit做到這一點。您應該使用一些像tensorflow或watson的實時圖像處理來檢測對象。 –

+0

@matloob Hasnain目前Vuforia正常工作,客戶想知道我們是否可以使用ARKit。 – Superwayne

+0

是的,我知道vaforia標記掃描。 –

回答

20

iOS 11.3 beta更新:在「ARKit 1.5」(又名iOS 11.3或更高版本中的ARKit)中,ARKit中有一個新的圖像檢測功能。如果你有一個已知的圖像(比如海報或紙牌等),你可以將它包含在你的Xcode項目中,或者從ARReferenceImage的其他地方加載它,並將它放入你的會話配置的detectionImages陣列中。然後,當ARKit在用戶環境中找到這些圖像時,它會提供ARImageAnchor對象告訴你它們在哪裏。

請注意,這不像您從其他工具包中看到的「基於標記的AR」 - ARKit只找到一次參考圖像,它不會告訴您它是如何隨時間推移的。所以這對於「觸發」AR內容體驗很有好處(就像你將手機指向商店中的星球大戰海報並且角色走出它的那些宣傳片),但不適用於虛擬角色留在其中的AR棋類遊戲到遊戲件。


不,ARKit不 檢測和 跟蹤移動物體或標記。

雖然可以在每個捕獲的ARFrame中訪問攝像頭圖像,但如果您有其他軟件可以幫助完成這些任務,則可以將它們與ARKit一起使用。例如,Vision framework(也是iOS 11中的新增功能)爲這些任務提供了幾個構建模塊 - 您可以檢測條形碼並找到它們的四個角,並在手動識別圖像中的感興趣區域之後,跟蹤其在幀之間的移動。

+0

所以這意味着你可以找到一個對象,等待一段時間,再次找到對象,然後獲得距離,讓您計算速度和/或物體的方向?我很想看到一個應用程序,它可以告訴你一個物體移動的速度。住在接近道路的時候,有時候我會看到汽車飛速前進...... – Netsi1964

2

注意:這絕對是一個黑客攻擊,但它會將持久圖像跟蹤添加到ARKit Unity。同樣的想法也可以應用於Native lib。

下載ARKit 1.5測試版https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/branch/spring2018_update

在ARSessionNative.mm,添加的代碼塊:

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

在UnityARSessionNativeInterface.cs,添加SessionRemoveUserAnchor下此代碼:

private static extern void SessionRemoveAllAnchors (IntPtr nativeSession); 

而且這下RemoveUserAnchor:

public void RemoveAllAnchors() { 
     #if !UNITY_EDITOR 

     SessionRemoveAllAnchors(m_NativeARSession); 
     #endif 
    } 

然後從更新或協程稱之爲:

UnityARSessionNativeInterface.GetARSessionNativeInterface().RemoveAllAnchors(); 

當錨被刪除,圖像可以被再次確認。這不是非常流暢,但它絕對有效。

希望你發現這個有用!讓我知道你是否需要進一步的幫助。