Skip to content

A Low-cost and Open-source Approach to In-situ 2D Digital Image Correlation (DIC) Applications

License

Notifications You must be signed in to change notification settings

utaresearch/RealPi2dDIC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RealPi2dDIC

A low-cost and open-source approach to in-situ 2D DIC applications



Digital Image Correlation (DIC) is a non-contact optical technique that can be used to monitor the shape deformation and motion of rigid objects. Here we present RealPi2dDIC, a Python based open source real time DIC software, which provides a solution to the real time DIC applications using a very low-cost and mobile hardware interface. It can effectively compute in-plane full-field surface displacement and strain to sub-pixel accuracy by continuously capturing images of any rigid body in motion using a Pi camera module. This program is simple to use and can come up with highly accurate DIC results.

The application of Real Time DIC is limitless. To express it in a nutshell, this prevalent method can be used to get full field displacement and strain data of any rigid structure under tensile or compressive loading. It can be used in:

  • The application in experimental solid mechanics (eg. Mechanical testing and characterization of metallic/composite materials, etc. )
  • Monitoring of engineering components under mechanical or thermal loading
  • Monitoring displacements in rail and road bridges
  • Crack opening in civil engineering structures, particularly in the nuclear industry.

It also has the potential to be the viable alternative of manual inspection techniques of large civil engineering structures like buildings and power generation infrastructures and this list goes on.

As, the computation of gradual displacement from image data requires enormous amount of computational capability of the hardware interface, typically commercial in-situ DIC measurement equipment are very costly. Mostly a number of commercial vendors provide such services which are not relatively affordable for most research groups and companies. Hereby, we have developed this low-cost approach to in-situ DIC, which uses a Pi camera module v2 (30$) and a Raspberry Pi system (35$) to capture images and process them in an efficient algorithm to produce quality in-plane DIC measurements. This can be used in any indoor or outdoor applications and can be controlled remotely, thanks to the form factor of Raspberry Pi and its camera module. To add to its value, the program can be developed more to comply with nVidia Jetson NX or similar single board computers and Digital SLR cameras for faster computation.

How to use?

Surface Preparation

The basic operation of DIC is nothing but tracking a unique pattern, namely Speckle Pattern, on the object surface. Creation of speckle pattern is easy but it has to be good as the results significantly depend on the quality of this pattern. In order to provide unique information to track every data point or subset, the pattern should be non-repetitive, isotropic and of high contrast. The following qualities- the pattern must have:

  • The pattern should be random, should not have a bias in any specific orientation
  • Speckles should be 3-5 pixels in size to optimize spatial resolution and should be consistent
  • Speckles should not be too sparse or too dense. The black and white portion each should cover roughly 50% of the surface. For example, if the speckles are 5 pixels in size they should be roughly 5 pixels apart from each other

Bad Pattern Types

Good Pattern Types

Procedure

Speckle Pattern can be applied in a number of ways. In our experiment, we have used Rust Oleum black spray on white spray print over the surface. This is one of the easiest and most used methods to apply speckle patterns, mostly in small to intermediate scale applications. It is a good choice for metallic, polymeric or composite materials specimens.

In the following picture, you can see the speckle pattern on an Aluminum specimen.

0

Considerations regarding applying spray paints include:

  • Use matte/flat paints. Do not use glossy paints which can cause specular reflections.
  • White coating over the surface should be light enough not to cause any dripping. Otherwise, it will change the shape of the surface
  • Black spray should only be used after the white paint is dried. If the base coat is wet, the white and black colors may get mixed and create grey color spots which will affect the accuracy of the results
  • To create small speckles, the spray mist should be farther away from the specimen and stream should be moved continuously across the specimen.

For much smaller scale samples, toner powder, carbon black or graphite powder can be used. For very large-scale applications, like civil structures, one can literally print each dot and the dots can be huge compared to the position of the camera and size of the structure. You can Know more about the types of speckle patterns and application here provided by Correlated Solutions Ltd.

Hardware Setup

RealPi2dDIC application requires two specific hardware:

  • Raspberry Pi (any model having a CSI port) running on Raspbian OS
  • Pi Camera module v2

Schematic Diagram

Here a schematic diagram of a quasi static test of a flat Aluminum dog-bone shaped specimen incorporated with RealPi2dDIC setup is shown:

Actual Setup

actual2

We have attached the Pi Camera module to the MTS Testing Equipment as shown in the above picture. An external light source is used instead of the room light for better exposure only on top of the specimen and to have less environmental noise. The camera should be parallel to the plane of the specimen to get accurate results. Any out of plane motion should be avoided.

