arsenal9971 / Shearlab.jl

Shearlab is a Julia Library with toolbox for two- and threedimensional data processing using the Shearlet system as basis functions which generates an sparse representation of cartoon-like functions.
https://arsenal9971.github.io/Shearlab.jl/
Other
31 stars 9 forks source link

updating to v0.6, working with conv2 #14

Closed dsweber2 closed 6 years ago

dsweber2 commented 6 years ago

first, thanks for the Julia implementation of shearlets; this has been a great resource! In attempting to use Shearlab in v0.6, I've run into one major issue, and I haven't spent enough time with the code to be sure what intended behavior is exactly.

This is on line 177 of getShearlets2D.jl. The problem here is that in v0.6 and beyond, transpose no longer returns a matrix. I tried changing it to the following

wedgeHelp = conv2(directionalFilterUpsampled'',
                            [filterLow2[size(filterLow2,2)-shearLevel]' zeros(length(filterLow2[size(filterLow2,2)-shearLevel]),size(directionalFilterUpsampled,2)-1)])

which creates a matrix with filterLow2 as a column vector in the first column. It runs fine, but when I looked at the resulting shearlets, they seemed to oscillate much more wildly than they're supposed to. At this point, I wanted to check with you what the convolution is supposed to be doing.

The other changes are trivial-- just doing what deprecation warnings tell me to do. So far, this is just change functions to be pointwise, as in this issue and this issue

arsenal9971 commented 6 years ago

Dear David, I will take a look on that as soon as possible (at the moment I am a little busy with the PhD).

Any other comment or issue are more than welcome, thanks for using the library!

arsenal9971 commented 6 years ago

Dear David,

Thanks a lot for the issue, I will take a look as soon as possible and fix it.

Could you actually import Shearlab on julia v0.6?, the last few months I have been so busy with my PhD that I did not have enough time to solve the deprecation for julia v0.6, therefore any help is more than welcome. I am also very much encouraged to do it now in the weekends and weekday evenings.

I also suspect that there are some issues with ArrayFire by the change of version, including some changes on the way that convolution and matrix transposing used to work in the old version of ArrayFire.jl (In JuliaCon of this year I actually met with the developer of this API and he fixed the issues that I caught, but I could change my code since then); since I tried to do a non so painful gpu implementation, I tried to get a midpoint of the accelerated convolution functions in ArrayFire.jl and the classical convolution functions in julia-base; therefore some code lines with this operations might look a little bit weird.

I would like to know also in what have you been using Shearlab, I see in your repository that you implemented the Scattering Transform using Shearlab which is amazing, do you have any Jupyter notebooks with some demos or experiments with that?

Any other issue/question/comment, please dont hesitate on doing it.

dsweber2 commented 6 years ago

I was able to call using Shearlab without problems, but I've actually been using the non-gpu code, so it's possible that ArrayFire also has problems; eventually I'll try this out. I believe I resolved the issue I was having above, I seem to have copied a parameter incorrectly in my notebook, leading to some confusion. I believe that I've fixed the conv2 issues for both versions, but I currently don't have a working gpu version so I can't check there.

The shearlet scattering transform (shattering transform) is my primary application of shearlets at the moment. As of right now, the scattering transform using shearlets is still preliminary, as I had to put it on hold for other PhD work. I pushed a simple example basicUsage.jl in the folder ShatteringExamples if you wanted to investigate it.

arsenal9971 commented 6 years ago

@dsweber2 Sorry it took me time to merge, your changes are correct; could you call the pull request for the solution of the conv2 issue?

arsenal9971 commented 6 years ago

I am also having troubles with travis, since originally the build does not work at the moment thanks to the ArrayFire repository that has been change to another url, I already fixed that, but since the build of your PR was made before I fix this, TRAVIS CI is now still having that error (https://travis-ci.org/arsenal9971/Shearlab.jl/jobs/288921873). Do you have any idea how to fix this issue?

dsweber2 commented 6 years ago

I'm not sure, having not worked with Travis before, but when I look at the config and followed the link for the wget command, the version number is no longer up to date (3.4.2 vs 3.5). There may be a way to fix this permanently by using a regex in some way, but I'm not sure.

Looking at the changes in the URL's that you made, they were just for windows, correct? Are you able to build it on your machine with Pkg.build("Shearlets")?