Можно ли использовать OpenCV или аналогичную библиотеку в Javascript?

Можем ли мы использовать OpenCV из Javascript? Есть ли такая реализация?

Существуют ли какие-либо библиотеки JS, которые можно использовать для обнаружения элементов лица на картинке или видео?

9 ответов

Решение

Я не думаю, что есть какой-либо способ использования openCV в JS, кроме связи с сервером с openCV на нем и выполнения обработки там.

В JS есть один алгоритм обнаружения лиц, о котором я знаю: http://badassjs.com/post/1461943420/face-detection-in-javascript-via-html5-canvas

OpenCV никогда не был полностью портирован на JavaScript, но отдельные части и алгоритмы имеют:

  • Для обнаружения лица и элемента лица (и других частей / объектов) вы можете использовать js-objectdetect или HAAR.js, которые являются портами обнаружения объектов OpenCV на основе каскадов функций Haar.

  • Самый первый алгоритм обнаружения лиц в сети, найденный в ccv, также заслуживает упоминания. Его классификатор, по-видимому, менее надежен, чем классификатор, предоставленный OpenCV.

  • Библиотека headtrackr, используемая для отслеживания лица, также может представлять интерес, поскольку в ней реализован алгоритм кулачкового сдвига, также присутствующий в OpenCV.

Я рекомендую OpenCVjs. Это библиотека JavaScript OpenCV.

Я не знаю полной реализации OpenCV в Javascript, однако большое количество алгоритмов из этого реализовано в JSFeat, который является библиотекой Computer Vision в Javascript.

Я считаю, что возможно было бы скомпилировать биты OpenCV с emscripten, но, насколько я знаю, никто этого не делал.

Портирование OpenCV в Javascript должно быть осуществимо с использованием asm.js, который может компилировать C или C++ в Javascript.

Другой вариант: OpenCV портирован на собственный клиент Chrome: http://opencv.org/opencv-ported-to-google-chrome-nacl-and-pnacl.html

Кажется, это очень хорошо. http://trackingjs.com/ Посмотрите.

Отличное репо для этого здесь: https://github.com/peterbraden/node-opencv Похоже, не имеет полной функциональности opencv, но имеет функцию распознавания лиц и отличную поддержку потоков изображений, поступающих из таких источников, как ar-drone.

В дополнение к упомянутым, есть еще один репозиторий для "opencvjs"

https://github.com/blittle/opencvjs

Немного неясно, какие из них (если таковые имеются) должны быть каноническими

Относительно вашего второго вопроса clmtrackr выглядит очень многообещающе. Это...

... это библиотека javascript для подгонки моделей лица к лицам в видео или изображениях. В настоящее время это реализация ограниченных локальных моделей, подогнанных к регуляризованному среднему сдвигу, как описано в статье Джейсона М. Сарагиха. clmtrackr отслеживает грань и выводит координаты модели грани в виде массива.

Попробуйте этот пример, чтобы взглянуть на их модель.

Другие вопросы по тегам