Timestamps in bvh

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
leader2k7
User
Beiträge: 4
Registriert: Montag 25. Juli 2011, 11:14

Hallo Forum,

ich möchte gern meine motion-capture-logfiles (.bvh), die ich mit der kinect und brekel aufgenommen hab, mit
timestamps versehen. die bvh´s sind ascii files und sind folgendermassen aufgebaut:

Code: Alles auswählen

HIERARCHY
ROOT Hips
{
  OFFSET 0.000 0.000 0.000
  CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation
  JOINT LeftHip
  {
    OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
    JOINT LeftKnee
    {
      OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
      JOINT LeftAnkle
      {
        OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
        End Site
        {
          OFFSET 0.000 0.000 -0.000
        }
      }
    }
  }
  JOINT RightHip
  {
    OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
    JOINT RightKnee
    {
      OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
      JOINT RightAnkle
      {
        OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
        End Site
        {
          OFFSET 0.000 0.000 -0.000
        }
      }
    }
  }
  JOINT Chest
  {
    OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
    JOINT LeftCollar
    {
      OFFSET 0 0.000 0
    CHANNELS 3 Zrotation Xrotation Yrotation
      JOINT LeftShoulder
      {
        OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
        JOINT LeftElbow
        {
          OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
          JOINT LeftWrist
          {
            OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
            End Site
            {
              OFFSET 0.000 0.000 0.000
            }
          }
        }
      }
    }
    JOINT RightCollar
    {
      OFFSET 0 0.000 0
    CHANNELS 3 Zrotation Xrotation Yrotation
      JOINT RightShoulder
      {
        OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
        JOINT RightElbow
        {
          OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
          JOINT RightWrist
          {
            OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
            End Site
            {
              OFFSET 0.000 0.000 0.000
            }
          }
        }
      }
    }
    JOINT Neck
    {
      OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
      JOINT Head
      {
        OFFSET 0.000 0.000 0.000
    CHANNELS 3 Zrotation Xrotation Yrotation
        End Site
        {
          OFFSET 0.000 0.000 0.000
        }
      }
    }
  }
}
MOTION
Frames:	1898
Frame Time:	0.0333333
-2.55754 -34.4587 -127.763 4.36286 3.68448 -20.4525 137.093 -63.4507 140.271 0 0 0 0 0 0 126.134 -58.1772 130.687 0 0 0 0 0 0 -1.16252e-05 3.21904e-05 -3.10079e-06 0 0 0 23.329 -27.3262 -44.4718 159.04 -43.2923 163.433 -2.81448e-08 3.90135e-07 4.48006e-07 0 0 0 -26.2443 -33.9841 53.3748 -161.528 -48.6205 -168.328 -4.81902e-07 3.93321e-07 -3.80571e-07 0.183588 0.528368 -0.00182512 7.67303e-08 1.2184e-07 5.85012e-07 
-2.12278 -34.4783 -127.481 4.81976 3.44357 -18.4289 140.017 -65.0509 142.766 0 0 0 0 0 0 127.912 -59.8828 132.013 0 0 0 0 0 0 1.11553e-05 -3.31456e-05 -4.48941e-06 0 0 0 21.4169 -28.9206 -48.832 157.002 -43.3258 161.954 -2.09398e-08 -2.2186e-07 -1.72184e-07 0 0 0 -28.5152 -31.9832 49.1567 -164.226 -48.1896 -170.513 -5.74864e-07 -7.84377e-07 -1.73743e-07 0.12602 0.519401 -0.00127206 5.70195e-08 9.16554e-08 -5.28404e-07 
-1.79195 -34.3377 -127.594 5.18868 3.44141 -19.3415 138.515 -64.5207 141.413 0 0 0 0 0 0 126.911 -59.2749 131.159 0 0 0 0 0 0 -2.34037e-05 6.53113e-05 1.87527e-05 0 0 0 21.2518 -28.3912 -48.6216 156.994 -42.9317 162.095 -2.19662e-07 2.47876e-07 -5.4652e-07 0 0 0 -28.4017 -33.3731 50.272 -163.526 -48.6777 -169.891 1.62958e-07 -7.76707e-07 9.33001e-07 0.135063 0.522974 -0.00134022 -3.04364e-07 -3.16755e-07 1.09747e-06 
-1.94054 -34.245 -127.838 4.92626 3.69846 -19.8098 138.123 -64.0588 141.135 0 0 0 0 0 0 126.763 -58.8201 131.139 0 0 0 0 0 0 -3.60776e-08 -1.51554e-09 4.84939e-05 0 0 0 21.8061 -28.2349 -47.6547 157.245 -42.9777 162.26 -2.89735e-07 2.49195e-07 4.28231e-07 0 0 0 -27.6317 -34.0372 51.6545 -162.765 -48.7485 -169.279 7.07182e-07 6.78784e-07 -2.02024e-07 0.194615 0.580036 -0.00206907 1.05982e-07 -2.11964e-07 2.3948e-08 
-2.20163 -34.3313 -127.797 4.72857 3.65984 -20.7023 136.69 -63.3791 139.881 0 0 0 0 0 0 125.835 -58.0794 130.395 0 0 0 0 0 0 4.99867e-07 6.82239e-08 -5.30834e-05 0 0 0 22.7129 -27.2518 -45.3103 158.576 -43.0634 163.191 4.1006e-07 4.20546e-07 -1.16197e-06 0 0 0 -26.6136 -34.8154 53.4358 -161.94 -49.0099 -168.581 -3.84335e-07 6.38849e-08 -1.64938e-07 0.0716572 0.722262 -0.000944107 1.47848e-07 7.49681e-08 1.61528e-06 
-2.5993 -34.3255 -127.727 4.33388 3.61284 -20.3755 136.994 -63.5899 140.13 0 0 0 0 0 0 126.007 -58.2943 130.508 0 0 0 0 0 0 -1.59088e-06 -4.21953e-07 7.54694e-06 0 0 0 22.8973 -27.5376 -45.3332 158.666 -43.1658 163.212 -1.18884e-07 2.28831e-07 -2.34084e-07 0 0 0 -26.1023 -34.0039 53.5629 -162.014 -48.7274 -168.688 -2.81639e-08 4.84988e-07 -7.85431e-07 0.127951 0.79653 -0.00183192 -7.99921e-08 -9.88782e-08 2.20175e-06 
wie man sieht gibts nur frameangaben, ich bräuchte aber - um mehrere verschiedene logfiles von anderen tracking-programmen ordentlich synchronisiert zu bekommen -
timestamps in der form hh-mm-ss-ms oder irgendwie so.

