Hello, I'm a newbie in the field of Embedded systems. I have a at91sam9263 board with me and project deals with Real Time Image Processing. I want to know how to integrate OpenCV and uvision. Can any one throw up some light on this...
You need a processor at least 10-20 powerfull than the at91sam9263 to get a decent result in OpenCV (or for any Image processing application).
Thats not true in any case. We use an AT91SAM9260 and do image processing (edge detection, homogeneity analysis and others) with a good performance. The problem is, that the openCV code is not optimized for this specific processor, thus you have to optimize your code by hand - or just write it all by hand...
Hello Stefan, If possible can you give me more details about your project. It will be very helpful.
Praveen Krishnakumar, is this also you: http://www.keil.com/forum/docs/thread15525.asp ?
Hey no dude.... But that guy's project is almost similar to mine..... thats awesome....
But that guy's project is almost similar to mine
Hopefully, not too similar...
No. I'm not allowed to.
You right that can be used......and the performance can be improved doing optimizations in the primitives.....but AT91SAM9260 is NOT A MCU for Image processing and is a BAD choice for that propouse.
Hey I'm not asking for any algorithm or any code It will be very helpful If you can tell me the tool chains you have used... and the libraries for dealing with images.....
BAD choice for that propouse
Why? If you use well choosen algorithms, you may achieve a good performance anyway. It depends on your application. The main reason for us to choose this MCU was the ImageSensorInterface. And all algorithms were optimized to not use floating point arithmetic.
@Praveen Krishnakumar: We use MatLab for evaluating the algorithms and then we rewrote them in C.
Would you care to justify that with some specific reasons?
Image processing Algorithms can get a big boost if you can vectorize them. Intel processors have SIMD set of instructions or for example ARM has NEON. Obviously they have a float point processor too.
OpenCV for example was done by INTEL and they provide primitive optimizations...How are they done? Using SIMD.
The AT91SAM9260 is a general application processor; it has an ARMv5 instruction set with some basic DSP extensions, not even a Float Processor Unit.
YES!!! I don't care if you want to hit that nail into the wall with your screwdriver!
"The main reason for us to choose this MCU was the ImageSensorInterface. And all algorithms were optimized to not use floating point arithmetic."
That’s a poor reason to choose a SoC for Image Processing.
SIMD may be nice, but there are a huge number of reasons why people may not need, or want to pay for, a processor with the Intel SIMD instructions.
When you don't need the extra speed, you may want to optimize for cost, or current consumption, or PCB surface area, or long-term availability, ... One persons optimum hardware is probably not another persons optimum.
"SIMD may be nice, but there are a huge number of reasons why people may not need, or want to pay for, a processor with the Intel SIMD instructions". Intel processors like Atom are much expensive than the AT91SAM9260, but this is not the case with the OMAP3550 that the beagleboard has. I mentioned INTEL because they wrote OpenCV and they know best how the library has to be optimized.
"When you don't need the extra speed, you may want to optimize for cost, or current consumption, or PCB surface area, or long-term availability" This is a good general advice. But if you do OMAP3550 vs. AT91SAM9260 analysis in all those points, I would like to know in which of them the AT91SAM9260 is better for this kind of application.
"When you don't need the extra speed, you may want to optimize for cost" This is not always true in the embedded world, not always a more powerful processor means that will cost you more. Do you know how much an AT91SAM9260 board cost? You will get a surprise if you compare prices, I have some examples showing that AT91SAM9260 in some cases is more expensive and is just a toy compared to the Cortex A8+TI Dsp processing power. Also, I would like to add that there is a big risk, if your requirements change in the future and your processing power is tight at the present.