УДК 004

Алгоритм определения роста человека на видеозаписи

Ушакова Анастасия Сергеевна – студент кафедры Математического обеспечения и стандартизации информационных технологий МИРЭА – Российского технологического университета.

Аннотация: В данном исследовании предлагается алгоритм определения роста человека на видеозаписи с использованием аффинных преобразований пространства и параметров видеокамеры. Особое внимание уделяется вопросу распознавания человека на цветном изображении.

Ключевые слова: распознавание образов, машинное обучение, нейронные сети, алгоритм определения роста.

Перечень сокращений

CNN – Convolutional Neural Network

R-CNN – Region-based Convolutional Network

Faster-CNN – Faster Convolutional Neural Network

Fast-CNN – Fast Convolutional Neural Network

Mask R-CNN – Mask Region-based Convolutional Network

SVM – Support vector machine

RoI Pooling – Region of Interest Pooling

RPN – Region Proposal Network

IoU – Intersection over Union

COCO – Common Objects in Context

RoI Align – Region of Interest Align

FPN – Feature Pyramid Network

ResNet – Residual Network

Введение

Физические характеристики, такие как рост, ширина тела и длина шага, являются весомыми основаниями для идентификации человека на видеозаписи. Например, рост человека, заснятого камерой видеонаблюдения, является важным доказательством для установления личности подозреваемого. Физические характеристики также используются как важная информация для непрерывного слежения за конкретным человеком в системе видеонаблюдения, состоящей из нескольких камер [1].

В данном исследовании рассматривается определение роста человека с использованием внутренних и внешних значений параметров камеры, которые можно получить при её монтаже в результате калибровки. Предварительно изображение тела человека на определённом кадре цветной видеозаписи извлекается через Mask R-CNN [2]. Определяются две точки тела – самая верхняя и самая нижняя, затем их координаты на изображении преобразуются в 3D-координаты реального с использованием параметров камеры и аффинных преобразований и вычисляется евклидово расстояние между ними.

Распознавание человека на видеозаписи

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

Задачу распознавания объектов на цветном изображении можно разбить на следующие подзадачи: классификация, локализация, обнаружение, сегментация объектов. Классификация подразумевает присваивание метки для конкретного объекта, а локализация – определение ограничивающей его прямоугольной рамки. Подзадача обнаружения представляет собой определение прямоугольных ограничивающих рамок и меток для всех объектов на изображении, а сегментации - выделение совокупности определённых пикселей, которые принадлежат тому или иному объекту.

Для распознавания объектов в настоящее время одной из часто применяемых является архитектура нейросети на основе глубокого обучения Faster R-CNN. Её предшественниками являются R-CNN и Fast R-CNN [3].

Распознавание объектов с помощью R-CNN происходит в три этапа:

  1. Применяется алгоритм Selective Search, генерирующий 2000 разных областей, в которых содержатся искомые объекты с наибольшей вероятностью. Границы области определяются путём соединения соседних пикселей с похожей текстурой, цветом и интенсивностью. В результате его исполнения исходное изображение разделяется на регионы, где находятся объекты. Выделенные регионы выступают в качестве входных данных для обученной свёрточной нейронной сети (CNN).
  2. Для каждого из регионов CNN извлекает вектор признаков, которые затем выступают в качестве входных данных для метода опорных векторов (SVM).
  3. SVM выполняет функцию классификации объектов, а для уточнения прямоугольной ограничивающей рамки применяется линейная регрессия.
  4. С учётом того, что при использовании CNN генерируются избыточные ограничивающие рамки, которые охватывают один и тот же объект, заключительным шагом можно считать применение алгоритма подавления немаксимумов (non-maximum suppression). Он заключается в поиске локального максимума, то есть подавлении элементов, которые не являются максимальными значениями. Таким образом, в результате остаются только те ограничивающие рамки, которые содержат внутри себя искомый объект с максимальной вероятностью.

Несмотря на высокие показатели точности, R-CNN имеет недостатки. Архитектура затрачивает на обучение значительное количество памяти и времени из-за того, что SVM приходится обучать отдельно от CNN. Для решения этой проблемы были созданы модификации, которые получили свою реализацию в Fast R-CNN [4].

Распознавание объектов с помощью Fast R-CNN происходит следующим образом:

  1. В качестве входных данных для одной CNN подаётся исходное изображение целиком. Свёрточная нейросеть выполняет извлечение признаков. В результате формируется полноразмерная карта признаков, на основе которой осуществляется выбор регионов, в которых содержатся искомые объекты с наибольшей вероятностью.
  2. На втором этапе выполняется формирование карты признаков для исходного изображения. В Fast R-CNN используется алгоритм RoI Pooling. Сгенерированные регионы объектов преобразуются из размерности исходного изображения в размерность на полученной от последнего слоя CNN карты признаков. Таким образом, в результате выполнения алгоритма из произвольного прямоугольника исходного изображения формируется вектор признаков фиксированной размерности. Затем, после применения операции подвыборки (Max Pooling) получаем итоговую матрицу признаков.
  3. Для классификации объектов в Fast R-CNN, в отличие от R-CNN, используется не SVM, а слой softmax.
  4. 4. Softmax – функция активации, принимающая в себя N чисел, которые вернула нейросеть и отдающая на выходе N чисел в промежутке от 0 до 1, сумма которых равна 1.
  5. Параллельно классификации выполняется уточнение ограничивающей прямоугольной рамки каждого объекта при помощи регрессионной модели. Выделенные вероятные регионы и вектора признаков подаются на вход двум полносвязным слоям, первый из которых используется для уточнения ограничивающей рамки объекта, а второй – для навешивания метки класса.

