Skip to content

Subpixelic displacement and strain fields estimation with deep learning

License

Notifications You must be signed in to change notification settings

ApexBurger/StrainNet

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StrainNet (Pytorch implementation)

StrainNet estimates subpixelic displacement and strain fields from pairs of reference and deformed images of a flat speckled surface, as Digital Image Correlation (DIC) does. See paper [1] for details.

If you find this implementation useful, please cite reference [1]. Also, make sure to adhere to the licensing terms of the authors.

Prerequisite

Install the following modules:

pytorch >= 1.2
torchvision
tensorboardX 
imageio
argparse
path.py
numpy
pandas
tqdm

Training

  1. Generate Speckle dataset 1.0 or 2.0
  2. Specify the paths to: Train dataset, Test dataset, Train_annotations.csv, and Test_annotations.csv in the file Train.py (exactly in the definition of train_set and test_set)
  3. Execute the following commands
python Train.py --arch StrainNet_h 
python Train.py --arch StrainNet_f

Running inference

The images pairs should be in the same location, with the name pattern *1.ext *2.ext

python inference.py /path/to/input/images/  --arch StrainNet_h  --pretrained /path/to/pretrained/model
python inference.py /path/to/input/images/  --arch StrainNet_f  --pretrained /path/to/pretrained/model  

Pretrained Models

The pretrained models of StrainNet-h and StrainNet_f are available here

Results of star images

Execute the following commands in the StrainNet directory (please also copy here the tar files if you use the pretrained models)

python inference.py ../Star_frames/Noiseless_frames/  --arch StrainNet_h  --pretrained StrainNet-h.pth.tar
python inference.py ../Star_frames/Noiseless_frames/  --arch StrainNet_f  --pretrained StrainNet-f.pth.tar

The output of inference.py can be found in Star_frames/Noiseless_frames/flow/

You can use Script_flow.m to visualize the obtained displacements

Reference image
Reference displacement
Retrieved by StrainNet-h
Retrieved by StrainNet-f

References

[1] S. Boukhtache, K. Abdelouahab, F. Berry, B. Blaysat, M. Grédiac and F. Sur. "When Deep Learning Meets Digital Image Correlation", Optics and Lasers in Engineering, Elsevier 2020, in press.

Acknowledgments

This code is based on the Pytorch implmentation of FlowNetS from FlowNetPytorch

About

Subpixelic displacement and strain fields estimation with deep learning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 72.7%
  • MATLAB 27.3%