JuliaImages / ProjectiveGeometry.jl

Projection, Warping, Transforms, Camera Geometry and 3D Reconstruction.
Other
2 stars 6 forks source link

Roadmap #1

Open mronian opened 7 years ago

mronian commented 7 years ago

Guide - http://www.cse.iitd.ernet.in/~suban/vision/geometry.pdf

SimonDanisch commented 7 years ago

Please check out what we already have in: https://github.com/peterkovesi/ImageProjectiveGeometry.jl https://github.com/IHPSystems/VLFeat.jl/tree/master/src https://github.com/JuliaGL/GLAbstraction.jl/blob/master/src/GLMatrixMath.jl https://github.com/timholy/AffineTransforms.jl

mronian commented 7 years ago

@SimonDanisch Thanks a lot!

mronian commented 7 years ago

https://github.com/FugroRoames/CoordinateTransformations.jl

andyferris commented 7 years ago

Yes in CoordinateTransformations.jl we have begun implementing some of the very basic camera things (perspective transformation). In the new ImageTransformations.jl library I was hoping that we would have the warps and lens corrections and so on. Also, 3D reconstruction is very interesting to us so I would love to see some infrastructure for this somewhere (maybe we need a Ray type or something).

The short story is - we would love to collaborate in whatever way.

mronian commented 7 years ago

Awesome!

P.S. Linking JuliaImages/ImageTransformations.jl#2 here.

c42f commented 7 years ago

To continue the discussion from JuliaImages/ImageTransformations.jl#2 -

Yes, it would be great to collaborate. Perhaps you could start by giving a rough rundown on what you're trying to achieve, who is involved, and what is the scope of the project?

Some very light background on ourselves - myself, @andyferris @awbsmith and many others at Fugro Roames are processing lidar and camera data from large scale aerial surveys, and other things. We're processing data at scale so we're generally trying to build numerical code which is robust and fast. (Of course it's also very nice if it's aesthetically pleasing inside and fun to use. That's hard but a lot easier in julia than other languages I've tried for numerical computing :-) )

c42f commented 7 years ago

Huh, I didn't know about ImageProjectiveGeometry.jl, things are changing fast. @awbsmith you should check that one out!

mronian commented 7 years ago

My idea of this project was to have most of the stuff mentioned in my first comment on this thread but I am sure Camera Geometry involves a lot more.

I am not sure if anyone else has the time to be involved right now :thinking: I was a GSoC student this year (worked on ImageFeatures.jl) which got me interested in JuliaImages. I was just looking to contribute more useful functionality to JuliaImages in my free time and since I have some experience with stereo vision, I thought of working on this package. In case you have some other ideas for how this package should turn out, I would be happy to learn and work on that :smile:

c42f commented 7 years ago

@mronian have you had a look through ImageProjectiveGeometry? There's a lot of great stuff in there, and it would be crazy to rewrite it. As noted in the Contribution section of the readme it's in a somewhat matlab-like style so there's lots of work to do, but a lot of useful stuff is there, and well documented at that.

@peterkovesi I'm admiring your package from afar (haven't used it yet though), and it sounds like @mronian will have some time to work on this kind of stuff. Perhaps you've got some additional opinions about where to start, what is missing, etc, in addition to your readme? One option is to attempt to somehow marry ImageProjectiveGeometry (especially projective.jl) with the work we've been doing in StaticArrays and CoordinateTransformations. Perhaps that would be a nice combination?

peterkovesi commented 7 years ago

@c42f apologies for this late response, I have been totally off the net away on holiday. It is really good that there is growing interest in computer vision in Julia. My aim in ImageProjectiveGeometry was simply to recreate in Julia a set of MATLAB functions that I had built up over the years. A lot of this is built around material from Hartley and Zisserman's book. I still have some more code to be added to the package (this included applying homogeneous transforms to images and stereo rectification of images) but it needs some refactoring and cleaning up first. I also want to fix up some very clumsy implementations in my utilities.jl, especially the morphological code, which should then be placed in another package.

As for the future direction of things I have no particular feelings other than we do want to get a good coverage of all the standard low level image processing functions available in Julia as soon as possible (even if their implementations are not the most optimal). All too often when I am trying to implement something I find basic things that are missing and I have to stop and try to write something that will do the job. Until this is resolved image processing/computer vision in Julia will only be for the keen enthusiast rather than the general user. Also, as far as I am concerned, good documentation is crucial. Code that is not documented properly and cannot be used readily by others might as well not exist. (I should get on top of using Documenter!)