dicengine / dice

Digital Image Correlation Engine (DICe): a stereo DIC application that runs on Mac, Windows, and Linux
Other
354 stars 127 forks source link

DICe Strain reading inaccurate when live plot points are near the boundary of the ROI #169

Open RishabKaran opened 4 years ago

RishabKaran commented 4 years ago

Hey, i have a problem with the software, I'm able to run DIC analysis but the strain value that is get is completely off. So, I was wondering if there is any suggestion for helping me with the setting on DICe. I'm using, subset-based full-field, feature matching initialization method, sssig treshold -150, subset size - 33, step size-31. Shape functions, translation and normal stretch. Compute strain activated.

This is a analysis of a tensile test on a polymer.

Thank you Rishab

dicengine commented 4 years ago

Which version of the code are you using?

RishabKaran commented 4 years ago

I m using version 2.0-beta.15

dicengine commented 4 years ago

I'm pretty sure your issue was fixed in https://github.com/dicengine/dice/commit/3505fd58482549ff3e8efed4166bf22e342cbaee but that was after 2.0-beta.15 was released. If you're able to build from source you can pull and rebuild DICe. We're planning to have a 2.0-beta.16 version soon if you need an installer.

RishabKaran commented 4 years ago

Hey, neighbour values initialization method doesnt work it says failed and I m not running stereo mode, Its a single camera video file where I split them into multiple images using ffmpeg, The console output when checked in view control's tick mark button on neighbour values, this is what it shows, Console output:

writing input file D:\Masters\DIC\1mms\Full Scale\DIC-Strain Gauge\input.xml input.xml file has been successfully saved writing parameters file D:\Masters\DIC\1mms\Full Scale\DIC-Strain Gauge\params.xml writing live plot data file D:\Masters\DIC\1mms\Full Scale\DIC-Strain Gauge\live_plot.dat live_plot.dat file has been successfully saved params.xml file has been successfully saved writing subset file D:\Masters\DIC\1mms\Full Scale\DIC-Strain Gauge\subset_defs.txt subset_defs.txt file has been successfully saved

Digital Image Correlation Engine (DICe) v2.0 git: v2.0-beta.15-2-g2ce4e6 MPI: disabled Manycore: disabled Data type: double Copyright 2015 National Technology & Engineering Solutions of Sandia, LLC (NTESS) Report bugs and feature requests as issues at https://github.com/dicengine/dice

Input Parameters: output_folder = D:\Masters\DIC\1mms\Full Scale\DIC-Strain Gauge\results\ correlation_parameters_file = D:\Masters\DIC\1mms\Full Scale\DIC-Strain Gauge\params.xml [unused] subset_file = D:\Masters\DIC\1mms\Full Scale\DIC-Strain Gauge\subset_defs.txt [unused] subset_size = 33 [unused] step_size = 32 [unused] separate_output_file_for_each_subset = 0 [unused] create_separate_run_info_file = 1 [unused] camera_system_file = D:\Masters\DIC\1mms\Full Scale\cal.xml [unused] image_folder = D:\Masters\DIC\1mms\Full Scale\Transformed output\ [unused] reference_image_index = 1 [unused] start_image_index = 1 [unused] end_image_index = 1871 [unused] skip_image_index = 20 [unused] num_file_suffix_digits = 3 [unused] image_file_extension = .png [unused] image_file_prefix = image- [unused] print_timing = 1 [unused] print_subset_locations_and_exit = 1 [unused]

--- Input read successfully ---

User specified correlation Parameters: interpolation_method = 2 [unused] sssig_threshold = 150 [unused] optimization_method = 1 [unused] initialization_method = 1 [unused] enable_translation = 1 [unused] enable_rotation = 0 [unused] enable_normal_strain = 1 [unused] enable_shear_strain = 0 [unused] output_delimiter = , [unused] post_process_vsg_strain -> strain_window_size_in_pixels = 90 [unused] output_spec -> COORDINATE_X = 1 [unused] COORDINATE_Y = 1 [unused] DISPLACEMENT_X = 1 [unused] DISPLACEMENT_Y = 1 [unused] MODEL_COORDINATES_X = 1 [unused] MODEL_COORDINATES_Y = 1 [unused] MODEL_COORDINATES_Z = 1 [unused] MODEL_DISPLACEMENT_X = 1 [unused] MODEL_DISPLACEMENT_Y = 1 [unused] MODEL_DISPLACEMENT_Z = 1 [unused] SIGMA = 1 [unused] GAMMA = 1 [unused] BETA = 1 [unused] STATUS_FLAG = 1 [unused] UNCERTAINTY = 1 [unused] VSG_STRAIN_XX = 1 [unused] VSG_STRAIN_YY = 1 [unused] VSG_STRAIN_XY = 1 [unused]

