Оценка положения — различия между версиями
Id0ntmind (обсуждение | вклад) (→Выбор модели) |
м (rollbackEdits.php mass rollback) |
||
(не показано 10 промежуточных версий 3 участников) | |||
Строка 1: | Строка 1: | ||
{{В разработке}} | {{В разработке}} | ||
− | '''Оценка положения''' - | + | {{Определение |
+ | |definition = | ||
+ | '''Оценка положения''' (англ. ''Pose Estimation'') {{---}} задача определения положения и ориентации объекта или группы объектов в пространстве. | ||
+ | }} | ||
== Области применения == | == Области применения == | ||
− | Задача оценки положения движущихся и статичных объектов возникает во множестве прикладных областей. Сейчас происходит подъем популярности разработки устройств и систем, отслеживающих положения объектов окружающего мира и использующих эту информацию для различных целей | + | Задача оценки положения движущихся и статичных объектов возникает во множестве прикладных областей. Сейчас происходит подъем популярности разработки устройств и систем, отслеживающих положения объектов окружающего мира и использующих эту информацию для различных целей. Рассмотрим несколько областей: |
− | #'''Транспортные средства с встроенными системами помощи водителю ''' ''(автопилот, круиз контроль и др.)''. | + | #'''Транспортные средства с встроенными системами помощи водителю ''' ''(автопилот, круиз контроль и др.)''. Эти системы помогают водителю с парковкой, контролируют скорость и направление движения, а также предупреждают об объектах, находящихся на дороге, о типе дорожного покрытия и возможных авариях. |
− | #'''Дополненная реальность:''' устройства в которых в реальное изображение, получаемое с помощью видеокамер, встраивается некоторая информация полезная человеку. | + | #'''Дополненная реальность: '''устройства, в которых в реальное изображение, получаемое с помощью видеокамер, встраивается некоторая информация, полезная человеку. |
− | #'''Виртуальная реальность: ''' оценка положения, как технология является критически важной для достижения эффекта погружения в виртуальную реальность. В сочетании с отслеживанием ориентации становится возможным измерять и передавать в | + | #'''Виртуальная реальность: '''оценка положения, как технология, является критически важной для достижения эффекта погружения в виртуальную реальность. В сочетании с отслеживанием ориентации становится возможным измерять и передавать в виртуальную реальность все 6 степеней свободы ([https://en.wikipedia.org/wiki/Six_degrees_of_freedom 6-DoF]) реального мира. |
− | #'''Робототехника: ''' | + | #'''Робототехника: '''роботы (медицинские, научные, промышленные и др.), которые основывают свое движение на построении карты окружения и препятствий. |
− | #'''Веб-технологии: ''' | + | #'''Веб-технологии: '''исследование пользовательского опыта и удобства использования продукта. Можно [[Отслеживание_направления_взгляда_пользователя_в_браузере|отслеживать взгляд пользователя]], чтобы понимать какие блоки сайта привлекают наибольшее внимание. |
== Методы решения задачи оценки положения == | == Методы решения задачи оценки положения == | ||
=== Акустические методы=== | === Акустические методы=== | ||
− | Акустические приборы слежения используют ультразвуковые (высокочастотные) звуковые волны для измерения положения и ориентации целевого объекта. Для определения положения объекта измеряется время пролёта ([https://en.wikipedia.org/wiki/Time_of_arrival time-of-arrival]) звуковой волны от передатчика к приёмникам, либо разность фаз синусоидальной звуковой волны при приёмо-передаче. Алгоритмы | + | Акустические приборы слежения используют ультразвуковые (высокочастотные) звуковые волны для измерения положения и ориентации целевого объекта в пространстве. Для определения положения объекта либо измеряется время пролёта ([https://en.wikipedia.org/wiki/Time_of_arrival time-of-arrival]) звуковой волны от передатчика к приёмникам, либо разность фаз синусоидальной звуковой волны при приёмо-передаче. Алгоритмы отслеживания положения при использовании акустических приборов основаны на [https://en.wikipedia.org/wiki/True_range_multilateration трилатерации] и расчете [https://en.wikipedia.org/wiki/Angle_of_arrival угла прибытия]. При использовании данных методов разработчики сталкиваются с некоторыми проблемами: акустические трекеры, как правило, имеют низкую скорость обновления, связанную с низкой скоростью звука в воздухе, которая зависит от внешних факторов среды, таких как температура, давление и влажность. |
=== Радиочастотные методы === | === Радиочастотные методы === | ||
− | Методов, основанных на радиочастотах достаточно много. | + | Методов, основанных на радиочастотах, достаточно много. |
− | #''' | + | #'''Позиционированиe с использованием пассивных радиочастотных идентификаторов [https://ru.wikipedia.org/wiki/RFID#Антиколлизионный_механизм_(меток) RFID]''' <br/> Основное назначение систем с пассивными RFID метками {{---}} идентификация. Они применяются в системах, традиционно использовавших штрих-коды или магнитные карточки: в системах распознавания товаров и грузов, опознания людей, в системах контроля и управления доступом (СКУД) и т.п. Система включает RFID метки с уникальными кодами и считыватели и работает следующим образом. Считыватель непрерывно генерирует радиоизлучение заданной частоты. ЧИП метки, попадая в зону действия считывателя, использует это излучение в качестве источника электропитания и передает на считыватель идентификационный код. Радиус действия считывателя составляет около метра. |
− | #'''Позиционирование с использованием активных | + | #'''Позиционирование с использованием активных RFID ''' <br/>Активные радиочастотные метки используются при необходимости отслеживания предметов на относительно больших расстояниях (например, на территории сортировочной площадки). Рабочие частоты активных RFID меток {{---}} 455МГц, 2.4ГГц или 5.8ГГц, а радиус действия {{---}} до ста метров. Питаются активные метки от встроенного аккумулятора. Существуют активные метки двух типов: [https://ru.wikipedia.org/wiki/Транспондер транспондеры] и [https://ru.wikipedia.org/wiki/Маркерный_радиомаяк радиомаяки]. Транспондеры включаются, получая сигнал считывателя. Они применяются в АС оплаты проезда, на КПП, въездных порталах и других подобных системах. Радиомаяки используются в системах позиционирования реального времени. Радиомаяк отправляет пакеты с уникальным идентификационным кодом по команде либо с заданной периодичностью. Пакеты принимаются как минимум тремя приемниками, расположенными по периметру контролируемой зоны. Расстояние от маячка до приемников с фиксированными координатами определяются по углу направления на маячок [https://en.wikipedia.org/wiki/Angle_of_arrival Angle of arrival] (AoA), по времени прихода сигнала [https://en.wikipedia.org/wiki/Time_of_arrival Time of arrival] (ToA) или по времени распространения сигнала от маячка до приемника [https://en.wikipedia.org/wiki/Time_of_flight Time of flight] (ToF). Инфраструктура системы строится на базе проводной сети и в двух последних случаях требует синхронизации. |
− | #''' Ultra Wideband (UWB) позиционирование '''<br/> Технология UWB (сверхширокополосная) использует короткие импульсы с максимальной полосой пропускания при минимальной центральной частоте. У большинства производителей центральная частота составляет несколько гигагерц, а относительная ширина полосы | + | #''' Ultra Wideband (UWB) позиционирование '''<br/> Технология UWB (сверхширокополосная) использует короткие импульсы с максимальной полосой пропускания при минимальной центральной частоте. У большинства производителей центральная частота составляет несколько гигагерц, а относительная ширина полосы {{---}} 25-100%. Технология используется в связи, радиолокации, измерении расстояний и позиционировании. Это обеспечивается передачей коротких импульсов, широкополосных по своей природе. Идеальный импульс (волна конечной амплитуды и бесконечно малой длительности), как показывает [https://ru.wikipedia.org/wiki/Анализ_Фурье анализ Фурье], обеспечивает бесконечную полосу пропускания. UWB сигнал не походит на модулированные синусоидальные волны, а напоминает серию импульсов. Производители предлагают разные варианты UWB технологии. Различаются формы импульсов. В некоторых случаях используются относительно мощные одиночные импульсы, в других {{---}} сотни миллионов маломощных импульсов в секунду. Применяется как когерентная (последовательная) обработка сигнала, так и не когерентная. Все это приводит к значительному различию характеристик UWB систем разных производителей. |
=== Магнитные методы === | === Магнитные методы === | ||
− | + | Магнитные методы основаны на измерении интенсивности магнитного поля в различных направлениях. Как правило, в таких системах есть [https://ru.wikipedia.org/wiki/Базовая_станция базовая станция], которая генерирует переменный или постоянный ток. Так как сила магнитного поля уменьшается с увеличением расстояния между точкой измерения и базовой станцией, можно определить местоположение контроллера, зная силу магнитного поля. Если точка измерения вращается, то распределение магнитного поля изменяется по различным осям, что позволяет определить ориентацию. Наиболее известными продуктами на основе магнитного трекинга являются [https://ru.wikipedia.org/wiki/Виртуальная_реальность VR] контроллер [https://ru.wikipedia.org/wiki/Hydra_(контроллер) Razer Hydra] и система [https://www.sixense.com/platform/hardware/ STEM] от компании Sixense. Точность данного метода может быть достаточна высока в контролируемых условиях (в спецификациях Hydra говорится о 1 мм позиционной точности и 1 градусе точности ориентации), однако магнитное отслеживание подвержено помехам от токопроводящих материалов вблизи излучателя или датчика, от магнитных полей, создаваемых другими электронными устройствами и ферромагнитных материалов в пространстве отслеживания. | |
=== Оптические методы === | === Оптические методы === | ||
− | Оптические методы представляют собой совокупность алгоритмов [ | + | Оптические методы представляют собой совокупность алгоритмов [http://neerc.ifmo.ru/wiki/index.php?title=Компьютерное_зрение компьютерного зрения] и отслеживающих устройств, в роли которых выступают камеры видимого или инфракрасного диапазона, стерео-камеры и камеры глубины. Оптический трекинг основан на том же принципе, что и стереоскопическое зрениe человека. Когда человек смотрит на объект с помощью бинокулярного зрения, он в состоянии определить, приблизительно на каком расстоянии объект находится. Не достаточно просто установить несколько камер для имитации стереоскопического зрения человека. Камеры должны определить расстояние до объекта и его положения в пространстве, так что их необходимо откалибровать. [https://ru.wikipedia.org/wiki/Оптическая_система Оптические системы] надежны и относительно дешевы, но с ними трудно провести начальную калибровку. Кроме того, система требует прямой линии света, в противном случае мы получаем неправильные данные. |
В зависимости от наличия специальных оптических маркеров выделяют отдельно: | В зависимости от наличия специальных оптических маркеров выделяют отдельно: | ||
− | *''' | + | *'''Безмаркерный трекинг: '''как правило строится на сложных алгоритмах с использованием двух и более камер, либо стерео-камер с сенсорами глубины. Используется наибольшим образом в автомобилях с автопилотом и иными системами помощи водителю. |
*'''Трекинг с использованием маркеров:''' предполагает заранее заданную модель объекта, которую можно отслеживать даже с одной камерой. Маркерами обычно служат источники инфракрасного излучения (как активные, так и пассивные), а также видимые маркеры наподобие [https://ru.wikipedia.org/wiki/QR-код QR]-кодов. Такой вид трекинга возможен только в пределах прямой видимости маркера. | *'''Трекинг с использованием маркеров:''' предполагает заранее заданную модель объекта, которую можно отслеживать даже с одной камерой. Маркерами обычно служат источники инфракрасного излучения (как активные, так и пассивные), а также видимые маркеры наподобие [https://ru.wikipedia.org/wiki/QR-код QR]-кодов. Такой вид трекинга возможен только в пределах прямой видимости маркера. | ||
− | === Задача Perspective-n-Point (PnP) === | + | === Задача Perspective-n-Point (PnP) === |
+ | При оптическом отслеживании для определения положения объекта в пространстве решается так называемая задача PnP (Perspective-n-Point), когда по перспективной проекции объекта на плоскость сенсора камеры необходимо определить положение объекта в 3D-пространстве. | ||
− | [[Файл:Pnp.gif |400px|thumb| | + | Для заданной 3D-модели объекта и 2D-проекции объекта на плоскость камеры решается система уравнений. В результате чего получается множество возможных решений. Количество решений зависит от числа точек в 3D-модели объекта. Однозначное решение для определения 6-DoF положения объекта можно получить как минимум при 4 точках. Для треугольника получается от 2 до 4 возможных решений, то есть положение не может быть определено однозначно. |
− | + | ||
+ | <div style="text-align: center"><ul> | ||
+ | <li style="display: inline-block;"> [[Файл:Pnp.gif |400px|thumb|center| Рис. 1 Задача (PnP)]] </li> | ||
+ | <li style="display: inline-block;"> [[Файл:triangles.gif |400px|thumb|center| Рис. 2 Решение "треугольников"]] </li> | ||
+ | </ul></div> | ||
− | |||
Решение предлагается достаточно большим количеством алгоритмов, реализованных в виде библиотек: | Решение предлагается достаточно большим количеством алгоритмов, реализованных в виде библиотек: | ||
− | #'''[http://sv-journal.org/2015-4/09/index.php?lang=ru POS]''' ''(Pose from Orthography and Scaling)'', аппроксимирующий перспективную проекцию с помощью масштабированной ортогональной проекции и находящий матрицу поворота и вектор сдвига объекта путём решения линейной системы | + | #'''[http://sv-journal.org/2015-4/09/index.php?lang=ru POS]''' ''(Pose from Orthography and Scaling)'', аппроксимирующий перспективную проекцию с помощью масштабированной ортогональной проекции и находящий матрицу поворота и вектор сдвига объекта путём решения линейной системы уравнений. |
#'''[https://github.com/opencv/opencv/wiki/Posit POSIT]''' ''(POS with ITerations)'', который использует в цикле аппроксимацию нахождения положения POS для нахождения более хорошей масштабированной ортогональной проекции особых точек, а затем применяет POS к этим точкам, а не к исходным. POSIT сходится к точному решению за несколько итераций. | #'''[https://github.com/opencv/opencv/wiki/Posit POSIT]''' ''(POS with ITerations)'', который использует в цикле аппроксимацию нахождения положения POS для нахождения более хорошей масштабированной ортогональной проекции особых точек, а затем применяет POS к этим точкам, а не к исходным. POSIT сходится к точному решению за несколько итераций. | ||
− | #'''[https://opencv.org/ OpenCV]''' | + | #'''[https://opencv.org/ OpenCV]''' {{---}} библиотека компьютерного зрения широкого назначения с открытым исходным кодом. Основные части библиотеки {{---}} интерпретация изображений и алгоритмы машинного обучения. Список возможностей, предоставляемых OpenCV, весьма обширен: интерпретация изображений, калибровка камеры по эталону, устранение оптических искажений, анализ перемещения объекта, определение формы объекта и слежение за объектом, сегментация объекта и др. Нам же интереcен метод [https://docs.opencv.org/3.1.0/d9/d0c/group__calib3d.html#ga549c2075fac14829ff4a58bc931c033d solvePnP]. |
− | === SLAM | + | === SLAM<ref>[https://ru.wikipedia.org/wiki/SLAM_(%D0%BC%D0%B5%D1%82%D0%BE%D0%B4) simultaneous localization and mapping ]</ref> {{---}} Simultaneous Localization and Mapping === |
− | Метод одновременной локализации и построения карты (SLAM) | + | Метод одновременной локализации и построения карты (SLAM) {{---}} наиболее популярный способ позиционирования, который применяется для отслеживания положения в пространстве.[[Файл:Slam.png |400px|thumb| right| Рис. 3 Метод SLAM]] |
− | Алгоритм состоит из двух частей: первая | + | Алгоритм состоит из двух частей: первая {{---}} составление карты неизвестного окружающего пространства на основе измерений (данные с [https://ru.wikipedia.org/wiki/Одометр одометра] или [https://ru.wikipedia.org/wiki/Стереоскопический_фотоаппарат стерео-камеры]), вторая {{---}} определение своего местоположения (локализация) в пространстве на основе сравнения текущих измерений с имеющейся картой пространства. Данный цикл непрерывно перевычисляется, при этом результаты одного процесса участвуют в вычислениях другого процесса. Наиболее популярные методы решения задачи включают в себя фильтр частиц и расширенный [https://ru.wikipedia.org/wiki/Фильтр_Калмана фильтр Калмана]. SLAM удобен для мобильных решений виртуальной и дополненной реальности. Недостатком данного подхода является большая вычислительная сложность. |
=== Инерциальный трекинг === | === Инерциальный трекинг === | ||
Современные инерциальные измерительные системы ([https://en.wikipedia.org/wiki/Inertial_measurement_unit IMU]) на основе [https://ru.wikipedia.org/wiki/Микроэлектромеханические_системы MEMS-технологии] позволяют отслеживать ориентацию (roll, pitch, yaw) в пространстве с большой точностью и минимальными задержками.[[Файл:gyro.gif |400px|thumb| right| Рис. 4 MEMS]] | Современные инерциальные измерительные системы ([https://en.wikipedia.org/wiki/Inertial_measurement_unit IMU]) на основе [https://ru.wikipedia.org/wiki/Микроэлектромеханические_системы MEMS-технологии] позволяют отслеживать ориентацию (roll, pitch, yaw) в пространстве с большой точностью и минимальными задержками.[[Файл:gyro.gif |400px|thumb| right| Рис. 4 MEMS]] | ||
− | Благодаря алгоритмам [https://en.wikipedia.org/wiki/Sensor_fusion «sensor fusion»] на основе [https://robotclass.ru/articles/complementary-filter комплементарного фильтра] или | + | Благодаря алгоритмам [https://en.wikipedia.org/wiki/Sensor_fusion «sensor fusion»] на основе [https://robotclass.ru/articles/complementary-filter комплементарного фильтра] или фильтра Калмана данные с гироскопа и акселерометра успешно корректируют друг друга и обеспечивают точность как для кратковременных измерений, так и для длительного периода. Однако определение координат (перемещения) за счёт двойного интегрирования линейного ускорения ([https://en.wikipedia.org/wiki/Dead_reckoning dead reckoning]), вычисленного из сырых данных с [https://ru.wikipedia.org/wiki/Акселерометр акселерометра], не удовлетворяет требованиям по точности на длительных периодах времени. Акселерометр сам по себе даёт сильно зашумленные данные, и при интегрировании ошибка увеличивается со временем квадратично. |
− | Решить данную проблему помогает комбинирование инерциального подхода к трекингу с другими методами, которые периодически корректируют | + | Решить данную проблему помогает комбинирование инерциального подхода к трекингу с другими методами, которые периодически корректируют так называемый дрифт акселерометра. |
=== Гибридные методы === | === Гибридные методы === | ||
Так как ни один из методов не является безупречным, и все они имеют свои слабые места, наиболее разумно комбинировать различные методы отслеживания. Так инерциальный трекинг (IMU) может обеспечить высокую частоту обновления данных (до 1000 Гц), в то время как оптические методы могут дать стабильную точность в длительные периоды времени (корректирование дрифта). | Так как ни один из методов не является безупречным, и все они имеют свои слабые места, наиболее разумно комбинировать различные методы отслеживания. Так инерциальный трекинг (IMU) может обеспечить высокую частоту обновления данных (до 1000 Гц), в то время как оптические методы могут дать стабильную точность в длительные периоды времени (корректирование дрифта). | ||
− | == | + | == Оценка положения человека == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | [[Файл:Deformable.png|600px|thumb|right|Рис. 5 Изобразительные структуры в классическом подходе решения задачи оценки положения человека.]] | |
− | + | [[Оценка положения человека|Оценка положения человека (англ. ''Human Pose Estimation'')]] {{---}} одна из важных задач последних нескольких десятилетий в области компьютерного зрения, которая является необходимым шагом к распознаванию людей на изображениях и видео. Задачу разбивают на 2 категории: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * Оценка положения в плоскости (англ. ''2D Human Pose Estimation'') {{---}} определение расположения отдельных частей тела и суставов человека (англ. ''keypoints/body joints'') на изображении. | |
+ | * Оценка положения в пространстве (англ. ''3D Human Pose Estimation'') {{---}} предсказание пространственного расположения тела человека. | ||
− | + | Оценку положения человека использует множество областей. В частности, распознавание жестов, упрощение анимации персонажей, в разработке игр, и другое. | |
− | |||
− | В | ||
− | + | Существуют различные подходы к решению данной задачи. Классический подход {{---}} использование изобразительных структур (англ. ''pictoral structures''). Основная идея заключается в том, чтобы представить объект в виде набора "частей", соединенных пружинами (Рис. 5). Каждая "часть" является деталью внешности(нога, рука, глаз и др.), соответствующим изображению. Когда части параметризованы расположением пикселей и ориентацией, полученная структура может моделировать "каркас" в положении человека. Однако этот подход ограничен количеством таких заранее построенных блочных структур, ведь они не зависят от входного изображения. Проводившиеся исследования были сосредоточены на обогащении репрезентативной силы этого метода, однако существуют более удачные подходы. Альтернативный подход {{---}} использование [[Сверточные нейронные сети|сверточных нейронных сетей (англ. ''Convolutional Neural Network, CNN'')]] и [[Глубокое обучение|глубокого обучения (англ. ''Deep learning'')]]. Большинство последних систем оценки положения человека используют именно этот подход, в значительной степени заменяя созданные вручную функции и графические модели. Использование машинного обучения значительно улучшило результаты. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | ==См. также== | ||
+ | *[[Отслеживание направления взгляда пользователя в браузере]] | ||
+ | *[[Сегментация изображений]] | ||
+ | *[[Вписывание части изображения]] | ||
+ | *[[Глубокое обучение]] | ||
+ | *[[Сверточные нейронные сети]] | ||
+ | == Примечания == | ||
+ | <references/> | ||
== Источники информации== | == Источники информации== | ||
Строка 550: | Строка 88: | ||
* [https://ru.qwe.wiki/wiki/Augmented_reality Дополненная реальность.] | * [https://ru.qwe.wiki/wiki/Augmented_reality Дополненная реальность.] | ||
* [https://ru.qwe.wiki/wiki/Positional_tracking Positional tracking.] | * [https://ru.qwe.wiki/wiki/Positional_tracking Positional tracking.] | ||
− | |||
* [http://docs.cntd.ru/document/gost-r-54621-2011 ГОСТ Р 54621-2011. Информационные технологии. Радиочастотная идентификация для управления предметами.] | * [http://docs.cntd.ru/document/gost-r-54621-2011 ГОСТ Р 54621-2011. Информационные технологии. Радиочастотная идентификация для управления предметами.] | ||
* [https://habr.com/ru/post/482220/ Локализация по Aruco маркерам] | * [https://habr.com/ru/post/482220/ Локализация по Aruco маркерам] | ||
* [https://habr.com/ru/post/397757/ Обзор методов и технологий отслеживания положения для виртуальной реальности.] | * [https://habr.com/ru/post/397757/ Обзор методов и технологий отслеживания положения для виртуальной реальности.] | ||
* [https://nanonets.com/blog/object-tracking-deepsort/ DeepSORT: Deep Learning to Track Custom Objects in a Video.] | * [https://nanonets.com/blog/object-tracking-deepsort/ DeepSORT: Deep Learning to Track Custom Objects in a Video.] | ||
− | * [https:// | + | * [https://nanonets.com/blog/human-pose-estimation-2d-guide/ Оценка положения человека.] |
− | |||
− | |||
{{В разработке}} | {{В разработке}} | ||
+ | |||
+ | [[Категория:Компьютерное зрение]] | ||
+ | [[Категория:Оценка положения]] |
Текущая версия на 19:13, 4 сентября 2022
Определение: |
Оценка положения (англ. Pose Estimation) — задача определения положения и ориентации объекта или группы объектов в пространстве. |
Содержание
Области применения
Задача оценки положения движущихся и статичных объектов возникает во множестве прикладных областей. Сейчас происходит подъем популярности разработки устройств и систем, отслеживающих положения объектов окружающего мира и использующих эту информацию для различных целей. Рассмотрим несколько областей:
- Транспортные средства с встроенными системами помощи водителю (автопилот, круиз контроль и др.). Эти системы помогают водителю с парковкой, контролируют скорость и направление движения, а также предупреждают об объектах, находящихся на дороге, о типе дорожного покрытия и возможных авариях.
- Дополненная реальность: устройства, в которых в реальное изображение, получаемое с помощью видеокамер, встраивается некоторая информация, полезная человеку.
- Виртуальная реальность: оценка положения, как технология, является критически важной для достижения эффекта погружения в виртуальную реальность. В сочетании с отслеживанием ориентации становится возможным измерять и передавать в виртуальную реальность все 6 степеней свободы (6-DoF) реального мира.
- Робототехника: роботы (медицинские, научные, промышленные и др.), которые основывают свое движение на построении карты окружения и препятствий.
- Веб-технологии: исследование пользовательского опыта и удобства использования продукта. Можно отслеживать взгляд пользователя, чтобы понимать какие блоки сайта привлекают наибольшее внимание.
Методы решения задачи оценки положения
Акустические методы
Акустические приборы слежения используют ультразвуковые (высокочастотные) звуковые волны для измерения положения и ориентации целевого объекта в пространстве. Для определения положения объекта либо измеряется время пролёта (time-of-arrival) звуковой волны от передатчика к приёмникам, либо разность фаз синусоидальной звуковой волны при приёмо-передаче. Алгоритмы отслеживания положения при использовании акустических приборов основаны на трилатерации и расчете угла прибытия. При использовании данных методов разработчики сталкиваются с некоторыми проблемами: акустические трекеры, как правило, имеют низкую скорость обновления, связанную с низкой скоростью звука в воздухе, которая зависит от внешних факторов среды, таких как температура, давление и влажность.
Радиочастотные методы
Методов, основанных на радиочастотах, достаточно много.
- Позиционированиe с использованием пассивных радиочастотных идентификаторов RFID
Основное назначение систем с пассивными RFID метками — идентификация. Они применяются в системах, традиционно использовавших штрих-коды или магнитные карточки: в системах распознавания товаров и грузов, опознания людей, в системах контроля и управления доступом (СКУД) и т.п. Система включает RFID метки с уникальными кодами и считыватели и работает следующим образом. Считыватель непрерывно генерирует радиоизлучение заданной частоты. ЧИП метки, попадая в зону действия считывателя, использует это излучение в качестве источника электропитания и передает на считыватель идентификационный код. Радиус действия считывателя составляет около метра. - Позиционирование с использованием активных RFID
Активные радиочастотные метки используются при необходимости отслеживания предметов на относительно больших расстояниях (например, на территории сортировочной площадки). Рабочие частоты активных RFID меток — 455МГц, 2.4ГГц или 5.8ГГц, а радиус действия — до ста метров. Питаются активные метки от встроенного аккумулятора. Существуют активные метки двух типов: транспондеры и радиомаяки. Транспондеры включаются, получая сигнал считывателя. Они применяются в АС оплаты проезда, на КПП, въездных порталах и других подобных системах. Радиомаяки используются в системах позиционирования реального времени. Радиомаяк отправляет пакеты с уникальным идентификационным кодом по команде либо с заданной периодичностью. Пакеты принимаются как минимум тремя приемниками, расположенными по периметру контролируемой зоны. Расстояние от маячка до приемников с фиксированными координатами определяются по углу направления на маячок Angle of arrival (AoA), по времени прихода сигнала Time of arrival (ToA) или по времени распространения сигнала от маячка до приемника Time of flight (ToF). Инфраструктура системы строится на базе проводной сети и в двух последних случаях требует синхронизации. - Ultra Wideband (UWB) позиционирование
Технология UWB (сверхширокополосная) использует короткие импульсы с максимальной полосой пропускания при минимальной центральной частоте. У большинства производителей центральная частота составляет несколько гигагерц, а относительная ширина полосы — 25-100%. Технология используется в связи, радиолокации, измерении расстояний и позиционировании. Это обеспечивается передачей коротких импульсов, широкополосных по своей природе. Идеальный импульс (волна конечной амплитуды и бесконечно малой длительности), как показывает анализ Фурье, обеспечивает бесконечную полосу пропускания. UWB сигнал не походит на модулированные синусоидальные волны, а напоминает серию импульсов. Производители предлагают разные варианты UWB технологии. Различаются формы импульсов. В некоторых случаях используются относительно мощные одиночные импульсы, в других — сотни миллионов маломощных импульсов в секунду. Применяется как когерентная (последовательная) обработка сигнала, так и не когерентная. Все это приводит к значительному различию характеристик UWB систем разных производителей.
Магнитные методы
Магнитные методы основаны на измерении интенсивности магнитного поля в различных направлениях. Как правило, в таких системах есть базовая станция, которая генерирует переменный или постоянный ток. Так как сила магнитного поля уменьшается с увеличением расстояния между точкой измерения и базовой станцией, можно определить местоположение контроллера, зная силу магнитного поля. Если точка измерения вращается, то распределение магнитного поля изменяется по различным осям, что позволяет определить ориентацию. Наиболее известными продуктами на основе магнитного трекинга являются VR контроллер Razer Hydra и система STEM от компании Sixense. Точность данного метода может быть достаточна высока в контролируемых условиях (в спецификациях Hydra говорится о 1 мм позиционной точности и 1 градусе точности ориентации), однако магнитное отслеживание подвержено помехам от токопроводящих материалов вблизи излучателя или датчика, от магнитных полей, создаваемых другими электронными устройствами и ферромагнитных материалов в пространстве отслеживания.
Оптические методы
Оптические методы представляют собой совокупность алгоритмов компьютерного зрения и отслеживающих устройств, в роли которых выступают камеры видимого или инфракрасного диапазона, стерео-камеры и камеры глубины. Оптический трекинг основан на том же принципе, что и стереоскопическое зрениe человека. Когда человек смотрит на объект с помощью бинокулярного зрения, он в состоянии определить, приблизительно на каком расстоянии объект находится. Не достаточно просто установить несколько камер для имитации стереоскопического зрения человека. Камеры должны определить расстояние до объекта и его положения в пространстве, так что их необходимо откалибровать. Оптические системы надежны и относительно дешевы, но с ними трудно провести начальную калибровку. Кроме того, система требует прямой линии света, в противном случае мы получаем неправильные данные. В зависимости от наличия специальных оптических маркеров выделяют отдельно:
- Безмаркерный трекинг: как правило строится на сложных алгоритмах с использованием двух и более камер, либо стерео-камер с сенсорами глубины. Используется наибольшим образом в автомобилях с автопилотом и иными системами помощи водителю.
- Трекинг с использованием маркеров: предполагает заранее заданную модель объекта, которую можно отслеживать даже с одной камерой. Маркерами обычно служат источники инфракрасного излучения (как активные, так и пассивные), а также видимые маркеры наподобие QR-кодов. Такой вид трекинга возможен только в пределах прямой видимости маркера.
Задача Perspective-n-Point (PnP)
При оптическом отслеживании для определения положения объекта в пространстве решается так называемая задача PnP (Perspective-n-Point), когда по перспективной проекции объекта на плоскость сенсора камеры необходимо определить положение объекта в 3D-пространстве.
Для заданной 3D-модели объекта и 2D-проекции объекта на плоскость камеры решается система уравнений. В результате чего получается множество возможных решений. Количество решений зависит от числа точек в 3D-модели объекта. Однозначное решение для определения 6-DoF положения объекта можно получить как минимум при 4 точках. Для треугольника получается от 2 до 4 возможных решений, то есть положение не может быть определено однозначно.
Решение предлагается достаточно большим количеством алгоритмов, реализованных в виде библиотек:
- POS (Pose from Orthography and Scaling), аппроксимирующий перспективную проекцию с помощью масштабированной ортогональной проекции и находящий матрицу поворота и вектор сдвига объекта путём решения линейной системы уравнений.
- POSIT (POS with ITerations), который использует в цикле аппроксимацию нахождения положения POS для нахождения более хорошей масштабированной ортогональной проекции особых точек, а затем применяет POS к этим точкам, а не к исходным. POSIT сходится к точному решению за несколько итераций.
- OpenCV — библиотека компьютерного зрения широкого назначения с открытым исходным кодом. Основные части библиотеки — интерпретация изображений и алгоритмы машинного обучения. Список возможностей, предоставляемых OpenCV, весьма обширен: интерпретация изображений, калибровка камеры по эталону, устранение оптических искажений, анализ перемещения объекта, определение формы объекта и слежение за объектом, сегментация объекта и др. Нам же интереcен метод solvePnP.
SLAM[1] — Simultaneous Localization and Mapping
Метод одновременной локализации и построения карты (SLAM) — наиболее популярный способ позиционирования, который применяется для отслеживания положения в пространстве.Алгоритм состоит из двух частей: первая — составление карты неизвестного окружающего пространства на основе измерений (данные с одометра или стерео-камеры), вторая — определение своего местоположения (локализация) в пространстве на основе сравнения текущих измерений с имеющейся картой пространства. Данный цикл непрерывно перевычисляется, при этом результаты одного процесса участвуют в вычислениях другого процесса. Наиболее популярные методы решения задачи включают в себя фильтр частиц и расширенный фильтр Калмана. SLAM удобен для мобильных решений виртуальной и дополненной реальности. Недостатком данного подхода является большая вычислительная сложность.
Инерциальный трекинг
Современные инерциальные измерительные системы (IMU) на основе MEMS-технологии позволяют отслеживать ориентацию (roll, pitch, yaw) в пространстве с большой точностью и минимальными задержками.Благодаря алгоритмам «sensor fusion» на основе комплементарного фильтра или фильтра Калмана данные с гироскопа и акселерометра успешно корректируют друг друга и обеспечивают точность как для кратковременных измерений, так и для длительного периода. Однако определение координат (перемещения) за счёт двойного интегрирования линейного ускорения (dead reckoning), вычисленного из сырых данных с акселерометра, не удовлетворяет требованиям по точности на длительных периодах времени. Акселерометр сам по себе даёт сильно зашумленные данные, и при интегрировании ошибка увеличивается со временем квадратично. Решить данную проблему помогает комбинирование инерциального подхода к трекингу с другими методами, которые периодически корректируют так называемый дрифт акселерометра.
Гибридные методы
Так как ни один из методов не является безупречным, и все они имеют свои слабые места, наиболее разумно комбинировать различные методы отслеживания. Так инерциальный трекинг (IMU) может обеспечить высокую частоту обновления данных (до 1000 Гц), в то время как оптические методы могут дать стабильную точность в длительные периоды времени (корректирование дрифта).
Оценка положения человека
Оценка положения человека (англ. Human Pose Estimation) — одна из важных задач последних нескольких десятилетий в области компьютерного зрения, которая является необходимым шагом к распознаванию людей на изображениях и видео. Задачу разбивают на 2 категории:
- Оценка положения в плоскости (англ. 2D Human Pose Estimation) — определение расположения отдельных частей тела и суставов человека (англ. keypoints/body joints) на изображении.
- Оценка положения в пространстве (англ. 3D Human Pose Estimation) — предсказание пространственного расположения тела человека.
Оценку положения человека использует множество областей. В частности, распознавание жестов, упрощение анимации персонажей, в разработке игр, и другое.
Существуют различные подходы к решению данной задачи. Классический подход — использование изобразительных структур (англ. pictoral structures). Основная идея заключается в том, чтобы представить объект в виде набора "частей", соединенных пружинами (Рис. 5). Каждая "часть" является деталью внешности(нога, рука, глаз и др.), соответствующим изображению. Когда части параметризованы расположением пикселей и ориентацией, полученная структура может моделировать "каркас" в положении человека. Однако этот подход ограничен количеством таких заранее построенных блочных структур, ведь они не зависят от входного изображения. Проводившиеся исследования были сосредоточены на обогащении репрезентативной силы этого метода, однако существуют более удачные подходы. Альтернативный подход — использование сверточных нейронных сетей (англ. Convolutional Neural Network, CNN) и глубокого обучения (англ. Deep learning). Большинство последних систем оценки положения человека используют именно этот подход, в значительной степени заменяя созданные вручную функции и графические модели. Использование машинного обучения значительно улучшило результаты.
См. также
- Отслеживание направления взгляда пользователя в браузере
- Сегментация изображений
- Вписывание части изображения
- Глубокое обучение
- Сверточные нейронные сети
Примечания
Источники информации
- Радиочастотная идентификация.
- Дополненная реальность.
- Positional tracking.
- ГОСТ Р 54621-2011. Информационные технологии. Радиочастотная идентификация для управления предметами.
- Локализация по Aruco маркерам
- Обзор методов и технологий отслеживания положения для виртуальной реальности.
- DeepSORT: Deep Learning to Track Custom Objects in a Video.
- Оценка положения человека.