Рытиков В.С. ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА ИЗОБРАЖЕНИЙ. КЛЕТОЧНЫЕ АВТОМАТЫ. РЕАЛИЗАЦИЯ И ЭКСПЕРИМЕНТЫ. Рытиков В.С.,, студент факультета компьютерных систем и сетей, Белорусский государственный университет информатики и радиоэлектроники, г. Минск, Республика Беларусь Идея клеточных автоматов появилась в конце сороковых годов 20 века. Она была задумана и сформулирована Джоном фон Нейманом и Конрадом Цусе независимо друг от друга как универсальная вычислительная среда для построения, анализа и сравнения характеристик алгоритмов. Одно из определений клеточных автоматов: «Клеточные автоматы являются дискретными динамическими системами, поведение которых полностью определяется в терминах локальных зависимостей. В значительной степени также обстоит дело для большого класса непрерывных динамических систем, определенных уравнениями в частных производных. В этом смысле клеточные автоматы в информатике являются аналогом физического понятия «поля». Клеточный автомат может мыслиться как стилизованный мир. Пространство представлено равномерной сеткой, каждая ячейка или клетка которой содержит несколько битов данных; время идет вперед дискретными шагами, а законы мира выражаются единственным набором правил, скажем, небольшой справочной таблицей, по которой любая клетка на каждом шаге вычисляет своё новое состояние по состояниям её близких соседей. Таким образом, законы системы являются локальными и повсюду одинаковыми. «Локальный» означает, что для того, чтобы узнать, что произойдет здесь мгновение спустя, достаточно посмотреть на состояние ближайшего окружения: никакое дальнодействие не допускается. «Одинаковость» означает, что законы везде одни и те же: я могу отличить одно место от другого только по форме ландшафта, а не по какой-то разнице в законах». Клеточные автоматы (КА) относятся к динамическим системам. Несмотря на простоту описания поведения отдельной клетки в целом они могут обладать достаточно сложным поведением. КА представлены совокупностью одинаковых клеток регулярным образом связанных между собой. Каждая клетка является конечным автоматом, который в зависимости от состояния своих соседей переходит в следующее состояние. Отличительной особенностью простейших КА является то, что правила переходов у всех клеток одинаковы. Тот факт, что правила переходов одинаковы, означает, что одно место на поле КА нельзя отличить от другого. Кроме этого операции локальны, т.е. производится анализ окрестности клетки – точно так, как происходит в реальном мире. Это позволяет использовать аппарат клеточной логики для решения прикладных задач, таких как моделирование тепловых потоков, электромагнитных процессов в различных средах и т.п. Общая методика применения таких систем заключается в принудительной установке всего поля КА в исходное состояние (начальное состояние), затем позволяют событиям развиваться своим ходом. Очевидно, что некоторые системы/комбинации начальных состояний приведут к такому состоянию, при котором поле КА не будет изменяться. В других случаях будут наблюдаться постоянные изменения состояния в клетках. Распределенная структура КА позволяет предположить о целесообразности построения аппаратной реализации КА, как структуры обладающей большим быстродействием по сравнению с последовательными аппаратными реализациями. В данной работе рассматривается приложение аппарата КА к предварительной обработке изображений. Некоторые алгоритмы предварительной обработки изображения обладают естественным свойством клеточных операций. Это такие алгоритмы как: фильтрация, сглаживание, бинаризация, операции математической морфологии, выделение контуров. Причем указанные алгоритмы являются “однотактными”. Выделим этот класс алгоритмов в первую группу. С другой стороны существуют алгоритмы, такие как заливка объекта, построение остова объекта, утоньшение объектов. Выделим этот класс алгоритмов во вторую группу. Отдельным классом идут алгоритмы векторизации объектов, сегментации, декомпозиция сцен. Их мы отнесем в третью группу. Кроме этого задача предварительной обработки изображения не решатся отдельно сама по себе. Обычно после этапа предварительной обработки изображения используются специфические алгоритмы распознавания образов. В этой статье рассматривается модель процессора клеточной логики, описывается логика его функционирования, техническая его реализация. Предполагается, что все обрабатываемое изображение полностью помещается в матрице процессорных элементов, таким образом, задача декомпозиции алгоритма не решается. Система команд процессорных элементов функционально не полна для решения задач предварительной обработки изображения. Команды, которые были отобраны для реализации, отражают архитектуру наиболее типичных процессорных элементов клеточной логики. 1. МОДЕЛЬ ПРОЦЕССОРА КЛЕТОЧНОЙ ЛОГИКИ Собственно процессор клеточной логики состоит из следующих частей: матрицы ПЭ (МПЭ), контроллером ввода/вывода данных, общим управляющим процессором. МПЭ представляет из себя массив ПЭ, которые имеют одинаковые правила работы и связаны с другими ПЭ (окрестностью Мура ). Каждый ПЭ меняет свое состояние в дискретные моменты времени. Поведением МПЭ можно управлять и тем самым задавать алгоритм обработки изображений. Управление заключается в выдаче на глобальную, для всех ПЭ, шину команд примитивной команды. После этого МПЭ переходит к их выполнению, в общем случае время выполнения операций неодинаково, поэтому после выдачи команды необходимо дождаться завершения ее выполнения. Длительными командами являются, например, команды выделения области изображения. На предварительном этапе любой произвольный внутренний пиксель объекта помечается активным(не итеративная команда). Затем выдается команда “Выделение области объекта ”. За один такт ПЭ обмениваются информацией только со своими соседями, поэтому заранее не возможно предсказать время выполнения этой команды (время ее работы зависит от данных). Для выявления того факта, что команда выполнена, используется общий для всех ПЭ сигнал “Изменение состояния”. Если процессор меняет свое внутреннее состояние, то он выдает активный сигнал на шину. Если ни один не меняет свое состояние, то шина будет в пассивном состоянии, и мы сможем зафиксировать этот факт. Т.о. когда шина переходит в пассивное состояние, тогда выполнение команды завершено. Каждый ПЭ соединен с 8 соседями. У каждого соседа он может анализировать его выход данных, его активность. Кроме этого у каждого ПЭ есть глобальный вход данных, через который передаются параметры командам и глобальный выход данных. У каждого ПЭ есть выход данных, выход его активности, выход на общую шину изменения состояния. Группа управляющих входов сброс, синхронизация, команда, строб команды. Каждый ПЭ ассоциируется с одним пикселем изображения, т.о. количество ПЭ равно размеру обрабатываемого изображения. Необходимо стремиться к тому, что бы логическая структура ПЭ была минимальна, т.к. типичные изображения редко имеют размеры менее 100x100 пикселей, что влечет большие аппаратные затраты. Реальное количество ПЭ определяется в нашем случае вместимостью ПЛИС, на которой будет реализовываться процессор клеточной логики. Заранее предсказать это число не представляется возможным. Очевидно, что в любом случае область изображения будет больше размеров МПЭ, поэтому необходимо будет при анализе алгоритмов рассмотреть способы организации декомпозиции задач. В идеальном случае изображение можно будет полностью поместить на МПЭ, при этом будет наблюдаться наибольшее быстродействие процессора клеточной логики. 1.1. Система команд процессора клеточной логики Команды можно разделить на 3 класса: - симметричные команды; - итеративные команды ; - прерываемые команды.. Симметричные команды выполняются всеми ПЭ сразу, т.е. они действуют одинаково во всех направлениях. Итеративные команды выполняются до тех пор, пока происходят изменения в массиве ПЭ. Прерываемые команды выполняются только для активированных ПЭ. Кроме этого есть итеративные команды, выполняемые для активированных ПЭ. Их условно будем записывать в классе прерываемых. К классу симметричных относятся команды: - фильтрация; - группа команд загрузки внешних данных; - загрузка параметров алгоритмов; - сохранение состояния яркости пикселей; - восстановление состояния яркости пикселей; - активирование клетки i,j. К классу итеративных: - найти максимальный среди соседей; - группа команд выделения области объекта. К классу прерываемых: - заливка; - сворачивание активной области построение остова; - сброс активной области; - загрузка параметров алгоритмов. 1.2. Загрузка/выгрузка данных в процессор клеточной логики Загрузка данных в МПЭ реализуется путем последовательного выделения ПЭ и через общий вход данных занесением значения яркости в ПЭ. Данный вариант позволяет перезагружать только нужные области памяти. Выгрузка осуществляется последовательным выделением ПЭ и вывода значения яркости/активности на общую шину данных с которой и снимается значение яркости/активности. Кроме этого существует команда общего сброса МПЭ, таким образом можно сразу занести нулевые значения во все ПЭ. 2. БАЗОВЫЕ ОПЕРАЦИИ ПРОЦЕССОРА КЛЕТОЧНОЙ ЛОГИКИ 2.1. Поиск максимума яркости Принцип реализации заключается в итеративном поиске максимальных элементов среди соседей и вытеснении минимальных значений. На матрицу ПЭ выдается команда “Найти максимальный среди соседей и выдать его на свой выход”. При этом выполнение команды продолжается до тех пор пока не будут происходить изменения состояний в МПЭ. Так как при выполнении команды происходит изменение значений яркости пикселей, то до выполнения операции необходимо выполнить команду “ сохранение состояния яркости пикселей”, а после выполнения команду “восстановление состояния яркости пикселей”. 2.2 Заливка Принцип реализации заключается в выделении области объекта, а затем выполнении операции сразу над всей областью (присваивание новой яркости). Выделение области может быть осуществлено 2-мя разными способами: - выделение области однородной по яркости; - выделение области внутри замкнутой линии с постоянной яркостью; На матрицу ПЭ выдается команда “Активировать клетку i, j ”. После этого выдается команда “Выделение области объекта” и “Заливка”. 2.3. Вычисление площади объекта Есть некоторая однородная по яркости область изображения. Известна координата ее произвольной внутренней точки. Необходимо подсчитать количество точек этой области. Принцип реализации заключатся в первоначальном выделении области (см. прошлый пункт) и итеративном подсчетом соседних активных клеток области. Последовательность действий для реализации алгоритма: - активируем одну клетку области; - итеративно выделяем всю зону объекта; - итеративно подсчитываем количество активных клеток. Так как при выполнении команды происходит изменение значений яркости пикселей, то до выполнения операции необходимо выполнить команду “ сохранение состояния яркости пикселей”, а после выполнения команду “восстановление состояния яркости пикселей”. 2.4. Построение остова объекта Есть некоторая однородная по яркости область изображения. Известна координата ее произвольной внутренней точки. Необходимо построить остов области. Принцип реализации заключается в первоначальном выделении области и итеративном сворачивании области. Сворачивание организуется от периметра в глубину/наружу, в местах столкновения потоков яркость объекта не изменяется. Это реализация т.н. принципа лесного пожара, который изложен в [1]. Если огонь возник одновременно по всему периметру участков, то он распространялся бы к их центрам до тех пор, пока не сгорела бы вся трава. По мере продвижения огня слева и сверху линии огня будут встречаться, и пожар будет затухать. Геометрическое место точек самогашения огня образует линию самогашения. Линии самогашения и образуют остов фигуры. Последовательность действий для реализации алгоритма: - активируем одну клетку области; - итеративно выделяем всю зону объекта; - сворачивание активной области вычисление остова. 1. 2. 3. 4. 5. У. Прэтт «Цифровая обработка изображений» в 2-х книгах. Под ред. Д.С. Лебедева. – М.: Мир. 1982. – 620 с. С. В. Абламейко, Д.М. Лагуновский «Обработка изображений: технология, методы, применение». Минск.: «Амалфея»,2000. – 303 с. Н.Н. Мартынов, А.П. Иванов “MATLAB 5.X. Вычисления, визуализация, программирование”. В.Ю. Зотов “Проектирование цифровых устройств на основе ПЛИС фирмы XILINX в САПР WebPACK ISE”. – М.: Горячая линия – Телеком.2003. – 624 с.,ил. фон Нейман Дж. Теория самовоспроизводящихся автоматов. М.: Мир, 1971.