Как нейронные сети экономят бизнесу время и деньги

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

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

Искусственная нейронная сеть (ИНС) — математическая модель, имеющая программное или аппаратное воплощение. Название пришло от сравнения с принципом работы биологических нейронных сетей. Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения — одно из главных преимуществ нейронных сетей перед традиционными алгоритмами,так как  нейросети позволяют прогнозировать сразу несколько величин (и даже одновременно решать задачи классификации и прогнозирования) одной моделью. При этом нейросети требуют значительно большего количества ресурсов — как аппаратных, так и подготовленных данных, необходимых для обучения.

Развитие нейронных сетей связано как с развитием технологий, так и с вкладом глобального IT-сообщества в обучение различных моделей на большом количестве различных наборов данных.

Пожалуй, самая популярная область применения нейросетей сегодня — распознавание визуальных образов, аудио и видео. Они используются везде — от робота-автоответчика в банке и спецэффектов в TikTok до анализа состояния нефтепроводов и подсчета брака на заводе. Нейросети существенно облегчают труд человека и экономят бизнесу миллионы человеко-часов в год.

В этой статье мы расскажем о нейросетях, которые использовали при разработке программной платформы Digital Sense — собственного продукта Цифроматики, который позволяет строить бизнес-процессы на обработке искусственным интеллектом графических и аудиоканалов в режиме реального времени, обрабатывать данные, представлять результаты анализа в графической форме и запускать программные сценарии.

Голосовое распознавание

Распознавание речи — одно из наиболее популярных направлений компьютерной лингвистики. Технологии распознавания речи сейчас используются почти повсеместно — от распознавания простого «да/нет» в колл-центре банка до способности поддерживать беседу в умных колонках, типа «Алисы», «Маруси» и других. 

Voice Recognition
Voice Recognition

Одна из задач, с которой мы столкнулись, — разработка мобильного приложения для распознавания речи в реальном времени. Распознавание речи, когда нет возможности писать команды текстом, должно быть достаточно оперативным, без задержек. В нашем случае мы остановились на легковесной версии Vosk для мобильных — у нее приемлемое качество для простых слов и фраз на русском языке, она не требует больших ресурсов и показывает хорошее качество на мобильных. Тяжеловесную версию Vosk оставили для серверной части для более точного распознавания в ситуациях, когда не требуется обработки в режиме реального времени. Запасным вариантом для серверной обработки стал Kaldi.

Vosk Speech Recognition Toolkit

Open source проект Vosk от российского разработчика Alpha Cephei работает офлайн и достаточно точно распознает голосовые сообщения на 18 языках, включая русский, английский, китайский, польский и другие (полный список доступных моделей можно найти на официальном сайте). Для русского языка есть как очень легкие (43 Мб), так и очень тяжелые (2,5 Гб) модели.

  • Сделана для потоковой обработки звука, что позволяет реализовать мгновенную реакцию на команды.

  • В последних моделях Vosk используется новая нейросетевая архитектура, которая позволила повысить точность распознавания на 10-20% по сравнению с более ранними версиями.

  • Работает на серверах и интегрируется в системы телефонии (Asterisk, Freeswitch, Unimrcp, Jitsi).

  • Поддерживает несколько популярных языков программирования — Java, C#, Javascript, Swift, Python.

  • Код и данные распространяются под лицензией Apache 2.0.

Из недостатков:

  • Тяжело добавлять слова в словарь.

  • Не поддерживается активация по ключевому слову.

  • Точность зависит от задачи.

  • Не поддерживает GPU.

Kaldi Speech Recognition Toolkit

Kaldi имеет самую высокую точность распознавания, по скорости работы незначительно проигрывает конкурентам. Система Kaldi, разработанная британским специалистом по нейросетям Даниэлем Повеем, предоставляет пользователю наиболее широкий выбор алгоритмов для разных задач и удобна в использовании. Kaldi подходит для научных исследований больше, чем ее аналоги, как следствие — у нее достаточно сложная документация, рассчитанная, в первую очередь, на специалистов по распознаванию речи. 

Особенности Kaldi: 

  • Модуль акустического моделирования включает в себя скрытые марковские модели (HMM), модель смеси гауссовских распределений (GMM), глубокие нейронные сети (Time-Delay Neural Networks, TDNN).

  • Языковое моделирование осуществляется с помощью конечного автомата-преобразователя, или FST (finite-state transducer).

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

  • Декодирование происходит при помощи алгоритма прямого-обратного хода.

С полной документацией можно ознакомиться на сайте проекта.

Определение и отслеживание объектов

Обнаружение объектов — одна из наиболее изученных задач машинного обучения и одна из наиболее полезных для многих коммерческих приложений. Сейчас решения подобного рода задач актуальны в самых разных реальных приложениях, включая видеонаблюдение, беспилотные автомобили, отслеживание объектов и т. д.

Object Detection и Object Tracking
Object Detection и Object Tracking

Стоить разделять понятия определения и отслеживания объектов.

Определение и обнаружение объектов (Object Detection) — это определение объектов на картинке/кадре. Может определяться один или несколько объектов с разными наборами параметров (например, легковые/грузовые автомобили или автомобили только красного цвета/автомобили со специальной символикой). То есть алгоритм или нейронная сеть определяют позицию объекта и передает программе его так называемые bounding boxes (прямоугольник вокруг объекта, например, распознанное лицо на фото в соцсети). Ключевой момент в этой задаче — тот факт, что данные в фото/видео не размечены, это набор пикселей разных цветов. Мы же получаем от системы координаты объектов и их возможные границы, что позволяет уже выполнять программные сценарии.

Отслеживание объекта (Object Tracking) — более сложная задача. Здесь необходимо не просто определить объекты на кадре, но еще и связать информацию с предыдущих кадров таким образом, чтобы не терять объект. Например, при анализе видео с бегущими спортсменами сложно отличить одного человека от другого, когда объекты на видео перекрывают друг друга. Object Tracking может эффективнее выполнять такие задачи благодаря обнаружению объекта в самом начале, отслеживая спортсмена дальше, например, только по голове в толпе. 

Рас­позна­вание объ­ектов сегод­ня при­гож­дает­ся для решения самых раз­ных задач: клас­сифика­ции видов рас­тений и живот­ных, рас­позна­вания лиц, опре­деле­ния габари­тов объ­ектов — и это далеко не пол­ный спи­сок.

На момент исследования мы выяснили, что в некоторых решениях не было полноценного отслеживания, — на каждый кадр видео объекты находились с нуля (object detection), а архитектура моделей «не имела памяти», из-за чего обработка могла длиться непозволительно долго.

YOLO

YOLO (You Only Look Once) — одна из самых точных нейронных сетей для обнаружения и распознавания объектов в реальном времени на датасете Microsoft COCO. 

YOLO представляет собой глубокую свёрточную нейронную сеть, которая разбивает входное изображение на набор ячеек, образующих сетку. Исходное изображение сжимается таким образом, чтобы получить квадратную матрицу размером 13 на 13, в каждой клетке которой записана информация о наличии объекта и классе этого объекта на соответствующей части картинки. Таким образом, YOLO просматривает картинку один раз (а не два, как многие другие нейросети), что существенно увеличивает скорость обработки и требует меньших затрат вычислительных мощностей.


YOLOv5 — усовершенствованная пятая версия YOLO, реализованная на фреймворке PyTorch. YOLOv5 встроена в одноименный модуль для Python3, который можно установить с pypi. Этот модуль предоставляет очень хорошую инфраструктуру как для обучения модели, так и для тестирования с построением графиков всех ключевых показателей.

Приятным бонусом оказалось то, что существуют различные онлайн-сервисы для разметки данных, которые обучают популярные модели вроде YOLO. За пару часов можно дообучить нейросеть для поиска нужного класса объектов. Например, для определения кистей рук не потребовалось огромных объемов входных данных, нейросеть достаточно быстро начала выдавать полезные результаты. Однако при ограниченных объемах данных, не стоит ожидать, что нейросеть будет эффективно работать на новых примерах. 

FairMOT

FairMOT (Fair Multi-Object Tracking) — высокопроизводительный метод отслеживания нескольких объектов на видео с использованием технологий машинного обучения, разработанный исследователями из Microsoft и Университета Центрального Китая.

В FairMOT применяется одноэтапная реализация на базе деформируемой свёрточной нейронной сети (DCNv2, Deformable Convolutional Network), которая позволяет добиться заметного повышения скорости отслеживания объектов. Для обучения модели в FairMOT использовалась комбинация из шести публичных наборов данных для обнаружения и поиска людей (ETH, CityPerson, CalTech, MOT17, CUHK-SYSU). 

Проведенные тестирования показали, что FairMOT опережает наиболее быстрые конкурирующие модели TrackRCNN и JDE при тестировании на видеопотоках с частотой 30 кадров в секунду и показывает производительность, достаточную для анализа обычных видеопотоков в режиме реального времени. 

Код с реализацией метода на базе Pytorch и натренированные модели опубликованы на GitHub.

MediaPipe

Большинство нейронных сетей работают исключительно на обнаружение 2D-объектов, даже если речь идет о видео. А значит рамки, нарисованные вокруг обнаруженного объекта, будут только двухмерными. Однако сейчас растет потребность в методе более точного обнаружения и отслеживания объектов в пространстве — дополненная реальность, беспилотные автомобили, робототехника и другие.

Чтобы решить эту проблему, Google AI выпустил MediaPipe Objectron — мобильный конвейер обнаружения трехмерных объектов в реальном времени для повседневных объектов, который также обнаруживает объекты на двухмерных изображениях.

  • Objectron от MediaPipe использует одноступенчатую модель для прогнозирования позы, а также физического размера и структуры объекта на основе одного изображения.

  • По своей структуре это, в первую очередь, кодер-декодер, построенный на MobileNetV2. 

  • Задача формы предсказывает сигналы формы объекта на основе типа доступной аннотации наземной достоверности.

  • Для обнаружения эти аннотированные ограничивающие рамки используются с целью подогнать это к гауссовскому распределению и предсказать это распределение с его пиком в центре объекта.

Human pose estimation

Human Pose Estimation (HPE) — это способ идентификации и классификации узлов человеческого тела. По сути, это способ определения координат каждого узла (руки, головы, туловища и так далее), называемого ключевой точкой и определяющего положение тела человека. Это одна из самых интересных областей исследований, получившая популярность благодаря своей полезности и универсальности — она находит применение в широком спектре сфер, в том числе в гейминге, здравоохранении, AR и спорте.

Human Pose Estimation (HPE)
Human Pose Estimation (HPE)

С началом исследований и разработок в сфере HPE начали ставиться и более сложные задачи. Одна из них — определение положений тел нескольких людей.

Глубокие нейросети очень успешно определяют положение тела одного человека, но когда нужно определить положения тел нескольких людей, они сталкиваются с трудностями:

  • Изображение может содержать несколько людей в разных положениях.

  • С увеличением количества людей степень взаимодействия между ними растет, что приводит к сложности вычислений.

  • Повышение сложности вычислений часто приводит к увеличению времени обработки в реальном времени.

Чтобы решить эти проблемы, исследователи предложили два подхода:

  • Сверху вниз: локализация людей на изображении, определение частей их тел и вычисление положений.

  • Снизу вверх: определение частей тел людей на изображении с последующим вычислением положений.

Задача определения позы — это чаще всего задача по нахождению ключевых точек. В своей работе для анализа мы использовали таблицы лидеров в соревнованиях.  

AlphaPose (RMPE)

Regional Multi-person Pose Estimation (RMPE), или AlphaPose реализует методику HPE «сверху вниз».

Авторы AlphaPose решают проблемы несовершенного распознавания людей с помощью двухэтапного фреймворка. В этом фреймворке они добавили две сети:

  • Symmetric Spatial Transformer Network (SSTN) позволяет вырезать соответствующую область на входящих данных, что упрощает задачу классификации, приводя к повышению точности.

  • Single Person Pose Estimator (SPPE) используется для извлечения и определения положения тела.

Задача AlphaPose заключается в извлечении высококачественной области местоположения одного человека из неточного ограничивающего прямоугольника путем применения SSTN к SPPE. Эта методика повышает точность классификации, решая проблему инвариантности и обеспечивая при этом стабильный фреймворк для определения положения тела.

MediaPipe

