vendredi 29 mai 2015

Hardware options for simple image processing

I need to choose a hardware configuration which will be responsible for simple image processing task. The task which I want to be performed is:

  1. Wait for an external synchronization signal. This may be a GPIO signal (primary option) or network signal from NTP server;
  2. Take image data from camera;
  3. Processing: as minimum, threshold image and make binary matrix; as maximum - detect blobs and find their centers;
  4. Send away resulting matrix (or blob's centers);
  5. Goto 1.

Constraints:

  • Performance: results should be sent away at least once per second. 10-30 FPS would be optimal. Higher rate (90-120 FPS) would be ideal finite result :)
  • Budget: 100$ max.

It seems that embedded systems are only ones which could fit the budget constraint. So far I found these options (sorted on price):

  • Cheap smartphone with root access, e.g. Elephone G2 for 99$. Most expensive option. With network and OpenCL support it might do the job with lowest amount of low level stuff to be learned (and thus faster development time), but it costs a lot.

  • 25$ Raspberry Pi (Model A) + 15$ RasPi camera module.

  • C.H.I.P. - this is a recently announced 9$ alternative for RPi which is not available at the moment (29/05/2015).

  • 4$ STM32 board (4$ for Stm32f103c8t6 on aliexpress.com) + 4$ for OV7670 camera module.

Are there any other options which I've failed to find?

I need the cheapest option which will meet time constraint. By default I think to choose Raspberry Pi because I'm sure it will be fast enough since it has fast camera interface, allowing streaming VGA in 90 fps (without processing though). But is still costs 40$ at least, and there is cheaper STM32 option which costs 4 times less. So the question is: will it be enough to use STM32 board?

I think, that since this board has DMA (can read from camera without needing processor) and running on 72 MHz, it might suffice, but I don't know for sure, and don't know how to estimate minimum frequency required for this task.

Also, I found relevant question:

Relevant microcontroller specs for (very) simple image processing

But it didn't help me to figure out if this cheap stm32 board will suffice. It has 64K flash, so it won't be possible to read full image from the camera at once, but that's not necessary, since data may be read by chunks from camera's FIFO buffer and processed sequentially (AFAIK)

Thanks.

Aucun commentaire:

Enregistrer un commentaire