You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am reaching out to you because I have encountered an error when running "anipose triangulate". Namely, I have obtained 2D joint coordinates using Google Mediapipe Pose landmark detection (https://developers.google.com/mediapipe/solutions/vision/pose_landmarker) from 5 cameras capturing whole-body movements. The 2D coordinates are stored in csv, .h5 and pickle files (see attachment) and the files are formatted identical to the output files you would expect from Deep Lab Cut.
Anipose calibration has worked, however whenever I try to triangulate the data from 5 cameras I receive the following error saying that there are not enough 3D points to run optimization:
Triangulating points...
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-1.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 157041.86it/s]
warning: not enough 3D points to run optimization
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:281: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling frame.insert many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use newframe = frame.copy()
dout[bp + 'ncams'] = num_cams[:, bp_num]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:282: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling frame.insert many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use newframe = frame.copy()
dout[bp + 'score'] = scores_3d[:, bp_num]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:279: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling frame.insert many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use newframe = frame.copy()
dout[bp + '' + axis] = all_points_3d_adj[:, bp_num, ax_num]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:280: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling frame.insert many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use newframe = frame.copy()
dout[bp + 'error'] = all_errors[:, bp_num]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:286: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling frame.insert many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use newframe = frame.copy()
dout['M{}{}'.format(i, j)] = M[i, j]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:289: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling frame.insert many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use newframe = frame.copy()
dout['center{}'.format(i)] = center[i]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:291: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling frame.insert many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, use newframe = frame.copy()
dout['fnum'] = np.arange(n_frames)
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-2.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 156686.05it/s]
warning: not enough 3D points to run optimization
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-3.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 158914.28it/s]
warning: not enough 3D points to run optimization
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-4.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 155566.26it/s]
warning: not enough 3D points to run optimization
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-5.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 159713.40it/s]
warning: not enough 3D points to run optimization
This has lead me to think that perhaps the .h5 output files do not contain data, but that is not true. All estimated x and y coordinates are saved there. I have attached the relevant files for you convenience.
Do you perhaps have any idea what went wrong? Any help is much appreciated!
Hello,
I hope this message finds you well!
I am reaching out to you because I have encountered an error when running "anipose triangulate". Namely, I have obtained 2D joint coordinates using Google Mediapipe Pose landmark detection (https://developers.google.com/mediapipe/solutions/vision/pose_landmarker) from 5 cameras capturing whole-body movements. The 2D coordinates are stored in csv, .h5 and pickle files (see attachment) and the files are formatted identical to the output files you would expect from Deep Lab Cut.
Anipose calibration has worked, however whenever I try to triangulate the data from 5 cameras I receive the following error saying that there are not enough 3D points to run optimization:
Triangulating points...
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-1.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 157041.86it/s]
warning: not enough 3D points to run optimization
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:281: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling
frame.insert
many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, usenewframe = frame.copy()
dout[bp + 'ncams'] = num_cams[:, bp_num]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:282: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling
frame.insert
many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, usenewframe = frame.copy()
dout[bp + 'score'] = scores_3d[:, bp_num]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:279: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling
frame.insert
many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, usenewframe = frame.copy()
dout[bp + '' + axis] = all_points_3d_adj[:, bp_num, ax_num]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:280: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling
frame.insert
many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, usenewframe = frame.copy()
dout[bp + 'error'] = all_errors[:, bp_num]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:286: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling
frame.insert
many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, usenewframe = frame.copy()
dout['M{}{}'.format(i, j)] = M[i, j]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:289: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling
frame.insert
many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, usenewframe = frame.copy()
dout['center{}'.format(i)] = center[i]
/home/ej06/.conda/envs/aniposeEnv/lib/python3.7/site-packages/anipose/triangulate.py:291: PerformanceWarning: DataFrame is highly fragmented. This is usually the result of calling
frame.insert
many times, which has poor performance. Consider joining all columns at once using pd.concat(axis=1) instead. To get a de-fragmented frame, usenewframe = frame.copy()
dout['fnum'] = np.arange(n_frames)
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-2.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 156686.05it/s]
warning: not enough 3D points to run optimization
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-3.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 158914.28it/s]
warning: not enough 3D points to run optimization
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-4.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 155566.26it/s]
warning: not enough 3D points to run optimization
/group/plasticity/Projects/Null_space/anipose-project3/video-recordings/pose-3d/trimmed-5.csv
100%|███████████████████████| 45540/45540 [00:00<00:00, 159713.40it/s]
warning: not enough 3D points to run optimization
This has lead me to think that perhaps the .h5 output files do not contain data, but that is not true. All estimated x and y coordinates are saved there. I have attached the relevant files for you convenience.
Do you perhaps have any idea what went wrong? Any help is much appreciated!
Best regards,
Ema
pose-2d.zip
calibration.zip
The text was updated successfully, but these errors were encountered: