Scientific journal
Modern problems of science and education
ISSN 2070-7428
"Перечень" ВАК
ИФ РИНЦ = 1,006

EXPERIMENTAL STUDY OF COMPLEX RIGID OBJECTS SEARCH PROBLEM IN THE SATELLITE IMAGES PROCESSING SYSTEM “PS NSKID”

Lebedev A.S. 1 Fralenko V.P. 2 Chen G.S. 3 Chzhan G.L. 4
1 Institute for Systems Analysis of the Russian Academy of Sciences, Laboratory 11-1 “Dynamics of Macrosystem”
2 Ailamazyan Program Systems Institute of the Russian Academy of Sciences, Research Center for Multiprocessor Systems
3 Hangzhou Aivisi Electronic Co., Ltd.
4 Harbin Institute of Technology
1110 KB
The paper reflects the effect of Russia and China collaboration for solving the problem of detection of complex rigid objects on remote sensing images. The problem of detection of target objects is decomposed into two closely related tasks: the first is to choose regions of interest using spectrographic «shading» algorithms, the second is recognition of found zones using convolution neural networks machinery with visualization of the result. Declarative definitions of tasks being solved are included. All the peculiarities of software modules are described. The special set of tools is used to expose compute capabilities of high performance parallel hardware including graphics processing units. The software developed under research allows to process extra-large remote sensing images in pipelined parallel manner with almost linear speedup. Different levels of parallelism are covered: parallelism of independent branches; sets of objects or data elements; parallelism of adjacent operations. Specifically designed graphical user interface helps to use the components of the software effectively. It implements functions of universal modelling environment, provides the ability to define the set of necessary computational modules with their parameters, configure communication channels, start and stop distributed computations, save and visualize results.
parallelism
rigid object
image
remote sensing
collaboration
     Решение задачи автоматического обнаружения целевых объектов на сверхбольших снимках дистанционного зондирования Земли (ДЗЗ) продиктовано актуальностью проведения совместных исследований, инициированных Соглашением между Федеральным государственным бюджетным учреждением науки Институтом системного анализа Российской академии наук и Ханчжоуской компанией электронных технологий AIVISI о совместной инициативной работе (от 10 мая 2014 года). Исследования проводятся в рамках развития трансфера технологий между Российской Федерацией и Китайской Народной Республикой.

В широкомасштабных исследованиях приняли непосредственное участие сотрудники Ханчжоуской компании электронных технологий AIVISI и Харбинского политехнического университета, которые на двух совместных встречах, проведенных в рамках Международной ярмарки высоких технологий CHINA HI-TECH FAIR (г. Шеньчжень, Китай, 16-21 ноября 2012 г.) и Инновационного форума «Пуцзян» (г. Шанхай, Китай, 22-29 октября 2014 г.), дали реальные предложения по постановкам задач и методам их решения.

Среди возможных целевых объектов, являющихся объектами поиска на снимках ДЗЗ, большой интерес вызывают так называемые ригидные объекты, т.е. твердотельные конструкции, имеющие жесткий, сохраняющий форму каркас. Обширный класс ригидных объектов составляют, например, автомобили самых разных моделей, разыскиваемых или отслеживаемых различными структурами. Для их эффективного автоматизированного обнаружения предлагается применить разработанные в ИПС им. А.К. Айламазяна РАН инструментальные средства, объединенные под общим названием «ПС НСКиД» [7]. Программная система имеет модульную структуру и содержит все многообразие средств фильтрации и обработки изображений. Доступные модули могут быть применены для решения задач классификации и идентификации с применением высокопроизводительных вычислителей. Существенный вклад в развитие алгоритмических и программных средств системы «ПС НСКиД» внесен сотрудниками ИСА РАН, которые разработали ряд алгоритмов для распараллеливания системного и прикладного программного обеспечения.

Постановка задач

Проблема поиска сложных ригидных объектов разбивается на две взаимосвязанные задачи: поиск зон интереса и распознавание с визуализацией результатов. В первой задаче осуществляется предварительная обработка изображений ДЗЗ модулем «закраски» (выполняется поиск зон, близких к текстурам крыш заданных моделей автомобилей [4]), далее связанные зоны пикселей подвергаются грубой фильтрации по соотношению сторон; общей площади обнаруженного фрагмента автомобиля; степени заполнения подобласти пикселями, отнесенными к классам обучающей выборки, и пр. Во второй задаче происходит непосредственное распознавание выявленных зон с помощью сверточной нейронной сети глубокого обучения и сохранение результатов поиска автомобилей.

Для проведения исследований использовались снимки размером 13236x20122 пикселя. Экспертом готовилась обучающая выборка из определенного числа изображений автомобилей (таблица 1). При этом отсутствуют сведения о других моделях автомобилей и других объектах на снимке (например, зданиях и деревьях). Такая постановка задачи наиболее близка к реальной жизненной ситуации, так как чаще всего на снимке ДЗЗ необходимо искать не все автомобили сразу, а лишь только конкретные модели.

Таблица 1

Обучающая выборка из выбранных экспертом изображений

№ эталонного изображения

1

2

3

4

5

Изображение

 

 

Экспериментальное решение задач в системе «ПС НСКиД»

Программа в рамках «ПС НСКиД», ориентированная на конвейерно-параллельную архитектуру, может использовать различные виды параллелизма, такие как

- параллелизм независимых ветвей (в рамках одной программы могут быть выделены независимые части программы, не имеющие зависимостей, которые могут исполняться параллельно);

- параллелизм множества объектов или данных (обработка информации о различных, но однотипных объектах по одному и тому же или почти по одному и тому же алгоритму);

- параллелизм смежных операций (использование принципа конвейеризации вычислительных операций).

Модули программы имеют поддержку неграфических вычислений (в т.ч. с использованием OpenCL и CUDA).

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

1) построение начального состояния (подготовка множества команд инициализации вычислителей и команд запуска модулей-«поставщиков» ресурсов, загрузка модулей, необходимых для решения прикладной задачи);

2) построение списка применимых команд;

3) переход к п. (7) в случае отсутствия применимых команд;

4) выбор применимой команды, обладающей наивысшим приоритетом (приоритет команды прямо зависит от количества аппаратных ресурсов, требуемых для ее исполнения, выбор наиболее ресурсоемкой команды в каждом состоянии максимизирует нагрузку на узлы или ядра высокопроизводительного вычислителя, например кластерного вычислительного устройства);

5) передача выбранной приоритетной команды вычислителю;

6) обновление внутреннего состояния системы, далее переход к п. (2);

7) при наличии незавершенных команд, переданных вычислителям:

- ожидание подтверждения от вычислителей;

- обновление внутреннего состояния системы, далее переход к п. (2);

8) завершение работы.

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

Формат декларативного описания схем решаемых задач должен соответствовать синтаксису описаний задач для системы «ПС НСКиД». Схемы решаемых задач содержат информацию о требуемых вычислительных модулях, их настройках и каналах передачи данных. Общая структура описания задачи представлена в таблице 2.

Таблица 2

Структура описания задачи

 

 

 

      ...

      ...

 

 

      ...

      ...

 

 

 

 

      ModuleNameA.ChannelXName

      ModuleNameB.ChannelYName

 

    ...

 

 

 

Теги и атрибуты этого описания имеют следующие значения:

- – корневой тег описания;

- – секция описания использованных модулей;

- – описание требуемого для решения задачи модуля;

- атрибут “internalname” внутри тега – уникальное (в пределах описания задачи) «внутреннее имя» модуля;

- атрибут “name” внутри тега – имя библиотеки, содержащей реализацию использованного модуля;

- – тег для установки значения параметра модуля, имя параметра задается атрибутом “name”;

- <сhannels> – секция описания каналов передачи данных;

- – добавление тега создает новый канал передачи данных, источник данных задается в подтеге , место назначения – в подтеге (в схеме “ChannelXName” – имя точки подключения канала для отправки данных от модуля “ModuleNameA”, а “ChannelYName” – имя точки подключения для получения данных модулем “ModuleNameB”).

Задача поиска зон интереса

Схема решения задачи представлена в таблице 3. Она включает следующие модули:

- модули чтения обрабатываемых изображений (findpng);

- GPU-версия модуля «закраски» (emarking_magma);

- модуль чтения эталонных изображений, заданных экспертом (findpng_stream);

- модуль маркировки связанных зон пикселей (mark_data_entities_from_matrix);

- модуль извлечения зон интереса в виде изображений, матриц идентификаторов классов и/или описаний (get_data_entities);

- модуль визуализации результатов обработки на исходных данных (scanwindowmark);

- модуль сохранения результатов обработки в виде изображений (savepng);

- модуль сохранения описаний найденных зон интереса (savexml).

Таблица 3

Описание схемы первой задачи

 

 

 

      ./tasks/snimok/scan.xml

      2

 

 

      ./tasks/snimok/scan.xml

      1

 

 

      ./tasks/snimok/etalons.xml

      1 2 3 4 5

      5

      3

      0.0043

 

 

      ./tasks/snimok/etalons.xml

      1

 

 

      0

      0 6

 

 

      {0..99},{1301..10000000000}

      2.5

      0

      0.65

 

 

 

      ./tasks/snimok/output/result/

 

 

      ./tasks/snimok/output/results.xml

 

 

 

 

      Objects.Output

      Emarking.Input

 

 

      Find PNG.Output

      Emarking.InputLearn

 

 

      Emarking.MatrixOutput

      mark_data.Input

 

 

      mark_data.Output

      get_data.InputMatrix

 

 

      Objects.Output

      get_data.InputImage

 

 

      ObjectsNonChanged.Output

      DebugMarker.InputImage

 

 

      DebugMarker.Output

      ResultWriter.Input

 

 

      get_data.Results

      DebugMarker.InputResults

 

 

      get_data.Results

      XMLWriter.Input

 

 

 

 

Цепочка обработки, выполняемая в параллельно-конвейерном режиме, содержит девять каналов передачи данных:

- от модуля чтения обрабатываемых изображений (псевдоним модуля (internalname) в рамках схемы – “Objects”) к модулю «закраски» (псевдоним “Emarking”), входной канал Input;

- от модуля чтения эталонных изображений (псевдоним “Find PNG”) к модулю «закраски», входной канал InputLearn;

- от модуля «закраски» к модулю маркировки связанных зон пикселей (псевдоним “mark_data”), входной канал Input;

- от модуля маркировки связанных зон пикселей к модулю извлечения зон интереса в виде изображений, матриц идентификаторов классов и/или описаний (псевдоним “get_data”), входной канал InputMatrix;

- от модуля чтения обрабатываемых изображений (псевдоним “ObjectsNonChanged”) к модулю извлечения зон интереса в виде изображений, матриц идентификаторов классов и/или описаний, входной канал InputImage;

- от модуля чтения обрабатываемых изображений (псевдоним “ObjectsNonChanged”) к модулю визуализации результатов обработки (псевдоним “DebugMarker”), входной канал InputImage;

- от модуля визуализации результатов обработки к модулю сохранения результатов обработки в виде изображений (псевдоним “ResultWriter”), входной канал Input;

- от модуля извлечения зон интереса в виде изображений, матриц идентификаторов классов и/или описаний к модулю визуализации результатов обработки, входной канал InputResults;

- от модуля извлечения зон интереса в виде изображений, матриц идентификаторов классов и/или описаний к модулю сохранения описаний найденных зон интереса (псевдоним “XMLWriter”).

Особенности функционирования модулей:

- модуль «закраски» имеет параллельную реализацию процесса обучения (средствами пользовательского программного кода) и параллельную обработку поступающих на «закраску» изображений (динамическая балансировка нагрузки, реализованная средствами вычислительного ядра);

