2016-04-19 17 views
0

Ich arbeite in Unity3D und möchte eine App wie this eins machen. Um das zu tun, brauche ich eine nette und glatte SDK/Bibliothek/was auch immer, die es mir ermöglicht, die Gesichtsposition mit allen Gesichtsmarkierungen (Augen, Nase, Mund) zu verfolgen und Landmarkenpositionsänderungen zu erkennen.Gesichtserkennung und -erkennung

Bis jetzt habe ich OpenCV Plugin versucht, aber es scheint nicht zu genau zu arbeiten. Beispielsweise. Wenn ich die Demoszene spiele, verfolgt sie das Gesicht, aber das Gesicht ovale Größe wird sehr leicht und schnell verzerrt, ebenso wie Landmarkenpositionen, die sogar von Anfang an verzerrt sind.

Ich habe auch XZIMG Plugin versucht, aber es verfolgt keine Landmarken überhaupt. Wenn ich etwas falsch mache, bitte korrigieren Sie mich.

Ich bin auf der Suche nach einem geeigneten Tool, das mir das gewünschte Ergebnis auf Android und iOS-Geräten geben kann. Ich habe mich mit Google Mobile Vision beschäftigt, aber bisher bin ich mir nicht sicher, ob es einfach in Unity integriert und in iOS-Projekten verwendet werden kann.

+0

Ihre Erwartungen für die Gesichtserkennung sind unrealistisch. – Fattie

+0

Möglicherweise haben Sie Recht, aber ich möchte dieses Thema zuerst ausheben. –

+0

Ich fürchte, ich habe völlig recht, Sam :) – Fattie

Antwort

1

Bildverarbeitung ist ein fortgeschrittenes Thema. Es ist gut zu verstehen, wie die verwendete Bibliothek funktioniert, bevor Sie sie verwenden.

Apropos Tracking ist langsam, das ist normal, weil es CPU-intensiv ist und es auf mobilen Geräten läuft, ist ein anderes Problem.

Um beheben langsam Probleme,

.Sie ein Bild zu nehmen, sendet es zu einem Server (am Computer nicht mobiles Gerät). Der Server macht alle die Verarbeitung und zurück das Ergebnis zurück zu mobile Gerät.

.Try Vuforia. Es ist nicht kostenlos, aber es funktioniert mit Unity.

.Go Native und verwerfen die Verwendung von Unity. Sie benötigen mehr Frames und die Verwendung von Unity wird einige Frames entfernen. Verwenden Sie für Android C++ NDK und OpenCV C++. Für iOS verwende Objective-C und OpenCV. Die Bildverarbeitung ist einer der Fälle, in denen die Verwendung von nativem Code empfohlen wird, um die höchste Bildrate wie möglich zu erhalten.

+0

Vielen Dank für Ihre Antwort! Ich habe Vuforia benutzt, um eine AR-Anwendung zu erstellen, aber dieses Plugin gibt mir, soweit ich weiß, keine Gelegenheit, Gesichter und Gesichtsausdrücke zu verfolgen. Sie haben völlig Recht, nativ zu werden, aber in meinem Fall ist die Verwendung von Unity aus plattformübergreifenden Gründen kritisch. Und wenn ich darüber sprach, dass OpenCV falsch funktioniert, meinte ich nicht zu langsam, ich habe mich geirrt: es hat Gesichtspositionen verzerrt, aber Sie könnten Recht haben mit Unity, die es falsch machen. –

+0

Wenn Sie falsch arbeiten, schlage ich vor, dass Sie zuerst einen FPS-Zähler in Ihrer Szene implementieren. Wenn es <10 ist, dann ist das das Problem.Wenn Sie sicher sind, dass Ihr FPS gut ist, dann müssen Sie die Bildverarbeitung von Grund auf lernen, weil Ihr Code irgendwo falsch ist. Selbst wenn Sie Ihren Code hier posten, wäre es schwierig, eine Antwort für dieses Thema zu erhalten. – Programmer

+0

Auch, wenn das, was Sie tun, ein Foto macht und Wirkung (Löwe, Katze, Hund) nach dann anwendet, ist Einheit gut. Wenn du Live-Tracking machst und den Effekt live aufträgst, dann ist das native Zeug, über das ich gesprochen habe, der richtige Weg. – Programmer