Аналогично заблокирована организация нижегородского университета, которая использовалась мной для ведения практики. Все private репозитории недоступны даже в read-only. На обратную связь GitHub не отвечает.
Если что-то сломано в OpenCV — просим открыть баг репорт. Вообще, билинейная интерполяция это одна из священных войн всего CV где решается вопрос непортируемости и нет победителей и не будет. В том же DL нельзя так просто исправить даже забагованную реализацию, потому что все натренированные к тому моменту сети разойдутся. Взять пример How Tensorflow’s tf.image.resize stole 60 days of my life. А для параллелизма есть встроенный в OpenCV parallel_for о применении которого можно почитать в нашей статье https://m.habr.com/ru/company/intel/blog/489884/.
Не совсем понял мысль. На то он и удаленный доступ к железу чтобы сделать измерения и сравнить производительность, стоимость, энергопотребление. Разработчику не приобретут всех конфигураций на руки потому что он выберет только одну в итоге. Тут — зашёл и замерил.
Надеюсь, c последней версией проблем с OpenCV уже не будет и сможете перебраться) Кстати, можно попробовать OpenCV.js с запуском сети прямо из браузера а хранить проект на GitHub Pages.
Уж такой вот он TensorFlow и Keras, что как минимум по три варианта подграфа хранится в сохраняемых моделях для, казалось бы, одних и тех же слоёв, поэтому выкручиваемся через поиск паттернов или по аналогии с Caffe, с текстовым графом.
На самом деле вроде WASM и должен лежать по умолчанию, может та что 300КБ это урезанная версия? Если не ошибаюсь, часть WASM сборки составляет предкомпилированный бинарник и, при загрузке в браузер, там дополнительно происходит какая-то докомпиляция на лету с учётом браузера/железа. Из-за этого производительность в случае WASM должна быть лучше, но может дольше загружаться.
Про сборку на всю ночь не верю, простите. 1) Иногда пользователи собирают то, что им не потребуется (модули OpenCV), поэтому есть опция компиляции -DBUILD_LIST, 2) Многие не знают про сборку в несколько потоков (make -j4 для Linux или cmake --build . --config Release -- /m:4 для Windows).
Так вот если вы точно знаете, что такие модули как dnn, gapi, features2d вами не используются, то зачем строить? Собирайте только то, что нужно, -DBUILD_LIST опция во времят CMake.
Также, эта библиотека реализована на языках C/C++, что гарантирует быстродействие системы, а ее структура поддерживает различные модули, которые могут быть отключены с целью увеличения производительности.
Это конечно не так, отключение модулей никак не сказывается на производительности. На то она и модульная структура. Но вот на скорости сборки и количестве результирующих библиотек можно сэкономить. Просто укажите флагом только те модули, которые действительно нужны (-DBUILD_LIST=core,imgproc например).
Пожалуйста перестаньте советовать собирать OpenCV из исходного кода на RPI. Всё равно неправильно (не включен NEON в данной статье, ну или по крайней мере этого не видно из скриншота summary во время выполнения CMake шага). Если нужен OpenCV на Python и не требуется самого нового функционала, используйте pip.
Я бы настоятельно рекомендовал попробовать более свежую версию. 4.1.1 от июля 2019 и с тех пор было несколько раудов значительных улучшений качества: #15338, #15356, #15637.
Для оценки качества построенных детекторов QR-кодов мы использовали модуль декодирования штрихкодов из библиотеки компьютерного зрения с открытым исходным кодом OpenCV.
Можно уточнить, а сама локализация QR кода тоже выполнялась с помощью существующего в OpenCV алгоритма? Какая версия библиотеки использовалась?
Сегодняшняя блокировка Medium трехбуквенной конторой чем поможет?
А можно просто использовать opencv.js. Поддержка моделей в формате TFLite уже есть. А в ближайшем будущем представлю патч для квантованных сетей.
Аналогично заблокирована организация нижегородского университета, которая использовалась мной для ведения практики. Все private репозитории недоступны даже в read-only. На обратную связь GitHub не отвечает.
При всем уважении к проекту и задачам, который он решает, можно без убийц?
Если что-то сломано в OpenCV — просим открыть баг репорт. Вообще, билинейная интерполяция это одна из священных войн всего CV где решается вопрос непортируемости и нет победителей и не будет. В том же DL нельзя так просто исправить даже забагованную реализацию, потому что все натренированные к тому моменту сети разойдутся. Взять пример How Tensorflow’s tf.image.resize stole 60 days of my life. А для параллелизма есть встроенный в OpenCV parallel_for о применении которого можно почитать в нашей статье https://m.habr.com/ru/company/intel/blog/489884/.
cv::ximgproc::guidedFilter?
Не совсем понял мысль. На то он и удаленный доступ к железу чтобы сделать измерения и сравнить производительность, стоимость, энергопотребление. Разработчику не приобретут всех конфигураций на руки потому что он выберет только одну в итоге. Тут — зашёл и замерил.
На случай если нет железок, то у Интел есть DevCloud: https://devcloud.intel.com/edge/ (Xeon, Atom, Core, FPGA, VPU, HDDL).
Sourceforge автоматически берёт бинарники с GitHub Releases страницы
Последний релиз 4.3.0, просто не доступен через pip на данный момент.
Надеюсь, c последней версией проблем с OpenCV уже не будет и сможете перебраться) Кстати, можно попробовать OpenCV.js с запуском сети прямо из браузера а хранить проект на GitHub Pages.
Уж такой вот он TensorFlow и Keras, что как минимум по три варианта подграфа хранится в сохраняемых моделях для, казалось бы, одних и тех же слоёв, поэтому выкручиваемся через поиск паттернов или по аналогии с Caffe, с текстовым графом.
На самом деле вроде WASM и должен лежать по умолчанию, может та что 300КБ это урезанная версия? Если не ошибаюсь, часть WASM сборки составляет предкомпилированный бинарник и, при загрузке в браузер, там дополнительно происходит какая-то докомпиляция на лету с учётом браузера/железа. Из-за этого производительность в случае WASM должна быть лучше, но может дольше загружаться.
Да, пока можно использовать OpenCV.js отсюда: http://docs.opencv.org/master/opencv.js. Но рекомендую скачать один раз и класть рядом. Скоро ещё возродим npm пакет https://www.npmjs.com/package/opencv.js.
Про сборку на всю ночь не верю, простите. 1) Иногда пользователи собирают то, что им не потребуется (модули OpenCV), поэтому есть опция компиляции
-DBUILD_LIST
, 2) Многие не знают про сборку в несколько потоков (make -j4
для Linux илиcmake --build . --config Release -- /m:4
для Windows).Спасибо! Видите также строчку
?
Так вот если вы точно знаете, что такие модули как
dnn, gapi, features2d
вами не используются, то зачем строить? Собирайте только то, что нужно,-DBUILD_LIST
опция во времят CMake.Если вы про NEON, то это опция оптимизации: https://github.com/opencv/opencv/wiki/CPU-optimizations-build-options
Если сборка через Docker (так или так) не подходит, то проверьте хотябы что выставлены
-DCPU_BASELINE=NEON -DENABLE_NEON=ON
и CMake понимает их:
Плюс, вы сами написали:
Это конечно не так, отключение модулей никак не сказывается на производительности. На то она и модульная структура. Но вот на скорости сборки и количестве результирующих библиотек можно сэкономить. Просто укажите флагом только те модули, которые действительно нужны (
-DBUILD_LIST=core,imgproc
например).Пожалуйста перестаньте советовать собирать OpenCV из исходного кода на RPI. Всё равно неправильно (не включен NEON в данной статье, ну или по крайней мере этого не видно из скриншота summary во время выполнения CMake шага). Если нужен OpenCV на Python и не требуется самого нового функционала, используйте pip.
Я бы настоятельно рекомендовал попробовать более свежую версию. 4.1.1 от июля 2019 и с тех пор было несколько раудов значительных улучшений качества: #15338, #15356, #15637.
Можно уточнить, а сама локализация QR кода тоже выполнялась с помощью существующего в OpenCV алгоритма? Какая версия библиотеки использовалась?
Да, внутри можно запустить одну и ту же сеть обрабатывать несколько входов параллельно.