Pull to refresh

Comments 12

Спасибо за новость и библиотеку.

А OpenCL планируется развивать параллельно с CUDA и многопоточностью или потом все на него переедет?
Планируется параллельное развитие всех этих направлений. У каждого из них есть свои плюсы и минусы.
Можете рассказать подробнее про микромодули? В каком виде они будут распространяться? Какие планы по поводу софта добавления пакетов? Будет очень круто, если удастся создать экосистему вроде MatlabCentral или CRAN! На всех парах к reproducible research :)
Ваши вопросы определенно на отдаленную перспективу :) Экосистема это отличная цель, но к сожалению увидим мы ее не скоро… И прежде чем приступать к ее формированию, нужно решить ряд сугубо технических задач внутри самой библиотеки. И о какой-то конкретике говорить пока еще рано, поэтому обрисуем идею в общих чертах.
В свое время OpenCV уже пережила серьезную переделку, когда старые модули (core, aux, ml и highgui) были разбиты на ряд модулей поменьше. Это существенно упростило жизнь разработчиков, которые использовали OpenCV в реальных проектах, поскольку вы зависели только от нужных вам модулей. Это позволило упростить поддержку и сэкономить место на конечных устройствах.
То, что предполагается сделать сейчас — это продолжение этого процесса, когда вся библиотека разбивается на большее количество модулей, но меньшего размера и с более понятными ответственностями. Фактически, разработчики получат возможность собирать свою версию библиотеки, отбирая только необходимые модули, и при необходимости добавляя свои собственные.
Уже сейчас, конфигурируя сборку OpenCV при помощи CMake вы можете отобрать модули, которые необходимо собрать, и выключая ненужные модули. Это например активно используется при построении под Android, поскольку например CUDA и OpenCL там не поддерживаются, но нужен Java API и несколько специфических модулей. Кстати стоит почитать про «фиктивный» модуль opencv_world, позволяющий упростить себе жизнь при использовании такой кастомной сборки.

Таким образом, все что изменится на первых порах — это раскладка библиотеки по большему числу узконаправленных модулей. Плюс станет удобно подкладывать свои папочки с кодами таким образом, чтобы OpenCV считала их своими модулями. Впоследствии стабильные сторонние разработки могут добавляться в состав официальной версии библиотеки. Ну а когда будет закончена эта техническая работа, можно будет всерьез задуматься и про экосистему! :)
«несколько важных алгоритмов работают быстрее на двухъядерных чипах»
А можете плз рассказать какие алгоритмы оптимизированы? В частности интересует cvFindContours. Спасибо.
Вот findContours скорее всего все еще работает в один поток. В OpenCV сейчас идет попытка вставить многопоточность во все места, где это можно сделать задешево. Например, во многих случаях можно картинку нарезать на полоски, и обрабатывать их независимо. Но даже это еще далеко не везде сделано, и мы продолжаем увеличивать покрытие. Если хотите получить актуальный список функций, которые распараллелены, я бы предложил сделать grep parallel_for по исходникам, вхождений будет не очень много, но как было сказано, это один из приоритетов на будущее :) Ну и конечно, если у вас появится своя реализация, есть все шансы добавить ее в библиотеку!
Пример 15puzzle на arm v7 и android API v15 запускаться отказался, хм.
Милости просим в нашу группу поддержки, OpenCV4Android. Желательно указать марку устройства, версию ОС и откуда был получен пример (Google Play, SDK, TADP). Попробуем помочь!
Классная и удобная штука. Но для андроида она требует установки своего apk. Это ограничение как то можно обойти? Не пускают в продакшн с таким вот безобразием мой код :)
Sign up to leave a comment.