Таким образом, свёрточная нейронная сеть в Fast R-CNN вместо обработки 2000 пересекающихся областей, применяется один раз для анализа всего изображения.

Архитектура Fast R-CNN выигрывает по скорости перед R-CNN, однако алгоритм Selective Search всё ещё работает затратно по времени на этапе обучения из-за необходимости определения вероятных регионов расположения объектов на изображении.

В Faster R-CNN Selective Search заменён на RPN – нейронную сеть выбора вероятных регионов. Распознавание объектов на изображении в Faster R-CNN включает следующие этапы:

  1. Формируется карта признаков после обработки исходного изображения свёрточной нейронной сетью.
  2. Определение регионов, где может находиться объект выполняется с использованием RPN. Сформированная карта признаков обрабатывается скользящим окном размера 3 x 3, в результате чего генерируется набор из 32 регионов. Для каждой позиции окна извлекается вектор признаков малой размерности. У выделенных регионов получаются разные пропорции и масштаб, но один и тот же центр. Для каждого из них выделяется IoU – отношение области пересечения к области объединения регионов. Если IoU больше заданного порогового значения, то регион считается True Positive, иначе False Positive. Если для какого-либо присутствующего на изображении объекта прогноз отсутствует, это False Negative.
  3. С помощью слоя RoI Pooling, как и в Fast R-CNN, происходит преобразование вектора признаков каждого из выделенных регионов в вектор признаков фиксированной размерности.
  4. Для классификации объектов и уточнении ограничивающих их рамок Faster R-CNN использует слой softmax и регрессивную модель Bounding Box Regression.

Faster R-CNN по скорости работы опережает предшествующие архитектуры. Faster R-CNN, обученная на наборе данных COCO, достигает высоких показателей по точности классификации и низких значений функции потерь [5].

Mask R-CNN представляет собой развитие архитектуры Faster R-CNN и решает задачу сегментации путём предсказания положения маски – прямоугольной матрицы, покрывающей искомый объект. Ячейки матрицы содержат 1 или 0, где 1 означает соответствующий пиксель изображения, относящийся к объекту заданного класса, а 0 – не относящийся. Каждому классу маски предсказываются отдельно, независимо от присвоенной объекту метки класса. Для выделенного региона, где вероятно находится объект, определяется маска, которая победила в независимом классификаторе.

Mask R-CNN кроме дополнительной ветки для нахождения масок объектов отличается от Faster R-CNN тем, что алгоритм RoI Pooling был заменён на RoI Align. Вычисление значений при отображении на карту признаков каждого из вероятных регионов нахождения объекта производится с применением билинейной интерполяции по четырём ближайшим признакам [2].

Извлечение карты признаков производится с помощью нейросетей FPN и ResNet. FPN сжимает масштаб входного кадра с помощью восходящих слоёв и расширяет масштаб с помощью нисходящих слоёв. Таким образом, может быть обнаружен объект различного масштаба. ResNet вводит алгоритм пропуска соединения, при котором выходное значение каждого слоя передаётся на следующий уровень и непосредственно в слои, находящиеся на расстоянии более 2-х пропусков. Алгоритм пропуска соединения уменьшает количество значений, которые необходимо изучить для весов слоёв, поэтому эффективность обучения ResNet повышается.

Определение роста человека

Алгоритм определения роста человека состоит из трёх стадий:

  1. Определение координат нижнего и верхнего пикселя тела человека на изображении.
  2. Координаты точки в реальном мире на основе её координат на изображении определяются с помощью аффинных преобразований: поворота и параллельного переноса. Преобразование плоскости называется аффинным, если оно непрерывно, взаимно однозначно и образом любой прямой является прямая.
  3. Расчёт евклидова расстояния между преобразованными координатами верхней и нижней точек.

В результате работы Mask R-CNN получены маски распознанных на изображении людей. Для каждой из масок людей пиксель с наибольшими значениями координат является наивысшей точкой объекта pв(xв, yв), с наименьшими – низшей pн(xн, yн). Требуется рассчитать рост человека в реальном мире, поэтому необходимо координаты изображения преобразовать в значения системы координат реального мира. Для решения данной задачи рассмотрим модель проективной камеры, представленной на рисунке 1 [6].

Рисунок 1. Модель проективной камеры.

Началом системы координат камеры является центр проекции. Каждая точка в системе координат реального мира проецируется в систему плоскости изображения линией, проходящей через центр проекции. Ось Z системы координат камеры является главной осью. Она перпендикулярна плоскости изображения, которую пересекает в точке z = f, где f – фокусное расстояние камеры, как показано на рисунке 1. Проекция из системы координат реального мира в систему координат изображения в плоскости изображения состоит из двух преобразований.

