LogiBone Image processing using openCV

after pre processing in FPGA . can we transfer frame to BB and use OpenCV for further processing on Beaglebone. As it will help implement software easily using OpenCV on BB.

Comments

  • Sure ! This is exactly the goal. FPGA are very good at pixel level processing for image processing, while CPU can be useful for image level processing. In our camera demo, the image from the camera goes through a pipeline of filters (Gauss3x3, Sobel3x3, Harris) and is then read by the beaglebone and compressed in jpeg to be streamed in a browser. In this project the images are availabel through FIFO in the FPGA.
  • for Image processing we need raw image . as by compressing it will be loss of some information. as Raw FIFO buffer of image would be usefull to do image processing in OpenCV. 

    Along with that how about triggering camera for single frame grabbing . ant library available for settings up camera external trigger and settings of frame width and height other properties of the CMOS camera.  or Direct V4linux driver can be used for image grabbing and setting properties of CMOS camera.
  • The image that is transferred by the fpga is raw, the streamer does the compression. I will build an example with OpenCV to show how it would work.

    Camera trigger (physical trigger) is not available on the OV7670 but is available on OV7725 (we did not test it). In the current demo, camera parameters are set in the VHDL so cannot be changed. I have started working to make the camera configuration from the software. It is working, but i don't think that we will move to a full V4L driver soon.
    V4L would require quite some work and would be sensor specific, with the need to generate a driver version for each of the sensor reference.
  • Any progress on this matter .

    Regards,
  • Yes indeed ! If you go to www.valentfx.com/skeleton and selct your board you'll see that the component definition now allows to select between multiple libraries (with the cv_filter library that contains sobel and gauss). This allows to compose an architecture that either capture data from the camera or takes pixels from the bus (using a wishbone_fifo and fifo_to_y components). While this allow to create the top level of the architecture, some of the components in the hard_cv library does not comply to this description. I still need to do some testing work on the hard_cv components to make sure they work well in this environment. I'am really sorry for the times it takes but i'am currently working on more than one topic ...

    Regards,

    Jonathan Piat

Sign In or Register to comment.