OpenCV против OpenVX для встроенной системы
Я хочу сделать программу распознавания изображений для Rasberry Pi. Я начал в OpenCV, но только что обнаружил OpenVX, аппаратный ускоритель для OpenCV. Поскольку скорость и эффективность важны для встраиваемой системы, мне интересно, как воспользоваться этой новой технологией. Нужно ли переносить мой код на OpenVX или это программа, которая работает вместе с моей программой OpenCV?
2 ответа
С собственного сайта проекта:
OpenVX может использоваться непосредственно приложениями или для ускорения промежуточного программного обеспечения более высокого уровня, такого как популярная библиотека OpenCV с открытым исходным кодом [...]
... что мне кажется довольно понятным - вы можете использовать OpenVX напрямую или в качестве поддержки OpenCV.
Однако также ясно, что OpenVX в настоящее время является программным обеспечением vapourware - он существует только в виде спецификации и набора заголовочных файлов (без реальной библиотеки).
Предварительный выпуск спецификации позволяет разработчикам и разработчикам предоставлять обратную связь перед завершением спецификации, которое ожидается в течение шести месяцев.
Приведенная выше цитата взята со страницы с недобросовестной датой, но первоначально она была опубликована в пресс-релизе от 19 ноября 2013 года. Таким образом, она может быть почти завершена в качестве спецификации, но, возможно, далека от завершения кода.
Также для использования потребуется поддержка OpenVX для GPU RPi, которая может быть большим барьером для использования на RPi до тех пор, пока некоторые сторонние разработчики не реализуют его.
Просто для того, чтобы обновить этот вопрос чуть более актуальной информацией год спустя, к 2015 году. OpenVX, безусловно, определенно не vapourware:-) Существует пример реализации эталона, и производители выпускают драйверы для других чипсетов.
И, хотя он еще не полностью ускорен, вы действительно можете получить OpenVX на Raspberry Pi - согласно инструкциям здесь (которые включают обсуждение / ссылки о возможном ускорении). Суть Pi в том, что обработка изображений интенсивна независимо от используемых библиотек и в конечном итоге определяется тем, насколько "доступным" является чип Broadcom GPU...
Как уже упоминалось на главной странице OpenVX, в OpenVX появилась новая роль. (сравните с ответом Клиффорда в 2014 году)
Теперь OpenVX нацелен на маломощные приложения реального времени, и мы не можем найти картину, которая подразумевает, что OpenVX больше не является базовым компонентом Opencv.
Сравнительная таблица указывает на их разный охват в настоящее время:
- OpenCV: очень широкие функции визуализации и визуализации, тысячи различных функций.
- OpenVX: Сосредоточиться на основных аппаратно-ускоренных функциях для мобильного зрения - но расширяемо. Использует внешний / собственный API камеры