Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

DATA PROCESSING IN THE ANALYSIS OF QUALITY PAVEMENT

Artemov M.A. 1 Babkin S.V. 1 Baranovskiy E.S. 1
1 Voronezh State University
This article describes a method for data processing within problem of analysis of pavement. Sensor Kinect is used to perform pavement analysis. This device can provide synchronized color and depth frames 24 times per second. In this context, word «synchronization» means, that appropriate pixels on both frames describe color and distance of the same object. This feature allows processing not only depth data, but also saving color frames. Each depth frame is represented with pixels, which describe a distance between Kinect and the object. Using a depth frame, it can be produced so-called three-dimensional cloud of points. All the data should be processed in real time, so the selected method should be capable of processing 24 frames per second. This is the most complicated problem. Moreover, the method should somehow eliminate noises, which exist in Kinect depth frames. The first stage of the algorithm is rotation of three-dimensional cloud. To perform data analysis the cloud should be oriented in parallel to two axes. To do it, it is necessary to apply rotation matrix to every point in the cloud. The second stage of algorithm should perform analysis of rotated cloud. The most obvious algorithms were not sufficiently fast to perform data analysis in real time. It was found improvements that speed up processing and made time complexity linear with small hidden constant. Due to these improvements, data was processed fast enough to do it in real time.
data analysis
information systems
pavement
depth data
three-dimensional cloud
time complexity

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

Одним из современных комплексов, применяемых для анализа качества покрытия, является программно-аппаратный комплекс видеопаспортизации дорог «СВПД». Этот комплекс обладает рядом преимуществ перед более ранними анализаторами, а именно: привязка к GPS, видеообработка, анализ рельефа, обработка в реальном времени. Тем не менее имеются два серьезных недостатка: высокая цена и отсутствие синхронизации видеокамеры с лазерным сканером рельефа дороги.

При создании перспективного программно-аппаратного комплекса, позволяющего анализировать качество дороги, сохранять результаты анализа в базу данных, а также представлять полученные результаты в наглядном виде, можно использовать в качестве сенсора устройство Kinect [1–3]. Анализ данных, приходящих от Kinect, осуществляется на стандартном офисном компьютере.

Сенсор Kinect удовлетворяет всем требованиям, предъявляемым к анализатору. Этот сенсор имеет стандартную видеокамеру, позволяющую снимать видео в формате вплоть до FULL HD. Стандартная видеокамера нужна для получения цветовых кадров, которые можно сохранять в базу данных для последующего отображения на карте. Определяющим фактором, из-за которого в качестве сенсора был выбран Kinect, является наличие так называемой камеры глубины, которая состоит из инфракрасного приемника и передатчика. Передатчик излучает уникальную инфракрасную матрицу, а приемник получает искаженное изображение и на основе искажений определяет расстояние до каждой конкретной точки. Более того, данные, поступающие от стандартной камеры, и данные камеры глубины синхронизированы. Синхронизация дает возможность найти расстояние до объектов, изображенных на кадре, полученном от обычной камеры.

Kinect закреплен спереди (на базе автомобиля) и направлен вниз (в сторону движения автомобиля). Для того чтобы начать процедуру анализа покрытия дороги, оператору необходимо нажать на компьютере одну кнопку, после чего двигаться со скоростью не более 40 км/ч. При большей скорости возрастает уровень шумов сенсора и, следовательно, вероятность ошибки. При этом оператору не нужно «специально» въезжать в ямы, так как комплекс анализирует кадры цвета и глубины, а не колебания сенсора.

Кадры глубины очень похожи на обычные цветовые фотографии. Единственным отличием является то, что цветовые фотографии задаются пикселями, каждый из которых имеет какой-либо цвет, а кадры глубины описываются пикселями, которые задаются расстоянием в сантиметрах до заданного объекта. Таким образом, кадр глубины представляет собой облако трехмерных точек, каждая из которых задается двумерными координатами пикселя на экране и третьей координатой расстояния до объекта. Инструменты разработчика, поставляемые вместе с Kinect, позволяют преобразовывать такие координаты в обычные трехмерные координаты. В этом случае система координат будет привязана к сенсору, ось Y направлена вверх, а ось Z совпадает с главным направлением Kinect (рис. 1).

Целью работы является нахождение оптимального метода обработки данных глубины для определения качества дорожного покрытия. Наиболее трудная часть задачи, которую предстояло решить, связана с увеличением скорости работы алгоритма. Данные требуется обрабатывать со скоростью 24 кадра в секунду. Такая скорость необходима для того, чтобы была возможность обрабатывать каждый кадр, приходящий от сенсора Kinect. Тривиальные алгоритмы (например, обработка каждой точки глубины для каждого возможного положения колеса) оказались недостаточно быстрыми, чтобы обрабатывать данные в режиме реального времени. В работе предложен подход, позволивший ускорить обработку данных и сделать временную сложность алгоритма линейной с малой скрытой константой. При этом можно обрабатывать данные в режиме реального времени. В результате появляется возможность не сохранять большой объем «сырых» данных, требующих последующей обработки.

pic_1.tif

Рис. 1. Система координат сенсора Kinect

Преобразование кадра глубины

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

Первая трудность, которую необходимо преодолеть, связана с произвольной ориентацией облака точек [4]. Можно утверждать, что облако точек будет с некоторым допуском находиться в пределах некоторой плоскости (идеально ровная поверхность), но нельзя гарантировать, что эта плоскость будет параллельна сразу двум осям координат. Этого невозможно добиться, поскольку Kinect закреплен спереди автомобиля и направлен не перпендикулярно вниз к плоскости дороги, а наклонен вперед, в сторону движения. Тем не менее сенсор закреплен горизонтально, что гарантирует параллельность поверхности к оси OX. Следовательно, чтобы облако точек оказалось сориентированным параллельно сразу двум осям, нужно повернуть пространство вокруг оси OX. При этом целесообразно сделать такой поворот, чтобы облако расположилось параллельно плоскости XOY.

pic_2.tif

Рис. 2. Проекция облака точек на плоскость YOZ

На рис. 2 изображена проекция на плоскость YOZ. Черными точками обозначено облако точек. Прямая, изображенная штриховым пунктиром, – это проекция идеальной поверхности, вдоль которой расположены точки. Пространство необходимо повернуть на такой угол, чтобы идеальная поверхность оказалась на месте прямой, изображенной точечным пунктиром.

Перед тем как осуществить поворот пространства, нужно вычислить положение идеальной поверхности. Для этого необходимо найти координаты пары ключевых точек A и B на плоскости YOZ. Эти координаты невозможно найти точно. В зависимости от метода вычисления координаты точек, а следовательно, и положение плоскости могут отличаться. Более того, важно учесть, что данные от сенсора содержат погрешности, в них присутствуют шумы. Таким образом, нельзя взять две произвольные точки из облака и считать их ключевыми. Чтобы избежать влияния шумов, можно вычислить координаты ключевой точки следующим образом:

1) из облака делается выборка точек с граничными значениями координаты Y;

2) вычисляется среднее арифметическое координат выбранных точек.

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

artemov01.wmf

Чтобы осуществить соответствующий поворот пространства, применяется матрица поворота:

artemov02.wmf

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

Выровняв облако точек по горизонтали, необходимо его проанализировать на дефекты и искривления. Методы, основанные на прямом анализе взаимного расположения точек трехмерного облака, не подходят для решения данной задачи, так как, во-первых, являются недостаточно быстрыми, а во-вторых, очень чувствительны к шумам Kinect, а также к узким ямам и трещинам на дороге, которые автомобиль проезжает практически незаметно. Рассмотрев различные способы анализа трехмерного облака точек, было принято решение использовать метод моделирования движения колеса (рис. 3) [5].

pic_3.tif

Рис. 3. Траектория движения колеса

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