Первое – преобразование из системы координат реального мира в систему координат камеры, а второе – преобразование из системы координат камеры в систему координат изображения.

Для построения преобразования необходимы параметры камеры. Они состоят из внешних и внутренних параметров. Внешние используются для преобразования точки в системе координат реального мира в систему координат камеры. Они состоят из матрицы поворота R и вектора T для параллельного переноса в следующем виде:

.

Матрица поворота состоит из матриц поворота Rx(α), Ry(β), Rz(γ) вокруг осей X, Y и Z соответственно, где α, β и γ – углы, на которые происходит поворот. Вектор перемещения T представляет собой параллельный перенос точек системы координат реального мира в систему координат камеры.

Внутренние параметры видеокамеры используются для преобразования точки из системы координат камеры в систему координат изображения. Параметры состоят из фокусного расстояния камеры f и центра системы координат изображения C(cx, cy). Значения матрицы и вектора определяются эмпирически посредством калибровки камеры при её монтаже.

Обозначим через P(xм, yм, zм), Pк(xк, yк, zк), p(xизб, yизб) координаты точки в системе координат реального мира, в системе координат камеры и в системе координат изображения соответственно. Предположим, что камера, используемая для получения изображения, имеет очень маленькое искажение, исходя из чего её коэффициентами искажения можно пренебречь, тогда преобразование из системы координат реального мира в систему координат изображения можно описать следующими уравнениями [6]:

, (1)

. (2)

Параметры (fx, fy) задают фокусное расстояние, выраженное в ширине и высоте пикселя. В рассматриваемом случае предполагается, что пиксели в изображении квадратные, поэтому эти параметры равны и соответствуют физическому понятию фокусного расстояния = fx = fy.

Рассмотрим процесс нахождения координат точки P в системе координат реального мира. Предположим, что точка P находится на плоскости A, которая не параллельна прямой l, проходящей через Oк и точку на изображении p, как показано на рисунке 2. Точка P является точкой пересечения прямой l с плоскостью A.

Рисунок 2. Расположение точки P относительно системы координат камеры.

Центр системы координат камеры в координатах реального мира может быть определён следующим образом:

. (3)

Так как центр системы координат изображения C(cx, cy) не совпадает с Oк, то, с учётом равенства (2) точка p в системе координат реального мира может быть представлена следующим образом:

. (4)

Построим уравнение прямой l в пространстве по точке и направляющему вектору. Её направляющий вектор υ, как показано на рисунке 2, является параллельным к прямой и может быть определён как

. (5)

Таким образом, параметрическое уравнение прямой l задаётся в виде

. (6)

Из уравнения плоскости A, которое является результатом подстановки найденных выше координат (6) в уравнение ax+by+cz=d, где d ≠ 0, получим параметр t:

. (7)

Подставляя (7) в параметрическое уравнение прямой (6), получим выражения, которыми аппроксимируются значения координаты точки P в системе реального мира.

(8)

(9)

(10)

Посредством вышеописанного алгоритма координаты точек изображения pв(xв, yв) и pн(xн, yн) могут быть преобразованы в координаты реального мира Pв(xвм, yвм, zвм), Pн(xнм, yнм, zнм) и рассчитано значение роста человека H по формуле

. (11)

Заключение

В результате исследования был разработан алгоритм определения роста человека в реальном мире путём нахождения наивысшей и низшей точек маски человеческого тела, полученной с помощью нейросети Mask R-CNN, последующего их преобразования в координаты точек в реальном мире. Для аппроксимации реальных координат точек на плоскости по координатам изображения использовались параметры и особенности модели видеокамеры.

Список литературы

  1. Tsakanikas, V.; Dagiuklas, T. Video surveillance systems-current status and future trends // Comput. Electr. Eng. – 2018.- C. 736-753.
  2. K. He, G. Gkioxari, P. Dollár, R. Girshick Mask R-CNN // IEEE Transactions on Pattern Analysis and Machine Intelligence. – 2020. – №42. – С. 386-397.
  3. Ерохин Д.Ю., Ершов М.Д. Современные свёрточные нейронные сети для обнаружения и распознавания объектов // Цифровая обработка сигналов. - 2018. - No 3. - C. 66-71.
  4. Dong-seok Lee, Jong-soo Kim, Seok Chan Jeong, Soon-kak Kwon Human Height Estimation by Color Deep Learning and Depth 3D Conversion // Applied Sciences 10. – 2020. – №16. – С. 1-18.
  5. Сирота А.А., Митрофанова Е.Ю., Милованова А.И. Анализ алгоритмов поиска объектов на изображениях с использованием различных модификаций свёрточных нейронных сетей // Вестник Воронежского государственного университета. Серия: Системный анализ и информационные технологии. – 2019. – №3. – С. 123-137.
  6. Joko Siswantoro, Anton Satria Prabuwono, and Azizi Abdullah Real World Coordinate from Image Coordinate Using Single Calibrated Camera Based on Analytic Geometry // Communications in Computer and Information Science. – 2013. – С. 1-11.

Интересная статья? Поделись ей с другими: