Skip to content

OpenCV Implementation of Image Similarity Metrics

dushyantgoyal edited this page Aug 22, 2012 · 22 revisions

Week 1: 21.05.2012 - 25.05.2012

A. Understanding and OpenCV Implementation of Image Similarity Metrics

  • MSE
  • PSNR
  • Image Quality Index
  • SSIM

B. Using Makefile to build the binary

C. Generating Test Images

25.05.2012

  • Writing the script files to generate test images in Matlab.
  • Testing the output of the implementations in OpenCV with that of Matlab implementations.

Week 2: 28.05.2012 - 01.06.2012

A. Implementation of Algorithm Classes of the Similarity Metrics

B. SSIM and Image Quality Index Map created and written.

C. Generation of metrics for different color spaces added -

  • GRAYSCALE
  • RGB
  • YCbCr

D. Tested these implementations on a set of colored and gray images.

Week 3: 04.06.2012 - 08.06.2012

A. Fixing some bugs

B. Reading Multi-scale SSIM paper

C. MS-SSIM

  • Adding Multi-Scale Similarity Metric (MS-SSIM)

  • Generating index_maps at different levels.

Week 4: 11.06.2012 - 15.06.2012

A. Testing code for large sized images of the order of 4k x 4k

B. Fixing Memory Leaks

C. Generating Profile using

  • gproof

  • valgrind

Week 5: 18.06.2012 - 22.06.2012

A. Preparing differ machine

B. Problem generating profiling with OpenCV support

Week 6: 25.06.2012 - 30.06.2012

A. Success in compiling OpenCV libraries statically

B. gprof support enabled

C. Analysis of Profiling Data - finding bottlenecks for better performance

Week 7: 02.07.2012 - 06.07.2012

A. Researching into parallelization methods- OpenCL, CUDA

B. Finalizing on OpenCL

C. Implementation of Basic functionalities of a few functions and testing them. For example, Add, Multiply, Pow.

Week 8: 09.07.2012 - 13.07.2012

A. Implementing various kernels

B. Checking the performance improvements

C. Reading research papers for implementing the gaussian filtering kernels.

Week 9: 16.07.2012 - 20.07.2012

A. Implemented MSE kernel

B. Implemented SSIM kernel in two parts - since there exists a dependency within the 2. The latter kernel required to use the output of the first one.

C. Debugging OpenCL kernels.

Week 10: 23.07.2012 - 27.07.2012

A. Implemented Image Quality Index Kernel

B. Implemented MS_SSIM kernel

C. Checked for the performance issues

Week 11: 30.07.2012 - 03.08.2012

A. Combining the 2 implemented classes

B. Implementing the command line versions

Week 12: 06.07.2012 - 10.08.2012

A. Integrating with differ framework

B. Possibly testing on GPU

Week 13: 13.07.2012 - 17.08.2012

A. Testing on GPU (Failed but helped in fixing kernel implementations)

B. Debugging openCL kernels

C. Adding few things (help command, etc)

D. Writing output/errors in xml format

Week 14: 20.07.2012 - 24.08.2012

A. Splitting files into different headers and source files

B. Documentation of code

C. Testing

Clone this wiki locally