da ich u.a. auch blender benutze (das einen python-interpreter mit dabei hat) kann man DAS problem doch bestimmt prima mit einem kleinen python-script erledigen?!

für hilfe, howtos oder anregungen in irgendeiner form wäre ich sehr dankbar :)
BlackJack

@leader2k7: Wo sollen denn die Zeitangaben her kommen? Und wo sollen sie hin?
leader2k7
User
Beiträge: 4
Registriert: Montag 25. Juli 2011, 11:14

@BlackJack: es gibt andere logfiles (eines eyetrackers), die die gmt inkl. ms mit reinschreiben.
sieht dann so aus:

Code: Alles auswählen

      FRAME_NUM EXPERIMENT_TIME           GMT_S          GMT_MS           DELAY   ANNOTATION_ID 
           5184         86.3706      1310551384             696         1.84964              -1 
           5185         86.3872      1310551384             713         1.85276              -1 
           5186         86.4039      1310551384             730         1.84939              -1 
           5187         86.4206      1310551384             746          1.8498              -1 
           5188         86.4372      1310551384             763         1.84846              -1 
           5189         86.4539      1310551384             780         1.85455              -1 
           5190         86.4706      1310551384             796         1.85186              -1 
           5191         86.4872      1310551384             813         1.85014              -1 
           5192         86.5039      1310551384             830         1.84852              -1 
           5193         86.5205      1310551384             846         1.84885              -1 
           5194         86.5372      1310551384             863         1.84828              -1 
           5195         86.5539      1310551384             880          1.8498              -1 
           5196         86.5705      1310551384             896         1.84891              -1 
           5197         86.5872      1310551384             913         1.85079              -1 
           5198         86.6039      1310551384             930         1.84762              -1 
           5199         86.6205      1310551384             946         1.85152              -1 
           5200         86.6372      1310551384             963         1.84892              -1 
           5201         86.6539      1310551384             980            1.85              -1 
           5202         86.6705      1310551384             996         1.84878              -1 
           5203         86.6872      1310551385              13          1.8497              -1 
           5204         86.7039      1310551385              30         1.84949              -1 
           5205         86.7205      1310551385              46         1.85343              -1 
           5206         86.7372      1310551385              63         1.85366              -1 
           5207         86.7539      1310551385              80         1.85182              -1 
           5208         86.7705      1310551385              96         1.84914              -1 
           5209         86.7872      1310551385             113          1.8501              -1 
so oder so ähnlich soll das dann auch in den bvhs stehen. und meiner naiven phantasie nach gebe ich einen startzeitpunkt an und "mein" python-script schreibt mir dann
kontinuierlich pro frame die realtime da rein. bzw rechnet sie hoch, weil man ja weiss wie viele frames pro sekunde aufgenommen wurden.
muss ja auch nicht in DER präzision auf die milisekunde sein.
BlackJack

@leader2k7: Sieht das bhv-Format denn vor, dass man da einen Zeitstempel speichern kann/darf? Oder wie stellst Du Dir die Ausgabe vor?
leader2k7
User
Beiträge: 4
Registriert: Montag 25. Juli 2011, 11:14

BlackJack hat geschrieben:@leader2k7: Sieht das bhv-Format denn vor, dass man da einen Zeitstempel speichern kann/darf? Oder wie stellst Du Dir die Ausgabe vor?
nein, sieht es nicht, aber ist auch nicht weiter wichtig. das format wird dann halt zerstört, ist eh ascii und ich hab nicht vor damit weiter etwas zu machen, ausser halt, daraus eine ascii datei zu haben inkl. timestamps.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

brauchst du _einen_ Zeitstempel pro Datei oder mehrere Zeitstempel in einer Datei?

Gruß, noisefloor
leader2k7
User
Beiträge: 4
Registriert: Montag 25. Juli 2011, 11:14

@noisefloor: ich brauche mehrere pro Datei, am besten für einen pro frame.
BlackJack

@leader2k7: Ich habe mir den Thread jetzt noch einmal durchgelesen und bin mir ehrlich gesagt nicht so ganz sicher was eigentlich die Frage ist!? Wenn Du weisst wo Du die Zeitstempel her bekommst, oder zumindest durch eine Rechenvorschrift irgend wo ableiten kannst, und wenn Du ferner weisst, wo die Zeitstempel im Ergebnis stehen sollen, dann sollte das mit Python lösbar sein.

Also müsstest Du einfach anfangen Python zu lernen. Das Tutorial in der Python-Dokumentation ist ein guter Einstiegspunkt.
Antworten