Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question about pose warping #6

Open
jimmyfyx opened this issue Oct 31, 2023 · 6 comments
Open

Question about pose warping #6

jimmyfyx opened this issue Oct 31, 2023 · 6 comments
Labels
documentation Improvements or additions to documentation

Comments

@jimmyfyx
Copy link

Hi,

I wanna ask some questions regarding ObjectMotionIsolation01_VeedDynamic.py and LOF_POI_01_VeedDynamic.py. I notice that in ObjectMotionIsolation01_VeedDynamic.py, we choose to do pose warping between frame and frame + 2. However, in LOF_POI_01_VeedDynamic.py, non-zero flow is estimated between two consecutive frames. Is there a reason for that?

Also, I wonder is pose warping between frame and frame + 2 the reason for pred_frame_num in TrainVideosData.csv not including 0, 1, and 2?

Thanks!

@NagabhushanSN95
Copy link
Owner

NagabhushanSN95 commented Oct 31, 2023

  1. ObjectMotionIsolation01_VeedDynamic.py nullifies camera motion between the two frames. However, object motion still exists between the two frames. ObjectMotionIsolation01_VeedDynamic.py only isolates object motion between the frames.
    Next we need to train the flow estimator to estimate the flow between warped frames to estimate the object motion. Instead of randomly selecting patches, we determine the regions (points of interest or POI) where there is motion (local optical flow or LOF) using LOF_POI_01_VeedDynamic.py

  2. Yes, exactly.

@jimmyfyx
Copy link
Author

jimmyfyx commented Nov 2, 2023

Thanks! But for estimating the local optical flow, I think in the code it is estimated between the original frame and warped frame right? Shouldn't the local flow be estimated between two warped frames as you mention? I'm referring to the load_data() function in LOF_POI_01_VeedDynamic.py

Edit: Never mind I think I get the point.

@NagabhushanSN95 NagabhushanSN95 added the documentation Improvements or additions to documentation label Nov 2, 2023
@jimmyfyx
Copy link
Author

jimmyfyx commented Nov 8, 2023

Hi,

Sorry I have some further questions regarding the pose warping part. For ObjectMotionIsolation01_VeedDynamic.py, I still do not quite understand how it achieves the goal of nullifying camera motion as mentioned in the paper. Given a pose T1, T2 and frame f1, f2, if we want to represent everything in T1's view, shouldn't we compute a inverse transformation from T2 to T1 and warp f2 accordingly? But in the Warper class I only see how it can generate f2 based on T1, f1 and T2. If my understanding is wrong, can you clarify a little bit?

Thank you!

@NagabhushanSN95
Copy link
Owner

Sure. Let me connect the notations between the paper and the code. In the paper, we warp (f_{n-k}, T_{n-k}) to (f_n, T_n). In the code, (f1, T1) corresponds to (f_{n-k}, T_{n-k}) in the paper and (f2,T2) corresponds to (f_n, T_n). So, we need to warp f1 from T1 to T2.

Does this help?

@jimmyfyx
Copy link
Author

jimmyfyx commented Nov 8, 2023

That's very clear, thanks! And is there a reason we allow k = 2 when generating the warped frames? What about f_{n - 1}? Also why we need the '1_step_backwardpart inObjectMotionIsolation01_VeedDynamic.py`?

@NagabhushanSN95
Copy link
Owner

NagabhushanSN95 commented Nov 8, 2023

In our setup of alternate frame prediction, f_{n-2} and f_n are available and we need to predict f_{n+1}. So, we train the flow estimator to predict the object motion from f_n to f_{n-2} as well as f_n to f_{n+1} (by picking one of them randomly). For this we need to warp f_{n-2} by 2 steps and f_{n+1} by -1 step. Hence, the two values.

I guess you could simply train the flow estimator to predict flow from f_n to f_{n-2} and that should also work fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants