УДК 004.93.11, 004.354
Е.К. Конягин1, Н. А. Фокин1, А. В. Хелъвас2, К. К. Панкратов3,
1 Московский физико-технический институт (национальный исследовательский университет) 2000 «Лаборатория моделирования систем» 3Symbotic LLC
Измерение размеров коробок на ленте транспортера путем обработки видеопотока в реальном времени
Предложено решения для измерения размеров коробок на ленте складского транспортера на основе анализа видеоизображения. Приведено описание геометрической модели и разработанных алгоритмов обработки изображения.
Ключевые слова: складская система, обработка видео, измерение размеров коробок.
Е.К. Копу agin1, N. A. Fokin1, А. V. Helvas2, К. К. Pankratov3
1
2
3
Boxes size measurement on the basis of real time video
stream processing
We propose the solution to the problem of boxes size measurement on the belt of warehouse conveyor. Our approach uses only the videostream data to make the measurements. The solution consists of the proper geometric model (central projection) and searching for object vertices.
Key words: video processing, belt of warehouse conveyor.
1. Введение
Перспективным направлением развития современных складских технологий является создание полностью автоматизированных складов, функционирующих без использования операций, выполняемых вручную. На таких складах перемещение грузов осуществляется роботизированными системами различного типа, основными типами которых являются мобильные роботы и различного типа транспортеры, самый распространенный среди которых ленточный.
После того как товар в упаковке попал в пространство такого полностью автоматизированного склада, все операции с ним осуществляются робототехническими системами на основе полностью автоматических алгоритмов обработки. При этом возрастает роль контроля качества и размера используемой упаковки товаров на основе систем машинного зрения.
В статье описано решение задачи контроля геометрических размеров коробок, движущихся по ленте транспортера на основе обработки видео.
@ Конягин Е. К., Фокин Н. А., Хельвас А. В., Панкратов К. К., 2019
(с) Федеральное государственное автономное образовательное учреждение высшего образования
«Московский физико-технический институт (национальный исследовательский университет)», 2019
2. Общее описание подхода
В качестве источника информации предложено использовать черно-белую видеокамеру высокого (2 Мр1х) разрешения, осуществляющую контроль движения коробок по ленте транспортера и передающую видеопоток в обрабатывающую программу в реальном времени.
Помимо камеры, другие устройства сбора информации и средства метрологии не используются.
Видеопоток обрабатывается программой, на выходе которой формируются геометрические размеры коробки (длина, ширина, высота).
Перспективные искажения объектива устраняются предварительной калибровкой (алгоритм подробно описан в п. 5.3).
Далее происходит обнаружение измеряемого объекта в кадре и построение его внешнего контура.
После этого находятся вершины данного контура и устанавливается соответствие между ними и действительными вершинами измеряемого объекта.
Используются следующие предположения о геометрии объекта:
1) верхняя и нижняя грани коробки являются прямоугольниками, причем равными, а сама коробка представляет собой прямоугольный параллелепипед;
2) в рамках данной работы мы предполагаем, что фон на изображении однотонный.
В рамках выбранного приближения задача нахождения геометрических размеров объекта сводится к нахождению расстояния между соответствующими вершинами в трехмерном пространстве.
Эта задача решается в два этапа:
1) вначале осуществляем вычисление координат объекта в неподвижной трехмерной системе координат, связанной с лентой транспортера;
2) далее вычисляем расстояние между соответствующими вершинами, координаты которых были вычислены на предыдущем шаге.
3. Обзор литературы
Известны публикации [2], [6], в которых предлагается явно находить вид преобразования системы координат.
Такое преобразование является композицией нескольких преобразований (трансляция, поворот и перспективное проектирование).
Описанные подходы учитывают внутренние параметры камеры, например фокусное расстояние, поэтому при замене камеры вид преобразования (то есть матрица преобразования) должен меняться.
В статье далее приведен разработанный подход к измерению объектов на конвейере, использующий предположение, что объекты являются прямоугольными параллелепипедами, без явного построения матриц преобразования.
4. Геометрическая модель
В качестве геометрической модели соотношения реального объекта и объекта на изображении используется центральная проекция.
На рис. 1 приведен пример кадра, который далее используется для оценки размеров коробки.
Красным цветом обозначены оси неподвижной трехмерной системы координат ОХУИ.
Рис. 1. Изображение объекта на ленте транспортера
Черным цветом обозначены оси двумерной системы координат оху1 связанной с кадром (начало которой находится в левом верхнем углу кадра).
Системы координат связаны между собой композицией преобразований: трансляции, поворота и перспективной проекции. В предложенном нами методе не ставится задача явно найти матрицу результирующего преобразования. Нам достаточно найти преобразование для плоскости ОХ¥, переводящее точку с координатами (Хо,У0, 0) в системе координат ОХУ^ в точку (хо, уо) в системе координат оху.
Чтобы выполнить данное преобразование, необходимо знать соотношения координат в первой и второй системах координат для четырех точек, не лежащих на одной прямой [1].
Методы, ранее предложенные для измерения объектов с помощью анализа статического кадра [2], [6], требуют задать параметры камеры такие, например, как фокусное расстояние. Предлагаемый метод обеспечивает решение данной задачи без учета параметров используемой камеры.
После нахождения преобразования плоскости ОХУ мы можем найти координаты точек объекта, принадлежащих нижней грани, в неподвижной трехмерной системе координат. После этого можно найти длину и ширину объекта как расстояния между соседними вершинами (см. п. 5). Задача о нахождении высоты объекта ставится как задача о линейной регрессии, где в качестве признаков используются координаты вершин в системе координат, связанной с кадром. Выбор линейной модели в данном случае мы считаем оправданным, так как линейные размеры тела I = а • Я, где Я - это расстояние от камеры до объекта, а - множитель, не зависящий от Z [7].
5. Описание разработанного алгоритма
Блок-схема, описывающая этапы анализа входного изображения, приведена на рис. 2.
Обработка видеопотока включает:
1) Анализ текущего кадра детектором объектов.
2) Предварительную обработку изображения.
3) Поиск контура объекта.
4) Поиск вершин объекта.
5) Уточнение координат вершин.
6) Вычисление геометрических координат объекта.
Рис. 2. Блок-схема программы
5.1. Загрузка и предварительная обработка
Вначале видеоноток анализируется на предмет присутствия или отсутствия коробки в кадре.
Детектирование осуществляется путем предобученного классификатора на основе евер-точной нейронной сети: на вход поступает текущий кадр видеопотока, на выход бинарный результат (0 коробка не обнаружена, 1 коробка обнаружена).
В нашем случае перед классификатором стояла задача исключить ложноположитель-ные срабатывания (ошибка I рода), поскольку в случае такого срабатывания программа могла непредсказуемо продолжить работу. Однако при пороге логистической регрессии Т = 0.5 их количество было ничтожно мало (не более 1 раза на 80 тестовых изображениях). Таким образом, точность срабатывания детектора Precision = 0.95, полнота Recall = 0.70. В дальнейшем предполагается увеличивать Recall до значений порядка 0.95.
После обнаружения коробки детектором происходит предварительная обработка изображения и поиск контура этой коробки. Она включает в себя гауссово размытие с ядром размера 10 х 10 и удаление шума.
В результате предварительной обработки контуры объектов становятся более четкими (рис. За). После того как предварительная обработка выполнена, производится поиск контуров с использованием оператора Кэнни [5]. В результате применения к изображению оператора Кэнни изображение становится бинарным: пиксель кадра будет белым, если он принадлежит контуру, и черным, если нет (рис. ЗЬ).
Такое изображение обрабатывается алгоритмом, встроенным в программную библиотеку машинного зрения opcnCV [4|, и из полученных контуров выбирается тот, который покрывает наибольшую по величине площадь. Предполагается, что этот контур является контуром обнаруженной в кадре коробки. Предположение оправдано, если фон изображенная является однотонным.
5.2. Поиск вершин на контуре
Найденный в предыдущей части контур сохраняется в массив точек {(xi, Vi)}i=Q.N_ 1, где N - суммарное количество точек, принадлежащих контуру. По этому массиву находятся
ребра коробки, затем - вершины. Алгоритмы поиска ребер и вершин приведены с описанием на псевдокоде (см. алгоритм 1).
Initialization;
Ridgesbottam = Empty array; Ridgestop = Empty array, Load Contour;
q := (х0,Уо) £ Contour && x0 := min(^ £ Contour)-, D0 := (x,y) £ Contour && dist{(x,y),q} < R0 && у > yo; while q = (xmSiX,y(xmSx)) do h := fit(D0, kx + b);
D1 := (x,y) £ Contour : dist{(x,y),k} < E1; Ridgei := fit(D1, kx + 6); Ridgesbottam + = Ridgef, end
D0 := (x,y) £ Contour : dist{(x,y),q} < R0 & у <y0] while q = (x max, y(x max )) li := fit(D0, kx + b)]
D1 := (x,y) £ Contour : dist{(x,y),k} < E1; Ridgei := fit(D1, kx + 6); Ridgestop + = Ridgef, end
Ridges := merge(Ridgesbottam, Ridgestop)] Ridges := sorted_counterclockwise(Ridges); End.
Algorithm 1: Алгоритм, осуществляющий поиск ребер на контуре
В алгоритме 1 в качестве метода аппроксимации fit используется алгоритм RANSAC [3].
После того как все ребра Ridges найдены, можно найти точки пересечения г-го и i + 1-го ребра, где i £ [0, 5] & i + 1 := 0 if i = 5. Эти точки и являются вершинами обрабатываемого контура (рис. 4а).
5.3. Описание калибровки
Перед тем как описывать алгоритмы, осуществляющие непосредственные измерения размеров коробок, мы хотим описать калибровочные алгоритмы, используемые в нашей программе. Как было сказано в п. 4, для измерения высоты применяется метод, отличающийся от метода нахождения длины и ширины.
Измерение высоты осуществляется по анализу двух последовательных кадров видеопотока. Анализ включает в себя поиск и последовательное сопоставление особых точек на обоих кадрах. Затем, зная смещение каждой особой точки по ж-координате, строится карта глубины (расстояние от камеры до объекта в мировой системе координат), после чего находятся плоскости, отвечающие граням коробки. Далее находится расстояние между плоскостью конвейера и верхней плоскостью коробки. Данное расстояние связано с реальным расстоянием через постоянный множитель который можно найти, измерив высоту эталонного объекта.
Измерение длины и ширины коробки осуществлялось с помощью предварительного построения матрицы перспективного преобразования для плоскости, содержащей нижнюю грань коробки.
Для построения матрицы такого преобразования достаточно было задать соответствие между координатами любого четырехугольного объекта в системе координат кадра и системе координат конвейера. После построения матрицы преобразования координаты нижних
вершин в системе координат конвейера можно связать с координатами этих же вершин в системе координат кадра с помощью системы уравнений:
х =
Мпх* + М12 у* + Mia
М;цХ* + Мэ2 у* + Mas' M2ix* + М22У* + М23
У М3 гх* + М3 2У* + М3 а'
г = 0,
V
где (х*, у*) - координаты вершин в системе координат кадра, а (х,у,х) - координаты вершин в системе координат конвейера, М - матрица перспективного преобразования. Точность этого метода составила также 10 мм.
5.4. Метрология
В п. 5.2 были получены координаты вершин в системе координат, связанной с кадром. Однако нам требуются координаты вершин в неподвижной трехмерной системе координат, связанной с конвейером. Перед тем как приступить к преобразованию систем координат, выполняется поиск недостающих вершин коробки (для этого используются свойства перспективного преобразования и используется понятие vanishing point). Предполагается, что в каждый момент времени нам известно, какие вершины коробки в кадре видны, а какие - нет. Алгоритм поиска недостающих вершин приведен ниже и описан на псевдокоде.
Initialize;
at := (vertex)0 — (vertex)1 := (vertex)4 — (vertex)5\
11 : (vertex)o + t - a!; l2 : (vertex)4 + p -02;
A = aij, i £ [1, 2]; j £ [1, 2]; b := (vertex)4 — (vertex)o',
solve Alt = b , it = (t0,po)T ; di = (vertex)o +10 - ax]
— = (vertex) 2 — (vertex) — = (vertex) 4 — (vertex) a\
12 : (vertex)2 + t ; l2 : (vertex)4 + p -04;
A = aij, i £ [3,4]; j £ [1,2]; b = (vertex)4 — (vertex)2\
solve A11 = l, 1 = (t0,po)T ;
¿2 = (vertex)2 + to ■1
h : di + t ■ 111; I2 : d2 + p ■ ^
11 = di — (vertex)2; 1 = d2 — (vertex) 0\
A = агз; i £ [5, 6]; j £ [1, 2];
solve A11 = b ; 11 = (t0,p0)T ;
(vertex)6 = di +10 ■ al;
11 = di — (vertex)4; 11 = d2 — (vertex)
A = aij; i £ [7, 8]; j £ [1, 2];
solve A11 = 1 ; 1 = (t0,p0)T ;
(vertex)j = di +10 ■
End.
Algorithm 2: Алгоритм поиска недостающих вершин коробки
После завершения работы алгоритма 2 мы знаем координаты всех вершин коробки в системе координат, связанной с кадром (рис. 4Ь). Предполагается также, что вершинами, принадлежащими нижней грани, являются две вершины с максимальными координатами по оси Оу и две вершины, которые были найдены алгоритмом 2 (назовем эти вершины Vb).
Остальные вершины, по предположению, принадлежат верхней грани (назовем эти вершины Vt соответственно). После того как получены наборы Vt и Vb, запускаются алгоритмы,
изложенные в п. 5.4. В результате работы этих алгоритмов мы получаем на выходе значение высоты коробки Н и координаты вершин нижней грани коробки. Вычисляя расстояния между соседними вершинами
А = \/(х1 - х— )2 + (у1 - у1-х)2,
можно найти длину и ширину коробки.
На выходе этого алгоритма мы получили все значения всех трех размеров коробки в трехмерном пространстве: длины, ширины и высоты. На этом обработка текущего кадра заканчивается.
а) Ь)
Рис. 4. Обнаружение вершин на полученном контуре
Рис. 5. Вывод результата
6. Результаты эксперимента и оценка точности измерений
Работа алгоритма была проверена на тестовом наборе, состоящем из 10 различных коробок, с линейными размерами от 50 до 300 миллиметров. В результате экспериментов погрешность измерений составила атеап = 7 тт, где
#
&mean = ^ ¡У ^ (Hlrae ^mes)2.
Работа выполнена в рамках COS&HT Summer Workshop с использованием видеокамеры компании XIMEA MC023MG-SY.
Литература
1. Роджерс Д.Ф., Адаме Дж.А. Математические основы машинной графики. Москва : Мир, 2001.
2. Criminisi A., Reid L, Zisserman A. Single View Metrology // International Journal of Computer Vision. 2000. V. 40, I. 2. P. 123-148.
3. Fischler M.A., Bolles R.C. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography. 1981.
4. Suzuki S. [et al.\. Topological structural analysis of digitized binary images by borderfollowing // Computer Vision, Graphics, and Image Processing. 1985. V. 30(1). P. 32-46.
5. Canny J. A Computational Approach To Edge Detection // IEEE Trans. Pattern Analysis and Machine Intelligence. 1986. V. 8(6). P. 679-698.
6. Wilczkowiak M., Boyer E., Sturm P. Camera calibration and 3D reconstruction from single images using parallelepipeds. ISBN 0-7695-1143-0. 2002.
7. Alter T.D. 3D Pose from 3 Corresponding Points under Weak-Perspective Projection. Technical Report 1378. MIT Artificial Intelligence Laboratory, 1992.
References
1. Rogers D.F., Adams J.A. Mathematical Elements for Computer Graphics. Moscow : Mir, 2001.
2. Criminisi A., Reid I., Zisserman A. Single View Metrology. International Journal of Computer Vision. 2000. V. 40, I. 2. P. 123-148.
3. Fischler M.A., Bolles R.C. Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography. 1981.
4. Suzuki S., et al, Topological structural analysis of digitized binary images by borderfollowing. Computer Vision, Graphics, and Image Processing. 1985. V. 30(1). P. 32-46.
5. Canny J. A Computational Approach To Edge Detection. IEEE Trans. Pattern Analysis and Machine Intelligence. 1986. V. 8(6). P. 679-698.
6. Wilczkowiak M., Boyer E., Sturm P. Camera calibration and 3D reconstruction from single images using parallelepipeds. ISBN 0-7695-1143-0. 2002.
7. Alter T.D. 3D Pose from 3 Corresponding Points under Weak-Perspective Projection. Technical Report 1378. MIT Artificial Intelligence Laboratory, 1992.
Поступила в редакцию 15.01.2019