Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

deconvLR kernel requirement

howardzzh
Beginner
751 Views

Hi there,

I wastrying out the Lucy-Richardson deconvolution function inIPP 5.3.1 and I ran into some problem. In particular, I've found that the function does not produce expected result (LR does not converge) whena kernelis not symmetric. The deconvoluted result seems to be goodonlywhen the kernel is symmetric in both horizontaland vertical directions.I was wondering if symmetryis a built-in requirement forall kernels, or if I had made some kind of mistake. I was trying to find examples online butwithout success, soI'd really appreciate any help here.

Thanks
Howard

0 Kudos
4 Replies
PaulF_IntelCorp
Employee
751 Views

Hello Howard,

I'm not an expert regarding the Lucy-Richardson transform, but I did a quick look at the original paper (see this Wikipedia pagefor a link to that paper) and it appears that all examples in that paper use a symmetric ROI.

Based on an existing forum thread and some very old support notes on the subject, it appears that the kernelSize parameter is key to the transformation and specifies both the width and height of the area being operated upon; which would confirm your idea that the function only operates on a symmetric matrix of pixels. Please see the following forum thread for more information:

http://software.intel.com/en-us/forums/showthread.php?t=56102

Also, there was a bug in an older version of the function related to odd kernel sizes. Have you tried the 6.1 version of the library?

I will ask our engineering experts to review this thread and see if they can shed more light on the subject.

Paul

0 Kudos
howardzzh
Beginner
751 Views

Thank you, Paul,

I tried the the same code using IPP 6.1.1 and got the same results. It still does not work for asymmetric kernels (or point spread functions (psf)).

The original Richardson's paper used the following psf

S = [ 2 4;
6 8 ],

which is not symmetric, and Richardson-Lucy deconvolution is typically used for general psfs, but mostly square ones, hencethe equal width and height (my guess).

For all my experiment, I tried 5 x 5 square psfsto keep it simple. I'm listing some typical ones I tried; these are not normalized tosum to onebelow, but theyare wheneven I use them for convolution and deconvolution.

1 perfect symmetry
------------------------------------

0 0 1 0 0
0 0 1 0 0
1 1 1 1 1
0 0 1 0 0
0 0 1 0 0[ works well ]

10 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
10 0 01 [ works well ]

2
-------------------------------------

0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0 [ surprisingly, this works ]

1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1 [ but this does not work, deconvolution result diverges]

Also not working are one single horizontal bar or vertical bar in the middle.

3
--------------------------------------

0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0[ if we convolute with this kernel, then the best working deconvolution kernel is as follows]

0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
00 0 0 0 [ Yeah, if we convolute with the above and deconvolute with the left, then the result is pretty good]

Besides these, I found that all symmetric ones (even complicated ones) work well, but non-symmetric ones tend not to work. Also, the more we deviate from symmetry, the worse the deconvolution result gets. At this point, I am totally clueless as to why this is the case. I hope you guys can shed some light on this. Thank you.

Best Regards
Howard

0 Kudos
Igor_B_Intel1
Employee
751 Views

Hi,

According Richardson's paper algorithm convergence isn't proved. By the way his psf isinvertible matrix.

Igor

0 Kudos
howardzzh
Beginner
751 Views

Thank you, Igor,

Invertiable matrix, that seems to explain the results I got.I guess IPP implemented the original paper, to which I should have paid enough attention. Thank you for your insight.

Best Regards
Howard

0 Kudos
Reply