quinngroup / CiliaRepresentation

A modular generative pipeline for understanding cilia appearance and dynamics
MIT License
0 stars 1 forks source link

Initial optical flow dataset creation #29

Closed snoiarao closed 4 years ago

snoiarao commented 4 years ago

Need to create a local and complete dataset containing optical flow vector fields. In previous experiments, variants of Horn-Schunck and Lucas-Kanade solutions performed optimally for basic thresholding-based segmentation; experiments might need to be re-done to optimize optical flow in conjunction with derivative values for more complex thresholding.

magsol commented 4 years ago

I did a lot of “guess & check” programming a couple weeks ago and found some dense optical flow parameters that seeeeeem to work a little more robustly than the defaults.

Check out the “Pixel_AR.ipynb” notebook under the “cilia-metrics” repo for the details.

On Fri, Feb 21, 2020 at 18:48 sonia rao notifications@github.com wrote:

Need to create a local and complete dataset containing optical flow vector fields. In previous experiments, variants of Horn-Schunck and Lucas-Kanade solutions performed optimally for basic thresholding-based segmentation; experiments might need to be re-done to optimize optical flow in conjunction with derivative values for more complex thresholding.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/quinngroup/CiliaRepresentation/issues/29?email_source=notifications&email_token=AABBB6II6KN7MBQX7PWCORTREBR4FA5CNFSM4KZMIOQKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4IPN5EGA, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABBB6PGFHEDIS4RIMWLZ73REBR4FANCNFSM4KZMIOQA .

-- iPhone’d

snoiarao commented 4 years ago

decided on pyoptflow's implementation of horne-schunck's algorithm with slightly modified parameters. 40 consecutive frames randomly sampled within each full video for computation.

/data/cilia/optical_flow/optflow: optical flow vector fields (40, 2, H, W) /data/cilia/optical_flow/curl: curl vector field (40, H, W) /data/cilia/optical_flow/deform: deformation vector field (40, H, W) ((using spq's implementation)) /data/cilia/optical_flow/truncated: truncated 40 frame array used for computation (40, H, W)

1 to 1 correspondence of names within each subdirectory, starting frame # appended to end of file name.

snoiarao commented 4 years ago

Something to consider (from me and Meekail's conversation earlier):

Would it be superior to calculate optical flow + derivative quantities for 40 consecutive frames, or to calculate optical flow + derivative quantities for the full set of frames and randomly sample 40 matching frames for all 3 quantities? Continuous 40 frames likely captures adequate information since >1 ciliary beat cycles, is more time + space efficient to run over entire dataset. On the other hand, random sets of 40 frames capture more variety of ciliary states and macroscopic movement patterns.

Any thoughts?

snoiarao commented 4 years ago

/data/cilia/mini_set is the dataset with optical flow, truncated array, curl, deformation, and "good" segmentation mask. about 13G but complete set for further processing experiments