- модуль «закраски» разбивает эталонные изображения крыш эталонных автомобилей на пересекающиеся друг с другом зоны размером 5x5 пикселей (таблицы 1 и 4), каждая из которых содержит 5 (ширина)x5(высота)x3(число каналов в изображении) = 75 информативных признаков (размеры зоны определяются параметром “split_etalons”);

Таблица 4

Описание базы знаний для закраски областей интереса

№ класса

Вид региона интереса

Эталонное изображение крыши автомобиля

Назначенный цвет «закраски»

6

Малоинформативные области (распознаваемые с малой уверенностью)

черный, RGB: 0 0 0

1

Крыша автомобиля 1

салатовый, 0 255 128

2

Крыша автомобиля 2

цвет морской волны, 128 255 255

3

Крыша автомобиля 3

синий, 0 128 255

4

Крыша автомобиля 4

розовый,255 128 255

5

Крыша автомобиля 5

оранжевый, 255 128 0

 

- параметр “threshold” модуля «закраски» позволяет задать минимальное относительное расстояние до класса региона, в случае если классификатор не дает необходимой уверенности, пиксель результирующего изображения закрашивается в черный цвет (класс 6);

- для лучшего представления результатов обработки и для сокращения одномоментного использования оперативной памяти исходный снимок был разбит на четыре фрагмента (параметр “split”, определяющий количество разбиений снимка по горизонтали и вертикали), каждый фрагмент далее обрабатывается как независимое изображение, при этом информация о том, откуда взят отдельный фрагмент, сохраняется до конца обработки;

- модуль «закраски» работает с пятью классами регионов интереса (используются выделенные экспертом крыши автомобилей), примеры результатов закраски (отдельные фрагменты) приведены в таблице 5;

Таблица 5

Примеры «закраски»

Фрагмент исходного изображения

Фрагмент результирующего изображения

 

- модуль чтения исходных изображений в немодифицированном (неразделенном) виде необходим для того, чтобы потом на эти изображения нанести результаты обработки;

- модуль «закраски» функционирует в режиме выделения целевых регионов в виде нанесенных на исходное изображение меток, дополнительно таблица с метками классов передается модулю маркировки связанных зон пикселей (mark_data);

- модуль извлечения зон интереса в виде изображений, матриц идентификаторов классов и/или описаний (get_data_entities) осуществляет извлечение зон интереса в виде изображений и их описаний и осуществляет грубую фильтрацию обнаруженных объектов;

- модуль визуализации результатов обработки (DebugMarker) рисует на копии исходного изображения фиолетовые рамки, на данном этапе это рамки вокруг найденных зон интереса, удовлетворяющих параметрам грубой фильтрации; результаты визуализации приведены в таблице 6, на них могут присутствовать ошибочно выделенные области, удалению которых посвящена вторая задача;

Таблица 6

Примеры выделенных зон интереса

Результирующее изображение

 

- пример файла, получаемого от модуля сохранения результатов поиска зон интереса, приведен в таблице 7.

Таблица 7

Фрагмент файла с информацией о найденных зонах интереса

 

 

 

    ./tasks/snimok/input_images/0072_modified.png

    0

    3339

    28

    27

    55

    0.00

    0

 

 

...

 

 

Согласно схеме, список директорий с обрабатываемыми изображениями приведен в файле “./tasks/snimok/scan.xml” (параметр “path” модулей “Objects” и “ObjectsNonChanged”, таблица 8). Рекурсивное использование поддиректорий отключено.

Таблица 8

Список директорий с обрабатываемыми изображениями

 

 

 

...

 

 

Список эталонных изображений крыш автомобилей, подготовленных экспертом, оформляется схожим образом, однако там дополнительно присутствуют идентификаторы классов и указания на то, каким цветом на результирующем изображении закрашивать пиксели, отнесенные к соответствующему классу (параметр “path” модуля “Emarking”, таблица 9, файл “./tasks/snimok/etalons.xml”).

Таблица 9

