Исследование систем управления манипулятором MR-999Е

магистерская работа

1.11 Техника обработки визуальной информации

Форма и размер. Будем считать все объекты, представленные в системе автоматической сборки, точными проекциями соответствующих реальных объектов. Объекты могут быть любой формы, число различных объектов неограниченно. Любое обнаруженное анализирующей системой отклонение от формы или размера, которое может повлечь за собой ошибки сборки, служит основанием для отбраковки детали (это не означает, что предполагается проверка 100 % деталей). Поэтому полученное в результате анализа описание объекта должно содержать всю присутствовавшую в образе информацию о размерах и форме этого объекта. Напротив, система распознавания символов в общем случае должна допускать значительные отклонения (различное начертание) в распознаваемых символах [12]. В наиболее сложном случае распознаются рукописные символы. Однако число типов распознаваемых символов всегда ограничено. Наибольшая достоверность распознавания достигается при использовании шаблона при анализе печатных шрифтов, специально предназначенных для оптического считывания, например ОКР-А и ОКР-Б (OCR-A и OCR-B).

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

Число объектов. Естественно требовать от визуального анализатора робота-сборщика умения работать с несколькими одновременно находящимися в поле зрения и расположенными случайным образом деталями. Решение задачи разделения объектов при распознавании символов облегчается тем, что заранее известны размеры и курсив символа (в случае распознавания печатных символов). Такая информация позволила создать приемы разделения соприкасающихся символов [1]. В настоящей работе не ставится задача различить соприкасающиеся объекты. Их совокупный силуэт будет восприниматься как единый, предположительно неизвестный объект.

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

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

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

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

Наиболее удобный способ получения подробного описания произвольного геометрического объекта и установления связности образа -- это прослеживание границы. Прослеживание начинается с выбора произвольной точки, лежащей на черно-белой границе проекции объекта. Затем выполняется алгоритм, последовательно определяющий смежные точки, лежащие на границе, до тех пор, пока не будет совершен полный обход контура. Последовательно записывая направления движения вдоль границы от каждой текущей точки к последующей, получаем одномерное описание проекции объекта, содержащее информацию о его форме. Такие цепочки направлений всесторонне изучались Фрименом [13]. Когда граница прослежена, легко определить площадь, периметр, центр площади и охватывающий прямоугольник. Описание границы также удобно и для определения радиус-векторов.

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

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

Авторы предлагают для решения этой задачи использовать оператор поточечного дифференцирования или выделения границы, применяя его сразу же после считывания образа телекамерой. Этот оператор заменяет все единицы в образе на нули, за исключением точек, лежащих на границе черного и белого полей. Полученные с помощью ЭВМ контуры квадрата и круга, расположенных в поле зрения камеры, приведены на рис. 1.2 показан результат применения к этому изображению оператора выделения границы. Процедура прослеживания границы EDGETRACE может работать с промежуточным изображением точно так же, как с исходными объектами. Она построена так, что просматриваемые ею элементы растра "обнуляются", т.е. прослеживание границы объекта удаляет его из изображения, делая невозможным повторное обнаружение.

Сглаживание. Метод обработки изображений объектов, основанный на прослеживании границ, может оказаться неработоспособным, если на границе объекта будут обнаружены резкие скачки контрастности. В системах распознавания символов прослеживание границ обычно предваряется операцией сглаживания (локального усреднения), которая пытается уничтожить просветы (белые точки, которые должны были быть черными) и ложные черные точки, а также соединить небольшие разрывы. В операции сглаживания по Дайнину на каждый элемент растра по очереди накладывается окно размером пХп элементов и подсчитывается количество черных элементов, попавших в окно. Создается новое растровое представление, в котором каждый элемент соответствует отдельной позиции окна. В этом растровом представлении элемент будет черным только в том случае, когда количество черных элементов, попавших в соответствующее ему окно, превышает некоторое заранее заданное число. Наименьший применяемый на практике размер окна 3X3 элемента. Унгер предложил процедуру сглаживания, в которой вместо усреднения содержимого окна размером 3X3 элемента к нему применяются некоторые логические операции, определяющие значение элемента нового образа. Недостаток обоих методов -- довольно большой объем операций с памятью: и в том и в другом случае все определения значения элемента нового образа приходится выполнить около 100 машинных операций.

Рисунок 1.2 - Содержимое растра после процедуры INPUT--FRAME и содержимое растра после выделения границ [8]

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

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

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

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

Недостаток определения границы по Розенфельду заключается в том, что итоговый массив имеет вдвое большую точечную плотность, чем исходный, при сохранении взаимно однозначного соответствия двух массивов. Новый массив граничных точек создается с таким же расстоянием между точками, как исходный, но при этом каждая точка сдвигается по координатам х и у наполовину этого расстояния. Каждая точка нового массива лежит в центре квадрата, в вершинах которого находятся точки исходного массива, а ее состояние (черное или белое, граница или не граница) определяется по состоянию этих четырех точек.

Шесть основных (из числа шестнадцати возможных) сочетаний состояний четырех смежных элементов исходного образа показаны на рис. 4. Там же приведены интуитивные определенные значения соответствующих элементов массива, содержащего описание границы. Значение для конфигурации d выбрано нулевым для обеспечения однозначности в случае линии толщиной в одну точку [15].

Прослеживание границы -- процедура EDGETRACE. Параметры. EDGETRACE -- процедура, определяющая, принадлежит ли границе объекта точка, обнаруженная в дифференцированном образе. Координаты начальной точки вводятся в глобальные переменные целого типа STARTX, STARTY. Процедура EDGETRACE вызывается как логическая процедура -- функция, например, в операторе

IF EDGETRACE THEN ... ELSE

Значение "истина" вырабатывается процедурой тогда, когда найдена замкнутая граница, включающая в себя больше заранее определенного числа точек.

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

Определение значений ХМ АХ, XMIN, YMAX, YMIN сделано необязательным. Если оно желательно, следует установить признак слова EDGEF-LAG (т.е. сделать значение соответствующего слова ненулевым). Точно так же с помощью признака CHAINFLAG можно включать и выключать запись значений в счетчик CHAINCOUNT и массив CHAIN.

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

Таблица 1.1 - Параметры, определяемые процедурой EDGETRACE

Переменная

Значение

PERIMETER

Длина прослеженного контура, положительное целое число

AREA

Площадь, ограниченная контуром, положительное целое число

ХМАХ

XMIN

YMAX

YMIN

Максимальное и минимальное значения координат точек, принадлежащих контуру, отрицательные целые числа

XCENTROID

YCENTROID

Координаты центра площади, ограниченной контуром, отрицательные целые числа

CHA1NCOUNT

Количество элементарных векторов, составляющих контур, совпадающее с количеством просмотренных граничных точек, отрицательное целое число

CHAIN

Упорядоченный массив значений, задающих направления элементарных векторов, составляющих контур. Массив состоит из элементов CHA1NCOUNT

Соединение любой пары связанных точек может быть представлено одним из восьми элементарных векторов (рис 1.3), направления которых помечены значениями от --8 до -1 (отрицательные значения взяты для совмещения со схемой индексации ЭВМ PL-516).

Рисунок 1.3 - Определение элементарных векторов [8]

Алгоритм прослеживания границы "обнуляет" значение найденной точки, принадлежащей контуру, до перехода к следующей точке. Таким образом, из матрицы FRAME удаляются прослеженные очерки. Базовая точка поиска перемещается по контуру против часовой стрелки, что при поиске контуров с помощью развертки обеспечивает первое вхождение в контур извне. Войти в контур изнутри можно только в том случае, если он пересекает границу матрицы. При этом процедура EDGETRACE выдаст сообщение об ошибке.

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

Делись добром ;)