-         

Ergebnis 1 bis 5 von 5

Thema: Kinect Tiefensensor

  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9

    Kinect Tiefensensor

    Anzeige

    Heyho,

    nachdem ich vor einiger Zeit eine Kinect erstanden habe, habe ich mich mal etwas mit der Programmierung in C# befasst.
    Im Grunde ist es recht trivial (dafür das das Gerät doch recht komplex ist...das hat Microsoft wirklich schön gelöst wie ich finde) und ich habe auch schon ein Programm geschrieben um den DepthImageStream und den ColorImageStream darzustellen.
    Jetzt habe ich ein Beispiel von Microsoft gesehen, wo sie den DepthImageStream in einen RGB Stream umwandeln und da wollte ich mir das mal genauer anschauen.
    Hierfür habe ich mal auf dieser Seite hier gestöbert:

    http://msdn.microsoft.com/en-us/library/jj131028.aspx

    Wenn ich das nun richtig verstanden habe besteht jeder DepthImage Pixel aus 2x16Bit:

    Die Distanz in Milimeter
    Ein 16-Bit Player Index

    Jetzt steht auf der Seite folgendes:

    Each frame of the depth data stream is made up of pixels that contain the distance (in millimeters) from the camera plane to the nearest object.

    Heißt das soviel wie das jeder Pixel des Streams eine Information dadrüber enthält wie weit das erste Objekt, von dem der Pixel stammt, entfernt liegt?
    Und zu dem Player Index.
    Wenn ich das nun richtig verstanden habe, sind diese Daten später nur für den Skeleton Tracker da, da diese signalisieren das sich dort eine oder mehrere Personen befinden?
    Ist das so richtig? Wäre schön wenn mir da jemand mit ein bisschen mehr Kinect Erfahrung helfen könnte
    Danke schon mal!
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    15.08.2012
    Beiträge
    21
    Hallo Kampi,
    in einem Punkt muss ich dir (leider) Recht geben, mit der Kinect-API hat Microsoft wirklich eine gute Lösung gefunden. Aber genug des Lobes, denn es geht schon wieder mit typischen MSDN-Formulierungen los:
    Each frame of the depth data stream is made up of pixels that contain the distance (in millimeters) from the camera plane to the nearest object. An application can use depth data to track a person's motion or identify background objects to ignore.
    Der Satz ist zwar richtig, aber echt schlecht formuliert. Ich habe mir ein paar Artikel reingezogen und gesehen, dass man nur bis unten lesen muss:
    The depth data is the distance, in millimeters, to the nearest object at that particular (x, y) coordinate in the depth sensor's field of view.
    Also auf Deutsch: Das Tiefenfeld enthält nicht die Distanz in Milimetern zum nächstgelegenen Objekt, sondern es enthält die Distanz in Milimetern zum nächstgelegenen Objekt bei den Koordinaten (x,y).

    Statt das einfach so in den Artikel zu schreiben, naja...

    In dem MSDN-Artikel sind wenigstens noch einige Anwendungsbeispiele mit Quellcode verlinkt

    Gruß Technipion

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Hey,

    danke für die Antwort.
    Das heißt es wird zusätzlich zu der Distanz von einem Objekt auch die Koordinaten von dem Objekt ausgegeben?
    Sodass der Sensor dann der Ursprung eines Koordinatensystems ist und dann eine Distanz (Z-Koordinate) und eine X und Y Koordinate ausgibt?
    Dann auch gleich ne weitere Frage:
    Die Funktion "MinDepth" was gibt die genau zurück?
    Die Mindestdistanz die der Sensor erfasst hat? Oder die Mindestdistanz die der Sensor erfassen KANN?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.08.2012
    Beiträge
    21
    Hey zurück,
    ich kann dir zu all deinen Fragen leider keine Details nennen, da ich selbst noch nie mit Kinect gearbeitet habe
    Aber ich habe mich mal durch die MSDN-Artikel geboxt und hier meine Antworten:

    1) Ja, im Grunde werden 3D-Koordinaten ausgegeben, hier ist eine Seite mit vielen Grafiken dazu: http://msdn.microsoft.com/en-us/libr...x#Depth_Ranges

    Der Depth-Stream ist im Grunde ein Videostream, der in seinen Pixeldaten Informationen über Tiefe und Objekt enthält. Einerseits die Entfernung zu Objekt an Pixel XY, andererseits die Information, welches menschliche Subjekt sich an Pixel XY am nächsten an der Kamera befindet.
    Du kannst das Format des Streams ändern: http://msdn.microsoft.com/en-us/libr...ageformat.aspx
    Du kannst den Entfernungsbereich anpassen: http://msdn.microsoft.com/en-us/libr...epthrange.aspx
    Und die Funktion MinDepth verrät dir, was die naheste Entfernung ist, die der Sensor noch erfassen kann: http://msdn.microsoft.com/en-us/libr....mindepth.aspx

    Hoffe ich konnte Helfen

    Gruß Technipion

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Hey,

    ja das konntest du . Die Seite mit den Grafiken kannte ich z.B. noch gar nicht.
    Dank dir!

    - - - Aktualisiert - - -

    Hey,

    habe es nun mal getestet.
    Also minDepth und maxDepth gibt den maximal und minimal Wert der messbaren Entfernung an.
    Da ich keine XBox Kinect besitze ist der Wert konstant, aber eine PC Kinect kann noch auf den "Near" Modus geschaltet werden, dadurch ändert sich der Wert natürlich.
    Auch die Umrechnung von Depth auf BGR ist echt trivial....einfach gucken...ist das Pixel in der Messreichweite....wenn nicht ist es = 0 also schwarz und ansonsten weiß
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

Ähnliche Themen

  1. Kinect Sensor auswerten
    Von golther im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 25.09.2013, 20:27
  2. wireless kinect sensor
    Von toni123 im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 11.07.2012, 16:36
  3. Neue Kinect-Hardware für Kinect for Windows angekündigt
    Von Günter49 im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 10.01.2012, 12:32
  4. Kinect + msrds
    Von Günter49 im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 18.09.2011, 17:25
  5. Xbox360 Kinect als Kamera + Tiefensensor?
    Von Bammel im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 5
    Letzter Beitrag: 13.11.2010, 19:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •