0

Real time image processing using Raspberry Pi and OpenCV seems very slow when tried out. How can I increase the speed? Is there any other lightweight software that can help me out.

What are the advantages of using SimpleCV instead of OpenCV in Raspberry Pi? Will it help me to increase the speed.

Please post useful links too.

1 Answer 1

2

It's hard to give a decent answer when your question gives little information beyond "seems slow". The RPi actually has a fairly impressive GPU, and I've seen some pretty surprisingly powerful image tracking/recognition projects written with it.

SimpleCV vs OpenCV:

This one isn't as straightforward as it sounds just looking at the title. You're probably assuming that "simple" mean's it's relatively basic and therefore faster. While a common assumption, it is wrong. Taken from SimpleCV's webpage,

SimpleCV is an open source framework for building computer vision applications. With it, you get access to several high-powered computer vision libraries such as OpenCV ...

(emphasis mine)

That means that SimpleCV is actually more complex than OpenCV. It's "simple" from the user's perspective. It's designed to be an easy to use library, not the fastest or strongest kid on the block.

Language Choice:

Your suggestion of SimpleCV implies that you're using Python. While Python is adequate for a great number of tasks, the RPi probably doesn't have enough horsepower to run live image processing with Python. Compared to Java or C, Python is incredibly slow and adds a ton of overhead to anything you're doing. Your task is resource intensive enough that you would probably be better off with Java or even C.

A Common Pitfall for Python Programmers:

I don't know about your use case, but many image recognition projects rely on multithreading to get work done in a reasonable amount of time. If you're doing this with Python, you're probably not actually getting multithreaded performance like you'd expect. Do the nature of how most scripting languages are designed, only one thread is ever executed at a given time.

Switching to a multiprocess application may help, but again, probably not nearly as much as switching to Java or C.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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