Giter Club home page Giter Club logo

Comments (12)

Zhuyue0324 avatar Zhuyue0324 commented on June 13, 2024 1

I think your 's_01_act_02_subact_01_ca_01' can indicating what they means so as to match with ours

s_01 = subject 01, should be S1 here

act_02 = action 02, if I am correct, the order of action looks like ['Directions', 'Discussion', 'Eating', 'Greeting', 'Phoning', 'Posing', 'Purchases', 'Sitting', 'SittingDown', 'Smoking', 'TakingPhoto', 'Waiting', 'Walking', 'WalkingDog', 'WalkTogether']

subact_02, if I am correct, subact is like ["", " 1", " 2", " 3"] (though I am not sure if they start with 00 or 01, please adjust by yourself. If they start with 01, my guess of act_02_subact_01 is 'Discussion', and act_02_subact_02 is 'Discussion 1')

ca_01 = camera 01, the order of camera is like ['60457274', '55011271', '54138969', '58860488']

So my guess is 'h36m/images/s_01_act_02_subact_01_ca_01' = 'S1/Images/Discussion.60457274'

You can try with these logic to see how they are matching. Hope this can help you.

from wholebody3d.

YHaooo-4508 avatar YHaooo-4508 commented on June 13, 2024 1

Thank you for your quick reply!
Your analysis is very clear. I think I understand the conversion rules between the two path formats

By the way, i have other 2 issues:

  1. The ‘RGBto3D_train.json’ file contains 80000 samples. Are there any rules for selecting these 80000 samples? If I want to match this annotation with other h36m annotations, can I only see if the image paths in them are the same. For example another annotation has 156094 samples,how can i match the annotation with your ‘RGBto3D_train.json’
  2. The keypoints_3d in ‘RGBto3D_train.json’ mean xyz in cam or world?

from wholebody3d.

Zhuyue0324 avatar Zhuyue0324 commented on June 13, 2024
  1. Unfortunately, matching with image path is the only way to match annotations
  2. None of them. See here
    #5 (comment)
    'The 3d keypoints in RGBto3D_train.json are actually R_cam * X_global, so you don't need R_cam but you need T_cam to project correctly into 2D.'

from wholebody3d.

YHaooo-4508 avatar YHaooo-4508 commented on June 13, 2024

Thank you again for your reply. It is very helpful for me!

from wholebody3d.

YHaooo-4508 avatar YHaooo-4508 commented on June 13, 2024

Sorry to bother you again, also the data path issue.
Thanks to your explanation, I have aligned most of them('s', 'act' and the 'cam_id'), but there were some issues in 'subact'.
I browsed through the h36m data I used before, and they only have two kinds of subact('subact_01' and 'subact_02'). But in your annfile( RGBto3D_train.json), i saw at least 3 types('.xxx', ' 1.xxx', '*** 2.xxx'-----*** mean action name, xxx mean camera_id)
Can you tell me the differences between these three in your annfile and how can I align them

from wholebody3d.

YHaooo-4508 avatar YHaooo-4508 commented on June 13, 2024

This is my h36m image folder
image

from wholebody3d.

Zhuyue0324 avatar Zhuyue0324 commented on June 13, 2024

I haven't dealt with the images with your folder name before. I downloaded images and annotations from their official cite and they are all stored under path named like 'subject/utilitynames/action subaction.cameraid.cdf'. For example 'S1/MyPoseFeatures/D3_Positions_mono/Directions 1.54138969.cdf' is a 3D camera coordinate groundtruth file.

But I check the file names. Every action appears at most twice, and most action appears twice, but sub-actions are not in the same rule.

For example, for S1, there are Directions and Directions 1, Eating and Eating 2 (no Eating 1), Sitting 1 and Sitting 2 (no Sitting)
And for S5, there is only Greeting 1, (no Greeting or Greeting 2) also they have Discussion 2 and Discussion 3 (no Discussion or Discussion 1)

You can try this way: subact01 and 02 correspondent to the names that exists and by increasing order. Like (' ' and '1', ' ' and '2' or '1' and '2' in the previous examples) Otherwise I suggest you to check the source of your data how they make those names of the folders.

from wholebody3d.

YHaooo-4508 avatar YHaooo-4508 commented on June 13, 2024

If i can find the data preparation of my annotation, this problem will no longer be a problem. Unfortunately, I can't

I found that subact_0x corresponds to increasing order of filename(' 1.xxx' , ' 2.xxx' , ' 3.xxx' , '.xxx'), this is a base rule.
But I do not have a deep understanding of the original video files of h36m, so I have the following issues:

  1. Video name is '{act_str} {subact_int}.{cam_int}.mp4' , when subact_int==‘ ’, it will be '{act_str}.{cam_int}.mp4'. And what's the meaning of the subact_int(0, 1, 2, 3.....i dont know where is the end)?
  2. You say 'And for S5, there is only Greeting , (no Greeting or Greeting 2)' which mean the number of subact is uncertain. But i found that there are only two subacts in my data_path(Just like the previous picture). So i check the s5 video file
    image
    As you see, Greeting also has two kinds of subact. So, Is the number of subact constant or not? That very important for me. If the number is uncertain, the mapping of two types of annotation is very difficult

from wholebody3d.

Zhuyue0324 avatar Zhuyue0324 commented on June 13, 2024

My mistake. In S5 they do have two Greeting, 1 and 2. The sorting algorithm of files split them so I didn't see the 2 last time which were at the later part in the list.

For your issue 1, they seems only have '', ' 1', ' 2', and ' 3' so you can try the strategy I mentioned: subact 01 and 02 correspondent to the names that exists and by increasing order. Like ('' and ' 1', '' and ' 2',' 1' and ' 2' or ' 2' and ' 3', etc) You need also verify if '' is the first or the last in that order.

from wholebody3d.

YHaooo-4508 avatar YHaooo-4508 commented on June 13, 2024

I didn't particularly understand your strategy.
Do you mean I need to traverse the original videos(in order) to get a map of the two kinds of path, Is there any way to get 's_01_act_02_subact_01_ca_01' just by the str 'S1/Images/Discussion x.60457274' from your ann_dict. If the two {subact_int} is irregular, i think it's impossible

from wholebody3d.

Zhuyue0324 avatar Zhuyue0324 commented on June 13, 2024

I don't have a matching between 'subact_0x' and 'action x'

What I mean is you can try like following:

subjects = ['S1', ...]
actions = ['Discussion', 'Directions', ...]
sub_actions = [' 1', ' 2', ' 3', '']
subact_int = 1
record = []
for subject in subjects:
    for action in actions:
        for subaction in sub_actions:
            if os.path.exists(subject+'/Videos/'+action+subaction+'60457274.mp4'):
                record.append([subject+'_'+action+subaction, 'subact 0'+str(subact_int)])
                subact_int +=1
        subact_int = 1

Then in record you should have some sort of pairing you ask for
Though I am not sure if it is correct, nor about the ordering in the list sub_actions which is correct only if your
'subact_0x corresponds to increasing order of filename(' 1.xxx' , ' 2.xxx' , ' 3.xxx' , '.xxx')'
is correct, you need to try on yourself

from wholebody3d.

YHaooo-4508 avatar YHaooo-4508 commented on June 13, 2024

image
Thank you for your help! I have successfully completed the mapping of two path formats

from wholebody3d.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.