[OpenCV&Kinect] Perspektive rausrechnen?



  • Hi Leute,

    hab ein Problem, bei dem ich mal Hilfe gebrauchen könnte:

    mittels eines Kinect will ich mir die absoluten Koordinaten eines Objektes auf einem Spielfeld holen (absolut entspricht hier relativ zur Spielfeldecke).

    Dazu berechne ich anhand der bekannten Position des Kinect auf dem Feld, seinem Blickwinkel und der Position des Objektes im aufgenommenen Bild ein paar Vektoren.

    Das Problem ist nun, dass die RGB Kamera (und die IR sicherlich auch) eine perspektivische Verzerrung aufweist. In der Realität parallele Linien sind auf dem Bild natürlich nicht parallel.

    Das führt dazu, dass eine Verschiebung des Objektes senkrecht zur Blickachse des Kinects zu einer Änderung der X-Koordinate des Objektes im Bild führt, abhängig von seiner Entfernung zum Kinect. Je weiter es weg ist, umso geringer wirkt sich eine Verschiebung um bspw. 10cm auf die Änderung der X-Koordinate im Bild aus.

    Ebenso wirkt sich eine Verschiebung parallel zur Blickachse auf die X-Koordinate aus, obwohl sie dies gar nicht dürfte (angenommen, die Blickachse liegt genau auf der X-Achse).

    Diese durch die Perspektivverzerrung bedingte Abhängigkeit der X-Koordinate von der Entfernung möchte ich gerne heraus rechnen.

    Die Y-Achse ist in meinem Problem zweitrangig, könnte höchstens als Alternative zur Entfernung als Abhängigkeit herhalten.

    Kann mir da jemand behilflich sein? Werte wie FOV und Brennweite der Kinect RGB Kamera hab ich aus der Quelle (aus der ich darüber hinaus leider nicht schlau werde): http://www.ros.org/wiki/kinect_calibration/technical#Lens_distortion_and_focal_length 😕

    Danke!

    Beste Grüße,
    Hendrik


Anmelden zum Antworten