Список директорий с обрабатываемыми изображениями

 

 

       path = "./tasks/snimok/input_images/classes/1/" />

 

 

       path = "./tasks/snimok/input_images/classes/2/" />

 

 

       path = "./tasks/snimok/input_images/classes/3/" />

 

 

       path = "./tasks/snimok/input_images/classes/4/" />

 

 

       path = "./tasks/snimok/input_images/classes/5/" />

 

 

Следует отметить метод распараллеливания программ, предложенный в ИСА РАН [2]. В рамках подхода используется принцип расширения модели многогранников для устройств с динамическим параллелизмом, позволяющий осуществлять распараллеливание программ для универсальных многоядерных и графических процессоров. В алгоритме «закраски» для графического процессора выполнятся биекция координат пикселей в индексы cuda-потоков. При этом реализуется когерентный доступ к глобальной памяти, что позволяет избежать нежелательных транзакций и эффективно использовать ресурсы ускорителя вычислений. Код классификатора генерируется автоматически с использованием макросов, производящих подсчет расстояния Евклида-Махаланобиса [8] путем явного раскрытия матрично-векторных операций. Значения обратной модифицированной матрицы ковариаций подставляются как константы в арифметические операции, составляющие вычисление раскрытых матрично-векторных произведений. Такой подход выгоден тем, что вообще не требуется выделять память под значения эталонных векторов и обратных матриц, что при повышенном количестве инструкций, оперирующих с константами, и увеличении нагрузки на кэш инструкций позволяет интенсивно использовать регистры и быстрые multiply-add-инструкции, оперирующие над уже готовыми данными в регистрах [1; 6].

В подходе, предложенном в ИПС им. А.К. Айламазяна РАН, для эффективного решения задачи «закраски» обрабатываемое изображение представляется в виде grid-сети, каждый элемент этой сети – блок (в терминологии CUDA) размером . Размеры блока, определяющие число вычислительных cuda-потоков (по  потоков), выбираются автоматически, исходя из размеров используемого для «закраски» сканирующего окна и аппаратных характеристик задействованного ускорителя вычислений. Обработка реализована таким образом, что каждый поток работает со своим отдельным пикселем исходного изображения (и, соответственно, с ассоциируемой с ним окрестностью). Для ускорения счета в быструю shared-память графического ускорителя загружаются только те данные, что необходимы для работы отдельного блока, т.е. достаточные для обработки  пикселей, зарезервированных за ним (учитываются выступающие границы сканирующих окон, одновременно обрабатывается сразу несколько таких блоков). Остальные данные хранятся в обычной памяти графического ускорителя [3; 5].

Задача распознавания с визуализацией результатов

Схема решения задачи представлена в таблице 10. Она включает следующие модули:

- модуль чтения сохраненных зон интереса (read_recresults);

- модуль GPU-версии сверточной нейронной сети (nnforge_cnn_cuda), реализован с использованием библиотеки nnForge [9];

- модуль чтения обрабатываемых изображений (findpng)

- модуль визуализации результатов обработки на исходных данных (scanwindowmark);

- модуль сохранения результатов обработки в виде изображений (savepng);

- модуль сохранения описаний найденных зон интереса (savexml).

Таблица 10

Описание схемы второй задачи

 

 

 

      ./tasks/snimok/output/results.xml

      3.0

      1000

 

 

      ./tasks/snimok_res/

      5

      40.0

      1.5

      10.0

      1.25

      30.0

      750

      2

      0.95

      0

      4.0

 

 

      ./tasks/snimok/scan.xml

      1

 

 

 

      ./tasks/snimok_res/output/

 

 

      ./tasks/snimok_res/output/results.xml

 

 

 

 

      Objects.OutputArray

      Net.InputRecognizeArray

 

 

      Net.Output

      DebugMarker.InputResults

 

 

      Net.Output

      XMLWriter.Input

 

 

      MAP.Output

      DebugMarker.InputImage

 

 

      DebugMarker.Output

      ResultWriter.Input

 

 

 

 

