УДК 004.932
DOI: 10.17586/0021-3454-2018-61-2-167-173
РАЗРАБОТКА ПРОГРАММНОГО КОМПОНЕНТА МОДУЛЯ СЪЕМКИ ПРОТЯЖЕННЫХ ОБЪЕКТОВ ДЛЯ СКАНЕРА ПИЛОМАТЕРИАЛОВ
В. М. Бортников, М. В. Абрамчук
Университет ИТМО, 197101, Санкт-Петербург, Россия E-mail: [email protected]
Описаны подходы к разработке программного компонента модуля съемки протяженных объектов для сканера пиломатериалов. Применение известных алгоритмов регистрации изображений позволяет значительно упростить конструкцию разрабатываемого сканера. Рассматривается алгоритм работы программного компонента, который представляет собой вычислительный граф; приводятся вычислительные операции, выполняемые при обработке кадра съемки. Приводится алгоритм для отделения объекта съемки от фона. Выбраны алгоритм полного перебора для сопоставления контрольных точек между кадрами и алгоритм RANSAC, который используется для построения модели преобразования. Схема реализации алгоритма RANSAC сравнивается с алгоритмом PROSAC.
Ключевые слова: техническое зрение, машинное зрение, сканер пиломатериалов, алгоритмы регистрации изображений, метод RANSAC, метод PROSAC, библиотека OpenCV
Введение. Сегодня предприятия деревообрабатывающей промышленности все чаще используют в качестве сырья клееные пиломатериалы: доски или брус. Такие материалы получены продольным склеиванием деревянных фрагментов (ламелей), из которых предварительно удалены дефекты пиломатериалов. Это позволяет предприятиям экономно расходовать сырье и повысить потребительские свойства конечной продукции: по сравнению с цельным массивом древесины такие материалы обладают прогнозируемыми прочностью и визуальным качеством.
Необходимым шагом в производстве ламелей является локализация, классификация и выторцовывание дефектов в соответствии с техническими требованиями предприятия. Зачастую эта монотонная работа выполняется вручную, что увеличивает влияние человеческого фактора на качество конечной продукции. Стоимость машин, способных проводить такие операции, составляет 100 000 евро и выше, кроме того в свете международного давления на государство посредством санкций возрастает необходимость в доступном оборудовании для отечественных предприятий.
Очевидно, что при разработке такого оборудования необходимо максимально упрощать все компоненты системы, в том числе и модуль видеозахвата изображения. Чаще всего с аппаратной стороны он представляет собой одну или несколько камер, работа которых механически или иным способом синхронизирована с перемещением пиломатериалов (досок). Широко используется схема с поперечным транспортером и несколькими камерами [1, 2], также существуют продольные сканеры, но, как правило, они значительно дороже [3, 4].
Для разрабатываемого сканера пиломатерилов решено использовать продольную схему с единственной камерой и применить алгоритмы регистрации изображений для получения информации о движении досок. Такие алгоритмы позволяют размещать кадры в единой координатной системе и использовать эти данные при склейке полученных кадров в единое изображение всей доски (панораму).
Использованные данные. Для разработки программного компонента устройства использовались изображения досок, полученные при помощи цифровой камеры разрешением 808x608 пикселов и с глобальным затвором. Камера имеет сверхширокоугольный объектив. Полученное при съемке разрешение составляет 5 пикселов на миллиметр. Во время движения по ленточному транспортеру доски снимались на видео. Плоскость матрицы устройства съемки располагались параллельно ленте транспортера. Всего для тестирования было использовано 56 погонных метров доски.
Для каждой съемки проводилась калибровка камеры по настроечному изображению. Такая калибровка позволяет построить модель искажений, вносимых объективом камеры, и программно их исправить.
Выбор модели перемещения между кадрами. Предложенная схема съемки пиломатериалов накладывает следующие условия:
1) доска движется только в продольном направлении;
2) камера незначительно перемещается в поперечном направлении из-за вибраций;
3) стороны кадра строго параллельны соответствующим границам ленты транспортера.
Движения объектов съемки могут быть описаны матрицей перемещения в однородных
двумерных координатах. Таким образом, модель имеет следующий вид:
"1 0 х0"
0 1 Уо . (1)
0 0 1
Для дальнейшей работы необходимо выбрать метод регистрации изображений; существуют
1) прямые методы попиксельного сравнения изображений;
2) методы, основанные на вычислении контрольных точек и их дескрипторов.
Из-за особенностей оптики и выбранного источника света одни и те же объекты на последовательных кадрах могут иметь разную экспозицию, что делает применение прямых методов затруднительным. Поэтому в настоящей работе реализован подход с вычислением контрольных точек, дескрипторы которых инвариантны к освещению.
Алгоритм работы программного компонента. Программный компонент представляет собой вычислительный граф (рис. 1), реализованный на языке программирования C++ с помощью библиотеки Intel Thread Building Blocks [5]. Каждая вершина такого графа является отдельным шагом алгоритма. Такой подход позволяет простейшим образом задействовать многопоточность современных процессоров.
Вычислительный граф обрабатывает каждый кадр, поступающий с камеры, и производит над ним следующие операции.
1. Используя априорные знания о структуре кадра, обновляет модель фона, с помощью которой находит на изображении объект.
2. Если объект занимает на кадре значительную площадь, в кадре исправляются искажения, внесенные оптикой камеры.
3. В кадре выделяются контрольные точки и их дескрипторы.
4. Каждый кадр сопоставляется с предыдущим кадром, в рамках которого контрольные точки сопоставляются по своим дескрипторам в обе стороны (кадр A с кадром Б, затем наоборот). Затем по отфильтрованным парам точек с помощью алгоритма RANSAC [6] (Random Sample and Consensus, стабильный метод оценки параметров модели на основе случайных выборок) строится модель преобразования из предыдущего кадра в текущий.
5. Производится накопление кадров в буфере, пока не будет получен пустой кадр (содержащий только фон). Как только такой кадр получен, буфер вместе с информацией о преобразованиях отправляется дальше по графу в склейку.
6. Алгоритм склейки проводит, если необходимо, коррекцию экспозиции и склеивает все изображения из буфера в полное изображение объекта.
Рис. 1
Отделение объекта от фона. Как бы точно не устанавливали камеру, на изображении помимо объекта (поверхности доски) будет присутствовать фон. Если на фоне есть достаточно
значимые детали, на нем могут быть выделены контрольные точки, которые внесут искажения в модель преобразования между кадрами. Поэтому для качественной склейки важно, чтобы контрольные точки были выделены только на поверхности объекта.
Кроме того, этот шаг алгоритма позволяет легко определить кадры, на которых объекта нет: их не нужно обрабатывать в следующих шагах алгоритма, что позволяет экономить вычислительные ресурсы.
Для решения этой задачи применен алгоритм, описанный в работах [7, 8] и реализованный в библиотеке компьютерного зрения с открытым исходным кодом OpenCV [9].
Выделение контрольных точек. Выделение контрольных точек и их дескрипторов происходит с помощью реализованного в OpenCV алгоритма SURF [10]. Реализованные в библиотеке абстракции позволяют легко перенастраивать программу на использование других алгоритмов выделения, а также довольно просто реализовывать свои собственные.
Алгоритмы, использующие бинарные дескрипторы контрольных точек, такие как FAST [11, 12], AKAZE [13], ORB [14] или BRISK [15], работают гораздо быстрее, чем SURF [10] или SIFT [16]. Кроме того, успехи прошлых лет в развитии сверточных нейронных сетей позволяют применить их и в этой задаче, что может повысить качество результата.
В рамках работы над программой для каждой съемки были установлены „идеальные" параметры алгоритма, которые затем будут использоваться для сравнения алгоритмов выделения точек между собой. Если на кадре обнаружено слишком мало контрольных точек, кадр считается „пустым" и удаляется.
Сопоставление контрольных точек и построение модели преобразования. Для сопоставления контрольных точек между кадрами используется алгоритм полного перебора, также реализованный в библиотеке OpenCV.
Алгоритм сопоставления сравнивает сначала дескрипторы контрольных точек кадра А с дескрипторами контрольных точек кадра Б, а затем наоборот. В результате получаются два списка совпадающих контрольных точек. Над каждым таким списком проводится так называемый „тест соотношения" (ratio test) [16] для удаления наиболее „плохих" совпадений.
Затем проводится проверка симметрии (symmetry test), которая оставляет только контрольные точки, прошедшие сопоставление кадра А с Б и кадра Б — с А. Далее с помощью собственной реализации метода RANSAC строится модель преобразований, имеющая вид простой матрицы переноса.
Применение метода RANSAC позволяет почти полностью исключить ложные совпадения контрольных точек и значительно повысить точность построения модели преобразований.
Экспокоррекция и склейка результирующего изображения. Обработанные кадры вместе с моделями преобразований накапливаются, пока не будет получен пустой кадр. После этого происходит коррекция экспозиции по всем изображениям согласно одному из алгоритмов, описанных в статьях [17—19]. Этот шаг не является обязательным и может быть пропущен, если освещение откалибровано должным образом.
Склейка изображений происходит либо простым алгоритмом, размывающим пересекающиеся области на кадрах, либо с помощью алгоритма, описанного в [20].
Выбор реализации RANSAC для сопоставления кадров. Алгоритм Random Sample and Consensus включает следующие шаги.
1. Выбрать из множества наблюдений подмножество, формирующее модель-гипотезу.
2. Вычислить модель-гипотезу и подсчитать количество наблюдений, с которыми она согласуется.
3. Основываясь на количестве наблюдений, с которыми гипотеза согласуется, принять или отвергнуть ее.
4. Повторять шаги 1—3 заданное число раз или до тех пор, пока вероятность выбора лучшей гипотезы не упадет ниже порога (возможны и другие критерии).
5. Перестроить модель по множеству согласия лучшей гипотезы.
Первоначально была реализована многопоточная реализация RANSAC, основанная на схеме Map-Reduce (модель распределенных вычислений). В этой реализации шаги 1—3 выполнялись в несколько потоков, а выбор лучшей модели происходил в главном потоке.
Другим вариантом стала однопоточная реализация алгоритма Progressive RANSAC (PROSAC) [21]. Этот алгоритм для построения гипотезы выбирает наблюдения из ограниченной выборки, основываясь на их весе. В соответствии с функцией роста ограниченная выборка увеличивается, включая все больше наблюдений.
Исследование показало, что многопоточная реализация и алгоритм PROSAC строят максимально похожие модели, при этом PROSAC делает это за существенно меньшее число итераций (см. таблицу), что значительно ускоряет работу программы. На рис. 2 приведена гистограмма распределения количества итераций для методов параллельного RANSAC и PROSAC (F — число выпаданий количества итераций, п — число итераций).
Параллельный RANSAC Progressive RANSAC
F 250
200 150 100 50
0 250000 750000 n 3600 3800 4000 n
Рис. 2
Алгоритм Минимум Медиана Максимум
RANSAC 189 156250 1295196
PROSAC 3541 3802 4097
Заключение. В работе рассмотрены подходы к разработке программного компонента модуля видеозахвата, который обеспечивает получение полных изображений досок и других протяженных объектов. Основной особенностью этого компонента является использование единственной камеры для получения изображений и определения их взаимного расположения. Применение известных алгоритмов регистрации изображений позволяет значительно упростить конструкцию разрабатываемого сканера пиломатериалов.
Описано применение алгоритма Progressive RANSAC (PROSAC) к задаче сопоставления контрольных точек и нахождения модели перемещения.
СПИСОК ЛИТЕРАТУРЫ
1. Автоматика-Вектор. RuScan — система определения качества доски [Электронный ресурс]: <http://a-vektor.ru/products/avtomaticheskaya-sortirovka-dosok-po-kachestvu>.
2. FinScan. What we see is what you saw [Электронный ресурс] : <http://www.finscan.fi/>.
3. AB W. WORLD leading scanner systems [Электронный ресурс]: <https://woodeye.com>.
4. MiCROTEC [Электронный ресурс]: <http://microtec.eu>.
5. Pheatt C. Intel&Reg: threading building blocks // J. Comput. Sci. Coll. USA: Consortium for Computing Sciences in Colleges, 2008. Vol. 23, N 4. P. 298—298.
6. Fischler M. A., Bolles R .C. Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography // Commun. ACM. NY: ACM, 1981. Vol. 24, N 6. P. 381—395.
7. Zivkovic Z., Heijden F. van der. Efficient adaptive density estimation per image pixel for the task of background subtraction // Pattern recognition letters. 2006. Vol. 27, N 7. P. 773—780.
8. Zivkovic Z. Improved adaptive gaussian mixture model for background subtraction // Proc. of the 17th Intern. Conf. on Pattern recognition. ICPR 2004. IEEE. 2004. Vol. 2. P. 28—31.
9. Itseez Open Source Computer Vision Library [Электронный ресурс]: <https://github.com/itseez/opencv>.
10. Bay H., Tuytelaars T., Gool L. V. Surf: Speeded up robust features // Computer Vision. 2006. P. 404—417.
11. Rosten E., Drummond T. Machine learning for high speed corner detection // 9th Europ. Conf. on Computer Vision. 2006. Vol. 1. P. 440—443.
12. Rosten E., Porter R., Drummond T. Faster and better: A machine learning approach to corner detection // IEEE Trans. Pattern Analysis and Machine Intelligence. 2010. Vol. 32. P. 105—119.
13. Alcantarilla F., Nuevo J., Bartoli A. Fast explicit diffusion for accelerated features in nonlinear scale spaces // Trans. Pattern Anal. Machine Intell. 2011.
14. Rublee E. et al. Orb: An efficient alternative to sift or surf // Intern. Conf. on Computer vision (ICCV). IEEE. 2011. P. 2564—2571.
15. Leutenegger S., Chli M., Siegwart R. Y. Brisk: Binary robust invariant scalable keypoints // Intern. Conf. on Computer vision (ICCV). IEEE. 2011. P. 2548—2555.
16. Lowe D. G. Distinctive image features from scale-invariant keypoints // Intern. J. of Computer Vision. 2004. Vol. 60, N 2. P. 91—110.
17. Uyttendaele M., Eden A., Skeliski R. Eliminating ghosting and exposure artifacts in image mosaics // Computer vision and pattern recognition. CVPR. 2001.
18. Brown M., Lowe D. G. Automatic panoramic image stitching using invariant features // Intern. J. of Computer Vision. 2007.
19. Xu W., Mulligan J. Performance evaluation of color correction approaches for automatic multi-view image and video stitching // Conf. on Computer vision and pattern recognition (CVPR). IEEE. 2010.
20. Burt P. J., Adelson E. H. A multiresolution spline with application to image mosaics // ACM Transact. on Graphics (TOG). 1983.
21. Chum O., Matas J. Matching with PROSAC-progressive sample consensus // IEEE Computer Society Conf. on Computer Vision and Pattern Recognition. 2005. N I. P. 220—226.
Сведения об авторах
Владислав Максимович Бортников — аспирант; Университет ИТМО; кафедра вычислительной техники;
E-mail: [email protected]
Михаил Владимирович Абрамчук — канд. техн. наук; Университет ИТМО; кафедра мехатроники;
E-mail: [email protected]
Поступила в редакцию 21.11.17 г.
Ссылка для цитирования: Бортников В. М., Абрамчук М. В. Разработка программного компонента модуля
съемки протяженных объектов для сканера пиломатериалов // Изв. вузов. Приборостроение. 2018. Т. 61, № 2.
С. 167—173.
DEVELOPMENT OF SOFTWARE COMPONENT FOR MODULE OF LENGTHY OBJECTS SHOOTING FOR SAWN TIMBER SCANNER
V. M. Bortnikov, M. V. Abramchuk
ITMO University, 197101, St. Petersburg, Russia E-mail: [email protected]
Approaches to development of software component for module of lengthy objects shooting for sawn timber scanner are described. The use of known image recording algorithms is shown to simplify the scanner designing. The proposed algorithm of the software component operation is a computational graph; and the computational operations performed during processing of the survey frame are listed. An algorithm for separating the object from the background is presented. An algorithm of full search for the comparison of control points between frames and the RANSAC algorithm, which is used to construct the transformation model, is chosen. The implementation scheme of the RANSAC algorithm is compared with the PROSAC algorithm.
Keywords: technical vision, machine vision, scanner of sawn timber, image recording algorithms, RANSAC method, PROSAC method, library OpenCV
Data on authors
Vladislav M. Bortnikov — Post-Graduate Student; ITMO University, Department of Computation
Technologies; E-mail: [email protected] Mikhail V. Abramchuk — PhD; ITMO University, Department of Mechatronics;
E-mail: [email protected]
For citation: Bortnikov V. M., Abramchuk M. V. Development of software component for module of lengthy objects shooting for sawn timber scanner. Journal of Instrument Engineering. 2018. Vol. 61, N 2. P. 167—173 (in Russian).
DOI: 10.17586/0021-3454-2018-61-2-167-173