What are the recommendations for building OpenCV 3.0 in presense of respectable number of 3d party components? - opencv

When I desided to build opencv library I have found out that there are number of compiler options available that does nearly the same - speed up algorithms. For example: TBB, IPP, CUDA, pthreads, Eigen2/Eigen3, OpenCL and others. Are there any benchmarks or known recommendations of what options are better than others and what caveats should be known?

It depends on your system needs.
CUDA for example is relevant only if you have NVIDIA grpahic card, IPP only if you have the correct intel processor.

Related

Can I run DeepLearning4J on an AMD GPU?

I think DeepLearning4j uses CUDA, which is a NVIDIA thing. I bought this computer for things like neural networks but now I'm disappointed that I have an AMD GPU. Is it somehow possible that I can run DeepLearning4J on AMD?
It's actually not "deeplearning4j" you should be looking at.
Dl4j uses a tensor library which talks to the hardware called nd4j.
Nd4j has "backends" you can plugin. The available backends are various cpu architectures ranging from IBM's power to Android and x86.
GPU wise yes we only support cuda. It's not a simple binary answer like what you're describing.
In theory, we could add opencl at some point but then "which version of opencl"?
No, you cannot use dl4j with AMD GPU

SIFT hardware accelerator for smartphones

I'm a fresh graduate electronics engineer and I've an experience on computer vision.I want to ask if it's feasible to make a hardware accelerator of SIFT algorithm - or any other openCV algorithms - to be used on smartphones instead of the current software implementation?
What are the advantages (much low computation, lower power, more complex applications will appear, ...) and the disadvantages(isn't better than the current software implementation, ...)?
Do you have an insight of that?
Thanks
You might be interested to check NEON optimizations - a type of SIMD instructions supported by Nvidia Tegra 3 architectures. Some OpenCV functions are NEON optimized.
Start by reading this nice article Realtime Computer Vision with OpenCV, it has performance comparisons about using NEON, etc.
I also recommend you to start here and here, you will find great insights.
Opencv supports both cuda and (experimentally) opencl
There are specific optimizations for Nvidia's Tegra chipset used in a lot of phones/tablets. I don't know if any phone's use opencl

CUDA Performance comparison for Computer Vision applications

I am currently working on performance comparison of various computer vision applications. The research is based on evaluating how these different algorithms perform on CUDA and OpenMP.
Do you have any source codes in CUDA as well as the serial implementation in C for these kind of applications?
Where can I find them?
The CUDA SDK is full of examples, compiled both on GPU and CPU.
sources are included.
Here is a list of the samples you get by installing it.
You could start from here :)

Open-source replacement of Intel Image Processing library

Is there any open-source library to replace proprietary Intel Image Processing Library? At first I need to do image loading-saving, filtering (3x3,5x5 and so) with arbitrary kernel. Support of manychannel images with pixel values stored as float will be wonderful. Also I need a library with good documentation.
PS. both linux/x86 & windows/x86. I want to use it with mingw32 on windows.
PPS. The first task I need to solve using this library is to compute an fractal dimension.
Thanks
There is opencv
If you want to go Cuda then the Nvidia Performance Primitives
OpenCV is probably what you're looking for.
The latest version (2.2) contains both SSE optimization a-la IPP and CUDA implementations.

Is OpenCV 2.0 optimized for AMD processors?

I know that in the past OpenCV was based on IPP and was optimized only for Intel CPUs. Is this still the case with OpenCV 2.0?
History says that OpenCV was originally developed by Intel.
If you check OpenCV faq, they'll say:
OpenCV itself is open source and written in quite portable C/C++, it runs on other processors already and should be fairly easy to port (for example, there are already some CUDA optimizations on NVidia. On the other hand, OpenCV can sometimes run much faster on Intel processors (and sometimes AMD) because it can take advantage of SSE optimizations. OpenCV can be compiled statically with IPP libraries from Intel also which can speed up some function.
I have used it on other processors and different OS and I've always been very happy, including for video processing applications.

Resources