Comments (12)
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.
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:
- 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’
- The keypoints_3d in ‘RGBto3D_train.json’ mean xyz in cam or world?
from wholebody3d.
- Unfortunately, matching with image path is the only way to match annotations
- 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.
Thank you again for your reply. It is very helpful for me!
from wholebody3d.
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.
from wholebody3d.
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.
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:
- 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)?
- 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
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.
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.
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.
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.
Thank you for your help! I have successfully completed the mapping of two path formats
from wholebody3d.
Related Issues (20)
- code for how to construct the dataset from multi-view geometry ? HOT 1
- question about 3d coordinate system? HOT 10
- Willing to perform motion forecasting HOT 3
- Facing Error with dimensions HOT 6
- Inference script HOT 1
- Question about 3d keypoint data. HOT 5
- Which file, global_3d or camera_3d, should be used to train the model? HOT 5
- How to train the modle HOT 4
- Data loading HOT 1
- Module import HOT 1
- data normalization HOT 4
- NumPy data for test set HOT 1
- data HOT 13
- the visualize results is correct ? HOT 3
- The coordinates of keypoints_3d HOT 10
- Could you provide a script for projecting 3D keypoints from RGBto3D_train.json to 2D coordinate points of the image? HOT 3
- 关于测试集 HOT 1
- 关于数据集名称 HOT 3
- 您好,请问在 2Dto3D_trian_part1.json 文件中读取得到的三维关键点如何和S1的某一帧动作进行匹配呢 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wholebody3d.