При моделировании движения колеса важно учитывать следующий момент. Трехмерные точки облака расположены с различной плотностью в разных частях пространства. Там, где дорога была ближе к сенсору, плотность наивысшая, а там, где дальше – самая низкая. Из-за этого нельзя моделировать движение непосредственно по облаку точек, так как невозможно однозначно утверждать, какие точки принадлежат выбранной траектории движения. Точнее говоря, это невозможно сделать за 1/24 секунды. Дело в том, что от сенсора каждый раз приходит 640480 = 307200 трехмерных координат и обрабатывать их за квадратичное время, очевидно, нельзя. В данном случае подойдет алгоритм, работающий не медленнее O(n log(n)), где n – это количество точек.

Сначала необходимо построить по облаку точек карту высот колеса с заданной частотой дискретизации. В данном случае частота 5 см будет достаточной. Тогда для хранения такой карты высот будет достаточно двумерного массива размером 8080, так как область дороги, попавшая в поле зрения сенсора, будет не более 44 м.

Одно из простых решений с линейной сложностью предполагает следующие шаги:

1. Инициализация карты высот отрицательными значениями.

2. Для каждой трехмерной точки вычисляется, на какие положения колеса она влияет.

3. Для каждого положения колеса вычисляется высота, если бы колесо стояло на заданной точке.

4. В карте высот сохраняется максимальное значение высоты.

Несмотря на линейную сложность, этот алгоритм слишком медленный, так как содержит большую внутреннюю константу. Действительно, каждая точка может влиять на (20 / 5)(60 / 5) = 48 различных положений колеса при ширине колеса 20 см и диаметре 60 см. В результате сложность алгоритма составляет O(48n). Кроме того, нужно проанализировать карту высот, на что времени уже не остается.

Усовершенствовать данный алгоритм возможно благодаря следующей особенности. Рассмотрим движение колеса вперед. В любой момент времени колесо опирается не более чем на 2 точки. Оно может соприкасаться и с большим количеством точек, но в рамках рассматриваемой задачи этим можно пренебречь. Движение колеса представляет собой последовательные переходы между состояниями, когда колесо стоит на двух точках. Во время перехода колесо находится только на передней точке, которая после перехода становится задней. Исходя из этого можно сделать вывод, что если колесо во время движения в какой-то момент времени перестало лежать на заданной точке, то в дальнейшем оно никогда не будет лежать на ней.

Необходимо принять во внимание, что благодаря определенному расположению Kinect точки в облаке будут упорядочены по направлению движения. Другими словами, можно с уверенностью сказать, что точка, полученная с нижнего пикселя глубины, будет расположена ближе точки, полученной с верхнего пикселя. Это значит, что возможно обрабатывать облако точек последовательно вдоль (или против) направления движения. Последовательная обработка, в свою очередь, позволяет пересчитывать положения колеса только до тех пор, пока колесо еще может стоять на обрабатываемой точке. Если же в некотором положении колесо находится на уже обработанной точке и не опирается на текущую, то можно утверждать, что последующие положения колеса никак не могут опираться на текущую точку.

Проделав обработку облака точек вдоль и против направления движения, получаем точную карту расположения колеса с заданной частотой дискретизации. При этом среднее количество положений колеса, вычисляемое для каждой точки по оси движения, не будет превышать 4 в подавляющем большинстве случаев. В результате для каждой точки будет посчитано в среднем (20 / 5)4 = 16 положений.

Для того чтобы дополнительно ускорить алгоритм, можно вычислить заранее сдвиг колеса по высоте в зависимости от относительного расположения колеса и точки опоры (рис. 4).

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

artemov03.wmf

pic_4.tif

Рис. 4. Положение колеса на смещенной точке опоры

Вычислив заранее СН для различных значений АН, можно не вычислять это расстояние каждый раз по формуле, а использовать соответствующее приближенное значение.

Выводы

В настоящей работе предложен метод обработки данных глубины, позволяющий анализировать дорожное покрытие, обрабатывая поступающие данные в режиме реального времени. Благодаря найденным закономерностям, удалось ускорить выполнение работы в три раза. Дополнительное ускорение работы можно получить при предварительном подсчете сдвигов по высоте. Кроме того, найденный метод обработки данных позволяет значительно уменьшить влияние шумов от Kinect. Это достигается за счет моделирования проезда колеса: траектория движения будет слабо изменяться из-за узких «провалов», вызванных неточностями входных данных.