ОБЛАСТЬ ТЕХНИКИ
[0001] Заявленное техническое решение в общем относится к области обработки изображений, а в частности к способу и системе распознавания жестов пользователя.
УРОВЕНЬ ТЕХНИКИ
[0002] В настоящее время технологии взаимодействия пользователей с вычислительными устройствами и различными системами посредством использования жестов получили широкое распространение. Так, такие технологии находят применение в автомобильной промышленности, системах умного дома, сервисах видеоконференций, устройствах отображения и т.д. Жест руки можно использовать для взаимодействия с электронным устройством без помощи какого-либо дополнительного устройства. Технология распознавания жестов рук основана на обнаружении жестов пользователей с помощью средств захвата изображений и распознавания полученного жеста посредством обработки изображения для интерпретации результатов распознавания в целевую команду. Так, распознанный жест руки на основе компьютерного зрения может приниматься компьютерной системой для выполнения операции взаимодействия человека и машины, такой как команда включения/выключения, команда прокрутки интерфейса, команда управления и т.д.
[0003] Однако, несмотря на широкое распространение данной технологии, существует ряд проблем, влияющих на точность и скорость распознавания жестов рук, и, как следствие, точность управления электронными устройствами и/или транспортными средствами. Так, в ответ на неточно распознанный жест может быть выполнена непредусмотренная команда системы и/или устройства. Кроме того, скорость распознавания жестов также может влиять на точность управления системой. Также, еще одной существенной проблемой является возможность распознавания жестов в трудных окружающих условиях, таких, как плохое освещение / засветы, большое расстояние субъекта до камеры и т.д.
[0004] Так, из уровня техники известен ряд решений, направленных на распознавание жестов.
[0005] Известен детектор на базе ключевых точек от компании Google. Указанный способ основан на поиске ладони вместо определения положения и размера всей руки. Когда ладонь распознана, движения пальцев анализируются отдельно. Способ распознает изображение руки и присваивает координаты, соответствующие расположению суставов и пальцев. Как только положение руки и пальцев определено, жест сравнивается с базой языка жестов. В результате чего обеспечивается быстрый способ отслеживания и распознавания жестов.
[0006] К недостаткам указанного решения можно отнести невозможность классификации жестов в явном виде, ввиду применения подхода, основанного на ключевых точках и низкая точность распознавания жестов в экстремальных окружающих условиях. Кроме того, такое решение не предназначено для распознавания динамических жестов ввиду невозможности локализации жестов в явном виде, т.к. указанный способ применяет подход, основанный на ключевых точках.
[0007] Также, из уровня техники известны алгоритмы распознавания жестов основанные на решении задачи классификации жестов.
[0008] Недостатком указанных решений является низкая точность распознавания жестов при удалении субъекта (человек, который показывает жест) от камеры, ввиду избыточного количества "лишнего" контекста.
[0009] Общими недостатками существующих решений является отсутствие эффективного и точного способа распознавания жестов при захвате изображений в трудных окружающих условиях, таких как плохое освещение / засветы, большое расстояние субъекта до камеры и т.д. Также, такого рода решение должно обеспечивать высокую скорость распознавания жестов при сохранении точности распознавания жестов. Кроме того, указанный способ должен обеспечивать возможность распознавания как статичных жестов, так и динамических жестов.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0010] В заявленном техническом решении предлагается новый подход к распознаванию жестов пользователя. В данном решении используется подход, который позволяет распознавать жесты пользователя при захвате изображения с агрессивными параметрами окружающей сцены, с высокой точностью.
[0011] Таким образом, решается техническая проблема распознавания жестов пользователя.
[0012] Техническим результатом, достигающимся при решении данной проблемы, является повышение точности распознавания жестов пользователя.
[0013] Дополнительным техническим результатом, проявляющимся при решении вышеуказанной проблемы, является обеспечение возможности распознавания статичных и динамичных жестов пользователя.
[0014] Указанные технические результаты достигаются благодаря осуществлению способа распознавания жестов, выполняющегося по меньшей мере одним вычислительным устройством, и содержащего этапы, на которых:
a) получают по меньшей мере два изображения пользователя за заданный временной промежуток;
b) осуществляют выделение области руки пользователя на каждом полученном изображении с помощью первой модели машинного обучения на базе нейронной сети, обученной на распознавание областей рук пользователей, причем, в ходе обучения осуществляют:
i. аугментацию каждого изображения первого обучающего набора данных посредством изменения параметров изображения;
ii. объединение изображений, полученных на шаге i;
iii. нормализацию аугментированного набора данных;
c) осуществляют распознавание класса жеста, на каждом полученном изображении с помощью второй модели машинного обучения на базе нейронной сети, обученной на распознавание статических жестов, причем, в ходе обучения осуществляют:
i. аугментацию каждого изображения второго обучающего набора данных посредством изменения параметров изображения;
ii. нормализацию аугентированного набора данных;
d) формируют последовательность жестов, определенных на этапе с);
e) определяют тип жеста из последовательности жестов, полученной на этапе d), причем, в ходе определения осуществляют:
i. определение класса первого и последнего жеста из последовательности жестов;
ii. определение положения первого и последнего жеста в пространстве;
f) распознают жест пользователя на основе данных, полученных на этапе е).
[0015] В одном из частных вариантов реализации способа распознавание области руки пользователя осуществляется посредством выделения множества областей руки на изображении.
[0016] В другом частном варианте реализации способа область руки пользователя определяют на основе выбора лучшей выделенной области руки пользователя на каждом изображении посредством сравнения выделенных областей руки для указанного изображения между собой.
[0017] В другом частном варианте реализации способа по меньшей мере два изображения получают посредством устройства фото/видео фиксации.
[0018] В другом частном варианте реализации способа устройство фото/видео фиксации представляет собой видеокамеру.
[0019] В другом частном варианте реализации способа параметры изображения представляют по меньшей мере один из следующих параметров: яркость, контрастность, размер, ориентация.
[0020] В другом частном варианте реализации способа объединение изображений представляет собой формирование мозаичного изображения из по меньшей мере четырех изображений.
[0021] В другом частном варианте реализации способа определение класса первого и последнего жеста из последовательности жестов выполняется в заданный временной период.
[0022] В другом частном варианте реализации способа заданный временной период не превышает тридцать кадров.
[0023] В другом частном варианте реализации способа определение положения первого и последнего жеста в пространстве дополнительно включает определение расстояния между первым и последним жестом последовательности.
[0024] В другом частном варианте реализации способ дополнительно содержит этап выполнения целевого действия, соответствующего распознанному жесту.
[0025] Кроме того, заявленные технические результаты достигаются за счет системы распознавания жестов, содержащей:
• по меньшей мере один процессор;
• по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение способа распознавания жестов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0026] Признаки и преимущества настоящего изобретения станут очевидными из
приводимого ниже подробного описания изобретения и прилагаемых чертежей.
[0027] Фиг. 1 иллюстрирует блок-схему выполнения заявленного способа.
[0028] Фиг. 2 иллюстрирует пример распознавания классов жеста руки.
[0029] Фиг. 3 иллюстрирует пример сформированного набора данных с аргументированными изображениями.
[0030] Фиг. 4 иллюстрирует пример начального и конечного статичного жеста при распознавании типа жеста.
[0031] Фиг. 5 иллюстрирует пример реализации алгоритма не-максимального подавления объектов.
[0032] Фиг. 6 иллюстрирует пример общего вида вычислительного устройства, которое обеспечивает реализацию заявленного решения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0033] Ниже будут описаны понятия и термины, необходимые для понимания данного технического решения.
[0034] Модель в машинном обучении (МО) - совокупность методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач.
[0035] Аугментация - процесс модификации входных данных для увеличения или усложнения исходного набора данных.
[0036] Пачка данных (батч) - это небольшой пакет или набор данных обрабатываемый разом за одну итерацию работы модели.
[0037] Заявленное техническое решение предлагает новый подход, обеспечивающий повышение точности распознавания жестов при захвате изображений с окружающей сценой, содержащей помехи, такие как плохое освещение / засветы, большое расстояние субъекта до камеры и т.д. Кроме того, заявленное техническое решение обеспечивает возможность распознавания статичных и динамичных жестов за счет использования алгоритма определения типа жеста. Также, такого рода решение обеспечивает высокую скорость распознавания жестов при сохранении точности распознавания жестов.
[0038] Заявленное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.
[0039] Техническое решение также может быть реализовано в виде распределенной компьютерной системы или вычислительного устройства.
[0040] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).
[0041] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы)/
[0042] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных, например, таких устройств, как оперативно запоминающие устройства (ОЗУ) и/или постоянные запоминающие устройства (ПЗУ). В качестве ПЗУ могут выступать, но, не ограничиваясь, жесткие диски (HDD), флэш-память, твердотельные накопители (SSD), оптические носители данных (CD, DVD, BD, MD и т.п.) и др.
[0043] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[0044] Термин «инструкции», используемый в этой заявке, может относиться, в общем, к программным инструкциям или программным командам, которые написаны на заданном языке программирования для осуществления конкретной функции, такой как, например, кодирование и декодирование текстов, фильтрация, ранжирование, трансляция текстов в диалоговую систему и т.п. Инструкции могут быть осуществлены множеством способов, включающих в себя, например, объектно-ориентированные методы. Например, инструкции могут быть реализованы, посредством языка программирования Python, С++, Java, Python, различных библиотек (например, MFC; Microsoft Foundation Classes) и т.д. Инструкции, осуществляющие процессы, описанные в этом решении, могут передаваться как по проводным, так и по беспроводным каналам передачи данных, например Wi-Fi, Bluetooth, USB, WLAN, LAN и т.п.
[0045] На фиг. 1 представлена блок схема способа 100 распознавания жестов, который раскрыт поэтапно более подробно ниже. Указанный способ 100 заключается в выполнении этапов, направленных на обработку изображений, полученных с устройств захвата изображений. Обработка, как правило, выполняется с помощью системы, например, системы 200, которая также может представлять, например, сервер, компьютер, мобильное устройство, вычислительное устройство и т.д. Элементы системы 200 более подробно раскрываются на фиг. 6.
[0046] Заявленное техническое решение может быть использовано для распознавания жестов в системе взаимодействия человека и машины. Под системами взаимодействия человека и машины может пониматься взаимодействие с электронным устройством, таким как мобильное вычислительное устройство, портативное устройство, устройство отображения, компьютер, ноутбук, транспортное средство, устройства умного дома, устройства, оснащенные камерой и т.д. Кроме того, в еще одном частном варианте осуществления, заявленное техническое решение может быть использовано для управления сервисами видеоконференций. Так, за счет использования указанного решения в сервисах видеоконференций, обеспечивается возможность отправки команд жестами рук на указанный сервис. Так, командами управления могут являться команды выключать/включать микрофон, отправлять реакцию на сообщение и т.д. Указанное применение заявленного технического решения, в частности, может быть предназначено для людей с дефектами слуха и речи и решать, соответственно, проблему взаимодействия таких людей с указанными устройствами.
[0047] В качестве системы, реализующей указанный способ 100, может использоваться система распознавания жестов. Система распознавания жестов может представлять или являться частью системы, например, сервера, компьютера, предназначенного для распознавания жестов.
[0048] На этапе 110 система, такая как система 200 получает по меньшей мере два изображения пользователя за заданный временной промежуток.
[0049] Так, на указанном этапе 110, например, с помощью средств захвата изображений, получают по меньшей мере два изображения пользователя за заданный временной промежуток.
[0050] Средство захвата изображения может представлять собой, например, фото/видео камеру, оптический сенсор и т.д. Кроме того, в одном частном варианте осуществления, изображения могут быть получены, например, из базы данных, хранящей захваченные устройствами захвата изображения. В еще одном частном варианте осуществления, входные изображения могут быть получены по каналам передачи данных, таких как Интернет.
[0051] Под заданным временным промежутком в заявленном решении следует понимать временной промежуток, в течение которого происходит непрерывный захват сцены устройствами захвата изображения. Так, в одном частном варианте осуществления временной промежуток может быть равен, например, 20, 30 кадрам и т.д. В еще одном частном варианте осуществления, временной промежуток может быть равен 1 секунда, 0.5 секунды и т.д.
[0052] Так, на указанном этапе 110 может быть получено множество последовательных изображений, захваченных камерой устройства в течение заданного временного промежутка.
[0053] Далее, на этапе 120 осуществляют выделение области руки пользователя на каждом полученном изображении с помощью первой модели машинного обучения на базе нейронной сети, обученной на распознавание областей рук пользователей, причем, в ходе обучения осуществляют: аугментацию каждого изображения первого обучающего набора данных посредством изменения параметров изображения; объединение изображений, нормализацию аугментированного набора данных.
[0054] На указанном этапе 120, по меньшей мере два изображения, полученных на этапе 110 обрабатываются системой, такой как система 200 для выделения области руки пользователя на каждом изображении.
[0055] Так, указанный этап 120 может выполняться посредством детектора локализации рук, построенного на базе модели машинного обучения, обученной на распознавание областей рук пользователей. В качестве модели машинного обучения, реализующей функцию детектирования областей рук может быть использована модель машинного обучения на базе нейронной сети YOLOv7-HaGRID и т.д., не ограничиваясь.
[0056] Детектирование областей рук пользователей может выполняться посредством детекции на основе обрамляющих прямоугольников. Так, указанный подход основан на выделении объектов на изображении обрамляющими прямоугольниками (боксами). Указанный подход является частью алгоритмов компьютерного зрения. Кроме того, этот подход детекции применяется для локализации через задачу регрессии, для определения положения объекта в пространстве.
[0057] Так, одной из особенностей заявленного технического решения является разделение задачи локализации и классификации жестов рук пользователя на два параллельных процесса. Указанная особенность обеспечивает возможность непрерывного мониторинга положения руки пользователя через локализацию задачи регрессии, для определения положения объекта в пространстве и классификацию для поиска нужного класса объекта отдельной нейронной сетью. Благодаря тому факту, что эти задачи можно решать параллельно, общий функционал ошибки при обучении нейронных сетей представляет собой сумму двух компонент - ошибка локализации и ошибка классификации. В совокупности, они позволяют обучать нейронную сеть на поиск объекта нужного класса на изображении. Кроме того, за счет реализации такого подхода для распознавания жестов обеспечивается возможность распознавания динамических жестов ввиду высокой скорости обработки, т.к. задача локализации требует гораздо меньше вычислительных ресурсов, что, соответственно, обеспечивает возможность непрерывного отслеживания положения руки пользователя. Также, одной из проблем, решаемых заявленным техническим решением является невозможность распознавания динамических жестов по статичным жестам, т.к. для динамических жестов используют видео вместо изображений, т.е. такую задачу принято решать без этапа локализации - только классифицируя последовательности кадров.
[0058] Для обучения указанной модели машинного обучения, а также модели машинного обучения распознавания жестов (вторая модель машинного обучения) использовался один большой и разнородный набор данных, включающий в себя 552,992 картинки высокого разрешения, каждая из которых принадлежит одному из 18 классов жестов: "звонок" (call), "дизлайк" (dislike), "кулак" (fist), "четыре" (four), "лайк" (like), "немой" (mute), "ок" (ok), "один" (one), "ладонь" (palm)), "победа" (peace), "победа развернутый" (peace inverted), "коза" (rock), "стоп" (stop), "стоп развернутый" (stop inverted), "три" (three), "три2" (three2), "два" (two), "два развернутый" (two inverted).
[0059] На каждом изображении представлен один из 34,730 уникальных субъектов (людей, которые показывают жест), и класс изображения полностью определяется показанным жестом. Всем изображениям набора данных соответствует разметка, содержащая координаты обрамляющего кисть руки с жестом прямоугольника с меткой одного из 18 классов. На чуть более чем 123,000 изображениях вторая рука субъекта, не показывающая жест, также находится в кадре - таким изображениям соответствует разметка, содержащая координаты двух обрамляющих прямоугольников. Соответствующий неактивной руке прямоугольник относится к 19-му классу "не жест". Количество изображений, относящихся к определенному классу, разнится в зависимости от класса, однако всегда находится в промежутке [30,121; 32,224].
[0060] Все 18 классов жестов были подобраны с целью их распознавания для управления умным домом, однако, как очевидно специалисту в данной области техники, они не ориентированы на определенный язык и выполняют семиотическую функциональную роль. Такие жесты помогают передавать информацию между людьми и находят применение во взаимодействии человека с компьютером. Относительно малый по сравнению с некоторыми другими наборами данных жестов лексикон предназначен для уменьшения сложности системы распознавания жестов и снижения ненужной когнитивной нагрузки для пользователя устройства умного дома. Выбранные классы жестов также являются наиболее используемыми и известными большинству.
[0061] Кроме того, помимо жестов, сообщающих какую-либо информацию, для управления электронными устройствами, также необходимы жесты, способные манипулировать объектами. К таким относятся различные динамические жесты, такие как свайпы (смахивание): влево, вправо, вниз и вверх. С их помощью пользователи могут манипулировать объектами на экране (например, листая вкладки).
[0062] Датасет является наиболее разнородным в соответствующем домене по таким характеристикам, как количество уникальных субъектов, равное 34,730; их возраст и пол; количество различных сцен; условия освещенности, колеблющиеся вплоть до экстремальных; расстояние субъектов до камеры (от 0.5 до 4 метров).
[0063] Изображения были собраны и размечены с высокой степенью точности - каждое изображение было проверено на соответствие условиям и размечено обрамляющими прямоугольниками с помощью как минимум трех специально обученных людей.
[0064] Так, для обучения первой модели машинного обучения на локализацию рук, т.е. для обучения детектора, например, на базе нейронной сети YOLOv7tiny на указанном датасете выполнялась следующая последовательность действий.
[0065] Все данные о классах жеста из обучающего набора данных заменяются на класс "рука".
[0066] Для обучения данной нейронной сети применялась вся тренировочная выборка, состоящей из 509,323 изображений разных классов и тестовая выборка, состоящая из 43,669 изображений. До подачи на вход нейронной сети, изображения проходят через несколько последовательных этапов автоматического преобразования.
[0067] Как упоминалось выше, одной из существенных проблем, влияющих на точность распознавания жестов является экстремальная окружающая сцена пользователя на изображении. Как указывалось выше, экстремальная окружающая сцена представляет собой захваченное при плохом освещении изображение и/или изображение с засветами и/или изображение, в котором рука пользователя отдалена от камеры устройства. Для нивелирования влияния указанных параметров окружающей сцены на точность распознавания жестов, тренировочный датасет аугментировался следующими изображениями.
[0068] Так как в наборе данных на одном изображении практически всегда находится один человек в центре, то, чтобы обученная на таких данных модель смогла распознавать жесты на фотографиях, где находится несколько людей или жест находится на границе кадра, использовалось объединение нескольких изображений в одно. Для этого составлялась мозаика из 4-х изображений с разными изменениями яркости, контраста и размера. Стоит отметить, что если пропустить это преобразование, модель запомнит описанную специфику собранных данных и будет работать плохо на реальных данных.
[0069] Далее выполнялась нормализация изображений.
[0070] Этот процесс подразумевает приведение значений пикселей изображения к определенному диапазону, который необходим для обучения моделей. У цветных изображений исходный диапазон пикселей [0, 255], которые представлены как 8-битные беззнаковые числа. Для приведения изображений к диапазону [-1, 1] требуется вычислить среднее значение и стандартное отклонение для всех пикселей в датасете. После вычисления, из каждого пикселя изображения вычитается среднее и делится на стандартное отклонение:
[0071] Преобразованные изображения далее объединялись в батчи - это процесс объединения нескольких итоговых примеров, прошедших через процесс предварительного автоматического преобразования (аугментации, нормализация, изменение размера изображения), в один набор для обработки моделью за один проход. Он позволяет оптимизировать скорость обучения т.к. модель может обрабатывать несколько примеров одновременно, что ускоряет процесс обучения и повышает эффективность использования ресурсов компьютера. Для обучения детекторов размер батча был установлен 16 - таким образом, 16 изображений преобразовывались в единый тензор размерности (16, с, h, w), где с - количество каналов, h - высота изображения, w - его ширина. Далее, батчи подавались на обучение нейросетевой модели. Пример сформированного батча показан на фиг. 3.
[0072] Для оценки результатов обучения модели применялось пороговое значение метрики mAP (mean Average Precision, усредненная точность). Если значение метрики слишком высокое (более 0.9), это может свидетельствовать о переобучении модели на тренировочных данных, что влечет за собой низкую способность находить объекты на реальных изображениях. Чтобы предотвратить потерю обобщающей способности модели, был установлен порог в диапазоне [0.8, 0.9], достижение которого приводило к остановке обучения.
[0073] Для каждого класса рассчитывалось среднее арифметическое точности, полученное для каждого предсказанного объекта. Точность - это доля правильно предсказанных объектов относительно всех объектов, которые были предсказаны нейронной сетью. Метрика mAP - это среднее арифметическое точности всех классов, которые обнаруживает нейронная сеть на тестовой выборке.
где С - общее кол-во классов;
где D - результаты детекции объекта;
где r - порог решения;
где TP - количество правильно предсказанных объектов и FN - кол-во нужных объектов не предсказанных моделью.
[0074] Результаты обученного детектора по указанной метрики составили mAP=74.8
[0075] Так, за счет обучения детектора локализации рук на аугментированном наборе данных, обеспечивается высокая точность распознавания руки на изображении в условиях шумов окружающей сцены, таких как плохая освещенность, отдаление от камеры и т.д. Также, за счет использования первой модели машинного обучения на базе нейронной сети только для распознавания положения руки на изображении, обеспечивается возможность непрерывного отслеживания руки.
[0076] Таким образом, на этапе 120 осуществляют выделение области руки пользователя на каждом полученном изображении.
[0077] Далее, способ 100 переходит к этапу 130.
[0078] На указанном этапе 130 осуществляют распознавание типа жеста на каждом полученном изображении с помощью второй модели машинного обучения на базе нейронной сети, обученной на распознавание статических жестов, причем, в ходе обучения осуществляют: аугментацию каждого изображения второго обучающего набора данных посредством изменения параметров изображения; нормализацию аугментированного набора данных.
[0079] На указанном этапе 130, в одном частном варианте осуществления, классификатор жестов получает обрезанные фрагменты изображения, захваченные на этапе 120 для определения класса жеста. Так, на фиг. 2 приведен пример распознанных классов жестов рук.
[0080] В еще одном частном варианте осуществления, классификатор был обучен на предсказание одного из 24 статичных жестов, содержащих 18 статичных жестов и 4 статичных жеста, характеризующих динамические жесты. Так, классами жестов могут являться такие жесты как: "звонок", "дизлайк", "кулак", "четыре", "лайк", "немой", "ок", "один", "ладонь", "победа", "победа развернутый", "коза", "стоп", "стоп развернутый", "три", "три2", "два", "два развернутый" ", "ладонь влево", "ладонь вправо", "ладонь вниз", "ладонь вверх".
[0081] Для обучения классификационной нейронной сети применялся датасет, приведенный выше. В одном частном варианте осуществления классификатор жестов может быть построен на базе нейронной сети LeNet. Для обучения указанного классификатора выполнялась следующая последовательность действий.
[0082] Для подготовки датасета, в одном частном варианте осуществления из обучающего датасета вырезались изображения рук по ограничивающим рамкам.
[0083] Далее, для обучения модели использовался похожий подход, применявшийся при обучении детектора на этапе 120 с несколькими отличиями - изображения не собирались в мозаики, а подавались по одному на вход сети и классы palm, stop, stop inverted были аугментированы поворотами на 90 и 180 градусов для классификации жестов hand left, handright, hand down.
[0084] Для оценки результатов обучения модели применялось значение метрики F1 (среднее гармоническое между полнотой и точностью).
где Recall (полнота) - демонстрирует способность алгоритма обнаруживать данный класс вообще, a Precision (точность) - способность отличать этот класс от других классов.
[0085] Для метрики F1 так-же требуется установить пороговое значение в диапазоне [0.8, 0.9], достижение которого приводило к остановке обучения.
[0086] В результате обучения классификатора, указанный классификатор показал значение метрики F1=91.8.
[0087] Таким образом, на этапе 130 осуществляют распознавание классов жестов на полученных изображениях.
[0088] Т.к. модель часто выделяет несколько гипотез с большой уверенностью (каждому предсказанию модель присваивает значение уверенности в нем), указывающих на один и тот же объект, то в одном частном варианте осуществления, для обработки таких случаев используется метод Non-Maximum Suppression (NMS), который позволяет оставить только одну ограничивающую рамку, как это показано на Фиг. 5. Однако необходимо учитывать, что на одном изображении может присутствовать два и более объектов одного класса. Предсказания с низкой уверенностью можно отбросить используя дополнительное пороговое значение ts - 0.35, это ускоряет работу метода, т.к. он сравнивает каждую ограничивающую рамку со всеми остальными рамками одного класса. Метод можно представить в виде формулы:
NMS(B, S, tIoU)={bi∈B: ∀bj∈B, i≠j; IoU (bi, bj)<tIoU; Si>Sj},
где В - все ограничивающие рамки класса, S - уверенность сети в классе ограничивающей рамки, tIoU=0.65 - порог пресечения дублирующихся ограничивающих рамок.
где А и В - ограничивающие рамки.
[0089] Поскольку пороги ts=0.35 и tIoU=0.65 являются общепринятыми и широко используются, мы также приняли решение использовать их.
[0090] Далее способ 100 переходит к этапу 140.
[0091] На этапе 140 формируют последовательность жестов, определенных на этапе 130.
[0092] Так, на указанном этапе 140 изображения объединяются в последовательный набор. Стоит отметить, что указанный набор содержит изображения в том порядке, в котором они были захвачены на этапе 110. Кроме того, в одном частном варианте осуществления изображениям могут быть присвоены порядковые номера для осуществления параллельной обработки.
[0093] Так, указанный этап 140 необходим для дальнейшего распознавания типа жеста. Под типом жеста в данном решении следует понимать наличие или отсутствие изменения положения жеста в пространстве в заданный временной период. Так, в одном частном варианте осуществления может приниматься два типа жестов: динамический жест и статичный жест. Динамичный жест может представлять, например, свайп в сторону, реализуемый изменением положения руки пользователя в горизонтальном положении как слева направо, так и наоборот, прокрутка элементов интерфейса вверх/вниз, реализуемая пользователем изменением положения руки в вертикальном положении, и т.д. Статичный жест может представлять собой жест команды стоп, реализуемый раскрытой ладонью, обращенной к камере, жест - сжатый кулак и т.д.
[0094] Далее, на этапе 150 определяют тип жеста из последовательности жестов, полученной на этапе d), причем, в ходе определения осуществляют: определение класса первого и последнего жеста из последовательности жестов; определение положения первого и последнего жеста в пространстве.
[0095] Для распознавания динамических жестов по статичным изображениям в настоящем техническом решении применяется алгоритм распознавания динамических жестов. Так, динамический жест состоит из жеста начала и жеста конца, например жест "swipe_left" (перелистывание элемента интерфейса, горизонтальная прокрутка) состоит из начального "hand right" и конечного "hand_left".
[0096] Для проверки правильности динамического жеста нами был разработан алгоритм с очередью, который включает в себя следующие шаги:
[0097] На первом шаге последовательность жестов, полученная на этапе 140 поступает в блок обработки изображений. Как указывалось выше, последовательность может формироваться в заданный временной период. Так, в одном частном варианте осуществления, конечный жест должен быть распознан не более, чем через N=20-30 кадров после начального жеста.
[0098] Далее, определяется пространственное положение начального и конечного жестов. Так, указанный шаг может выполняться посредством определения координат обрамляющих рамок (боксы), с помощью которых были распознаны указанные жесты. Например, на указанном шаге определяется находятся ли начальный и конечный жест на одной вертикальной или горизонтальной границе.
[0099] Кроме того, в еще одном частном варианте осуществления определяется положение жестов относительно захваченной сцены. Так, для признания жеста динамическим жест начала и жест конца должны быть разнесены в пространстве относительно друг друга не менее чем на одну ширину бокса (для горизонтальных) или высоту бокса (для вертикальных). Указанный шаг также может быть выполнен на основе координат обрамляющих рамок.
[0100] Кроме того, в еще одном частном варианте осуществления для улучшения качества распознавания и повышения точности может определяться по 2-3 жеста начала и жеста конца в очереди. Такая особенность может исключить ложные срабатывания классификатора типов жеста при непреднамеренном движении руки пользователя и/или непреднамеренном захвате руки пользователя, не показывающей жест.
[0101] Соответственно, если положение жеста начала и жеста конца совпадают и жесты расположены в одних и тех же координатах, то тип жеста определяется как статичный. Если же жест начала отличается от жеста конца, то тип жеста определяется как динамичный.
[0102] Так, рассмотрим указанный алгоритм на примере фиг. 4. На указанной фиг. 4 изображен пример динамических жестов.
[0103] Так, если очередь содержит начальный жест «рука справа», а конечный жест классифицирован как «рука слева», то тип жеста распознается как динамический. Причем, стоит отметить, что если начальный и конечный жесты не будут разнесены в пространстве, то жест будет распознан как статичный. Такая особенность обусловлена тем, что при показывании статичного жеста пользователем, камера может захватить момент опускания или сгибания кисти пользователя, что, соответственно приведет к формированию другого класса конечного жеста в последовательности.
[0104] Соответственно, если в течение заданного временного промежутка начальный и конечный жесты совпадают, то система 200 распознает статичный жест, например, жест развернутой ладони «стоп» и т.д.
[0105] Таким образом, на основе указанного алгоритма, определяется тип жеста, показанного пользователем.
[0106] После выполнения указанного этапа 150 очередь очищается и начинает вновь пополняться статичными жестами. Указанные особенности позволяют с высокой степенью надежности распознать динамический жест с приемлемым качеством.
[0107] Далее, на этапе 160 распознают жест пользователя на основе данных, полученных на этапе 150.
[0108] На этапе 160, на основе типа жеста пользователя, полученного на этапе 150, осуществляют распознавание жеста пользователя.
[0109] Так, на этапе 160 система 200 определяет класс жеста, введенного пользователем и может выполнить интерпретацию указанного класса жеста в соответствующую команду.
[0110] Например, в ответ на распознавание ввода жеста, соответствующего классу «стоп», система распознавания жестов 200 может выполнить целевое действие, соответствующее указанному классу. В еще одном частном варианте осуществления распознанный жест в виде команды может быть направлен, например, по сети связи, на электронное устройство.
[0111] Теперь рассмотрим один из примеров реализации заявленного технического решения.
[0112] В одном частном варианте осуществления реализация заявленного способа 100 может быть выполнена системой распознавания жестов, например системой 200. Указанная система содержит различные функциональные узлы, которые в совокупности образуют единую систему преобразования входного изображения в распознанные жесты. На вход системы 200 подается цветное изображение, которое поступает на блок предобработки. Он состоит из трех узлов - предварительное преобразование изображения до нужного размера, заполнение изображения фоном (нулевыми пикселями) и нормализация. В процессе преобразования картинки размер изображения задается требованиями к входному расширению нейросети. Типовые размеры на входе нейросети могут быть, например, 224×224, 256×256, 300×300, 320×320 и т.д. пикселей по ширине и высоте. После преобразования размера применяется заполнение изображения, которое добавляет нули (черный фон) по краям изображения, если это необходимо. Это позволяет сделать все изображения единого размера для дальнейшего объединения их в пачку (батч). На финальной стадии в блоке преобразования применяется нормализация изображения, которая производит математические преобразования со значениями пикселей изображения и переводит их в диапазон от -1 до 1.
[0113] Далее, изображение подается на вход блока обработки, состоящего из трех основных узлов.
[0114] Детектор, который предварительно обучен на задачу локализации. Вместе с блоком NMS детектор выдает координаты всех распознанных кистей рук на изображении. Далее с помощью предсказанной рамки из изображения вырезается фрагмент найденной руки и подается на вход классификатору.
[0115] Классификатор предсказывает один из 24 статичных жестов (к 18 добавляются "hand_left", "hand_right", "hand_down"). Модель классификатора выдает вероятности предсказания по каждому классу жеста. Чтобы убрать менее уверенные ответы после нейронной сети находится пороговое устройство, которое обрабатывает все гипотезы (предсказания объектов) и оставляет только наилучший класс жеста;
[0116] блок распознавания динамических жестов, выполненный с возможностью распознавания типа жеста на основе алгоритма, описанного на этапе 150.
[0117] Соответственно, по итогу обработки полученных изображений пользователя система распознает жест пользователя как команду.
[0118] На Фиг. 6 представлен пример общего вида вычислительной системы 200, которая обеспечивает реализацию заявленного способа или является частью компьютерной системы, например, сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения.
[0119] В общем случае система 200 содержит такие компоненты, как: один или более процессоров 201, по меньшей мере одну память 202, средство хранения данных 203, интерфейсы ввода/вывода 204, средство В/В 205, средство сетевого взаимодействия 206, которые объединяются посредством универсальной шины.
[0120] Процессор 201 выполняет основные вычислительные операции, необходимые для обработки данных при выполнении способа 100. Процессор 201 исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти 202.
[0121] Память 202, как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.
[0122] Средство хранения данных 203 может выполняться в виде HDD, SSD дисков, рейд массива, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средства 203 позволяют выполнять долгосрочное хранение различного вида информации, например изображений жестов пользователя и т.п.
[0123] Для организации работы компонентов системы 200 и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В 204. Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, Fire Wire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.
[0124] Выбор интерфейсов 204 зависит от конкретного исполнения системы 200, которая может быть реализована на базе широко класса устройств, например, персональный компьютер, мейнфрейм, ноутбук, серверный кластер, тонкий клиент, смартфон, сервер и т.п.
[0125] В качестве средств В/В данных 205 может использоваться: клавиатура, джойстик, дисплей (сенсорный дисплей), монитор, сенсорный дисплей, тачпад, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[0126] Средства сетевого взаимодействия 206 выбираются из устройств, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п. С помощью средств 205 обеспечивается организация обмена данными между, например, системой 200, представленной в виде сервера и вычислительным устройством пользователя, на котором могут отображаться полученные данные по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.
[0127] Конкретный выбор элементов системы 200 для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала.
[0128] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И СИСТЕМА ПОИСКА ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ | 2022 |
|
RU2807639C1 |
МЕТОД ДЛЯ ВЫДЕЛЕНИЯ И КЛАССИФИКАЦИИ ТИПОВ КЛЕТОК КРОВИ С ПОМОЩЬЮ ГЛУБОКИХ СВЕРТОЧНЫХ НЕЙРОННЫХ СЕТЕЙ | 2019 |
|
RU2732895C1 |
ДЕТЕКТИРОВАНИЕ И ИДЕНТИФИКАЦИЯ ОБЪЕКТОВ НА ИЗОБРАЖЕНИЯХ | 2020 |
|
RU2726185C1 |
СПОСОБ ГЕНЕРАЦИЙ ИЗОБРАЖЕНИЙ НА ОСНОВЕ АНАЛИЗА ПОЛЬЗОВАТЕЛЬСКИХ ПРЕДПОЧТЕНИЙ | 2023 |
|
RU2812413C1 |
РЕПРОДУЦИРУЮЩАЯ АУГМЕНТАЦИЯ ДАННЫХ ИЗОБРАЖЕНИЯ | 2018 |
|
RU2716322C2 |
СПОСОБ ТЕКСТОГЕНЕРАЦИИ НА ОСНОВЕ МАШИННОГО ОБУЧЕНИЯ | 2023 |
|
RU2821835C1 |
Способ распознавания назначенного донного объекта | 2022 |
|
RU2818184C1 |
СПОСОБ И СИСТЕМА ИДЕНТИФИКАЦИИ НОВООБРАЗОВАНИЙ НА РЕНТГЕНОВСКИХ ИЗОБРАЖЕНИЯХ | 2020 |
|
RU2734575C1 |
СПОСОБ МНОГОМОДАЛЬНОГО БЕСКОНТАКТНОГО УПРАВЛЕНИЯ МОБИЛЬНЫМ ИНФОРМАЦИОННЫМ РОБОТОМ | 2020 |
|
RU2737231C1 |
СИСТЕМА РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЯ: BEORG SMART VISION | 2020 |
|
RU2777354C2 |
Изобретение относится к области обработки изображений, в частности к способу и системе распознавания жестов пользователя. Техническим результатом является повышение точности распознавания жестов пользователя. Способ выполняется по меньшей мере одним вычислительным устройством и содержит этапы, на которых: получают по меньшей мере два изображения пользователя за заданный временной промежуток; осуществляют выделение области руки пользователя на каждом полученном изображении с помощью первой модели машинного обучения на базе нейронной сети, обученной на распознавание областей рук пользователей, осуществляют распознавание класса жеста, на каждом полученном изображении с помощью второй модели машинного обучения на базе нейронной сети, обученной на распознавание статических жестов, формируют последовательность жестов, определяют тип жеста из последовательности жестов, распознают жест пользователя. 2 н. и 10 з.п. ф-лы, 6 ил.
1. Способ распознавания жестов, выполняющийся по меньшей мере одним вычислительным устройством и содержащий этапы, на которых:
a) получают по меньшей мере два изображения пользователя за заданный временной промежуток;
b) осуществляют выделение области руки пользователя на каждом полученном изображении с помощью первой модели машинного обучения на базе нейронной сети, обученной на распознавание областей рук пользователей, причем в ходе обучения осуществляют:
i. аугментацию каждого изображения первого обучающего набора данных посредством изменения параметров изображения;
ii. объединение изображений, полученных на шаге i;
iii. нормализацию аугментированного набора данных;
c) осуществляют распознавание класса жеста, на каждом полученном изображении с помощью второй модели машинного обучения на базе нейронной сети, обученной на распознавание статических жестов, причем в ходе обучения осуществляют:
i. аугментацию каждого изображения второго обучающего набора данных посредством изменения параметров изображения;
ii. нормализацию аугментированного набора данных;
d) формируют последовательность жестов, определенных на этапе с);
e) определяют тип жеста из последовательности жестов, полученной на этапе d), причем в ходе определения осуществляют:
i. определение класса первого и последнего жеста из последовательности жестов;
ii. определение положения первого и последнего жеста в пространстве;
f) распознают жест пользователя на основе данных, полученных на этапе е).
2. Способ по п. 1, характеризующийся тем, что распознавание области руки пользователя осуществляется посредством выделения множества областей руки на изображении.
3. Способ по п. 2, характеризующийся тем, что область руки пользователя определяют на основе выбора лучшей выделенной области руки пользователя на каждом изображении посредством сравнения выделенных областей руки для указанного изображения между собой.
4. Способ по п. 1, характеризующийся тем, что по меньшей мере два изображения получают посредством устройства фото/видео фиксации.
5. Способ по п. 2, характеризующийся тем, что устройство фото/видео фиксации представляет собой видеокамеру.
6. Способ по п. 1, характеризующийся тем, что параметры изображения представляют по меньшей мере один из следующих параметров: яркость, контрастность, размер, ориентация.
7. Способ по п. 1, характеризующийся тем, что объединение изображений представляет собой формирование мозаичного изображения из по меньшей мере четырех изображений.
8. Способ по п. 1, характеризующийся тем, что определение класса первого и последнего жеста из последовательности жестов выполняется в заданный временной период.
9. Способ по п. 8, характеризующийся тем, что заданный временной период не превышает тридцать кадров.
10. Способ по п. 1, характеризующийся тем, что определение положения первого и последнего жеста в пространстве дополнительно включает определение расстояния между первым и последним жестом последовательности.
11. Способ по п. 1, характеризующийся тем, что дополнительно содержит этап выполнения целевого действия, соответствующего распознанному жесту.
12. Система распознавания жестов, содержащая:
• по меньшей мере один процессор;
• по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение способа по любому из пп. 1-11.
СПОСОБ И УСТРОЙСТВО ДЛЯ РАСПОЗНАВАНИЯ ЖЕСТА | 2016 |
|
RU2690202C2 |
Способ и устройство для разметки жестов жестового языка | 2023 |
|
RU2816047C1 |
US 20120225719 A1, 06.09.2012 | |||
US 20210191611 A1, 24.06.2021 | |||
US 20210390289 A1, 16.12.2021 | |||
WO 2019108880 A1, 06.06.2019 | |||
US 20220382386 A1, 01.12.2022 | |||
CN 110458095 A, 15.11.2019 | |||
CN 110959160 A, 03.04.2020 | |||
US 20220413630 A1, 29.12.2022 | |||
US 20220188538 A1, 16.06.2022 | |||
US 20230051467 A1, |
Авторы
Даты
2024-10-30—Публикация
2024-01-25—Подача