Цепочка обработки, выполняемая в параллельно-конвейерном режиме, содержит пять каналов передачи данных:

- от модуля чтения сохраненных зон интереса (псевдоним “Objects”) к модулю искусственной нейронной сети (псевдоним “Net”), входной канал InputRecognizeArray;

- от модуля искусственной нейронной сети к модулю визуализации результатов обработки на исходных данных (псевдоним “DebugMarker”), входной канал InputResults;

- от модуля искусственной нейронной сети к модулю сохранения описаний найденных зон интереса (псевдоним “XMLWriter”), входной канал Input;

- от модуля чтения обрабатываемых изображений (псевдоним “Map”) к модулю визуализации результатов обработки на исходных данных, входной канал InputImage;

- от модуля визуализации результатов обработки на исходных данных к модулю сохранения описаний найденных зон интереса (псевдоним “ResultWriter”).

Особенности функционирования модулей:

- модуль чтения сохраненных зон интереса (“Objects”) считывает и отправляет на обработку фрагменты исходных изображений, описанные в файле “./tasks/snimok/output/results.xml”, полученном при решении первой задачи;

- модуль чтения сохраненных зон интереса (“Objects”) захватывает дополнительные области исходного изображения, например если значение параметра “stretch” равно “3.0”, то зона увеличивается в три раза по высоте и ширине, при этом исходная область оказывается в центре, это делается для того, чтобы в обрабатываемую область попала не только выделенная крыша автомобиля (или ее фрагмент), но и все транспортное средство целиком (как проиллюстрировано на рис. 1);

    

Рис. 1. Иллюстрация алгоритма выделения регионов для дальнейшей обработки (расширенная зона интереса).

- модуль чтения сохраненных зон интереса (“Objects”) для сокращения пересылок данных работает в режиме буферизации, количество передаваемых за одну отправку изображений задается параметром “max_images”;

- метод распознавания заключается в построении нейронной сети глубокого обучения, в которой применяются слои разных типов: сверточные и субдискретизирующие (в исследовании использовалось восемь слоев, однако можно выбрать любое их число); также применен слой извлечения контраста; сверточные слои отвечают за выделение особенностей в выходах предыдущего слоя (например, выделяют вертикальные линии и углы); субдискретизирующие слои предназначены для уменьшения размерности вектора признаков различными алгоритмами (вычисление скользящего среднего, локального максимума и т.п.);

- модуль визуализации результатов обработки (DebugMarker) рисует на копии исходного изображения фиолетовые рамки вокруг найденных зон интереса, распознанных искусственной нейронной сетью с высокой уверенностью.

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

Графический интерфейс программно-инструментальной системы

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

- автоматическую кластеризацию;

- поиск и классификацию объектов на снимках ДЗЗ (с помощью статистических и нейросетевых классификаторов – на основе сверточной нейронной сети, нейронной сети прямого распространения, Хопфилда, Хемминга, Кохонена и вероятностной и др.);

- спектрографическую «закраску» полноцветных и мультиспектральных изображений;

- улучшение качества изображений за счет их фильтрации;

- выделение линий и контуров обнаруженных объектов;

- сжатие изображений.

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

Графический интерфейс позволяет выбрать ранее созданные схемы заданий и создавать новые; отслеживать корректность создаваемых схем (соответствие синтаксиса декларативного описания); переключаться между предыдущими вариантами описания задачи; осуществлять запуск новых вычислений и остановку ранее запущенных.

Индикатор статуса корректности схемы обладает собственной панелью сообщений, расположенной в нижней части интерфейса. В ней появляются сообщения, предупреждающие пользователя о появившихся ошибках, сообщения о корректности входных данных и др. сообщения, связанные с обработкой текста схемы разрабатываемой задачи. Средняя часть интерфейса представлена двумя формами: “Read and Save modules” и “Task definition (XML)”. Первая форма представлена на рис. 2, вторая – на рис. 3-5.

Рис. 2. Форма работы с входными и выходными данными.

 

