2017-06-29 3 views
8

Ich konnte keine Informationen finden, wenn Apples ARKit 3D-Objektverfolgung (oder sogar Bildverfolgung) wie Vuforia unterstützt. Ich möchte kein 3D-Modell irgendwo auf der Welt platzieren. Stattdessen möchte ich ein bestimmtes 3D-Objekt erkennen und AR-Objekte vor und hinter dem Objekt platzieren. Einfaches Beispiel: Ich möchte ein bestimmtes Spielzeugauto in der realen Welt verfolgen und einen Spoiler darauf in der AR-Szene hinzufügen.ARKit - Kann man Objekte wie mit Vuforia verfolgen?

Kann mir jemand Auskunft geben, ob das möglich ist oder nicht?

+0

so für Sie mit ARKit tun können.Sie sollten eine Echtzeit-Bildverarbeitung wie Tensorflow oder Watson verwenden, um ein Objekt zu erkennen. –

+0

@matloob Hasnain derzeit Vuforia funktioniert gut bit der Kunde möchte wissen, ob wir stattdessen ARKit verwenden könnten. – Superwayne

+0

Ja, ich weiß über Vaforia-Marker-Scannen. –

Antwort

20

Update für iOS 11.3 beta: In "ARKit 1.5" (aka ARKit auf iOS 11.3 oder neuer) gibt es eine neue Bilderkennungsfunktion in ARKit. Wenn Sie ein bekanntes Bild haben (z. B. ein Poster, eine Spielkarte oder Ähnliches), können Sie es in Ihr Xcode-Projekt einfügen und/oder es von einem anderen Ort aus laden und in das detectionImages Array Ihrer Session-Konfiguration einfügen. Wenn ARKit dann diese Bilder in der Benutzerumgebung findet, erhalten Sie ARImageAnchor Objekte, die Ihnen sagen, wo sie sich befinden.

Beachten Sie, dass dies nicht ganz dem "marker-based AR" von anderen Toolkits entspricht - ARKit findet ein Referenzbild nur einmal, es sagt Ihnen nicht, wie es sich im Laufe der Zeit bewegt. Es ist also gut für das "Auslösen" von AR-Inhaltserfahrungen (wie Promos, bei denen du dein Telefon auf ein Star Wars-Poster in einem Geschäft lenkst und ein Charakter daraus hervorgeht), aber nicht für AR-Brettspiele, in denen virtuelle Charaktere hängen bleiben zu Spielsteinen.


Nein, Arkit nicht erkennen und Spur Objekte oder Markierungen zu bewegen.

Es ist jedoch möglich, auf das Kamerabild in jedem erfassten ARFrame zuzugreifen. Wenn Sie also andere Software haben, die bei solchen Aufgaben helfen kann, können Sie diese in Verbindung mit ARKit verwenden. Zum Beispiel bietet die Vision framework (auch neu in iOS 11) mehrere der Bausteine ​​für solche Aufgaben - Sie können Barcodes erkennen und ihre vier Ecken finden, und nach der manuellen Identifizierung einer Region von Interesse in einem Bild, seine Bewegung zwischen den Frames verfolgen.

+0

Also bedeutet das, dass Sie ein Objekt finden können, warten Sie auf einen bestimmten Zeitraum, finden Sie das Objekt wieder und dann erhalten Sie die Entfernung, so dass Sie die Geschwindigkeit und/oder berechnen können Richtung des Objekts? Ich würde gerne eine App sehen, die Ihnen sagen könnte, wie schnell sich ein Objekt bewegt. Wenn ich in der Nähe einer Straße lebe, sehe ich manchmal, dass Autos schnell fahren ... – Netsi1964

2

Hinweis: Dies ist definitiv ein Hack, aber es fügt ARKit Unity eine dauerhafte Bildverfolgung hinzu. Die gleiche Idee kann auch auf die native lib angewendet werden.

Herunterladen Arkit 1.5 beta https://bitbucket.org/Unity-Technologies/unity-arkit-plugin/branch/spring2018_update

In ARSessionNative.mm, diesen Codeblock hinzu:

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

In UnityARSessionNativeInterface.cs, fügen Sie diesen Code unter SessionRemoveUserAnchor:

private static extern void SessionRemoveAllAnchors (IntPtr nativeSession); 

Und dies unter RemoveUserAnchor:

public void RemoveAllAnchors() { 
     #if !UNITY_EDITOR 

     SessionRemoveAllAnchors(m_NativeARSession); 
     #endif 
    } 

Dann rufen diese von einem Update oder Coroutine:

UnityARSessionNativeInterface.GetARSessionNativeInterface().RemoveAllAnchors(); 

Wenn der Anker entfernt wird, kann das Bild wieder zu erkennen. Es ist nicht super glatt, aber es funktioniert definitiv.

Ich hoffe, Sie haben das nützlich gefunden! Lassen Sie es mich wissen, wenn Sie weitere Hilfe benötigen.

Verwandte Themen