ISSN 2079-3316 ПРОГРАММНЫЕ СИСТЕМЫ: ТЕОРИЯ И ПРИЛОЖЕНИЯ №4(31), 2016, с. 305-316 УДК 004.932.2
Е. С. Иванов
Использование модульной системы обработки потоковых данных, поступающих с камер наблюдения для выделения объектов с помощью
сегментации
Аннотация. В статье описаны методы обработки потоковых данных, реализованные в системе блочно-параллельной обработки данных. Рассмотрены основные методы сегментации изображений и подход к сегментации с использованием сверточных нейронных сетей, опирающийся на текстурную и цветовую информацию. Результаты сегментации изображений используются в задаче выделения фона на изображении.
Ключевые слова и фразы: Сегментация изображений, потоковые данные, нейронные сети, камеры наблюдения.
Введение
Различные методы обработки изображений дают возможность ускорить решение той или иной задачи, а иногда — вообще автоматизируют этот процесс. Например, задача инвентаризации может быть упрощена до задачи поиска и распознавания объектов на изображении. Задача контроля изменения площадей, занимаемых объектом, может быть сведена к сравнению площадей на снимках одного и того же участка в разное время. Вычисление площади заданного объекта в пространстве можно свести к вычислению размеров объекта на изображении. Выделение объектов на снимке — это подзадача сегментации. Таким образом, можно сказать, что задача мониторинга территории также сводится к задаче сегментации.
Сегментация изображения — процесс обработки изображения, в результате которого получается разбиение на множество сегментов (называемых суперпикселями), однородных по некоторому признаку. Обычно такими признаками являются визуальные характеристики,
Работа выполнена в рамках Соглашения № 14.607.21.0088 (уникальный идентификатор RFMEFI60714X0088).
© Е. С. Иванов, 2016
© Институт программных систем имени А. К. Айламазяна РАН, 2016 © Программные системы: теория и приложения, 2016
Рис. 1: Исходное изображение Рис. 2: Результат сегментации
чаще всего — цвет. Предполагается, что сегменты на итоговом изображении соответствуют объектам, а границы сегментов — границам объектов. В результате сегментации последующий анализ изображения происходит не уровне пискселей, а на уровне выделенных суперпикселей, то есть на уровне объектов.
1. Методы сегментации изображений
В настоящее время наиболее распространенными алгоритмами сегментации являются алгоритмы, представляющие комбинацию или разновидность одного из трех базовых подходов: пороговая сегментация, сегментация путем наращивания областей и сегментация путем выделения границ [1].
Первый подход заключается в том, что пиксели группируются по цветовому признаку. Если яркость пикселя находится в заданных пределах, то пиксель относится к заданному классу (объекту) [2]. Бинаризация изображения является частным случаем пороговой сегментации. На рис. 2 приведен результат обработки изображения рис. 1 пороговой сегментацией, где количество выделяемых сегментов равно двум. Можно считать, что на полученном изображении белым цветом показаны стены, а черным — пол.
Обработка изображений происходит в системе потоковой блочно-параллельной обработки данных [3]. Система имеет модульную архитектуру. Задача системы — обеспечить обработку данных в конвейер-но-параллельном режиме. Этот подход ускоряет обработку данных с использованием суперкомпьютера. На вход система получает описание задачи, которое содержит список модулей обработки. Система
I
Рис. 3: Результат сегментации с применением постобработки
автоматически определяет, какие задачи модули запускать и обеспечивает обмен данных между модулями.
Обработка изображения состоит из последовательного выполнения модулей обработки:
CamRead. Модуль чтения изображения с камеры или из файла.
Blur. Модуль сглаживания изображения. Используется для устранения избыточной сегментации.
Binarization. Модуль бинаризации изображения.
DefectsDelete. Модуль устранения дефектов — удаления объектов (сегментов), размер которых не превышает N пикселей (N — параметр, получаемый модулем).
ObjectVisualization. Модуль визуализации найденных объек-
SaveImage. Модуль сохранения изображения.
На рис. 3 показан пример изображения, полученного в результате постобработки (выполнения модулей DefectsDelete и ObjectVizualizati-оп).
При сегментации путем наращивания областей изначально выбирается стартовый пиксель. Рассматриваются его соседние пиксели и производится анализ их однородности, на основании которого принимается решение о включении заданного пикселя в тот или иной сегмент или о создании нового. Таким образом, конечный результат сегментации получаются через сращивание пикселей в отдельные сегменты. Одним из наиболее популярных алгоритмов, используемых в этом подходе, является алгоритм к-средних [4]. Это итеративный алгоритм, который делит данное множество пикселей на к кластеров. Результат работы алгоритма сильно зависит от наличия шумов на изображении, поэтому следует использовать предобработку (например, сглаживание
тов.
(a) без предварительной обработки (b) с предварительной обработкой
(размытие по Гауссу)
Рис. 4: Сегментация изображения методом k-средних
по Гауссу). На рис. 4 показаны результаты работы данного алгоритма. На исходном снимке были выделены участки 5 типов, на которые в последствие происходило наращивание областей.
Процесс обработки изображения состоит из последовательного выполнения следующих модулей: CamRead, Blur, модуль кластеризации пикселей методом k-средних (модуль KMeans), DefectsDelete, ObjectVisualization, Savelmage.
При сегментации через выделение границ используется оператор градиента. Затем происходит разделение по порогу. Граничные пиксели, полученные на предыдущих шагах, соединяются в замкнутые кривые, которые и можно считать границами сегментов (областей). Использовалось выделения границ методом Собеля. Затем полученное изображение прошло постобработку: оно было нормализовано и, с целью устранения избыточной сегментации, бинаризовано.
На рис. 5 белым цветом показаны границы сегментов. Даже учитывая тот факт, что вопрос обнаружения границ на изображении достаточно хорошо осветлен в современной технической литературе, он все же до сих пор остается достаточно трудоемкой задачей, так как качественное выделение границ всегда зависит от множества влияющих на результат факторов [5]. Как видно на изображении, найденные границы часто разрываются и получить отдельный регион становится невозможно.
Таким образом, подобный подход не всегда дает желаемый результат и требует последующей доработки со стороны пользователя:
Рис. 5: Результат постобработки изображения с выделенными границами
необходимо устранить разрывы, что само по себе является отдельной задачей.
2. Нейронные сети
Использование нейронных сетей обусловлено их схожестью с успешной работой биологических систем, которые, по сравнению с другими системами, состоят из простых и многочисленных нервных клеток, которые работают параллельно и имеют возможность обучения [6].
Искусственные нейронные сети обычно представлены в виде системы взаимосвязанных нейронов, которые обмениваются сообщениями друг с другом. Связи нейронов имеют числовые весовые коэффициенты, которые могут быть настроены на основе опыта, давая нейронным сетям адаптироваться к различным входным данным и возможность обучаться.
Сверточный нейронная сеть (CNN) состоит из нескольких слоев. Эти слои могут быть трех типов: слой свертки (convolutional layer), слой выборки (pooling layer) и полносвязный слой (fully-connected layer) [8]. Типичная архитектура сверточной нейронной сети показана на рис. 6 из [7], адаптированном для данной статьи.
3. Сегментация с помощью нейронных сетей 3.1. Обучение нейронной сети
Общая схема обучения нейронной сети состоит из выполнения следующих модулей:
Карта признаков
Свертка Выборка Свертка Выборка Полносвязный
слой
Рис. 6: Архитектура сверточной нейронной сети
(а) Стена (b) Дверь (с) Пол
Рис. 7: Примеры участков, выделенных пользователем
MakeClasses. Модуль предназначен для подготовки нужных данных для обучения. Пользователь выделяет участки изображения, которые содержат классы. Выделяемые участки могут иметь произвольные размеры. Выходными данными этого модуля является набор изображений (рис. 7).
MakeTrain. Модуль создания выборки для обучения. Входными данными для этого модуля служит множество изображений. Модуль разрезает изображения на фрагменты размером 32 х 32 и записывает данные, необходимые для обучения.
CNN. Модуль работы нейронной сети. Режим запуска — обучение.
Модуль CNN считывает множество изображений, и в зависимости от значения входного параметра, производит обучение или распознавание. В указанной схеме используется обучающая выборка — образцы заданных классов требуемого размера (использовались изображения 32 х 32). Следует отметить, что множество объектов для обучения должно быть достаточно обширным, содержать разнообразные варианты объектов. Составление обучающей выборки — важный шаг в работе с нейронной сетью. Результаты обучения зависят от качества
(а) Стена (Ь) Дверь (с) Пол
Рис. 8: Образцы классов (изображения 32 х 32), подаваемые нейронной сети для обучения
обучающей выборки, а результат сегментации — от качества обучения нейронной сети [9].
Далее, в примерах, использовались следующие классы: «пол», «стена» и «дверь». Общее число экземпляров для обучения составило около 40000. Рис. 8 демонстрирует некоторые из экземпляров для обучения. В результате обучения получается набор весов, записанный в файл. После этого, возможно использование этих весов при последующей обработке.
Работа производилась на ЭВМ, имеющей два четырехядерных процессора с ОЗУ 32 ГБ. Время обучение нейронной сети составило около 4 часов, ошибка обучения — 0,02%.
3.2. Сегментация изображения
Идея сегментации при помощи нейронных сетей состоит в следующем. Обрабатываемое изображение разделяется на фрагменты при помощи скользящей маски. Маска может двигаться с произвольным шагом от 1 пикселя до 32, в результате чего итоговый набор может содержать разное количество фрагментов. Так, например, изображение 64 х 64 при шаге маски в 32 пикселя будет разбито на 4 фрагмента, а при шаге в 1 пиксель — на 1089 фрагментов. Каждый из полученных фрагментов является изображением, которое нейронная сеть может отнести к тому или иному классу. Итоговое изображение может быть перекрашено в соответствии с результатами распознавания. Качество сегментации зависит от качества обучения сети.
Схема задачи сегментации изображения с помощью нейронной сети состоит из последовательного выполнения модуля CamRead и модулей:
Рис. 9: Результат сегментации изображения с помощью нейронной сети
MakeTest. Модуль подготовки данных для распознавания с помощью нейронной сети. Исходное изображение, полученное с камеры, разрезается на множество изображений (фрагментов) нужного размера. Это множнство передается в следующий модуль обработки.
CNN. Модуль работы нейронной сети. Режим запуска — распознавание. Результатом работы модуля является набор чисел, которые означают распознанные классы.
ImageColor. Модуль отрисовки результатов распознавания.
Завершают список модули DefectsDelete, ObjectVisualization и
SaveImage, описанные выше.
Преимущество данного подхода заключается в том, что кргда пользователь заранее знает, какие именно объекты присутствуют на изображении, то он сам может контролировать эти классы. Например, если стены в помещении разных цветов, то для обучения следует подать изображения с образцами всех цветов. Это приведет к тому, что и зеленая стена, и оранжевая на результирующем изображении будут относиться к одному классу. Кроме того, в случае сложных контрастных текстур (например, пол с мраморной крошкой), получается избыточная сегментация (как, например, при использовании метода k-средних). Вдобавок, незначительные шумы не влияют на результат обработки. Это достигается за счет того, что отнесение пикселя к тому или иному классу происходит с учетом его соседних пикселей.
Исходное изображение разрешением 1200 х 900 было разбито на множество фрагментов при помощи скользящего окна. Каждый из
этих фрагментов был подан нейронной сети для распознавания (отнесения к тому или иному классу). Таким образом, каждый пиксель изображения был сопоставлен с неким классом, то есть изображение было промаркировано. Результат сегментации показан на рис. 9. Общее время выполнения задачи составило около 40 секунд.
Особенностью данного подхода является то, что выделенные объекты не обязательно непрерывны.
Заключение
Сегментацию изображений можно рассматривать не только как отдельную задачу, но и как задачу предобработки данных. С ее помощью на изображении можно выделить те объекты, которые представляют в дальнейшем интерес, что в свою очередь позволяет ускорить анализ данных.
В разработанной системе обработки потоковых данных [3] были реализованы модули сегментации изображений, а также модули пред-и постобработки изображений.
Более качественная сегментация изображений с помощью нейронной сети объясняется тем, что работа нейронной сети ведется не с отдельными пикселями, а с целыми фрагментами изображений и поэтому шум в виде одного-двух пикселей на участке изображения не дает негативного воздействия [9] и тем, что кроме информации о цвете используется еще и текстурная информация.
Список литературы
[1] С. А. Барталев, Т. С. Ховратович. «Анализ возможностей применения методов сегментации спутниковых изображений для выявления изменений в лесах», Современные проблемы дистанционного зондирования Земли из космоса, 8:1 (2011), с. 44-62, URL: http://d33.infospace.ru/d33_conf/2011v8n1/044-062.pdf t 306
[2] J. Sauvola, M. Pietikanen. "Adaptive Document Image Binarization", Pattern Recognition, 33:2 (2000), pp. 225-236, URL: http: //www.ee.oulu.fi/mvg/files/pdf/pdf_24.pdf t 306
[3] A. Kondratyev, I. Tishchenko. "Concept of Distributed Processing System of Images Flow", Robot Intelligence Technology and Applications 4, Results from the 4th International Conference on Robot Intelligence Technology and Applications, RiTA 2015 (Bucheon, Korea, December 14-16, 2015), Advances in Intelligent Systems and Computing, vol. 447, eds. J.-H. Kim, F. Karray, J. Jo, P. Sincak, H. Myung, Springer International Publishing, 2016, pp. 551-561. t 306,313
[4] В. А. Частикова, Д. С. Остапов. «Применение методов кластеризации для повышения точности работы нейронных сетей», Современные проблемы науки и образования, 2015, №1-1, 7 с., URL: https: //www.science-education.ru/ru/article/view?id=17475 t 307
[5] Д. С. Лебедько, Н. А. Тюкачёв, М. Н. Мохаммед Заки Хассан. «Методы численной оценки качества выделения границ на изображениях», Вестник ВГУ, серия: Системным анализ и информационные технологии, 2015, №4, с. 73-77, URL: http: //www.vestnik.vsu.ru/pdf/analiz/2015/04/2015-04-10.pdf t 308
[6] D. Kriesel. A Brief Introduction to Neural Networks, ZETA2-EN, 2007, URL: http://www.dkriesel.com/_media/science/neuronalenetze-en-zeta2-2col-dkrieselcom.pdf t 309
[7] Convolutional Neural Network, Wikipedia, URL: https://en.wikipedia. org/wiki/Convolutional_neural_network t
[8] N. Sarangi, C. C. Sekhar. "Tensor Deep Stacking Networks and Kernel Deep Convex Networks", Pattern Recognition: Applications and Methods, 4th International Conference ICPRAM 2015 (Lisbon, Portugal, January 10-12, 2015), Lecture Notes in Computer Science, vol. 9493, Springer International Publishing, 2015, pp. 267-281. t 309
[9] Р. М. Немков. «Исследование сверточной нейронной сети», Известия ЮФУ. Технические науки, 2015, №7, с. 79-90, URL: http://izv-tn.tti.sfedu.ru/wp-content/uploads/2015/7/8.pdf t 311,313
Рекомендовал к публикации д.т.н. В. М. Хачумов
Пример ссылки на эту публикацию:
Е. С. Иванов. «Использование модульной системы обработки потоковых данных, поступающих с камер наблюдения для выделения объектов с помощью сегментации», Программные системы: теория и приложения, 2016, 7:4(31), с. 305-316.
URL: http://psta.psiras.ru/read/psta2016_4_305-316.pdf
Об авторе:
А. К. Айламазяна РАН
Егор Сергеевич Иванов
Инженер-исследователь Лаборатории методов обработки и анализа изображений, Институт Программных Систем имени
e-mail:
Egor Ivanov. Data-flow processing of data from surveillance cameras for objects detection using distributed data processing system by image segmentation.
Abstract. The paper describes image processing methods that was realized in the distributed data processing system. Basic processing method is image segmentation. Convolutional neural network is used for detection of color and texture information. Results of image segmentation are applied in background regions detection task. (In Russian).
Key words and phrases: Image segmentation, Data-flow processing, Neural networks, Surveillance cameras.
[1] S. A. Bartalev, T. S. Khovratovich. "Assessment of Satellite Images Segmentation Methods for Forest Change Detection", Sovremennyye problemy distantsionnogo zondirovaniya Zemli iz kosmosa, 8:1 (2011), pp. 44-62 (in Russian), URL: http://d33.infospace.ru/d33_conf/2011v8n1/044-062.pdf
[2] J. Sauvola, M. Pietikanen. "Adaptive Document Image Binarization", Pattern Recognition, 33:2 (2000), pp. 225-236, URL: http://www.ee.oulu.fi/mvg/files/ pdf/pdf_24.pdf
[3] A. Kondratyev, I. Tishchenko. "Concept of Distributed Processing System of Images Flow", Robot Intelligence Technology and Applications 4, Results from the 4th International Conference on Robot Intelligence Technology and Applications, RiTA 2015 (Bucheon, Korea, December 14-16, 2015), Advances in Intelligent Systems and Computing, vol. 447, eds. J.-H. Kim, F. Karray, J. Jo, P. Sincak, H. Myung, Springer International Publishing, 2016, pp. 551-561.
[4] V. A. Chastikova, D. S. Ostapov. "Using Clustering Methods to Increase Neural Networks Accuracy", Sovremennyye problemy nauki i obrazovaniya, 2015, no.1-1 (in Russian), 7 p., URL: https://www.science-education.ru/ru/article/view? id=17475
© E. S. Ivanov, 2016
© Ailamazyan Program Systems Institute of RAS, 2016 © Program systems: Theory and Applications, 2016
References
[5] D. S. Lebed'ko, N. A. Tyukachev, M. N. Mokhammed Zaki Khassan. "Numerical Methods of Quality Estimation of Edge Detectors", Vestnik VGU, seriya: Sistemnyy analiz i informatsionnyye tekhnologii, 2015, no.4, pp. 73-77 (in Russian), URL: http://www.vestnik.vsu.ru/pdf/analiz/2015/04/2015-04-10.pdf
[6] D. Kriesel. A Brief Introduction to Neural Networks, ZETA2-EN, 2007, URL: http://www.dkriesel.com/_media/science/neuronalenetze-en-zeta2-2col-dkrieselcom.pdf
[7] Convolutional Neural Network, Wikipedia, URL: https://en.wikipedia.org/ wiki/Convolutional_neural_network
[8] N. Sarangi, C. C. Sekhar. "Tensor Deep Stacking Networks and Kernel Deep Convex Networks", Pattern Recognition: Applications and Methods, 4th International Conference ICPRAM 2015 (Lisbon, Portugal, January 10-12, 2015), Lecture Notes in Computer Science, vol. 9493, Springer International Publishing, 2015, pp. 267-281.
[9] R. M.Nemkov. "InvestigationofConvolutionNeuralNetworkwhichwasTrainedbythe Method of use of Non-Standard Receptive Fields in the Process of Image Recognition", Izvestiya YuFU. Tekhnicheskiye nauki, 2015, no.7, pp. 79-90 (in Russian), URL: http://izv-tn.tti.sfedu.ru/wp-content/uploads/2015/7/8.pdf
Sample citation of this publication:
Egor Ivanov. "Data-flow processing of data from surveillance cameras for objects detection using distributed data processing system by image segmentation", Program systems: Theory and applications, 2016, 7:4(31), pp. 305-316. (In Russian).
URL: http://psta.psiras.ru/read/psta2016_4_305-316.pdf