0
$\begingroup$

I am tasked with creating a system that will recognize fish pulled out of a lake. The system should be able to identify the type of species of fish. Typically, I turn to Arduino for projects like this. However, based on what I've read about image processing, it's sounding like Arduino doesn't have the processing power. Does anyone have any suggestions for development boards and cameras that can easily interface with the board?

I've look at this option, http://www.finboard.org/videos/introducing-finboard?utm_campaign=Embedded%20Processing%20and%20DSP%20Newsletter%2013-Q3%20NA&utm_medium=email&utm_source=Eloqua. It seems like it would be a nice all in one type of thing. Has anyone used anything like this?

Thanks!

$\endgroup$
  • 2
    $\begingroup$ Are you looking for a system on which to develop fish-recognition software, or are you trying to find a platform for fish-recognition software that already exists? $\endgroup$ – Ian Sep 16 '13 at 18:20
2
$\begingroup$

The arduino is a pretty versatile piece of kit that can work alongside pretty much anything. I'd look at the fish identification process and work back to the appropriate hardware.

  1. How many possible species of fish are there in the lake? (The more fish, the more memory you'll need, and the more complex your software will be)
  2. Can these species clearly be told apart by size/weight? (If so, you may not necessarily need computer vision at all)
  3. Can the species be told apart simply by colour? (colour averaging will be significantly easier to process than differentiating finer details, less processing power required)
  4. How fast does this recognition need to occur? (imaging processing can be intensive, pick an appropriately fast system)
  5. Does the system need to be entirely self-contained / on-site? (If not, you could save time by sending the image to a remote computer over wireless/3G for processing)
  6. How small are the distinguishing features? (This will determine what camera resolution / number of cameras / lens you will need)

...etc

In terms of computer vision software, OpenCV should be high on your list.

If you have a good understanding of mobile app development, a smart phone could be appropriate (combined camera & computer, cheap, portable, relatively fast), combined with Google's ADK and you could pass resulting commands to actuators.

The list of hardware capable of running image processing software is rather large. Arduinos, Beaglebone/boards, mbeds, FPGAs, RaspberryPi, fitPC, NUCs, full-sized computers (ATX motherboards etc) and beyond. Up to you what works for your application and budget.

Have a look at some of the HD logitech web cams, for the price and resolution they deliver high frame rates and have support across a good few operating systems.

Good luck!

$\endgroup$
1
$\begingroup$

I don't think it would be powerful enough, but you could look into the raspberry pi. It has an HDMI port and ethernet port, and it allows you to run Linux. The Beaglebone is similar but more powerful. At work when I built an image processing platform for an autonomous ATV we used a miniITX motherboard with an i5 processor and a separate firewire card plugged into the PCIE port (this was for the stereo camera). Computer vision can involve some very intense computation, so I'd probably recommend a similar setup. However, the perception system I built was constantly running in a loop, whereas yours only needs to process one image and it's probably fine if it takes 10+ seconds to operate. When driving an autonomous vehicle, you don't have that kind of time XD. For those reasons, you might be able to get away with the previously mentioned boards.

Here's a video of someone using a webcam to capture video and images (and look at that he's looking at FISH!) with a Beaglebone. He's also using the openCV library, which is something you'd probably want to use as well: http://www.youtube.com/watch?v=8QouvYMfmQo

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.