Можно ли использовать 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.
Я не знаю полной реализации 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 отслеживает грань и выводит координаты модели грани в виде массива.
Попробуйте этот пример, чтобы взглянуть на их модель.