Augmented Reality - schlichte Objekterkennung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Augmented Reality - schlichte Objekterkennung

    Hey,

    ich hoffe ich bin hier im richtigen Unterforum und vor allem dass mir jemand helfen kann. Ich beschäftige mich erst seit kurzer Zeit mit der iOS Programmierung aber habe direkt, aus meiner Sicht, ein ziemlichen Brocken als Aufgabe bekommen. Um es kurz zu beschreiben, ich muss eine Augmented Reality APP schreiben die folgendes machen soll (das sollte ich glaub ich selbst hinkriegen):
    - die hintere Kamera zeigt das aktuelle Bild
    - die Position des Gerätes soll bestimmt werden (aktueller Gedanke anhand iBeacons und Trilateration sollte das relativ einfach im zweidimensionalem Raum funktioniert)

    Wenn sich der Benutzer dreht und die Blickrichtung auf eine Maschine trifft (Trapez im Beispielbild), sollen Informationen der Maschine angezeigt werden. Mir geht es jetzt erstmal nur darum irgendwie zu erkennen, dass das Gerät auf eine Maschine zeigt. Die Maschine hat einfach eine fixe Posi. Es kann ruhig quick and
    dirty sein, es muss nur funktionieren. Gedacht habe ich mir, dass vom Mittelpunkt vertikal eine "Linie" ausgeht und bei "kollision" mit einer Maschine die Informationen angezeigt werden. Ich habe absolut keine Ahnung wie ich das machen könnte. Mir geht es nicht darum einen fertigen Code zu bekommen sondern vielmehr ob Ihr evtl. Tipps habt was ich mir genau angucken sollte oder ähnliches. Oder aber ihr sagt mein Vorhaben wäre anders viel einfacher zu realisieren und natürlich dann auch in etwa wie. Das ware natürlich das Ultimative ;)

    Ich hoffe ich habe mich einigermaßen klar ausgedrückt. Folgend noch das Schema: Rot ist der Raum, 1 - 3 die iBeacon, X der Standort der Person, der mit der Trilateration berechnet wird.

    VIELEN Dank schonmal!!!
    Dateien
    • Schema.jpg

      (82,5 kB, 516 mal heruntergeladen, zuletzt: )
  • Hast du die Möglichkeit auf deine Maschine QR-Codes oder Ähnliches anzubringen?

    Wenn deine App den QR Code erkennt, kannst du entsprechend Infos anzeigen, die Position wäre dafür dann auch egal, bzw. kannst du vom erkannten QR-Code auch auf die Position schließen.

    Noch genauer wäre es dann wenn du auf 4 Seiten der Maschine Codes anbringst und der Maschine zuordnest

    Maschine-1-Nord
    Maschine-1-Ost
    Maschine-1-Süd
    Maschine-1-West

    Für reines AR gab es mal die Firma und Framework metaio, die würden aber von Apple gekauft.
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • Thallius schrieb:

    NSObject schrieb:

    Ich würde empfehlen ein erprobtes AR Framework verwenden. Die gibt es ja wie Sand am Meer.
    Hier ein kleiner Anriss aus dem Markt: Vuforia, Wikitude, String, CarftAR, ARToolkit,... Und da gibt es noch 150 andere.
    Kosten aber Geld solltest du dazu sagen...
    Nicht alle, ARToolkit ist z.B. LGPL. String gibt es nicht mehr.
    Das Herz besitzt Gründe, die die Vernunft nicht kennt.
  • Zum Thema iBeacons kann der @mattik (und der Tim) noch einiges beitragen, u.a.:

    mattik schrieb:

    Theoretisch geht das mit trilinearer Interpolation. Praktisch sind iBeacons dafür nicht besonders gut geeignet, dazu sind die Felder von zu vielen Umgebungsparametern abhängig. Für eine grobe Schätzung könnte es reichen.

    Es gibt einige andere Techniken dafür, die alle Vor- und Nachteile haben. Das hängt stark von deiner Anwendung ab. Welches Einsatzszenario schwebt dir denn vor? Z.B.: Wie groß ist der Quader? Welche Genauigkeit brauchst du? Welche Geschwindigkeit? Was befindet sich sonst im Quader? Welches Budget? Wie darf die Lösung aussehen? Was muss sonst noch berücksichtigt werden? Und vieles mehr - schreib' doch einfach mal, was du genau machen willst.
    * Kann Spuren von Erdnüssen enthalten.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von NSObject ()

  • Wow, erstmal vielen Dank für eure vielen schnellen Antworten, danke.

    nussratte schrieb:

    Hast du die Möglichkeit auf deine Maschine QR-Codes oder Ähnliches anzubringen?

    Wenn deine App den QR Code erkennt, kannst du entsprechend Infos anzeigen, die Position wäre dafür dann auch egal, bzw. kannst du vom erkannten QR-Code auch auf die Position schließen.

    Noch genauer wäre es dann wenn du auf 4 Seiten der Maschine Codes anbringst und der Maschine zuordnest

    Maschine-1-Nord
    Maschine-1-Ost
    Maschine-1-Süd
    Maschine-1-West

    Für reines AR gab es mal die Firma und Framework metaio, die würden aber von Apple gekauft.
    An QR-Codes habe ich am Anfang auch gedacht, allerdings ist das aktuell nicht gewünscht. Wenn es wirklich nicht anders zufriedenstellend zu lösen ist wären QR Codes wohl die "Notlösung". Trotzdem danke dafür und vor allem für den Tipp mit den Frameworks. Weiteres dazu siehe eine Antwort weiter unten.



    pierredrks schrieb:

    Thallius schrieb:

    NSObject schrieb:

    Ich würde empfehlen ein erprobtes AR Framework verwenden. Die gibt es ja wie Sand am Meer.
    Hier ein kleiner Anriss aus dem Markt: Vuforia, Wikitude, String, CarftAR, ARToolkit,... Und da gibt es noch 150 andere.
    Kosten aber Geld solltest du dazu sagen...
    Nicht alle, ARToolkit ist z.B. LGPL. String gibt es nicht mehr.;
    ARToolkit habe ich mir auch mal angeguckt, allerdings kam es mir so vor, dass dort alles über irgendwelche Marker funktioniert. D.h. wird ein bestimmtes Muster erkannt, wird darüber die Einblendung gelegt. Die Vorstellung bei uns ist momentan aber, das Ganze ohne jeglich ersichtliche Markierungen wie Codes oder Marker zu realisieren, was sich aktuell natürlich als nicht ganz so einfach herausstellt. Der Wunsch und das technisch machbare liegt ja leider manchmal etwas auseinander ;)



    NSObject schrieb:

    Zum Thema iBeacons kann der @mattik (und der Tim) noch einiges beitragen, u.a.:

    mattik schrieb:

    Theoretisch geht das mit trilinearer Interpolation. Praktisch sind iBeacons dafür nicht besonders gut geeignet, dazu sind die Felder von zu vielen Umgebungsparametern abhängig. Für eine grobe Schätzung könnte es reichen.

    Es gibt einige andere Techniken dafür, die alle Vor- und Nachteile haben. Das hängt stark von deiner Anwendung ab. Welches Einsatzszenario schwebt dir denn vor? Z.B.: Wie groß ist der Quader? Welche Genauigkeit brauchst du? Welche Geschwindigkeit? Was befindet sich sonst im Quader? Welches Budget? Wie darf die Lösung aussehen? Was muss sonst noch berücksichtigt werden? Und vieles mehr - schreib' doch einfach mal, was du genau machen willst.

    Welches Einsatzszenario schwebt dir denn vor? Es sollen definierte Arbeitsstationen anhand von Lokalisierung und Ausrichtung eines mobilen Gerätes erkannt werden und daraufhin Informationen einblenden.
    Wie groß ist der Quader? Ca. 7 x 7 m
    Welche Genauigkeit brauchst du? In Zahlen schwer auszudrücken. Einfach so genau, dass die Ausrichtung nicht in die falsche Richtung zeigt. D.h. stehe ich z.B. rechts von einer Station und drehe mich nach links zur Machine, die Navigation mich aber links davon anzeigt und sogesehen das nach links ausrichten ins Leer zeigt; das wäre der zu vermeidende Case. Deswegen brauche ich ja auch nur die Navigation innen. Ob und wie ich das mit diesem "imaginären Taster" umsetzen kann, also anhand dessen gemerkt wird ob sich im Bereich vor meinem Tablet eine Arbeitsstation befindet, ist mir übrigens auch noch nicht wirklich schlüssig.
    Welche Geschwindigkeit? Max. wenige Sekunden Verzögerung nach Positionsänderung
    Was befindet sich sonst im Quader? Hauptsächlich Personen, Tische und Stühle. Es ist ein Konferenz/ Showroom.
    Welches Budget? Je günstiger desto besser, da es sich bei der Positionsbestimmung nur um ein kleines Puzzelteil innerhalb eines größeren Systems handelt. Würde jetzt mal sagen so 500€, aber wenn es die ultimative Lösung für etwas mehr gibt sollte das auch kein Problem sein.
    Wie darf die Lösung aussehen? Die Lösung sollte den ganzen Raum nicht verunstalten. Dezente Gerätschaften wären von Vorteil.
    Sonstiges? Erstmal nicht bekannt.
    Genaue Beschreibung: Ziel ist ein Modell für eine intelligente Produktion zu erstellen. Im Raum sind 3 Arbeitsstationen räumlich voneinander getrennt aufgestellt welche je nach gegenseitiger Kommunikation miteinander etwas "produzieren". Nun soll durch Verwendung eines Tablets immer die Daten der Maschine aus der Cloud geholt werden, sobald das Tablet auf eine Maschine ausgerichtet wird. Daher war mein Gedanke, erstmal die Position im Raum bestimmen, dann die Ausrichtung herausfinden und dies dann irgendwie interpretieren, wodurch ein Ergebnis erzeugt wird: Zeigt das Tablet auf eine Arbeitsstation oder nicht? Wenn nicht passiert nichts, wenn doch eben Informationen anzeigen. Dies soll im Raum aber so interaktiv passieren, dass es egal ist wo ich im Raum stehe, denn nach meiner "Idee" wird dann ja erkannt wohin das Gerät zeigt. Die Ausnahme wäre natürlich, dass sich dazwischen eine andere Arbeitsstation befinden.

    Ich hoffe es ist jetzt klarer geworden. Danke nochmal!


    EDIT:
    Nachdem ich jetzt nochmal etwas Quer gelesen habe, bin ich glaub ich überzeugt, dass es so wie gedacht nicht zufriedenstellend zu lösen ist. Dabei bin ich auf folgendes Video von Vuforia gestoßen: youtube.com/watch?v=U6CpD4hVmqc
    Bei Sekunde 45 ist zu sehen, wie der Katalog erkannt wird. Eine 3D Einblendung ist für mich absolut nicht notwendig, allerdings finde ich die zusätzlich eingeblendete Leiste auf der linken Seite ziemlich gut. So in etwa (ohne das 3D Modell) habe ich es mir spatter auch vorgestellt. Jetzt werden da nur Bilder als Marker verwendet, hat jemand von euch Erfahrung wie es mit 3D Objekten aussieht? Da jenachdem wo die Person steht die Arbeitsstation anders aussieht kam dir der Gedanke, köntte ich nicht z.B. die Arbeitsstation aus verschiedenen Perspektiven fotografieren und anhand dessen dann etwas einblenden?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Cruzad0r ()

  • Cruzad0r schrieb:

    ARToolkit habe ich mir auch mal angeguckt, allerdings kam es mir so vor, dass dort alles über irgendwelche Marker funktioniert. D.h. wird ein bestimmtes Muster erkannt, wird darüber die Einblendung gelegt
    Das ist bei den meisten SDKs der Fall, Warum? Weil es einfacher ist. Wenn die Geräte vom Aussehen her unterschiedlich sind könntest du versuchen ein Foto davon als Marker zu nehmen oder dir evtl. eine eigene Objekterkennung schreiben. Wird aber schwierig wenn du z.B. 3 Drucker hast die sich nur leicht in der Form unterscheiden. Wenn du die Position im Raum ziemlich genau bestimmen kannst, kannst du auch über das Heading gehen um die Blickrichtung herauszufinden. Aber auch da wirst du eine Objekterkennung brauchen um die Info über dem Gerät anzuzeigen. Wie gesagt kann das je nach Aussehen einfach sein oder auch nicht.
    Das Herz besitzt Gründe, die die Vernunft nicht kennt.
  • Cruzad0r schrieb:

    Jetzt werden da nur Bilder als Marker verwendet, hat jemand von euch Erfahrung wie es mit 3D Objekten aussieht? Da jenachdem wo die Person steht die Arbeitsstation anders aussieht kam dir der Gedanke, köntte ich nicht z.B. die Arbeitsstation aus verschiedenen Perspektiven fotografieren und anhand dessen dann etwas einblenden?
    Es gibt auch AR Toolkits die das 3D-Objekt-Tracking unterstützen. Z.B. AR-media SDK, wikitude, vuforia, AR-LAB.

    Mit Bildern bzw. Tags ist es halt einfacher.
  • NSObject schrieb:

    Ich würde empfehlen ein erprobtes AR Framework verwenden. Die gibt es ja wie Sand am Meer.
    Hier ein kleiner Anriss aus dem Markt: Vuforia, Wikitude, String, CarftAR, ARToolkit,... Und da gibt es noch 150 andere.

    MacounFFM schrieb:

    Cruzad0r schrieb:

    Jetzt werden da nur Bilder als Marker verwendet, hat jemand von euch Erfahrung wie es mit 3D Objekten aussieht? Da jenachdem wo die Person steht die Arbeitsstation anders aussieht kam dir der Gedanke, köntte ich nicht z.B. die Arbeitsstation aus verschiedenen Perspektiven fotografieren und anhand dessen dann etwas einblenden?
    Es gibt auch AR Toolkits die das 3D-Objekt-Tracking unterstützen. Z.B. AR-media SDK, wikitude, vuforia, AR-LAB.
    Mit Bildern bzw. Tags ist es halt einfacher.


    Ich versuche die ganze Sache momentan intensiv mit vuforia zu lösen und bin auch ganz zuversichtlich das sehr zeitnah zufriedenstellen hinzubekommen.


    Nun jetzt aber nochmal die Frage, weil ich das Thema mit einer eindeutigen Lokalisierung im Raum lösen möchte. Nur angenommen der Fall, dass ich anhand von iBeacons eine genaue Positionsbestimmung von einer Person in einem Raum hinbekomme. Wie wäre die herangehensweise um eine Karte zuhinterlegen anhand dieser bei Ausrichtung auf eine Maschine ein Ereignis getriggert wird?

    Danke nochmals :)