Pull to refresh
24
0
Дмитрий Куртаев @dkurt

Нейросетевой хирург

Send message

Сегодняшняя блокировка 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/.

Не совсем понял мысль. На то он и удаленный доступ к железу чтобы сделать измерения и сравнить производительность, стоимость, энергопотребление. Разработчику не приобретут всех конфигураций на руки потому что он выберет только одну в итоге. Тут — зашёл и замерил.

На случай если нет железок, то у Интел есть 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).

Спасибо! Видите также строчку


OpenCV modules
    to be built:

?


Так вот если вы точно знаете, что такие модули как 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 понимает их:


CPU/HW features:
  Baseline:                    NEON
  required:                  NEON
  disabled:                  VFPV3

Плюс, вы сами написали:


Также, эта библиотека реализована на языках 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 алгоритма? Какая версия библиотеки использовалась?

Да, внутри можно запустить одну и ту же сеть обрабатывать несколько входов параллельно.

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity