2011-12-31 7 views
5

Я работаю над системой зрения робота, и его основная цель - обнаружить объекты, я хочу выбрать одну из этих библиотек (CImg, OpenCV), и у меня есть знания обо всех этих.самая быстрая библиотека обработки изображений?

У робота, который я использую, есть Linux, 1 ГГц процессор и 1 Гб, а я использую C++, размер изображения - 320 пикселей.

Я хочу иметь обработку изображений в режиме реального времени около 20 из 25 кадров в секунду. На ваш взгляд, какая библиотека более мощная, хотя я тестировал оба, и у них одинаковое время процесса, open cv немного лучше, и я думаю, это потому, что я использую указатели с открытыми кодами cv.

Пожалуйста, поделитесь своей идеей и вашей причиной.

спасибо.

+2

Лучше всего представить такой вопрос обработки изображений на самом сайте DSP-Q & A. Проверьте это: http://dsp.stackexchange.com/ –

ответ

5

Я думаю, что вы можете получить лучшую производительность при интеграции - OpenCV с IPP.

Смотрите эту ссылку, http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-intel-ipp-open-source-computer-vision-library-opencv-faq/

Вот еще одна ссылка http://experienceopencv.blogspot.com/2011/07/speed-up-with-intel-integrated.html

Далее, если вы заморозить алгоритм, который прекрасно работает, как правило, вы можете изолировать алгоритм и работать ваш путь к делать серьезную оптимизацию (например, оптимизация памяти, портирование на сборку и т. д.), которые могут быть не готовы к использованию.

+0

Но IPP не является бесплатным :) – ajlajlajl

+0

Вы должны проверить, что IPP может работать в вашей встроенной системе. У OpenCV есть огромная пользовательская база, поэтому вы должны пойти с ней. –

+0

OpenCV - это ответ. OpenCV будет самой быстрой и мощной библиотекой, которую вы можете использовать. – ahoffer

1

Это действительно зависит от того, что вы хотите сделать (какие объекты вы хотите обнаружить, точность, какой алгоритм вы используете и т. Д.) И сколько времени у вас есть. Если это для общего компьютерного зрения/обработки изображений, я бы придерживался OpenCV. Как сказал Дипан, подумайте о дальнейшей оптимизации. По моему опыту оптимизации для Computer Vision узкое место обычно связано с пропускной способностью межсетевого обмена (или самой памятью), и поэтому вам придется торговать циклами (вычислениями), чтобы сэкономить на связи. Поймите алгоритм, который действительно подходит для дальнейшей оптимизации алгоритма (который порой может дать большие улучшения по сравнению с компиляторами).

Смежные вопросы