Глава 13. Резюме, заключительные слова и дальнейшие источники информации
531
13.2.3. Использование предобученных моделей
в TensorFlow.js
Если поставленная задача машинного обучения связана со спецификой конкретного
приложения или набора данных, имеет смысл создать модель с нуля, и TensorFlow.
js предоставляет все возможности для этого. Однако в некоторых случаях задача
носит стандартный характер, и существуют предобученные модели, либо в точности
соответствующие ее требованиям, либо требующие лишь небольших изменений.
Имеется множество предобученных моделей как в TensorFlow.js, так и основанных
на них моделей сторонних разработчиков с «чистыми» и удобными в использовании
API. Существуют и соответствующие пакеты npm, которые удобно подключать в виде
зависимостей в приложения JavaScript (включая вебприложения и проекты Node.js).
Подобные предобученные модели могут заметно ускорить разработку в подхо
дящих сценариях использования. Поскольку перечислить тут все предобученные
модели на основе TensorFlow.js невозможно, рассмотрим только несколько наи
более популярных из известных нам. Пакеты с префиксом @tensorflowmodels/
в названии созданы командой TensorFlow.js, а остальные — плоды труда сторонних
разработчиков.
@tensorflowmodels/mobilenet — облегченная модель классификации изображе
ний, выдающая для входного изображения оценки вероятностей его принадлеж
ности к 1000 классов ImageNet. Она удобна для маркирования изображений на веб
страницах и обнаружения заданного содержимого во входном потоке с вебкамеры,
а также задач переноса обучения с изображениями на входе. Хотя @tensorflow
models/mobilenet ориентирована на общие классы изображений, существуют сто
ронние пакеты для предметноориентированной классификации изображений.
Например, пакет nsfwjs классифицирует изображения на содержащие порнографи
ческий (и прочий неуместный) контент и допустимые, что удобно для родительского
контроля, безопасного просмотра сайтов и тому подобных приложений.
Как мы обсуждали в главе 5, задача обнаружения объектов отличается от задачи
классификации изображений, поскольку результаты должны включать информацию
не только о том,
какие
объекты содержит изображение, но и
где
они располагаются
в системе координат изображения. Модель обнаружения объектов @tensorflow
models/cocossd способна обнаруживать 90 классов объектов, причем может находить
в каждом входном изображении при их наличии несколько целевых объектов, ограни
чивающие прямоугольники которых могут пересекаться (рис. 13.1, блок A).
Особый интерес для вебприложений представляют определенные типы объ
ектов, открывающие возможности для новых интересных видов взаимодействия
человека с компьютером. В их числе человеческие лица, руки и тело в целом. Для
каждого из этих трех типов объектов существуют специализированные сторонние
модели на основе TensorFlow.js. Обнаружение лиц и частей лиц (например, глаз
или рта; см. рис. 13.1, блок Б) в режиме реального времени поддерживают модели
faceapi.js и handsfree. Отслеживать местоположение одной или обеих рук в реаль
ном времени может handtrackjs (см. рис. 13.1, блок В). Что касается тела в целом,
обнаруживать с высокой точностью ключевые скелетные точки (плечи, локти, бедра
и колени; см. рис. 13.1, блок Г) позволяет модель @tensorflowmodels/posenet.
Do'stlaringiz bilan baham: |