--- Correlation parameters read successfully ---

Reference image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-001.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-001.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-021.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-041.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-061.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-081.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-101.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-121.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-141.png Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-161.png ... Deformed image: D:\Masters\DIC\1mms\Full Scale\Transformed output\image-1861.png

--- List of images constructed successfuly ---

Image dimensions: 2464 x 2056 Output will be written to one file per frame with all subsets included Execution information will be written to a separate file (not placed in the output headers)

RishabKaran commented 4 years ago

Also, I dont know how to build DICe on the latest version you have uploaded on the folder, so if you can share tutorial or anything it would help me a lot in using that.

dicengine commented 4 years ago

It looks like your step size is 32 and the strain window size is 90. That only puts a couple subsets in the strain window. Have you tried either expanding the strain window size or decreasing the step size?

RishabKaran commented 4 years ago

Oh, it working now, So, those setting have a big impact when we change initialization method. I will come back to you once I have played around with neighbour values initialization method. The strain values still look a bit off but I will play around with this a bit more and get back to you Thank you

dicengine commented 4 years ago

Could you say more specific about what you are expecting to see vs the results you get?

RishabKaran commented 4 years ago

During experiment I had setup a virtual strain gauge and now I m trying to replicate that in a DIC software and trying to extract strain values which I could later use in the material data for later work (material modelling). In the experiment, the maximum strain values recorded was 0.34, and here in DIC, if I try to setup a virtual strain gauge in the same location (I used Image J and using pixel count i located approximately the same location) i get strain VSG_strain values to 0.0003 maximum in the current setting (neighbour values initialization), it was a bit better in feature matching type, upto 0.025. Another issue is that i get maximum values in VSG_STRAIN_XY instead of getting in either X or Y, even when the image is not tilted.

dicengine commented 4 years ago

The most common issue people have with DIC is the software settings in terms of the step size and the subset size. Some great rules of thumb are found here: http://idics.org/guide/

Most of these settings depend on your speckle size and camera resolution. If you get these wrong, you can expect terrible results. Take a look at the guide and see if anything jumps out at you. You can also experiment with different subset sizes, step sizes and virtual strain gauge sizes.

RishabKaran commented 4 years ago

Sure, I will go through it.

RishabKaran commented 4 years ago

hey, i have a question about normal strain and vsg_strain, what do they exactly refer to when we use the .e files generated in DICe and use them in paraview? I have some results which are a bit closer when i measure normal strain but vsg_strain remains weird. I'm still going through the manual you suggested, I just had this question mind.

bvanmieg commented 4 years ago

Hi, be very careful when using Virtual Stain Gauge and comparing the results to strain values obtained from an extensometer, FEA or any other strain defining method. The Virtual strain gauge is typically related to strain window, subset and step size.

Please see below a visual representation of the VSG in relation to stepsize and subset size as used in another DIC code (MatchId). I'm however not sure if the VSG is implemented in this way in DICe.

VSG

dicengine commented 4 years ago

VSG is implemented the same in DICe. I'm still not sure what you mean by "weird" strains. It would be helpful if you could share some results. We might be able to see what's going on.

RishabKaran commented 4 years ago

DIC.zip This is what i have been trying before using neighbours, neighbours doesnt help much either, I can share those as well.

dicengine commented 4 years ago

Your subset size is okay, the step size is probably way to big. Try a step size of 5 pixels. The VSG window size should be at least 3 step sizes so I would try 21 pixels. The live plots for the strain at points 0 and 1 are probably not very accurate because they are positioned at the extremes of your ROI on the left and right side. This leads to effectively having half the points needed to fit a plane around the point and compute the strain. If you need the strain at those specific places, expand the ROI (green box) at least the width of 5 subsets past these points and you should see more reasonable looking strains.

RishabKaran commented 4 years ago

Thanks a lot, I will try that out. Also, the same issue with the line's live plot i guess, we need to increase the ROI. I will work with that. Thank you so much for your help.