Software Setup

Install Modules

RealPi2dDIC is based on Python3. You have to install Python3 if it is not installed already (instructions) . It also requires the following modules:

Module Name Installation Instructions
numpy Click Here
opencv-python Click Here
matplotlib Click Here
scipy Click Here
picamera Click Here

Application Instructions

After installing all of the modules you can run RealPi2dDIC. To run it, you need to clone it from the GitHub Repository or you can download from here. To clone the repository from GitHub, you need Git.

From your raspberry pi command line:

# install git
$ sudo apt install git-all

# clone the repository
$ git clone https://github.com/utaresearch/RealPi2dDIC.git

# change directory to RealPi2dDIC
# letter case matters
$ cd RealPi2dDIC

# run with Python 3 from the ./src/ directory
# try `python3` instead of `python` if the following does not work
$ python RealPi2dDIC.py

Step 1

At first give a name to a folder where all the raw images and result files will be saved.

DeepinScreenshot_select-area_20200813144858

Step 2

A camera preview screen and a window consisting the image capture parameters will appear. Select the best settings based on your lighting conditions. Then press c to confirm. Then it will capture the reference image and convert it to hsv mode.

DeepinScreenshot_select-area_20200813145112

Recommended settings:

  • Brightness should be adjusted so that the image does not get over exposed.
  • Contrast should be very high ( ~100).
  • Exposure should be adjusted based on the lighting arrangements. 25 is the recommended value. 0 provides the least exposure while 50 provides the maximum exposure.
  • ISO increases the sensitivity of the camera sensor, but also increases noise grain. Noise grains affects the results adversely to a great extent. So it is recommended to keep the ISO value around or below 10 based on the lighting arrangements

Step 3

In this step, you have to draw a rectangular Region of Interest on the specimen surface. If you want to reset the area and select it again press r. Then press c to confirm.

Fig_roi

The software will divide the surface in small mesh grids (10 pixels x10 pixels)*. After you press any button the application will start collecting and processing the image data. It will plot in-situ full field strain on the reference image until you stop the process. To stop the process, press ctrl+c.

All the raw images, raw calculation data and strain field plots will be stored in the folder you selected which can be used for post processing.

*you can change this size inside the source code

Output Example

examplee2

Figure: In-situ true strain field of a specimen at different time of a quasi-static test (a. Transverse, b. Longitudinal), c. Specimen breaks in the place where the strain is maximum.

Video Demonstration

video: https://youtu.be/79wRLBrXLA4

Documentation & Theory

Documentation can be found here. The theory and algorithm of the code is explained in the following journal article Read Here

Contributing

You can fork the RealPi2dDIC repo, develop new algorithms and send us a pull request. To ensure great software quality please follow the following guidelines:

  • The changes should be documented properly
  • The changes should be reviewed by an objective party
  • Use descriptive commit messages

Authors

  • Partha Pratim Das - PhD Student, Mechanical Engineering, University of Texas at Arlington [email protected]

  • Muthu Ram Prabhu Elenchezhian - PhD Student, Aerospace Engineering, University of Texas at Arlington [email protected]

  • Vamsee Vadlamudi - Research Engineer II, Institute of Predictive Performance Methodologies, University of Texas at Arlington Research Institute [email protected]

  • Kenneth Reifsnider - Founding Director, Institute of Predictive Performance Methodologies, University of Texas at Arlington Research Institute [email protected]

  • Md Rassel Raihan - Assistant Professor, Mechanical and Aerospace Engineering, University of Texas at Arlington [email protected]

  • Damien ANDRE - Univ. Limoges, IRCER, UMR CNRS 7315, 87000 Limoges, France

Acknowledgements

This work has been carried out at the Institute of Predictive Performance Methodologies (IPPM), the University of Texas at Arlington Research Institute (UTARI). The authors acknowledge the support from IPPM students and staff for their enormous support throughout the development of the application.

Thanks to the other open source DIC projects like pydic, muDIC, PReDIC py2dic, DICe, etc. for their intense effort in developing different algorithms for DIC applications. These have supported primarily to develop the overall concept and algorithm of RealPi2dDIC.

Support

For any bug reporting and suggestions, please reach out to [email protected] or [email protected]

License

This software is licensed under the GPLv3 License. See LICENSE.md for more details.

Releases

No releases published

Packages

No packages published

Languages