Connect with us

On-board image processing

Discussion in 'Microcontrollers, Programming and IoT' started by johnny_jones, Nov 19, 2012.

  1. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    Hi all, I am trying to get a little robot car to do on-board image processing.

    So far my plans are as follows:
    - microcontroller (ardiuno uno) to sync up the camera, SRAM memory and DSP chip(s)
    - DSP chips will perform image processing algorithms and return result(s) to microcontroller
    - camera is a very small CMOS type (6mm x 6mm x 4.5mm)

    Thoughts:
    - feed the 8 bit data stream from the camera into a 1Mx8 bits (8Mbit total memory)
    - storage of 640x480 images (so I need 921600 locations of 8 bit storage)
    - address line will be controlled by the microcontroller

    DSP Chips:
    - I have never worked with these before, is it similar to FPGA development?
    - I still have to look into my DSP chip needs (multipliers, clock speed and on-chip memory are the most important?)

    I have never done this before, does this sound like a reasonable effort that will not be too hard to debug or verify?

    Thanks
     
  2. CocaCola

    CocaCola

    3,635
    5
    Apr 7, 2012
    Why not simply skip to a single board 'computer' that can do pretty much everything native? Like the Raspberry Pi or one of the other many similar platforms...
     
  3. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    That's genius. I feel silly having committed so many mental resources already to trying to design a digital circuit.
    I mean, this is for a final year engineering project but I do believe our focus is to make the robot drive itself, not design the hardware.
     
  4. BobK

    BobK

    7,642
    1,662
    Jan 5, 2010
    Agree with C.C. I would be looking at a powerful ARM based cpu for this.

    Bob
     
  5. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    Hmm this solution seems to be in the 300-400 dollar range?
     
  6. CocaCola

    CocaCola

    3,635
    5
    Apr 7, 2012
    No the Raspberry Pi is about $25, and there are several others in the sub $50-$100 range... Finding the Raspberry Pi in stock might be a concern, they are in high demand but they are out there you just need to wait it out or pay a premium on say Ebay for a scalped one...


    **Edit do a Google search for 'raspberry pi alternatives' you will easily find a dozen sub $100 solutions that 'should' work...
     
    Last edited: Nov 19, 2012
  7. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    I am not too confident in the raspberry pi solution. From what I have found on the web, it does not seem to do too well implementing intense image processing algorithms in real time.

    I'm thinking I need only 2 frame per second processing (640x480 or lower) but I would like to implement fairly sophisticated image processing (probably through openCV library if feasible).

    For example, one person was complaining that there seems to be some frame buffer issue so their Raspberry Pi solution was always behind the action.

    I guess I need to do more research and talk to some people. But so far, thank you very much for opening my eyes to system on a chip solutions.
     
  8. CocaCola

    CocaCola

    3,635
    5
    Apr 7, 2012
    Well of course there are going to be limitations and only you know your desired outcome and specs that you want to use... The Raspberry Pi was only a base point suggestion based on your initial goals, there are other more powerful 'single board computers' out there... And at $25 you can use two of them and reduce your 2 FPS overhead by half and still not have a huge investment ;) Lots of options out there, and you can still implement additional hardware if you need to...

    In the end an ARM based system is WELL ahead of the Arduino you initially were considering...
     
  9. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    Oh, the arduino was canned as soon as I googled some stuff after the initial response :)

    The best I can hope from the uno now is probably to be a simple controller based on several interrupt signals. Probably will just can this as it can likely be accomplished by any extra resources.
     
  10. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    So I spoke to a professor at my school and though he seemed really pressed for time, I quickly tried to explain my project and he suggested I look into a DSP development board with full API for openCV
     
  11. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    I'm not sure how to proceed from here though. I will probably be googling for a while. Will update when I get more info.
     
  12. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    Is the method of getting the image stream data into the board a major concern?
    I mean, through USB, or other data transfer protocols and channels?
     
  13. CocaCola

    CocaCola

    3,635
    5
    Apr 7, 2012
    I would still be using the ARM development platforms if it was my project... If you feel the need for dedicated DSP to process the image you can include them as well but the ARM developer boards will simplify things like hooking up the a USB camera right from the start... There appears from my very brief glance that openCV has been ported to some ARM chips so that works for you as well...

    At the end of the day this is a big project, I doubt you will find my 'help' on the project as a whole... Possibly some help on the building block components but beyond that unless someone has been there and done it and is will in to share you are going to be having a go of this all by yourself...
     
  14. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    Alright thank you very much for your input.
    I read somewhere that USB was a 'slow' way of getting the image into the board (case in point was referring to a raspberry pi).
    Any comment on the image stream interface?
     
  15. CocaCola

    CocaCola

    3,635
    5
    Apr 7, 2012
    You should have zero issue moving a 640x480 image 2 FPS over USB unless it's choked somewhere... Your run of the mill USB webcam transfers a boat load more over USB without issue... I have not personally played with the Pi so i can't give any hands on input on what might be the issue you read about...
     
  16. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    The issue with the Pi might have been a frame buffer issue. Someone commented that it is unfixable unless they release a version of openCL or openGL I forget which. Forgive me this is beyond my current expertise.

    Also, I was thinking I would like a video output from the board to help debugging and what not. This video out signal can run out from the board on USB or something right? (probably a dumb question, sorry)
     
  17. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    Don't know if links are allowed on this forum but I found a nice web-site article. Here is a quote:

    By contrast, Freescale's i.MX53 processor – with an ARM Cortex-A8 core – is optimised for multimedia applications. Board support packages running on a low cost evaluation board enable the use of operating systems including Linux and Windows CE.

    In the i.MX53, the Cortex-A8 core runs at 1GHzand DDR2/3 memory is supported at 400MHz. The device has two camera interfaces, a 20bit parallel interface and a bandwidth of 3Mpixels at 15frame/s, a total throughput of 45Mpixel/s (see fig 1).

    The i.MX53 offers strong multimedia and graphics capabilities. It includes optimised blocks for the OpenGL ES2.0 graphics library and OpenVG1.1. Design support for computer vision system developers is available through www.imxcommunity.org, Freescale's i.MX forum site, where detailed instructions can be found on creating a cross compiled version of OpenCV for the i.MX53 Quick Start Board.

    This sounds good, I am thinking this board might be the right one. It is $150 from a quick search.
     
  18. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    Now just the decision of going with this board vs a cheaper one :)
     
  19. CocaCola

    CocaCola

    3,635
    5
    Apr 7, 2012
    My advise stew over it for a bit, before you commit... There are lots of options out there as the growth in ARM chips is exploding... As I said Google Raspberry Pi alternatives and look at them all, this will get you most of the popular ARM developer boards, but of coarse there are many others...

    On the ARM subject I just got my two Stellaris LauchPad ARM developer boards in the mail Friday, I actually forgot I ordered them... They are low end ARM chips but I couldn't pass up the presale at $5 a pop delivered a few months back... Even at the current $13 they pack a lot of bang for the buck, but they are slow lower end ARM chips and far from the stuff you are looking at...
     
  20. johnny_jones

    johnny_jones

    13
    0
    Nov 19, 2012
    Cool, it looks tiny and efficient :)

    Do you know some guidelines on how to select a suitable hardware application? I have almost no idea on how to determine if the processor and it's board organization can suit my processing needs. Most of the stuff I have experience with is low-level FPGA design and, well when you design all the logic elements, clock cycle and processing time is a hop skip and a jump away.
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Similar Threads
Loading...
Electronics Point Logo
Continue to site
Quote of the day

-