lmb-freiburg / flownet2

FlowNet 2.0: Evolution of Optical Flow Estimation with Deep Networks
https://lmb.informatik.uni-freiburg.de/Publications/2017/IMKDB17/
Other
1k stars 318 forks source link

How to fine-tune on sintel #191

Closed jsczzzk closed 5 years ago

jsczzzk commented 5 years ago

Hi, I'm a little confused about the fine-tune on sintel.

I have trained the Flownet-s on chairs for 600k itrations and then fine-tuned on sintel.

I find the model can not converge when i fine-tune on sintel ,the epe on validation set looks like this:

2019-03-20 11-25-50 的屏幕截图

the validation set that i choose follows this,it contain 320 pairs of images. data augmentation used in the model are listed as follows:

1.rotation 2.translation 3.Flip Horizontal 4.no scale,because i find that add scale will increase epe on the test set, is it right? How can i fine-tune on sintel so that i can get the lowest epe on test set? Thanks.

nikolausmayer commented 5 years ago

What did you use for finetuning? Did you increase the learning rate again as we did in the paper (see "S_fine" schedule)?

jsczzzk commented 5 years ago

Finetuing schedule i used in my experiment is listed as follows:

  1. I train the FlownetS for 600k iterations using the S_short schedule ,and the final epe on validation set is 2.02.

  2. Then,I choose the following scenes as the validation set as you did in this: ambush_6, bamboo_2, parts of cave_4, market_6, parts of temple_2; for parts of cave_4,and parts of temple_2,i add the last 25 frames(from 25 to 49)to my validation set, so the number of my training set is 1762 ,and the number of validation set is 320(160 for clean,160 for final)

  3. I use S_fine schedule for finetuning,and validate on the validation set every 5000 iterations,the epe on validation set cannot converge as you see above. When i test one model produced during training on Sintel traing set ,it works fine even though the model cannot converge,epe on the whole training set is listed as follows:

It is counter-intuitive as the training epe is much better. So how can i choose a model to work better in the sintel test set?

nikolausmayer commented 5 years ago

I am afraid I do not really have an answer. The network can definitely train on Sintel, and I do not have an intuition for what specifically may be going wrong with yours.

So how can i choose a model to work better in the sintel test set?

I think if anyone had an answer to this question, the optical flow research community would be very interested in hearing it :wink:

jsczzzk commented 5 years ago

Thank you for your patient explanations:smile:,it is my first step to the optical flow,I'm sorry to have asked you so many questions. I think it may be caused by the learning rate,I do not know if it was right.When i test the leaning rate in this , my model can really converge, Maybe this learning rate fits my model? The learning rate looks like this:

image compared with the S_fine

image The epe of validation set on first 150k steps looks like this: 2019-03-27 16-46-47 的屏幕截图 it looks much better than above. As a result, i test the model on the sintel training set. the epe on the whole training set is:

clean:1.31

final:1.49 It works better than the original flownetS. image

But, it works worse in the test set: clean:6.953 final:7.304

Is it shows my model overfits the sintel training set?

nikolausmayer commented 5 years ago

If you are training a "S" network (and not "s" as you wrote in your first post), then the test loss is actually better than our old numbers.

jsczzzk commented 5 years ago

Thank you so much, i will take some means to regularize the model.