Рис. 3. Форма представления задания в виде функциональных блоков.

Рис. 4. Форма представления задания в виде дерева.

 

Рис. 5. Форма представления задания в текстовом виде.

Форма работы с входными и выходными данными “Read and Save modules” используется для выбора и изменения обрабатываемых файлов (например, если они представлены в виде мультиспектральных изображений или в форматах XML, TXT, DAT) и задания указаний модулям сохранения результатов. На вкладке отображаются настройки тех модулей, что имеют только входные (подключены к ветви “Read” дерева данных) или выходные каналы (подключены к ветви “Save”).

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

- создание и удаление файлов или директорий;

- создание файлов XML, TXT и DAT с данными;

- прямая правка существующих файлов с данными с помощью встроенного редактора;

- добавление, правка и удаление записей в XML-файлах;

- перемещение табличных записей внутри XML-файлов;

- работа с атрибутами записей.

Форма работы с текстом задачи “Task definition (XML)” позволяет создавать новые схемы заданий и редактировать существующие. Она содержит две области. В первой – дерево доступных модулей, во второй – область представления задачи.

Дерево доступных модулей представляет собой список доступных для применения модулей, для каждого модуля приводится информация о наборе его параметров и их значениях по-умолчанию, информация о реализованных каналах передачи данных. Заполнение этого дерева происходит на основе сканирования рабочих директорий системы на наличие файлов, описывающих реализованные модули.

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

Форма представления задания в виде функциональных блоков (рис. 3) предназначена для визуального редактирования схемы задачи. Функциональные блоки перетаскиваются на рабочую область с помощью манипулятора типа «мышь». Аналогичным образом добавляются каналы связи между модулями. Модули отображаются в виде геометрических фигур, например в виде овала, прямоугольника, равнобедренной трапеции. Входные и выходные каналы визуализируются в виде черных прямоугольников.

Форма представления задания в виде дерева (рис. 4) позволяет производить редактирование схемы задачи путем добавления и удаления поддеревьев в основном дереве задачи с помощью drag-and-drop-операций манипулятором типа «мышь». Дерево делится на две области: область модулей и область каналов. В области модулей пользователем создается набор необходимых для решения поставленной задачи модулей. Там же можно настраивать все доступные параметры, замещая их умолчательные значения. Редактор обладает интеллектуальностью: добавить поддерево можно лишь в разрешенную область главного дерева, при инициализации drag-and-drop-события включается подсветка цветом тех мест, куда можно добавить интересующие пользователя данные. В области каналов устанавливаются связи между ранее добавленными модулями. Настройка каналов производится на основе информации о доступных каналах связываемых модулей.

Используя тулбар и контекстное меню дерева задания, пользователь получает набор функций редактирования текста задачи:

- сброс текста задачи в начальное состояние (без модулей и связей между ними);

- создание, правка и удаление каналов связи между модулями;

- установка нового внутреннего имени для модуля;

- сброс настроек модуля в умолчательное состояние (как для отдельных параметров, так и всех сразу);

- удаление модуля вместе с объявленными каналами.

Форма представления задания в текстовом виде (рис. 5) позволяет производить редактирование схемы задачи как с помощью drag-and-drop-операций манипулятором типа «мышь» (например, «перетаскивая» в текст задачи модуль из дерева доступных модулей), так и прямым способом, то есть путем набора текста на клавиатуре. Такой подход потенциально более сложен, поэтому в помощь пользователю приходит панель сообщений, сигнализирующая о допущенных ошибках.

Заключение

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

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


Рецензенты:

Цирлин А.М., д.т.н., профессор, главный научный сотрудник Исследовательского центра системного анализа ФГБУН «Институт программных систем им. А.К. Айламазяна» Российской академии наук, с. Веськово;

Остроух А.В., д.т.н., профессор кафедры «Автоматизированные системы управления» ФГБОУ ВПО «Московский автомобильно-дорожный государственный технический университет (МАДИ)», г. Москва.