Современный JavaScript работает быстро, достаточно быстро, чтобы обрабатывать изображения в реальном времени. JSFeat — это библиотека JavaScript, в которой реализована расширенная обработка изображений, и демонстрации доказывают, что она делает это в режиме реального времени.
JSFeat — это библиотека с открытым исходным кодом (лицензия MIT), которую вы можете загрузить и использовать практически в любом браузере. Однако, если вы хотите опробовать демонстрационные версии, вам понадобится машина, оснащенная веб-камерой и браузером, поддерживающим WebRTC. На данный момент это ограничивает демонстрации последней версией Chrome, работающей на рабочем столе. Chrome для Android, Firefox и IE еще недостаточно поддерживают WebRTC API. Однако вы можете использовать подпрограммы JavaScript практически в любом современном браузере, но вам придется найти альтернативный способ заставить изображения обрабатываться. Если вы не используете Chrome, стоит скачать копию, чтобы увидеть демоверсии в действии — они очень убедительны.
Еще более впечатляющим является то, что JSFeat не просто реализует простую обработку изображений, которую можно найти в других библиотеках, — он также выполняет передовые функции отслеживания и обнаружения объектов.
Основные операции, которые имеют демонстрационные версии:
Основные методы обработки изображений (оттенки серого, производные, размытие рамки, ресамплинг и т. Д.)
оттенки серого
размытие коробки
размытие по Гауссу
выровнять гистограмму
Более сложные операции:
острые края
Детектор функций Fast Corners
Оптический поток Лукаса-Канаде
Детектор объектов HAAR
Детектор объектов BBF
Все это работает в реальном времени с веб-камеры.
Метод оптического потока Лукаса-Канаде представляет собой очень простую форму средства отслеживания объектов, и в этой демонстрации он хорошо работает. Все, что вам нужно сделать, это щелкнуть точку, которая определяет область, которую вы хотите отслеживать, и точка остается на месте при перемещении изображения. Иногда движение изображения слишком велико, и точка теряет направление. Это основа более продвинутых трекеров объектов, таких как Predetor. Все остальные стоит попробовать, но два детектора объектов, настроенные как детекторы лиц, особенно впечатляют.
Обнаружение хитрого края
Еще одна действительно хорошая вещь в JSFeat заключается в том, что его документация очень хороша — намного лучше, чем все, что вы обычно найдете в проекте с открытым исходным кодом. Это работа одного программиста, Евгения Затепякина, известного как «вдохновитель».
Что это означает для будущих возможностей браузера?
Пока другие браузеры догоняют Chrome и полностью реализуют WebRTC, у нас должна быть возможность работать с некоторыми интересными приложениями обработки изображений AI без необходимости перекладывать обработку на сервер. Реализации JSFeat станут хорошей отправной точкой для множества интересных и смелых веб-приложений.