MediaPipe — фреймворк с открытым исходным кодом от Google. Коробочное решение содержит библиотеку компонентов, которая позволяет создавать мультимодальные конвейеры машинного обучения без углубление в машинное обучение и написание алгоритмов.

MediaPipe часто используется для разработки различных приложений обработки изображений и мультимедиа (особенно в виртуальной реальности). Основной функционал — обнаружение объектов, распознавание лиц, отслеживание рук, отслеживание нескольких рук и сегментация волос. 

MediaPipe оказался полезным инструментом — его коробочное решение хорошо находит скелет человека и полноценно отслеживает его. Интересно отметить, что для нахождения он сначала распознает на изображениях лица людей, а уже потом определяет и остальное туловище.

Проблема, которая возникла при работе с отслеживанием, — если «захватится» для отслеживания на видео не тот человек, то уже не отделится от него, пока этот человек не покинет кадр полностью. Эту проблему решили тем, что сначала программно или другой моделью находили необходимых для отслеживания людей, и предоставляли нейросети эти данные.

OpenPose

OpenPose — система обнаружения нескольких человек с открытым исходным кодом, поддерживающая ключевые точки тела, рук, ног и лица. Она была представлена в 2019 году группой студентов-исследователей из американского Института инженеров электротехники и электроники (IEEE).

Это методика «снизу вверх», в которой сеть сначала определяет части тел или ключевые точки изображения, а затем сопоставляет ключевые точки для образования пар.

В своей архитектуре OpenPose — свёрточная нейронная сеть VGG-19, используемая для извлечения паттернов и описаний из входящих данных. Результат работы VGG-19 передается в две ветви свёрточных сетей:

  • Первая ветвь прогнозирует множество карты достоверности для каждой части тела;

  • Вторая ветвь прогнозирует Part Affinity Fields (PAF), то есть степень связи между частями тела.

AlphaPose и OpenPose были весьма полезны как объект для изучения вопроса и подходов к решению наших задач, но для нашей работы не подошли по лицензионным ограничениям.

Заключение

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

Нейросети окружают пользователей в повседневной жизни — в голосовых помощниках, типа Алисы и Siri, в VR-масках в социальных сетях и мессенджерах, при автоматическом улучшении изображения смартфонами. 

В бизнесе нейросети также вышли далеко за пределы голосовых роботов при звонке в банк. Например, внедрение нейросети для управления системой рекомендаций позволило Amazon увеличить продажи на 35 %. Еще эффективнее работает ИНС Brain, которая создана для YouTube: по статистике компании почти 70 % всего видео, просмотренного пользователями, они нашли по рекомендациям нейросети. 

Кроме того, нейросети овладели навыком, который критично важен для современного бизнеса, — они предсказывают уход клиента еще до того, как идея об этом придет ему в голову, анализируя массивы данных о поведенческих реакциях клиентов. 

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

Digital Sense уже сейчас позволяет использовать в бизнесе искусственный интеллект для обработки графических и аудио каналов. Область применения этих инструментов очень широк — от ведения счета в спортивной трансляции до отслеживания техники безопасности на строительном объекте или мониторинга ситуации на дорогах. Эффективность внедрения Digital Sense напрямую можно оценить в экономическом эффекте для бизнеса.

Источник: https://habr.com/ru/post/694876/


Интересные статьи

Интересные статьи

Привет, Хабр! Меня зовут Вова, я разрабатываю observability-платформу в Ozon. Как-то раз в наш уголок на 42 этаже заглянули коллеги — и поделились наблюдением. Если открыть рядом графики времён запрос...
В мире наметилось четыре основных тренда в области автоматизации бизнеса, которые в полной мере проявляются и в России. Самый очевидный — интеллектуализация, то есть включение технологий иск...
Всем привет! Эмоциональный интеллект – термин, который уже довольно давно знаком нам, и все мы в курсе, зачем и как его нужно развивать. Понятие «цифровой интеллект» появ...
Статья нашего сотрудника из его личного блога.Тема посвящена нейронным сетевым технологиям. Ранее эта тема публиковалась для института, в целях получения первого научного...
Привет! Хочу рассказать простым языком о механике возникновения steal внутри виртуальных машин и о некоторых неочевидных артефактах, которые нам удалось выяснить при его исследовании, в котор...