Object Detection and Augmentation

Я много играл с [Shape Detection API](https://paul.kinlan.me/face-detection/ https://paul.kinlan.me/barcode-detection/ https://paul.kinlan.me/detecting-text-in-an-image/) в Chrome, и мне очень нравится его потенциал, например, очень простой QRCode detector я написал давным-давно, имеет полизаполнение JS, но использует new BarcodeDetector() API, если он доступен.

Вы можете увидеть некоторые другие демонстрации, которые я построил здесь, используя другие возможности API обнаружения формы: Face Detection , Barcode Detection и Text Detection .

Я был приятно удивлен, когда наткнулся на Jeeliz на выходных и был невероятно впечатлен производительностью их инструментария - разумеется, я использовал Pixel3 XL, но обнаружение лиц казалось значительно быстрее, чем это возможно с API FaceDetector .

Checkout some of their demos .

Это заставило меня много думать. Этот инструментарий для обнаружения объектов (и подобных ему) использует API-интерфейсы, которые широко доступны в Интернете, в частности доступ к камере, WebGL и WASM, что в отличие от Chrome Shape Detection API (которое имеется только в Chrome и не совместимо на всех платформах, на которых работает Chrome). ) можно легко использовать для создания богатого опыта и охвата миллиардов пользователей с единообразным опытом на всех платформах.

Расширение - это то, где это становится интересным (и действительно то, что я хотел показать в этом посте), и где вам нужны библиотеки промежуточного программного обеспечения, которые сейчас выходят на платформу, мы можем создавать забавные приложения для настройки лица в стиле Snapchat, не заставляя пользователей устанавливать MASSIVE приложения которые собирают огромное количество данных с устройства пользователя (потому что нет доступа к системе).

Помимо забавных демонстраций, можно быстро и просто решить очень сложные варианты использования, такие как:

  • Выбор текста прямо с камеры или фото от пользователя
  • Живой перевод языков с камеры
  • Встроенное обнаружение QRCode, чтобы людям не приходилось постоянно открывать WeChat :)
  • Автоматическое извлечение URL сайта или адреса из изображения
  • Обнаружение кредитной карты и извлечение номера (чтобы пользователи быстрее регистрировались на вашем сайте)
  • Визуальный поиск товаров в веб-приложении вашего магазина.
  • Поиск штрих-кода для получения дополнительной информации о продукте в веб-приложении вашего магазина.
  • Быстрая обрезка фотографий профиля на лицах людей.
  • Простые функции A11Y, позволяющие пользователю услышать текст, найденный на изображениях.

Я просто потратил 5 минут на обдумывание этих вариантов использования - я знаю, что их гораздо больше - но меня поразило, что мы не видим много сайтов или веб-приложений, использующих камеру, вместо этого мы видим, что многие сайты спрашивают их пользователи загружают приложение, и я не думаю, что нам нужно больше это делать.

** Обновление ** Томас Штайнер в нашей команде упомянул в ShapeDetection нашей команды, что, похоже, мне не нравится текущий API ShapeDetection . Мне нравится тот факт, что этот API дает нам доступ к собственным реализациям доставки каждой из соответствующих систем, однако, как я писал в The Lumpy Web , веб-разработчики жаждут согласованности в платформе, и с API Shape Detection существует ряд проблем, которые могут быть обобщено как:

  1. API есть только в Chrome
  2. API в Chrome сильно отличается на всех платформах, потому что их базовые реализации различны. Android имеет только точки для таких ориентиров, как рот и глаза, где у macOS есть контуры. В Android TextDetector возвращает обнаруженный текст, в то время как в macOS он возвращает индикатор «Text Presence» ... Это не говоря уже о всех ошибках, обнаруженных Surma.

Сеть как платформа для распространения имеет такой смысл для такого опыта, что я думаю, что было бы упущением с нашей стороны не делать этого, но две вышеупомянутые группы вопросов заставляют меня усомниться в долгосрочной необходимости реализации каждой функции на веб-платформа изначально, когда мы могли бы реализовать хорошие решения в пакете, который поставляется с использованием функций платформы сегодня, таких как WebGL, WASM и в будущем Web GPU.

В любом случае, мне нравится тот факт, что мы можем сделать это в Интернете, и я с нетерпением жду возможности увидеть, что сайты будут с ними.

About Me: Paul Kinlan

I lead the Chrome Developer Relations team at Google.

We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.

Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.