cgtinker / BlendArMocap

realtime motion tracking in blender using mediapipe and rigify
GNU General Public License v3.0
901 stars 110 forks source link

"Session directory not valid" when trying to Load Session Folder Freemocap #144

Open Wolv21 opened 1 year ago

Wolv21 commented 1 year ago

Describe the bug When clicking on the Load Session Folder in the Freemocap section of BlendArMocap I get a console error message of "Session directory not valid"

Expected behavior To import the data from Freemocap as shown in this part of the YouTube video. https://youtu.be/qtHf84YJvhk?t=353

Desktop:

Additional context Started a conversion first on yt but here is probably smarter. Here is the entire tree from the freemocap session folder. I also emailed the entire session folder for better investigation.

freemocap tree structure - Screenshot 2023-03-14 104433

Tried I tried renaming the folder output_data to 'DataArrays', I got the same error message. Then was suggested to look for specific file names: 'DataArrays'/'mediaPipeSkel_3d_smoothed.npy' 'DataArrays'/'mediaPipeSkel_reprojErr.npy' Those files to not exist (shown in the screenshot)

I noticed that in the file fm_session_loader.py on lines 34 - 36 it looking for those folders / files.

Thanks again for your help :)

Wolv21 commented 1 year ago

Since getting the error the other day and now just noticing freemocap just refactored / updated their software. I will try updating and see if the error still exists. I still have the previous environment for testing.

Wolv21 commented 1 year ago

Updated and still getting the same error message. Here is the new data tree

---recording_09_49_20_gmt-4 recording_09_49_20_gmt-4.blend
+---annotated_videos
|       Camera_000_synchronized_mediapipe.mp4
|       Camera_001_synchronized_mediapipe.mp4
|
+---output_data
|   |   mediaPipeSkel_3d_body_hands_face.npy
|   |   mediapipe_body_3d_xyz.csv
|   |   mediapipe_body_3d_xyz.npy
|   |   mediapipe_face_3d_xyz.csv
|   |   mediapipe_face_3d_xyz.npy
|   |   mediapipe_left_hand_3d_xyz.csv
|   |   mediapipe_left_hand_3d_xyz.npy
|   |   mediapipe_names_and_connections_dict.json
|   |   mediapipe_right_hand_3d_xyz.csv
|   |   mediapipe_right_hand_3d_xyz.npy
|   |   mediapipe_skeleton_segment_lengths.json
|   |
|   +---center_of_mass
|   |       segmentCOM_frame_joint_xyz.npy
|   |       total_body_center_of_mass_xyz.npy
|   |
|   \---raw_data
|           mediapipe2dData_numCams_numFrames_numTrackedPoints_pixelXY.npy
|           mediapipe3dData_numFrames_numTrackedPoints_reprojectionError.npy
|           mediapipe3dData_numFrames_numTrackedPoints_spatialXYZ.npy
|
\---synchronized_videos
    |   Camera_000_synchronized.mp4
    |   Camera_001_synchronized.mp4
    |   first_and_last_frames.png
    |   timestamp_diagnostic_plots.png
    |
    \---timestamps
            Camera_000_synchronized_binary.npy
            Camera_000_synchronized_timestamps_human_readable.csv
            Camera_001_synchronized_binary.npy
            Camera_001_synchronized_timestamps_human_readable.csv

DataArrays or the files it references don't exist from Freemocap.

KaijuKoder commented 1 year ago

I had this problem once. It can be resolved, but it could be a few things. 1. if FreeMocap doesn't complete it's work (it can be easy to miss since it can fail or quit and not tell you), the files it needs won't be there, and so BlendARmocap won't recognize it. You'll need to dig into the Freemocap directories and make sure all the stage data is there (not easy). I did suggest freemocap check the stage numbers to prevent this situation from happening. https://github.com/freemocap/freemocap/issues/302 2. FreeMocap's prealpha and alpha use some different file naming, so that might be a problem too.