Прежде чем описывать язык нейрокомпьютеров, имеющих АП-структуру (ЯНК АПС), необходимо сказать несколько слов о тех, кто может быть пользователем нейрокомпьютеров. Большинство поль-зователей, по-видимому, будут эксплуатировать способность АП-структур к обучению в рамках класса задач с ранее разработа-ной конкретной АП-структурой. Таким пользователям не нужно ниче-го знать о самих АП-структурах, для них не нужен специальный язык, их руководством будет только меню, сопровождаемое разрабо-танную АП-структуру.
Пусть, например, АП-структура разработана для решения задач акустической диагностики (выявления заболеваний человека или не-исправностей технических устройств по акустическим сигналам). В таком случае меню может предложить пользователю: указать коли-чество первичных признаков, поступающих от устройств предвари-тельной обработки сигнала,и их типы (числовые или нечисловые), диапазон изменения числовых признаков; провести процедуру обуче-ния, указывая, когда и как вводить входные сигналы из обучающей выборки, когда и как присваивать имена классам сигналов, которые могут оказаться интересными для диагностики; предложить пользо-вателю ввести априорную информацию, если таковая у пользователя есть. Ввод априорной информации может быть предложен в форме правил, в которых используются и имена классов, присвоенные при обучении. Затем меню может объяснить пользователю правила эксп-луатации обученной системы диагностики.
Меньшая часть пользователей будет применять АП-нейрокомпь-ютеры для решения новых классов задач, когда требуется разработ-ка новых АП-структур и соответствующих меню для последующей их эксплуатации. Эта категория пользователей должна иметь достаточ-но полное представление о свойствах АП-структур, о правилах их построения и основных процессах, происходящих в них. Для таких пользователей нужен развитый язык программирования АП-нейро-компьютеров, позволяющий без особых затрат создавать новые АП-структуры для решения различных классов задач. Поскольку АП-нейрокомпьютеры разрабатываются как сопроцессоры к персональ-ным или другим ЭВМ, при создании языка ЯНК АПС можно пользовать-ся всеми средствами, которые предоставляют операционные системы и языки программирования, существующие в настоящее время. В час-тности, разработка меню может осуществляться вполне традиционны-ми методами.
Для разработки хорошего языка программирования АП-нейро-компьютеров нужен опыт работы с такими нейрокомпьютерами, пос-кольку по принципам обработки информации они очень отличаются от всех существующих вычислительных устройств. Некоторый опыт рабо-ты накоплен при моделировании АП-структур на различных ЭВМ, а также при работе на действующих макетах нейрокомпьютеров, и хотя этого опыта еще недостаточно чтобы уже сейчас приступить к соз-данию ЯНК АПС, можно высказать некоторые соображения по поводу того, как должен выглядеть этот язык.
Из описания нейронных сетей, имеющих АП-структуру, видно,
что язык программирования АП-нейрокомпьютеров должен иметь дело
с объектами нескольких типов: непосредственно с АП-структурами,
системами ввода и вывода, включающими описания кодирующих и де-
кодирующих устройств: событиями в АП-структурах и операторами,
выполняемые в них. Под событиями в АП-структурах мы понимаем
фиксацию некоторых состояний нейроподобной сети. Чаще всего они
фиксируются по результатам измерения активности отдельных ней-ронных полей или их комбинаций. Появление какого-либо события в нейроподобной сети аналогично присвоению значения "Истинно" не-которой логической переменной, которую можно поставить в соот-ветствие этому событию. Под операторами понимаются определенные действия, выполняемые нейронными полями с учетом "включения" или "выключения" определенных проективных связей. Операторами могут быть такие действия, как "выполнить один такт пересчета актив-ности ассоциативного поля", "выполнить передачу паттерна возбуж-дения из одного поля в другое", "выполнить нормирование вектора в буферном поле" и др.
ЯНК АПС должен также иметь средства описания параметров, определяющих структуру сети (размеры нейронных полей, размеры ансамблей, уставки регуляторов активности и т.п.). В данной гла-ве мы изложим некоторые соображения, относящиеся к описанию ос-новных объектов, которые должны входить в состав языка ЯНК АПС.
6.1. Описание АП-структур
Описание АП-структуры целесообразно начинать с перечисления нейронных полей и указания их типов и параметров. В данной рабо-те используются различные буквенные обозначения для разных типов полей. Имя любого ассоциативного поля всегда начинается с латин-ских букв AF, после которых могут следовать буквы или цифры, идентифицирующие поле. Соответственно имя буферного поля начина-ется с букв BF, а разностное поле - с букв DF. Следом за именем поля в круглых скобках указываются его параметры, разделенные запятыми. Имена нейронных полей с параметрами в описании отделя-ются друг от друга точкой с запятой. В описании АП-структуры к числу полей целесообразно также отнести кодирующие и декодирую-щие устройства, имена которых будут начинаться с букв CU.
В этой монографии мы будем придерживаться следующего син-таксиса описания нейронных полей.
1. Ассоциативное нейронное поле
AFXXX ( Y1, Y2, Y3, Y4), (6.1) где AF - символ ассоциативного поля; XXX - идентификатор (бук-венный, цифровой или буквенно-цифровой); Y1 - размер поля (коли-чество нейронов в этом поле); Y2 - уставка регулятора активности (требуемое количество активных нейронов); Y3 - количество бло-ков, на которые разбито ассоциативное поле, если матрица синап-тических весов неполносвязная, если Y3=1, то матрица синаптичес-ких весов полносвязная; Y4 - количество тактов работы ассоциа-тивного поля при пересчете его активности, если оператором не определен другой принцип прекращения работы.
Поскольку в одной АП-структуре размеры всех нейронных полей
одинаковы, параметр Y1 можно указывать только для одного из по-
лей. Вместо пропущенного параметра ставится запятая. Например,
запись
AF1 (4096, 128, 1, 6); AF2 (, 64, 1, 4); (6.2)
означает, что оба ассоциативных поля имеют по 4096 нейронов, ре-гулятор активности у первого поля установлен на 128 активных нейронов, а у второго - на 64. Оба поля имеют полносвязную мат-рицу синаптических весов. Для получения окончательных результа-тов первое поле работает шесть тактов, а второе - четыре.
2. Буферное поле
BFXXX ( Y1, Y2) , (6.3)
где BF - символ буферного поля; XXX - идентификатор буферного поля; Y1 - идентификатор массива, в котором хранятся константы сдвигов при нормировании, выполняемом в данном буферном поле; Y2 - уставка регулятора активности, т.е. числа активных нейронов, до которого производится нормирование в буферном поле.
3. Разностное поле
DFXXX (Y1) , (6.4)
где DF - символ разностного поля; XXX - идентификатор; Y1 - по-рог активности. Если суммарная активность на выходе разностного поля превышает Y1, то регулятор активности этого поля выдает на своем выходе сигнал - сообщение об элементарном событии в нейро-подобной сети. Поскольку у разностного поля регулятор активности не изменяет активность, а только сигнализирует о превышении по-рога, его было бы точнее называть регистратором активности.
4. Кодирующее (декодирующее) устройство
CUXXX (PROC), (6.5)
где CU - символ кодирующего (декодирующего) устройства; XXX - его идентификатор; PROC - имя процедуры, генерирующей маски для данного кодирующего (декодирующего) устройства.
Для описания связей будем использовать конструкцию, анало-гичную конструкции описания полей. Множество проективных связей, соединяющих одно из полей с другим, будем обозначать двумя ла-тинскими буквами, причем для возбуждающих связей будем использо-вать буквы SC, а для тормозящих - RC. Синтаксис описания проек-тивных связей следующий:
Здесь SC и RC - символы возбуждающих и тормозящих проективных связей; [XXX] - идентификатор пучка проективных связей, идущих от одного поля к другому (в отличие от идентификатора поля, он может быть опущен); XFXXX - полное имя поля. Первые два символа могут быть AF, BF или DF. За ними следует идентификатор поля. На первой позиции в круглых скобках стоит имя поля, из которого вы-ходит пучок проективных связей, а на втором месте - имя поля, к которому он идет. Y1 - параметр сдвига связей. Если Y1=0, то связи несдвинутые, если же вместо нуля стоит какое-нибудь другое число, то проективные связи сдвинуты на соответствующее количес-тво номеров нейронов в поле.
Для описания переменных, массивов и других конструкций, ис-пользуемых в обычных алгоритмических языках, будем пользоваться синтаксисом языка "Си", наложив ограничения на идентификаторы, в которых не будем допускать появление служебных символов, исполь-зуемых для описания полей и связей (начинающихся с AF,BF,DF,CU,SC или RC).
Рассмотрим пример описания
АП-структуры показанной на рис.2.5.
{
SC(AF1,BF1,0);
SC(BF1,AF2,0);
RC(BF1,AF2,0);
SC(AF2,AF1,0);
...
}
Многоточие внизу означает, что дальше должны следовать опе-раторы языка ЯНК АПС.
6.2. События в АП-структурах
Под событиями в АП-структуре понимаются определенного типа результаты работы отдельных ее подсистем. Регистрация событий производится по суммарной активности нейронов на выходах разнос-тных полей. Элементарным событием будем называть тот факт, что активность нейронов на выходе одного разностного поля превышает некоторый порог, установленный для этого поля, обозначать буквой U с цифрой, соответствующей идентификатору разностного поля. Так, для разностного поля DF3 событие U3 означает, что актив-ность его нейронов превысила заданный порог.
Приведем два примера событий в нейроподобной сети с
АП-структурой. На рис.6.1 представлен фрагмент АП-структуры,
-------╛
г=================>╕ ВF3 ╕====╛
╕ L------- ╕
г=========╕============╛ ╕
╕ г======╕=========╛ ╕ ╕
╕ ╕ ╕ ╕ ╕ ╕
------╛ ╕ ------╛ ╕ ------╛
╕ AF2 ╕ ╕ г===>╕ BF2 ╕ L=>╕ DF2 ╕
L------ ╕ ╕ L------ г=O╕ ╕
╕ ╕ ╕ ╕ L------
╕===========╕==========================-
╕ ╕
------╛ ╕ -----╛
L------ L-----
╕ ╕ ------╛
╕ L======O╕ ╕
╕ ╕ DF1 ╕
L==========================>╕ ╕
Рис.6.1. Фрагмент АП-структуры с разностными полями,
определяющими события в этой структуре
отображающий два ассоциативных поля разного уровня иерархии и
необходимые буферные и разностные поля. Фрагмент работает следу-
ющим образом: после каждого такта пересчета активности в ассоци-
ативном поле AF1 производится очистка буферного поля BF1 и зане-сение туда выходного паттерна активности поля AF1. Разностное поле DF1 подключено так, что к концу каждого такта на его выходе будут активными только те нейроны, которые не были активными в поле AF1 на предыдущем такте, но стали активными теперь. Суммар-ная активность разностного поля показывает, насколько большие изменения на выходе поля AF1 произошли за последний такт. Пока эти изменения велики, целесообразно продолжать пересчет актив-ности ассоциативного поля. Как только они станут малы, пересчет можно закончить (если нет требования завершить его за определен-ное количество тактов).
В данной структуре событие U1 может управлять синхронизаци-ей поля BF2 следующим образом: пока событие имеет место (измене-ния выходного паттерна поля AF1 остаются большими), паттерн ак-тивности поля AF1 не передается в поле BF2, но как только собы-тие исчезает, на синхровход поля BF2 подается сигнал и это поле запоминает очередной выходной паттерн активности поля AF1.
Событие в разностном поле DF2 используется для определения
конца процедуры расшифровки ансамбля в поле AF2 через составляю-
щие ансамбли поля AF1. Пусть в поле AF2 оказался возбужденным
ансамбль F, состоящий из представителей нижнего уровня f , f ,
1 2 f . Кроме того, ансамбль F может содержать представителей других 3 модальностей (например, имя ансамбля), которые в данный момент по каким-либо причинам не расшифровываются. Паттерн активности ансамбля F передается одновременно в ассоциативное поле AF1 и в буферное поле BF3. В результате пересчета в поле AF1 оказывается возбужденным один из составляющих ансамблей, который передается в поле BF2 и по тормозящим связям блокирует возбуждение своих представителей в ансамбле F. В результате количество возбужден-ных нейронов в поле AF2 существенно уменьшится, и разностное по-ле DF2 зафиксирует это событие относительно высоким уровнем сво-ей активности.
Так будет происходить до тех пор, пока не будет расшифрован весь ансамбль F. После расшифровки оставшаяся часть (например от имени) ансамбля F уже не имеет соответствующего ей ансамбля в поле AF1. В таком случае в поле AF1 может быть два исхода: либо возбудится случайный ансамбль, либо возбудится случайное множес-тво нейронов, не представляющих ансамбль. Ни в том, ни в другом случае переданный в поле BF2 паттерн не может затормозить сколь-ко-нибудь большое количество нейронов в ансамбле F и в разност-ном поле DF2 активность резко уменьшится, что и позволит принять решение о прекращении процесса расшифровки.
Мы привели два примера элементарных событий, происходящих в АП-структуре. Логические переменные, которые ставятся в соответ-ствие событиям, позволяют по обычным правилам строить логические выражения, описывающие более сложные события. Такие логические выражения служат для управления ходом выполнения программ в язы-ке ЯНК АПС.
6.3. Основные оператора языка ЯНК АПС
Для того чтобы правильно выбрать основные операторы языка, нужно приобрести большой опыт работы с АП-структурами. Такого опыта пока еще нет, поэтому то, что предлагается в данном разде-ле нужно рассматривать не как окончательные решения, а лишь как иллюстрацию основных особенностей будущего языка ЯНК АПС.
Первым оператором рассмотрим оператор очистки нейронного поля, имеющий следующий синтаксис:
Clear(XFXXX), (6.7)
где XFXXX - имя нейронного поля (ассоциативного или буферного).
Он устанавливает нули на выходах всех нейронов указанного поля.
Одним из основных операторов должен быть оператор синхрони-зации Sync,который в каком-то смысле похож на оператор присваи-вания в алгоритмических языках. Представляется целесообразным установить следующий синтаксис этого оператора:
Sync (XFXXX, XCXXX, ... , XCXXX) , (6.8)
где XFXXX - имя нейронного поля (ассоциативного, буферного или разностного), XCXXX - имена связей, идущих к этому полю (см. разд.6.1). Они могут быть заданы либо своими идентификаторами, либо указанием соединяемых ими нейронных полей.
При выполнении оператора Sync в нейронной сети выполняются последовательность действий:
1. Дается разрешение на включение всех связей, перечислен-ных в качестве параметров оператора.
2. На синхровход поля XFXXX подается сигнал синхронизации, по которому на выходах нейронов этого поля устанавливается новое состояние, определяемое паттернами активности. Последние прихо-дят по связям, перечисленным в качестве параметров оператора Sync.
Приведем пример использования оператора Sync. Пусть в
структуре, описанной в разд.6.1 и представленной на рис.2.5,
происходит процесс формирования ансамбля верхнего уровня. Все
ансамбли-признаки уже собраны в буферном поле BF1 и произведено
нормирование полученного кода. Этот код нужно передать в ассоци-
ативное поле AF2. Передача осуществляется выполнением оператора
Sync (AF2, SC(BF1,AF2,0)) (6.9)
Если же в названной структуре происходит расшифровка ансам-
бля верхнего уровня через ансамбли нижнего уровня и очередной
расшифрованный ансамбль, переданный в буферное поле, должен за-
блокировать своих представителей в ансамбле верхнего уровня, вы-
полняется оператор
Sync (AF2, RC(BF1,AF2,0)). (6.10)
Learn (AFXXX,l), (6.11) где AFXXX - имя ассоциативного поля, в котором производится обу-чение: l - параметр подкрепления, изменяющийся в пределах от -1 до +1. Оператор обучения приводит к выполнению однократного про-цесса обучения в соответствии с правилами обучения, описанными в гл.2 (формулы 2.6 и 2.7).
Для ассоциативного поля вводится еще один специальный опе-
ратор пересчета активности нейронов поля
Count (AFXXX, [m], [expr]), (6.12)
где AFXXX - имя ассоциативного поля, m - уставка регулятора ак-
тивности, expr - арифметическое или логическое выражение, аналогичное соответствующим выражениям в алгоритмических языках. В случае арифметического выражения его значение означает сколько тактов пересчета активности должно быть выполнено при появлении этого оператора. Если это логическое выражение, то пересчет ак-тивности выполняется до тех пор, пока выражение истинно. Квад-ратные скобки показывают, что соответствующий элемент может от-сутствовать. Если отсутствует уставка регулятора активности, то его значение берется из описания ассоциативного поля. Если от-сутствует выражение expr, то из описания поля берется количество тактов пересчета его активности.
Для буферного нейронного поля вводится специальный оператор
нормирования
Norm (BFXXX, [m]). (6.13)
Здесь BFXXX - имя буферного поля: m - суммарная активность нейро-нов буферного поля после нормирования. Если параметр m не ука-зан, то его значение берется из описания буферного поля.
Для кодирующих и декодирующих устройств должны быть созданы операторы ввода Input и вывода Output, синтаксис которых целесо-образно будет определить после того, как накопится опыт эксплуа-тации нейрокомпьютеров совместно с другими устройствами.
В пределах данной монографии определим синтаксис этих опе-раторов следующим образом.
Оператор ввода:
Input (V,CUXXX), (6.14)
где CUXXX - идентификатор кодирующего устройства, в описании ко-торого содержится ссылка на процедуру кодирования; V - идентифи-катор параметра, численная значение которого подается на вход ко-дирующей процедуры. По идентификатору кодирующая процедура отыс-кивает маску этого параметра.
Оператор Input генерирует на выходе кодирующего устройства CUXXX маску, соответствующую номеру параметра с учетом его чис-лового значения.
Оператор вывода
(Output (CUXXXX, nm, z), (6.15)
где CUXXXX - идентификатор декодирующего устройства, nm - иденти-фикатор массива имен (или номеров), по которым осуществляется де-кодирование; z - целочисленная переменная.
Оператор Output присваивает целочисленной переменной z зна-чение, соответствующее номеру элемента в массиве nm, который указывает маску, имеющую наибольшее количество общих единиц с вектором, поданным на вход декодирующего устройства. Нумерация элементов в массиве nm начинается с нуля. Кроме названных язык ЯНК АПС должен быть дополнен обычными операторами, используемыми в алгоритмических языках (условным оператором, оператором пере-хода, оператором цикла и т.д.).
6.4. О параллельности обработки информации в АП-структурах
Принято считать, что в нейроподобных структурах в отличие
от ЭВМ обработка информации производится параллельно. Однако
чисто параллельная обработка информации имеет очень большие не-
достатки. [24]. Для решения сложных задач искусственного интеллекта необходимо сочетать принципы параллельной и последователь-ной обработки информации. В АП-структурах обработка информации внутри каждого ассоциативного поля осуществляется полностью па-раллельно, а в процессах передачи паттернов возбуждения по про-ективным связям преобладают последовательные процессы (хотя и здесь может быть определенный параллелизм).
Перечисленные выше операторы ориентированы на последова-тельную программу передачи паттернов активности по проективным связям. На такую же работу рассчитан и типовой нейрокомпьютер. Однако у человека аналогичные процессы (если мозг человека вооб-ще использует аналогичные методы обработки информации) могут быть частично распараллелены. Так, обработка данных в АП-струк-турах различных модальностей (зрение, слух, осязание и т.д.) мо-жет происходить одновременно без взаимных помех.
Сложнее обстоит дело, когда начинается обработка межмодаль-ностной информации, где объединяются результаты, полученные в разных модальностях, и где к образной информации подключается символьная. На этих уровнях неправильная синхронизация пересылок паттернов активности может внести большие помехи в обработку ин-формации. Возможно, в связи с этим человеческий мозг обладает специфическим механизмом, который называют вниманием. Мы счита-ем, что одна из основных функций этого сложного механизма заклю-чается в синхронизации передач паттернов активности нейронов из одних полей в другие и в выборе тех участков АП-структуры, в ко-торых в каждый текущий момент разрешены такие передачи.
Вероятно, одним из путей решения задачи внимания является динамическое рассечение всей АП-структуры на такие подобласти, внутри которых передача паттернов активности не может повлиять на текущую работу других областей. Разбиение на разные модаль-ности - это лишь один пример такого рода. В качестве другого примера можно привести временное отделение верхних уровней обра-ботки информации от нижних для решения какой-либо важной задачи верхнего уровня. В такой момент верхние уровни работают незави-симо от нижних, а взаимные передачи данных заблокированы. По-ви-димому, примерно такая ситуация имеет место, когда человек идет по улице, о чем-нибудь задумавшись. Нижние уровни обработки ин-формации обеспечивают безопасное перемещение, а верхние заняты решением проблемы. Если блокировка передач паттернов активности нарушается (например, из-за чрезмерно сильной активности верхне-го уровня), то может произойти сбой в системе обеспечения безо-пасности. Тогда говорят: "слишком сильно задумался". Если блоки-ровка передач нарушена из-за чрезмерной активности нижнего уров-ня, нарушается решение задачи верхнего уровня. В таких случаях говорят: "из-за этого сбился с мысли".
Возможны и другие варианты разделения АПструктуры на вре-менно невзаимодействующие подобласти. Нетрудно представить себе работу нескольких нейрокомпьютеров или архитектуру одного нейро-компьютера, который будет допускать распараллеливание передач данных по проективным связям и контроль за разбиением на соот-ветствующие подобласти. Язык ЯНК АПС должен иметь средства для описания работы таких параллельных алгоритмов. В настоящее время еще трудно сказать, понадобятся ли здесь какие-либо специальные средства или будет достаточно обычных методов, используемых в параллельном программировании [25]).
В этой главе мы рассмотрим лишь основные идеи, связанные с применением АП-структур и АП-нейрокомпьютеров для анализа изоб-ражений и распознавания зрительных образов, оставляя в стороне вопросы формального описания распознающих систем и подробного обоснования их свойств. Основная работа в этих направлениях еще впереди, а здесь мы лишь сошлемся на отдельные модели, разрабо-танные с целью проверки применимости АП-структур для решения за-дач распознавания, и на результаты экспериментов с этими моделя-ми.
Задачу анализа изображений и распознавания зрительных обра-зов обычно разбивают на целый ряд подзадач, количество которых зависит от сложности изображения и от целей распознавания. Мы рассмотрим следующие этапы в распознавании зрительных образов: выделение текстурных признаков; распознавание текстур и выделе-ние на изображении областей с однородной текстурой; выделение признаков формы и распознавание формы областей с однородной тек-стурой; выделение признаков положения и распознавание объектов на изображении; выделение отношений между объектами и распозна-вание сцен. Разумеется, предложенная схема условна. Ее услов-ность заключается прежде всего в том, что перечисленные этапы не выполняются в указанной последовательности. В процессе работы распознающей системы постоянно должны происходить возвраты к предыдущим этапам с целью коррекции полученных результатов. Ус-ловность этой схемы заключается также в том, что далеко не все операции, выполняемые устройством распознавания, можно точно от-нести к одному из названных этапов. Тем не менее предложенная схема поможет нам расположить материал, необходимый для поясне-ния основных идей распознавания зрительных образов при помощи АП-нейрокомпьютеров.
К моменту написания рукописи не все названные выше этапы получили отражение в моделях, реализованных на нейрокомпьютерах и их имитаторах, однако для связности изложения мы опишем реше-ние задачи в целом, имея в виду, что для этапов, еще не прове-ренных на моделях, будут изложены лишь общие представления о том, как это можно сделать.
7.1. Выделение текстурных признаков
Под текстурными признаками обычно понимают некоторые ста-тистические характеристики локального участка изображения [26]. Для выделения такого участка будем использовать прямоугольное окно, имеющее по горизонтали размер b, а по вертикали - h (еди-ницей измерения считается один элемент изображения - пиксель). На рис.7.1,а показан пример расположения окна, имеющего размеры bxh, на изображении, имеющем размеры ВхН. Началом координат на изображении считается левый верхний угол, координатами окна (i,j) координаты его левого верхнего угла. Статистические харак-теристики, полученные при обработке участка изображения, в пре-делах окна, считаются в равной мере присущими всем элементам изображения, расположенным во внутреннем (заштрихованном) прямо-угольнике, размеры которого показаны на рис.7.1,б.
Будем полагать, что в пределах окна выделяются текстурные признаки.
1. Гистограмма яркостей. Строится следующим образом: весь
диапазон возможных яркостей разбивается на k интервалов, после
чего для каждого интервала в пределах окна подсчитывается коли-
чество пикселей, у которых яркость попадает в этот интервал. Полученное для каждого интервала число считается параметром, ха-рактеризующим текстуру в пределах окна. Гистограмма яркостей да-ет столько текстурных параметров, на сколько интервалов был раз-бит весь диапазон яркостей. Иногда полезно к этим параметрам до-бавить оценку математического ожидания и дисперсии яркостей в пределах окна (яркость при этом считается случайной величиной). Эти оценки не являются независимыми параметрами по отношению к компонентам гистограммы яркостей, но они позволяют ускорить про-цесс обучения сети для получения относительно грубого распозна-вания текстур, тогда как компоненты гистограммы позволяют осу-ществлять более тонкую дифференцировку сходных между собой текс-тур.
2. Гистограмма контрастов. Аналогична гистограмме яркостей, только в качестве параметра, по которому производится разбивка на интервалы, берется не яркость, а перепад яркостей между со-седними пикселями. Гистограмма контрастов дает дополнительную характеристику участка изображений по сравнению с гистограммой яркостей. Так, и освещенный солнцем участок листвы дерева, и круглый предмет с ровной поверхностью, попавший в пределы окна, могут иметь весь диапазон градаций яркости, но перепады яркостей у соседних пикселей для листвы будут большими, чем для круглого предмета. Так же, как и в предыдущем случае, к гистограмме конт-растов полезно добавлять математическое ожидание и дисперсию контрастов в пределах окна.
3. Гистограмма ориентаций контурных элементов. Здесь пара-метром, по которому производится разбивка на интервалы, служит угол ориентации контурного элемента. Контурный элемент вектора, перпендикулярного градиенту яркости. Градиент яркости определя-ется по четырем соседним пикселям, угол ориентации контурного элемента учитывается в гистограмме только в том случае, когда величина градиента превосходит некоторый порог.
Гистограмма ориентаций контурных элементов содержит полез-ную информацию о многих типах текстур. Так, например, многие об-ъекты, созданные человеком, имеют вполне определенные предпочти-тельные ориентации контурных элементов (кирпичная кладка, окна зданий на больших расстояниях и т.п.). Многие текстуры (напри-мер, трава, волосы человека, резьба на винте и т.п.) имеют боль-шое количество параллельных и антипараллельных контуров. У таких текстур на гистограмме появляется два характерных пика. Кроме того, гистограмма ориентаций контурных элементов содержит инфор-мацию о расположении поверхностей объектов относительно наблюда-теля. Нетрудно убедиться в том, что поверхность, которая имеет беспорядочную ориентацию контуров при фронтальном расположении, перейдя в горизонтальное положение, будет иметь в гистограмме преобладание горизонтальных контуров, а в вертикальном профиль-ном положении у этой поверхности будут преобладать вертикальные контуры. Это обстоятельство позволяет получить дополнительные данные для анализа формы трехмерных объектов и для стереозрения, но с другой стороны оно затрудняет однозначную идентификацию ти-пов текстур. В общем случае лишь очень немногие текстуры имеют небольшое число достаточно четких отличительных признаков. Чаще всего при распознавании текстур приходится учитывать сложные комбинации большого количества признаков.
4. Гистограммы цветовых составляющих. В каждой из них в качестве параметра, разбиваемого на интервалы, служит доля световой энергии, которая приходится на конкретную спектральную полосу. Так, при обычном трехцветном зрении могут быть построены гистограммы красного и зеленого цветов, которые вместе с гистог-раммой яркостей дают представление о цветовых составляющих изоб-ражения в пределах выделенного окна. Цветовые признаки дают мно-го информации о текстурах естественной среды (небо, растения, камни и т.п.), хотя и не определяют эти текстуры однозначно. Цветовые признаки могут использоваться и для текстурного анализа в искусственных средах (например, в системах технического зрения транспортных роботов на заводах, где стены, станки и другие предметы, как правило, бывают специально покрашены). Разумеется, цветовые признаки не должны ограничиваться видимым диапазоном. Применение инфракрасных датчиков может сильно облегчить текстур-ный анализ как в естественной, так и в искусственных средах.
Каждая компонента любой гистограммы рассматривается как от-дельный текстурный признак. В зависимости от количества интерва-лов, на которые разбивается каждая гистограмма, общее количество текстурных признаков может изменяться от нескольких десятков до нескольких сотен. Такое признаковое пространство может показать-ся чересчур большим, но если надо получить достаточно универ-сальную систему технического зрения, необходимо считаться с тем, что априори неизвестно, какие признаки окажутся более важными при распознавании тех конкретных текстур, с которыми встретится система технического зрения во время ее эксплуатации. Нужно только создать такую систему распознавания, когда избыточная размерность параметрического пространства не мешает распознава-нию и не сильно снижает быстродействие распознающей системы.
Для вычисления всех описанных выше признаков можно предло-жить очень простые и дешевые аппаратные средства, выделяющие признаки в темпе поступления сигналов от телекамеры или от дру-гих датчиков. Будем считать, что в нейрокомпьютерной системе технического зрения такие аппаратные средства существуют, а тек-стурные признаки, выделяемые этими средствами, будем называть общими признаками. Однако очень часто встречаются прикладные за-дачи, когда нужно анализировать текстуры специального вида. К таким задачам можно отнести, например, визуальный контроль пе-чатных плат, полупроводниковых кристаллов, контроль качества по-лиграфической продукции и т.п. Кроме того, и в задачах общего текстурного анализа может возникнуть необходимость более тонкого разделения текстур, для которого нужно использовать дополнитель-ные текстурные признаки, программно полученные на нейрокомпьюте-ре. Рассмотрим примеры выделения дополнительных текстурных приз-наков на типовом нейрокомпьютере.
Характерные элементы контуров. В задачах визуального конт-роля печатных плат, полупроводниковых кристаллов, контроля ка-чества полиграфической продукции и внешнего вида изделий возни-кает необходимость выделить на изображении некоторые характерные контурные элементы. Если текстура образована только из комбина-ций таких элементов, то это означает, что дефектов на поверхнос-ти изделия нет. Появление контурных элементов необычного типа означает, что в этом месте типичный рисунок поверхности нарушен и может присутствовать дефект. В таком случае может быть выпол-нен более детальный осмотр подозрительного места.
Рассмотрим процедуру выделения характерных контурных эле-
ментов при помощи типового нейрокомпьютера. На рис.7.2 представ-
лен элемент контура, характерный для печатных плат. Будем считать, что устройство предварительной обработки информации выделяет на изображении все контуры и передает их в нейрокомпьютер в виде двоичного контурного изображения, у которого единицы соот-ветствуют точкам, где обнаружен контур, а нули - когда контура нет. Контурное изображение поступает в нейрокомпьютер по строкам через сдвиговый регистр SRG (см. рис.3.1) и записывается в его память по одной строке в каждое слово ОЗУ.
Для того чтобы проверить, нет ли искомого контурного эле-мента (см. рис.7.2) в самой верхней полосе изображения, необхо-димо взять из ОЗУ строки от 0 до 6 и передать их содержимое в двоичные счетчики. Затем взять строки 7 - 13, сдвинуть каждую из них на расстояние, показанное на рисунке стрелкой, и также пере-дать содержимое в счетчики, после чего повторить процедуру со строками 14-20, не сдвигая их. Если в каком-либо из двоичных счетчиков появится 21 единица, то в соответствующем месте на изображении есть искомый контурный элемент. Поскольку на реаль-ных изображениях качество выделяемых контуров не идеальное, в действительности порог срабатывания счетчиков следует установить немного меньшим, чем 21.
Если проверяемый контурный элемент содержит k точек (в при-веденном примере k=21), то для выявления его в полосе изображе-ния требуется 2k+r операций нейрокомпьютера, где r - число опе-раций, необходимое для пороговой обработки содержимого счетчи-ков. Если k выбирется немного превышающим целую степень двойки, то значением r как поравило можно пренебречь, поскольку порого-вая операция сводится к извлечению содержимого одного из разря-дов двоичных счетчиков. Тогда, учитывая, что для просмотра всего изображения необходимо проверить не более, чем Н полос (Н - ко-личество строк в изображении), количество операций для выделения всех мест, в которых встречается данный контурный элемент, нез-начительно превышает 2kH.
Типовой нейрокомпьютер, выполняющий 4 млн оп/с над строка-ми, при количестве точек в элементе контура 16 и количестве строк изображения 512 выполнит всю процедуру за 4 мс.
Выделение характерных элементов контура может быть полезным не только для текстурного анализа, но и в задачах распознавания машинописных и рукописных текстов.
Выделение близких параллельных линий. Гистограмма ориента-ций дает сведения о преимущественной ориентации контуров в пре-делах окна, но не говорит о взаимном расположении этих контуров (рис.7.3). Во многих случаях бывает важно установить, нет ли на изображении близкорасположенных параллельных линий. Выяснить это можно по двоичному контурному изображению, описанному выше, если запрограммировать на нейрокомпьютере сдвиги полного изображения в произвольном направлении на произвольное расстояние и операции поразрядной конъюнкции двух полных изображений. Нетрудно убе-диться в том, что эти две операции позволяют различить текстуры, представленные на рис.7.3, а, б.
Вообще говоря, сдвиги двоичного изображения и поразрядные логические операции позволяют решать многие задачи предваритель-ной обработки изображений. При выполнении их на типовом нейро-компьютере, как правило, требуется не более 8 операций для обра-ботки одной строки. При быстродействии 4 млн оп/с такой нейро-компьютер выполнит одну операцию поразрядной обработки изображе-ния, содержащего 512 строк, за 1 мс.
Таким образом, системы технического зрения, построенные на базе нейрокомпьютеров, для выполнения текстурного анализа могут использовать два типа текстурных признаков: общие, выделяемые аппаратными средствами, и специальные, выделяемые программно при помощи нейрокомпьютера. Набор общих признаков фиксирован для данной системы технического зрения и не зависит от решаемой за-дачи. Специальные признаки (когда они нужны) выделяются с учетом конкретной задачи.
7.2. Распознавание текстур
Задача распознавания текстур имеет свои характерные особен-ности. С одной стороны, здесь обычно не удается выделить нес-колько информативных признаков, которые достаточно хорошо описы-вали бы все богатство текстур окружающей среды, и поэтому прихо-дится иметь дело с признаковым пространством большой размернос-ти, но с другой стороны даже сравнительно небольшое количество изображений дает возможность сформировать очень большую обучаю-щую выборку, поскольку размеры окна выбирают во много раз мень-шими, чем размеры изображения, и каждое изображение при обучении может дать тысячи образцов текстур, причем обычно ни один обра-зец полностью не совпадает с другим. Такой большой объем обучаю-щей выборки в принципе позволяет даже в многомерном пространстве построить хорошие разделяющие поверхности, необходимые для рас-познавания, но для этого надо использовать адекватные методы.
Если отвлечься от проблемы количества вычислений, то наибо-лее подходящим для распознавания текстур из всех традиционных методов нам кажется метод потенциальных функций [27]. Сущность этого метода заключается в том, что в пространстве признаков строят функции, аналогичные электростатическим потенциалам. Точ-ки обучающей выборки считаются точечными источниками потенциа-лов, а знак (или какой-нибудь другой признак) источника опреде-ляется тем, к какому образу относится соответствующая точка. По-этому все обучение сводится к записи в память точек из обучающей выборки и указателей, к какому образу принадлежит та или иная точка. В процессе распознавания, когда требуется определить, к какому образу относится вновь предъявленная точка, для этой точ-ки пространства определяют суммарный потенциал, генерируемый со-вокупностью точек с одним и тем же знаком (признаком) и точку относят к тому образу, чей потенциал оказался максимальным. Точ-ки обучающей выборки, по которым строятся потенциальные функции, будем называть опорными. Вообще говоря, метод достаточно хорошо работает при очень слабых ограничениях на вид потенциальных фун-кций, и эти функции не обязательно должны быть похожими на расп-ределение реальных электростатических потенциалов.
Рассмотрим один из примеров потенциальных функций. Обоз-
начим точки обучающей выборки, принадлежащие образу р, через
p p p p
i i1 i2 ik
ные точки в обучающей выборке, а буквой k обозначено количест-
во признаков в признаковом пространстве. Соответственно, точ-
q q q
ки, принадлежащие образу q, обозначим через X = (x ,x ,
j j1 j2
q
jk p q и q могут иметь следующий вид:
--
\ 1
f = ------------------------------- ,
p / p 2 p 2
(7.1)
--
\ 1
f = ------------------------------- ,
q / q 2 q 2
где x , ..., x - координаты произвольной точки пространст-
1 k
ва, d - малая положительная величина, исключающая деление на
нуль. Если количество образов больше двух, то аналогичные фун-
кции f , f ... выписываются для остальных образов и при
r s распознавании отыскивается max(f ,f ,f ,f , ... ).
p q r s
Иногда для уменьшения количества опорных точек в памяти сохраняют не всю обучающую выборку, поэтому точки обучающей вы-борки предъявляют последовательно и запоминают только те из них, которые не удается правильно распознать, используя ранее накоп-ленные опорные точки. Такая процедура приводит к концентрации опорных точек вдоль поверхностей, разделяющих образы, что улуч-шает качество их распознавания при одинаковом количестве опорных точек. Тем не менее, в пространствах большой размерности при не-линейных разделяющих поверхностях, при наличии многосвязных об-ластей, относящихся к одному образу, количество опорных точек должно быть очень большим. Считается, что в такой задаче как рас-познавание текстур на изображениях естественной среды, число опорных точек должно достигать десятков тысяч.
Надо отметить, что любые попытки аппроксимировать разделяю-щие поверхности какими-либо другими функциями, не требующими та-кого числа опорных точек, ухудшают качество распознавания, если только нет какой-либо априорной информации о разделяющих поверх-ностях в признаковом пространстве. В реальных задачах получить такую информацию удается редко.
Оценим, каково должно быть быстродействие устройства для
распознавания текстур по методу потенциальных функций. Будем
считать при этом, что количество текстурных признаков может до-
ходить до 200, Тогда обработка одной опорной точки по формуле
(7.1) требует около 1000 команд. Ранее оговаривалось, что мини-
4
мально необходимым числом опорных точек считается 10 , отсюда
количество команд, необходимых для распознавания одной текстуры
7
в пределах окна, оценивается значением 10 . Рассмотрим задачу
обработки изоражения размером 1000х1000 пикселей, и пусть окно
для выделения текстурных признаков содержит 20х20 пикселей. Для
того чтобы не пропустить важные участки текстур при текстурном
анализе, сканирование изображения надо осуществлять с шагом, не
превышающим половины размеров окна, т.е. в нашем случае с шагом
10 пикселей. Это приводит к необходимости провести распознавание
4
10 текстурных участков на одном изображении. Следовательно, для
11
обработки изображения за 1 с надо выполнять 10 оп/с. Если нужно
работать с динамическими изображениями, то время обработки надо
уменьшить как минимум на порядок, и тогда распознающее устройст-
12 во должно выполнять не менее 10 оп/с. Получить такое быстродей-ствие в дешевом малогабаритном устройстве, какое обычно требует-ся для систем технического зрения, необычайно трудно.
Рассмотрим теперь, как происходит распознавание текстур в АП-нейрокомпьютере. В этом разделе будем говорить только о пер-вичном распознавании, которое производится в одном ассоциативном поле. Процедуры, позволяющие уточнить типы текстур в сомнитель-ных случаях, будем рассматривать, когда речь пойдет о выделении однородных текстурных областей и о распознавании объектов.
Система, предназначенная для текстурного анализа (рис.
7.4), состоит из телекамеры Т, блока выделения текстурных приз-наков FE, кодирующего блока CU1, буферного нейронного поля BF, ассоциативного нейронного поля AF, декодирующего блока CU2 и уп-равляющей вычислительной машины МС. Блоки, обведенные на рисунке пунктирной линией, реализуются в нейрокомпьютере.
Телевизионная камера Т воспринимает изображение и передает видеосигнал в блок выделения признаков FE, где он переводится в цифровой код и записывается в кадровую память. Кадровая память должна иметь доступ к окну произвольного размера, расположенному в произвольном месте изображения. Управление положением и разме-рами окна осуществляет вычислительная машина МС. Установив окно, она выдает блоку FE команду приступить к выделению текстурных признаков в пределах окна. После того, как текстурные признаки выделены, они поочередно передаются в нейрокомпьютер, где прог-раммно реализованный блок CU1 генерирует для каждого признака соответствующую маску, учитывающую числовое значение признака (см. разд.4.3). Полученные маски дизъюнктивно вводятся в буфер-ное поле BF, в котором осуществляется нормирование кода (см. разд. 4.4). В дальнейшем работа системы зависит от ее режима.
Рассмотрим сначала режим обучения. Он может осуществляться в двух вариантах: с учителем и без учителя. Режим обучения без учителя представляет большой интерес, но о нем поговорим позже, а сейчас рассмотрим режим обучения с учителем. Пусть до того, как распознающая система начнет обучаться, оператор разметил все изображения, представляющие собой обучающую выборку. Разметка заключается в том, что оператор тем или иным способом указывает на изображении наименование текстуры для каждого возможного по-ложения окна и эта информация записывается в память управляющей ЭВМ. Затем при помощи телекамеры в блок FE вводится первое изоб-ражение из обучающей выборки и вычислительная машина устанавли-вает окно в начальное положение (например, в левый верхний угол изображения). Блок FE начинает выделение текстурных признаков в пределах окна и передает их в кодирующий блок CU1, из которого коды признаков поступают в буферное поле BF. Кроме кодовых масок признаков кодирующий блок CU1, как и декодирующий блок CU2, со-держит маски имен текстур, но на этом этапе они не используются.
Полученный в буферном поле код нормируется и передается в ассоциативное поле AF, где производится пересчет активности нейронов в течение нескольких тактов и затем выходной вектор поля AF передается в декодирующий блок CU2 для определения кода текстурного имени, с которым выходной вектор имеет наибольшее пересечение. Текстурное имя считается распознанной текстурой и срав-нивается с именем текстуры, заданным оператором для этого поло-жения окна. Если имена совпали, то обучения не требуется и вы-числительная машина переводит окно в следующее положение (напри-мер, вправо на половину длины окна). Разумеется, в начале обуче-ния распознанное имя текстуры чаще всего будет неправильным и тогда начинается процедура обучения, которая включает в себя три этапа.
На первом этапе производится обучение правильному имени. С этой целью управляющая машина МС вводит в кодирующий блок CU1 правильное имя той текстуры, которая соответствует текущему по-ложению окна. Кодирующее устройство генерирует маску правильного имени и передает ее в буферное поле BF, где она объединяется с кодом текстурных признаков и все вместе передается для формиро-вания соответствующего ансамбля в ассоциативном поле AF. Форми-рование ансамбля осуществляется по формуле 2.6 с положительным сигналом подкрепления l, при этом опыт показывает, что в этой задаче целесообразно выбирать l << 1.
На втором этапе производится "разобучение" с неправильным именем. При этом управляющая машина дает команду повторить вы-числение, кодирование и нормирование текстурных признаков, после чего посылает в кодирующий блок CU1 то имя текстуры, которое бы-ло ошибочно указано распознающей системой. Кодирующее устройство отыскивает маску этого ошибочного имени, передает ее в буферное поле BF, откуда код признаков вместе с маской ошибочного имени передается в ассоциативное поле AF, где производится изменение синаптических весов с отрицательным сигналом подкрепления по формуле (2.7). И здесь выбирается |l| << 1. Смысл этой операции заключается в том, что нужно уменьшить общее количество синапти-ческих связей от кода анализируемой текстуры к маске неправильно распознанного имени, чтобы в будущем снизить вероятность такой ошибки.
В данной задаче целесообразно формировать ансамбли таким образом, чтобы ядром служило имя текстуры. Тогда в процессе пе-ресчета активности ассоциативного поля возбуждение перемещается на ядро и соответствующее текстурное имя легко опознается. Вы-полненное на втором этапе разобучение имеет и побочное действие - оно частично разрушает ядро, соответствующее неправильно рас-познанному имени. Поскольку это нежелательно, выполняется третий этап - восстановление ядра. Для этого буферное поле BF гасится и в него передается одна только маска неправильного имени, которая без изменения поступает в ассоциативное поле AF, где выполняется формирование ансамбля с положительным подкреплением по формуле (2.6). При этом величина подкрепления выбирается большой, напри-мер, l=1.
После выполнения всех трех этапов управляющая машина пере-водит окно на следующий участок и процедура повторяется, пока не будет просмотрено все изображение.
Нетрудно убедиться в том, что описанная система распозна-
вания текстур использует метод, аналогичный методу потенциаль-
ных функций. Действительно, любая точка Х в пространстве текс-
турных признаков будет отнесена к текстурному классу N , если
i
выполняется условие
S(X,N ) = max S(X,N ), (7.2)
i k
k
где S(X,N ) - суммарное количество синаптических связей, соеди-
k
няющих нормированный код точки Х с маской имени k-го текс-
турного класса. Условие (7.2), приводящее к победе маски N
i
в конкуренции за захват возбуждения в ассоциативном поле AF,
фактически не что иное, как условие распознавания по методу по-
тенциальных функций, если потенциальными функциями считать
S(X,N ). По многим свойствам S(X,N ) близки к тем функциям, ко-
k k торые обычно используются в распознавании и были описаны в этом разделе. Действительно, если новая точка в пространстве призна-ков оказывается очень близкой к одной из опорных точек, то мас-ка имени этой опорной точки будет иметь много синаптических связей с кодом новой точки, поскольку принципы кодирования (см. гл.4) выбраны таким образом, что близким числовым значениям параметров соответствуют близкие коды. Правда, вид зависимости, приведенный на рис.4.2, отличается от вида функций, опре-деляемых формулами (7.1), но это не имеет большого значения.
Поэтому можно считать, что каждая запомненная точка с именем N
i
(заученный образец текстуры) формирует вокруг себя в пространст-ве текстурных признаков некое "потенциальное поле", смысл кото-рого в следующем: по мере того как любая новая точка Х приближа-ется к запомненной точке, увеличивается количество связей между маской имени N и кодом Х .
i
Потенциальные поля от различных опорных точек, имеющих
одинаковое имя, суммируются. Действительно, если мы имеем две
опорные точки N и N~, то при обучении каждая из них вносит
i i новые связи с маской их общего имени, поскольку при формирова-нии ансамблей в соответствии с выражением (2.6) используются случайные числа, и каждый новый цикл обучения вносит новые си-наптические связи, как бы ни были близки между собой коды опор-ных точек (этим отчасти объясняется необходимость условия l << 1).
Таким образом, общее количество связей между кодом новой точки и маской любого имени ведет себя как потенциальная функ-ция, построенная на опорных точках этого имени, и именно это об-щее количество связей определяет возможность победы данного име-ни в конкуренции за захват возбуждения при распознавании новой точки. Однако от обычного метода потенциальных функций распозна-вание, реализованное на базе нейрокомпьютера, существенно отли-чается.
Первое отличие заключается в том, что нейрокомпьютер ис-
пользует стохастические коды, и S(X,N ) являются случайными
k функциями, которые можно рассматривать лишь в качестве стохасти-ческого аналога потенциальных функций. При достаточно большом количестве нейронов в каждом нейронном ансамбле это отличие ста-новится несущественным, но если количество нейронов составляет всего несколько десятков, стохастические свойства функций S(X,N ) оказывают заметное влияние на результаты распознавания.
k
Второе отличие более важно для нас. Оно заключается в том,
что время распознавания в нейрокомпьютере практически не увели-чивается с ростом числа опорных точек, если только их количество не приводит к превышению допустимой информационной емкости сети.
Эта особенность имеет решающее значение при определении примени-мости нейрокомпьютеров к решению тех или иных задач распознава-ния.
Расчеты показывают, что можно разработать нейрокомпьютер, который будет распознавать входной набор параметров за несколько микросекунд. Габариты такого нейрокомпьютера не будут превышать габаритов персональной ЭВМ.
Если принять время распознавания равным 10 мкс, то необхо-димые 10 тыс позиций окна на одном изображении нейрокомпьютер сможет обработать за 0.1 с, что позволит использовать его для текстурного анализа динамических изображений.
Сотрудники ИК АН УССР Т.Н.Байдык и Д.А.Рачковский совместно с автором провели экспериментальное исследование процесса рас-познавания текстур на фотографиях реальной местности. Исследова-ния проводились на макете нейрокомпьютера, разработанном в Инс-титуте кибернетики им. В.М.Глушкова АН УССР. Сюжеты изображений выбирались с учетом возможности будещего применения системы тех-нического зрения в автоматических устройствах, размещенных на дорожных транспортных средствах (например, в системе обеспечения безопасности пассажиров автомобиля). По техническим причинам ис-пользовались только черно-белые изображения, поэтому гистограмм цветности в числе текстурных признаков не было.
Изображения, снятые фотоаппаратом на улицах города и отпе-чатанные на фотобумаге, вводились в ЭВМ при помощи черно-белого сканнера, имеющего 37 градаций уровня серого. Размеры изображе-ний, использованных в эксперименте, составляли 200х144, окна 16х16, шаг смещения окна по обеим координатам - 8 пикселей.
В эксперименте вычислялись следующие текстурные признаки:
_признак яркости .: 18 точек в гистограмме яркостей, средняя яркость и среднее квадратичное отклонение яркостей в пределах окна. Всего 20 признаков.
_признак контрастности .: 18 точек в гистограмме контрастнос-тей, средняя контрастность и среднее квадратичное отклонение контрастности. Всего 20 признаков.
_признак ориентации контурных элементов .: 32 точки в гистог-рамме ориентаций, средняя ориентация и среднее квадратичное отк-лонение ориентаций. Всего 34 признака.
_признак высоты на изображении .: представляет собой верти-кальную координату положения окна на изображении. Хотя положение различных предметов на изображении не фиксировано, есть некото-рые предпочтения. Например, небо чаще занимает верхнюю часть изображения, асфальтовое покрытие - нижнюю. Этот признак, конеч-но, не является текстурным. Он добавлен как элемент априорной информации, без которой не обходится распознавание сложных изоб-ражений. Вообще говоря, априорная информация в АП-структурах вводится при помощи дополнительных ассоциативных полей, имеющих иерархическую организацию, но в данном эксперименте использова-лась одноуровневая сеть и дополнительная информация о предпочти-тельном расположении текстур на изображении была введена в форме отдельного признака.
В эксперименте использовано 5 наименований текстур: небо,
деревья (их крона), дорога, транспортные средства, столбы или
стволы деревьев. Эксперимент проводился следующим образом. Сна-
чала оператор размечал изображения. Во время разметки в вычисли-
тельной машине (IBM PC XT) формировался файл, в котором для каж-
дого положения окна указывалось наименование текстуры, затем
распознающей системе предъявлялось такое размеченное изображе-
ние. У распознающей системы отключался режим обучения и при рас-
познавании подсчитывалось количество ошибок, допущенных систе-мой, причем ошибкой считалось любое расхождение результатов, по-лученных системой, с разметкой оператора, даже в тех случаях, когда в пределы окна попадали две или три различные текстуры. По окончании такой контрольной проверки включался режим обучения и распознающая система вновь просматривала это же изображение, обучаясь распознаванию его текстур. Затем режим обучения отклю-чался и системе предъявлялось следующее изображение для конт-рольной проверки. После проверки проводилось дообучение системы на этом изображении. Таким образом было предъявлено 10 изображе-ний.
+
╕
90 +
╕
+
╕ * *
70 + *
╕ *
+
╕ * *
50 + *
╕ *
+ *
╕
30 +
╕
+
╕ *
10 +
╕
+--+--+--+--+--+--+--+--+--+--+--+--->
1 2 3 4 5 6 7 8 9 10 номер изображения
На рис.7.5 приведена кривая обучения системы при значении сигнала подкрепления 1/64. По оси абсцисс отложены порядковые номера изображений, а по оси ординат - процент правильно распоз-нанных текстур. По рисунку видно, что последние три изображения распознавались с вероятностью приблизительно 70%. Для повышения вероятности распознавания необходимо дополнительно использовать цветовые признаки, а также увеличить количество изображений в обучающей выборке.
Описанные эксперименты
выполнялись с системой, в которой выделение и
кодирование текстурных признаков
осуществлялось на персональной ЭВМ (IBM PC XT), а
обучение нейронной сети и рас-познавание - на
макете нейрокомпьютера. Для того чтобы
проиллюс-трировать описание такой системы в
языке ЯНК АПС, приведем фраг-мент программы, в
котором описывается работа системы в режиме
распознавания с дообучением "правильным"
именам текстур. Проце-дуры "разобучения" и
восстановления нарушенного ядра ансамбля сюда
не включены.
{
m1: for(i=0;i<17;i++)
for(j=0;j<24;j++)
{
m2: ftrl(i,j,ftr);
m3: Clear (BF1);
for(k=0;k<75;k++)
m4: {Input(ftr[k],CU1);
m5: Sync(BF1,SC(CU1,BF1,0))}
m6: Norm(BF1,128);
Sync(AF1,SC(BF1,AF1,0));
Count(AF1);
m7: Output(CU2,nm,z1);
m8: z2=rl(nm,i,j);
m9: if(z1!=z2)
{Input(nm[z2],CU1);
Sync(BF1,SC(CU1,BF1,0));
Sync(AF1,SC(BF1,AF1,0));
Learn(AF1,0.016)}
}
rand(shft)
{...}
ftrc(x)
{...}
named()
{...}
ftrl(i,j,ftr)
{...}
rl(nm,i,j)
{...}
В этом фрагменте метки строк используются для ссылок в по-яснительном тексте и не играют никакой роли в самой программе. Процедуры, которые должны быть реализованы на вычислительной ма-шине, указаны только своими названиями, а вместо текста в теле каждой процедуры поставлено многоточие. Смысл этих процедур бу-дет объяснен словесно.
В приведенном выше фрагменте первые семь строк описывают архитектуру ассоциативно-проективной сети. Следующие две строки представляют собой обычное описание массивов и переменных в язы-ке "Си".
Первая строка в теле main() задает массив номеров текстур.
Каждый номер играет роль имени текстуры (0 - небо, 1 - крона де-ревьев и т.д.). В следующей строке обращение к процедуре rand используется для формирования массива случайных чисел shft, при-меняемых при нормировании выходного вектора буферного поля BF.
Рассмотрим значение меток в программе.
Меткой _m1 . помечена строка программы, в которой начинается
основной цикл просмотра изображения по горизонтали (переменная j) и по вертикали (переменная i);
меткой _m2 . помечено обращение к процедуре ftrl вычисления тек-стурных признаков. Результатом работы этой процедуры является мас-сив ftr, содержащий 75 значений текстурных признаков для окна с координатами x = b*j/2, y = h*i/2, где b - ширина окна, h - высота окна;
меткой _m3 . - оператор очистки буферного поля BF, который вы-полняется каждый раз при переходе к новому положению окна. Сле-дом за очисткой буферного поля начинается цикл (по переменной k) кодирования текстурных признаков. В этом цикле меткой m4 помечен оператор, осуществляющий дизъюнктивный ввод полученной маски в буферное поле.
Начиная с метки _m6 . осуществляется нормирование кода в бу-ферном поле, передача этого кода в ассоциативное поле AF1 и пе-ресчет его активности.
_m7 . - оператор декодирования, результатом которого является номер текстуры, распознанный сетевым устройством. Этот номер становится значением переменной z1.
_m8 . - обычная строка языка "Си". В ней содержится обращение к процедуре rl, анализирующей разметку изображения и возвращаю-щей "истинный" номер текстуры при заданном положении окна.
_m9 . - обычный условный оператор языка "Си", в котором прове-ряется, совпадает ли распознанный номер текстуры с "истинным". Если не совпадает, выполняются следующие действия: кодируется "истинный" номер текстуры и полученная маска дизъюнктивно вво-дится в буферное поле BF1, объединяясь с нормированным кодом текстурных признаков; полученный таким образом код передается в ассоциативное поле AF1; производится обучение с сигналом подк-репления, равным 1/64.
Следует отметить, что в данном варианте маска номера текс-туры не подвергается нормированию в буферном поле. Это сделано для того, чтобы при обучении формировалось четкое ядро ансамбля, соответствующее номеру текстуры.
Таким образом приведен фрагмент программы, описывающей ра-боту распознающей системы на языке ЯНК АПС. По этому фрагменту видно, что ЯНК АПС предполагается построить на базе языка "Си" за счет добавления небольшого количества новых операторов и опи-саний.
Следующим этапом обработки изображений является выделение областей, имеющих однородную текстуру. Этот этап обычно называ-ется сегментацией изображения. Для того чтобы выполнить сегмен-тацию, нужно, чтобы нейросетевое распознающее устройство было предварительно обучено классификации текстур.
Рассмотрим сначала случай, когда обучение производится с
учителем (как описано в предыдущем разделе) и у каждой текстуры
есть свое имя. В этом варианте первым этапом сегментации может
быть обычный последовательный просмотр участков изображения с
распознаванием текстурных имен и записью этих имен в двумерный
массив, соответствующий положениям окна на изображении. Если
текстуры распознаются уверенно, то сегментацию изображения можно
производить сразу после этого этапа, выделяя связные области
изображения, в пределах которых текстурное имя не изменяется. В противном случае текстурные сегменты будут иметь много посторон-них вкраплений, вызванных неправильным распознаванием. Такие вкрапления создают неудобства в работе с сегментами и нужно при-нимать меры для уменьшения их количества.
-----╛ ------╛ -----╛ -----╛ -----╛
╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ----╛
---╛ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕
╕T +->╕ FE +-->╕ CU1 ╕====>╕BF1 ╕===>╕ AF1╕=T==>╕ BF2╕==T===>╕DF1+----╛
L--- ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ г=O╕ ╕ ╕
╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ L---- ╕
L-T--- L-T--- L-T--- L-T--- ╕ L-T--- ╕ ╕ ╕
╕ ╕ ╕ ╕ ╕=====╕=====╕=- ----╛ ╕
╕ ╕ ╕ ╕ ╕ ╕ L====O╕ ╕ ╕
L---------+----------+T--------+----╕------ ╕DF2+-╛ ╕
╕ L================>╕ ╕ ╕ ╕
╕ L---- ╕ ╕
╕ ╕ ╕
---+----╛ ╕ ╕
╕ ╕<-------------------------------- ╕
╕ MC ╕<---------------------------------- ╕
╕ ╕
L--------
Одним из методов устранения посторонних вкраплений является повторное распознавание текстур с учетом их окружения. Для этого выполняется второй просмотр изображения, во время которого в бу-ферное поле BF кроме кода текстурных признаков вводятся коды имен окружающих текстур с небольшими весами (весом кода считает-ся доля его нейронов, выбранных для ввода в поле BF). Веса выби-раются таким образом, чтобы при уверенном распознавании текстуры они не повлияли на результат, но в тех случаях, когда начинают конкурировать различные ансамбли, результаты конкурентной борьбы меняются в пользу той текстуры, которая окружает постороннее вкрапление.
Этот метод основан на предположении, что однородные текс-турные области занимают довольно обширные участки изображения. Если изображение содержит большое количество мелких объектов, то метод может привести к ухудшению результатов сегментации, поэто-му пользоваться им нужно с осторожностью.
Более сложная процедура сегментации изображений получается в тех случаях, когда нет возможности обучать систему с учителем. Для построения такой процедуры воспользуемся структурой, предс-тавленной на рис.7.6, которая немного отличается от предыдущей. Отличие состоит в том, что вместо декодирующего блока CU2 здесь используется два разностных поля DF1 и DF2 и введено дополни-тельное буферное поле BF2. Схема соединения этих полей показана на рисунке.
Рассмотрим сначала, как можно построить обучение распозна-
ванию текстур без учителя. Пусть задан набор изображений, кото-
рые могут быть предъявлены нейрокомпьютеру для обучения.Обучение
производится путем последовательного сканирования изображений
окном, показанным на рис.7.1. Управляет перемещением окна вычис-
лительная машина МС. Для каждого положения окна устройство FE
выделяет текстурные признаки и передает их для кодирования в блок CU1.Полученный код поступает в буферное поле BF1, где про-изводится его нормирование (на рисунке нормирующие связи не по-казаны),Затем в ассоциативное поле AF1. На первом этапе обучения без учителя система не делает попытки распознать текстуру, а сразу же переходит к формированию ансамбля, соответствующего этой текстуре. Формирование производится с положительным подк-реплением, но значение его выбирается очень малым. При таком подкреплении последовательное предъявление различных текстур приводит к тому, что признаки, часто встречающиеся в однотипных текстурах, формируют ядра ансамблей, а признаки, не характерные для наиболее часто встречающихся текстур, формируют бахрому ан-самблей.
Описанная процедура обучения позволяет сформировать для на-иболее распространенных текстур нейронные ансамбли, не имеющие имен. Однако текстуры, появляющиеся на изображениях редко, будут уступать распространенным текстурам по степени сформированности ядра даже в тех случаях, когда они имеют достаточно устойчивые характерные для них наборы текстурных признаков. Для того чтобы в какой-то мере обойти этот недостаток, можно провести второй этап обучения после завершения первого. Отличие второго этапа заключается в том, что после подачи кода в ассоциативное поле AF1 делается попытка "распознать" текстуру, т.е. делается перес-чет активности ассоциативного поля. В результате ассоциативное поле как правило конвергирует к одному из хорошо сформированных ядер, и основу вектора выходной активности поля составляют ней-роны этого ядра. Полученный таким образом вектор передается в буферное поле BF2, а в ассоциативное поле из буферного поля BF1 вновь вводится исходный код текстуры. Разностные поля DF1 и DF2 определяют, насколько сильно отличается исходный вектор актив-ности от полученного при распознавании. Если они отличаются не-существенно, значит распознана хорошо знакомая текстура и обуче-ние на данный входной вектор выполнять не надо (или можно выпол-нить, еще более снизив сигнал подкрепления). Если же векторы от-личаются значительно, то велика вероятность, что текстура рас-познана ошибочно только потому, что этот тип текстур прежде вст-речался редко и для него нет хорошо сформированного ядра.
Получив существенное расхождение исходного и распознанного кодов, управляющая машина МС принимает решение дообучить систе-му, сформировав для поступившей "редкой" текстуры ансамбль с по-вышенным сигналом подкрепления. В каком-то смысле эта процедура соответствует хорошо известному стремлению запоминать все новое, необычное, не обращая внимания на хорошо знакомые вещи.
После такого обучения система может приступать к сегмента-
ции изображений на однородные текстурные области. Для этого вы-
числительная машина МС выбирает место, в котором нужно располо-
жить окно для выделения текстурных признаков. В самом начале
процедуры это может быть левый верхний угол изображения, а в
дальнейшем - какое-либо место, еще не отнесенное ни к одной из
однородных текстурных областей. Происходит уже описанная проце-
дура выделения текстурных признаков, их кодирования и нормирова-
ния кода. Нормированный код поступает в ассоциативное поле AF1,
в котором производится распознавание текстуры. Полученный вектор
активности нейронов, представляющий ядро какого-либо ансамбля,
передается в буферное поле BF2. Вычислительная машина отмечает
на специальной карте, хранящейся в ее памяти, участок изображе-
ния, соответствующий текущему положению окна, после чего переме-
щает окно на один шаг в соседнее положение. Шаг перемещения окна
и в этом случае целесообразно выбирать немного меньшим, чем раз-меры окна, чтобы сканирование изображений осуществлялось с пе-рекрытием окон.
В новом положении окна повторяется вся процедура распозна-вания, однако распознанный ансамбль не передается в буферное по-ле BF2, а сравнивается с ансамблем, который уже хранится в этом поле. Сравнение осуществляется в разностных полях DF1 и DF2. Ре-зультаты сравнения (количество активных нейронов, которые есть у первого ансамбля, но отсутствуют у второго, и количество тех, которые есть у второго, но отсутствуют у первого) поступают в вычислительную машину, и если машина по тем или иным правилам принимает решение, что ансамбли близки друг другу, то на карте текстур в памяти машины отмечается новое положение окна, как то место, в котором текстура совпала с предыдущей. Если же ансамбли непохожи друг на друга, то это место на карте текстур не отмеча-ется.
После названных операций вычислительная машина выбирает но-вое положение окна. Выбор осуществляется таким образом, чтобы окно было по соседству с уже выделенным участком, но на свобод-ном месте, т.е. на таком участке, который еще ни разу не был за-несен на карту текстур. Если такое место находится, повторяется процедура, описанная выше, если нет, то участок с однородной текстурой считается полностью выделенным, нанесенным на карту текстур, и вычислительная машина запоминает его условное имя, присвоенное программой. В нейрокомпьютер поступает команда за-помнить состояние буферного поля BF2 с тем, чтобы в дальнейшем соответствующий вектор активности нейронов можно было воспроиз-вести по условному имени текстуры, хранящемуся в вычислительной машине.
После выполнения указанных действий машина вновь пробует отыскать на изображении участок, еще не отнесенный ни к одной из текстурных областей. Если такой участок находится, повторяется процедура выделения области с однородной текстурой, если же его больше нет, сегментация изображения считается законченной.
После того, как на изображении выделены однородные текстур-
ные области, можно приступать к распознаванию их формы. Форма не
всегда определена, но у некоторых текстурных участков она может
быть достаточно однотипной. Это относится, например, к кроне де-
ревьев, к зданиям, однородным участкам на технических объектах,
к животным и т.д. Формы однородных текстурных участков, даже в
тех случаях, когда они сравнительно устойчивы, могут быть самого
причудливого вида, поэтому желательно их иметь такими,чтобы мож-
но было описывать самые разнообразные очертания фигур. Существу-
ют различные предложения по выделению такого рода признаков. Мы
будем пользоваться предложением Е.А.Девянина [19], смысл которо-
го заключается в следующем: любая плоская фигура рассматривается
как карта некоторого материка на фоне морей и океанов. На этой
карте выделяются все заливы и полуострова. Для того чтобы выде-
лить заливы, фон заполняется до тех пор, пока весь материк не
примет округлые очертания, а для выделения полуостровов карта
материка урезается до тех пор, пока не примет округлых очерта-
ний. Если теперь соотнести суммарные площади заливов и полуост-
ровов с площадью материка, то получатся признаки "изрезанности"
береговой линии, которые характеризуют форму материка. Эти приз-
наки не зависят ни от поворота, ни от смещения, ни от масштаба
фигуры, но они дают лишь грубую характеристику формы. Чтобы по-лучить более точные характеристики, можно последовательно расс-мотреть в качестве новых фигур карты выделенных полуостровов и заливов, применив к ним такую же процедуру выделения более мел-ких фрагментов. Так, всю Европу можно рассматривать как большой полуостров на материке Евразия. На этом полуострове можно выде-лить Балканский, Аппенинский, Пиренейский и др. полуострова, на которых в свою очередь выделяются еще более мелкие фрагменты. Такая рекурсивная процедура выделения дает большое количество уточняющих признаков, называемых вторичными признаками формы фи-гуры.
Для типового нейрокомпьютера была разработана процедура, позволяющая достаточно быстро выделять как первичные, так и вто-ричные признаки. Эта процедура была проверена путем имитации нейрокомпьютера на вычислительной машине [19].
На рис.9.7 приведена схема нейросетевой системы распознава-ния формы фигур. Система состоит из двух блоков выделения приз-наков FE1 и FE2, двух кодирующих блоков CU1 и CU2, декодирующего блока CU3, двух буферных полей BF1 и BF2 и двух ассоциативных полей AF1 и AF2. Так же, как и в предыдущих случаях, системой управляет вычислительная машина, но для упрощения рисунка она не показана. Не показаны также нормирующие тормозные связи в буфер-ных полях.
Блок FE1 служит для выделения первичных признаков. Изобра-жение фигуры вводится в него в виде двумерного бинарного масси-ва, в котором фону соответствуют нулевые элементы, а фигуре - единичные. На выходе этого блока получаются значения первичных признаков, передаваемые в CU1, а также бинарные массивы с изоб-ражениями фрагментов фигуры, передаваемые в FE2 для выделения вторичных признаков, которые передаются для кодирования в CU2. Закодированные вторичные признаки из CU2 передаются в буферное поле BF1, где они нормируются, затем в ассоциативное поле AF1. В режиме обучения в этом ассоциативном поле формируются ансамбли, соответствующие типовым вторичным признакам, при этом обучение происходит без учителя.
В режиме распознавания ассоциативное поле AF1 определяет тот нейронный ансамбль, которому больше всего соответствует вы-деленный набор вторичных признаков. Этот ансамбль передается в буферное поле BF2, куда поступают закодированные первичные приз-наки, объединяясь с распознанным ансамблем дизъюнктивно. При этом относительные доли нейронов ансамбля и первичных признаков могут регулироваться. Полученный в буферном поле код формы фигу-ры передается в AF2, причем в режиме обучения к этому коду до-бавляется имя фигуры (обучение с учителем). В режиме распознава-ния ассоциативное поле AF2 восстанавливает ансамбль, который бо-лее других соответствует форме предъявленной фигуры, а декодиру-ющее устройство CU3 определяет имя распознанной фигуры.
На имитаторе нейросетевого
устройства, разработанном Т.Н.Байдык, были
выполнены следующие эксперименты: система
обу-чалась распознавать два класса фигур,
например, автобусы и лег-ковые автомобили,
изображенные в профиль; затем человеку
предла-галось нарисовать в профиль автобус или
легковой автомобиль; ни-каких ограничений на
рисунок не накладывалось, он вводился в имитатор
нейросетевой системы, реализованный на
персональной ЭВМ, и производилось распознавание
рисунка. Эксперименты показа-ли, что примерно 90%
рисунков распознается правильно.
На изображении достаточно сложные объекты внешнего мира можно распознать по типу, форме и взаимному расположению выде-ленных текстурных участков. Распознавание типа текстур и формы текстурных участков было описано в предыдущих раделах, а здесь описываются основные отношения между этими участками, которые могут быть достаточно легко установлены и использованы при рас-познавании объектов, а также способы их кодирования.
В первую очередь рассмотрим пространственные отношения и относительные размеры выделенных на изображении участков. Напри-мер, если на изображении есть дерево, то как правило его ствол расположен ниже кроны и в непосредственной близости от нее. Кро-ме того, ствол значительно меньше кроны по площади, занимаемой на изображении. Вычисление площадей, занимающих различные участ-ки на изображении, легко можно выполнить на нейрокомпьютере или на управляющей вычислительной машине. Можно также вычислить цен-тры тяжести участков и для любых двух участков выделить их вза-имные положения. Пусть дано два текстурных участка А и В. Можно определить ряд отношений между ними: Р(А,В) - отношение "участок А расположен близко к участку В", L(A,B) - "участок А расположен слева от участка В", R(A,B) - "участок А расположен справа от участка В", Т(А,В) - "участок А расположен выше участка В", В(А,В) - "участок А расположен ниже участка В", М(А,В) - "учас-ток А больше участка В".
Каждое из перечисленных выше отношений может быть охаракте-ризовано числовым значением. Первые пять характеризуются относи-тельными расстояниями, которые можно измерять как отношение со-ответствующего расстояния между центрами тяжести к корню квад-ратному из площади участка А. Численную величину для М(А,В) мож-но определить просто как отношение площади участка А к площади участка В. Для того чтобы закодировать такого рода отношения, надо поставить в соответствие каждому из них свою маску и при кодировании брать конъюнкцию маски с числовой величиной, соот-ветствующей этому отношению.
Выбранные отношения, так же как и текстурные признаки, не являются взаимно независимыми. Возможно, что лучшие результаты будут получаться при выборе независимых отношений, но мы умыш-ленно не стремимся к этому, поскольку в данном случае необходимо на примере нижних уровней иерархии показать те механизмы, кото-рые будут работать и на верхних уровнях, где добиться взаимной независимости различных информационных элементов практически не-возможно. Конечно, приведенный список далеко не исчерпывает всех отношений между текстурными участками, используемыми для распоз-навания объектов.
Итак, рассмотрен вопрос кодирования отношений между двумя заранее выбранными текстурными участками, однако для описания объекта необходимо указать, какие именно участки связаны этими отношениями. Объект могут составлять несколько однородных текс-турных областей, поэтому нам надо получить такие коды, в которых содержится информация не только о виде отношений и их числовых значениях, но и о том, какие именно участки связаны тем или иным отношением, и если отношение направленное (например, "выше" или "ниже"), то какой участок стоит в левой части отношения, а какой - в правой.
Простейшая АП-структура, предназначенная для кодирования
отношений и распознавания объектов, представлена на рис.7.8. В
ее состав входят: блок распознавания текстур TR, блок распозна-
вания формы однородных текстурных участков FR, буферные поля BF1, BF2 и BF3, ассоциативное поле AF1, блок выделения отношений RE, блок ввода имен объектов NI, кодирующие блоки CU1 и CU2 и декодирующее устройство CU3.
г===============================╛
╕ S -----╛ ------╛ ╕ ------╛ ------╛
╕=====O╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕
╕ ... ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕
г====╛ L=====O╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕
╕ FR ╕========>╕ BF1╕========>╕ BF2 ╕===╕===>╕ BF3 ╕====>╕ AF1 ╕==╛
L=T==- ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕
╕ г=====>╕ ╕ ╕ ╕ г===>╕ ╕ ╕ ╕ ╕
Im г=+==╛ ╕ г=>╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕ ╕
------>╕ TR ╕==- ╕ L----- L------ ╕ L------ L------ ╕
L==T=- ╕ ╕ г===============-
╕ L=========╛ ╕ ╕
╕ ╕ L=====╛ ╕
---+-╛ ------╛ ╕ -----╛ ------╛ ╕ ╕ ------╛ N
╕ RE +------╕ CU1 ╕===- ╕ NI +---╕ CU2 ╕=- L=====>╕ CU3 +----->
L----- L------ L----- L------ L------
Рис.7.8. АП-структура для распознавания объектов на изображении
Блоки распознавания текстур TR и формы участков FR, обве-денные на рисунке двойной линией, в свою очередь состоят из нес-кольких нейронных полей. Их структура описана в предыдущих раз-делах. Блок RE предназначен для выделения пространственных отно-шений между участками с однородной текстурой и может быть реали-зован как в нейрокомпьютере, так и в управляющей ЭВМ. Полученные пространственные отношения кодируются блоком CU1. Буферные поля BF1, BF2 и BF3 предназначены для сборки и нормирования кода, описывающего объект и его имя. Блоки NI и CU2 служат для ввода и кодирования имени объекта. Ввод имени может осуществляться раз-личными путями, в частности с клавиатуры управляющей ЭВМ. Ассо-циативное поле AF1 предназначено для формирования ансамблей, описывающих объекты на изображении, и для распознавания их после окончания режима обучения. Блок CU3 предназначен для декодирова-ния распознанных имен объектов.
Описанная структура работает следующим образом. Предъявлен-ное изображение передается в блок распознавания текстур, в кото-ром происходит выделение однородных текстурных участков. Нейрон-ный ансамбль, соответствующий текстуре выделенного участка пере-дается в буферное поле BF1, а "карта" выделенного участка (его бинарное изображение на поле зрения) - в блоки распознавания формы FR и выделения пространственных отношений RE. В FR опреде-ляется тот нейронный ансамбль, который по форме наиболее близок к выделенному участку. Этот ансамбль передается в буферное поле BF1, где дизъюнктивно объединяется с ансамблем-текстурой. После этого полученный код нормируется (нормирующие связи буферных по-лей на рисунке не показаны) и передается в буферное поле BF2, а в блоке распознавания текстур начинается выделение нового участ-ка с однородной текстурой, который находится в непосредственной близости с предыдущим.
Как только новый участок выделен, его карта передается в
блоки FR и RE. В RE осуществляется последовательное выделение
пространственных отношений, которые кодируются в CU1 и передают-
ся в BF1. В этом поле осуществляется сборка кода пространствен-
ных отношений и его нормирование. Затем включаются смещенные
тормозящие связи S от BF2 к BF1 и часть кода пространственных
отношений гасится, после чего оставшаяся часть передается в BF2, где она дизъюнктивно объединяется с кодом первого текстурного участка.
Далее в блоке FR происходит распознавание формы второго участка, и коды текстуры и формы его поступают и в поле BF1. Аналогично с предыдущим случаем, в этом поле происходит нормиро-вание собранного кода и его частичное гашение смещенными тормо-зящими связями S. Полученный результат дизъюнктивно вводится в BF2. Собранный в этом поле код нормируется и передается в BF3, а система переходит к анализу следующей пары участков, принадлежа-щих объекту (считается, что в режиме обучения управляющей машине известно то поле на изображении, которое занимает объект).
Когда просмотрены все текстурные участки объекта, в буфер-ном поле BF3 оказывается собранным код изображения этого объек-та, который состоит из троек типа Участок 1 - Отношение - Учас-ток 2. В описанной процедуре набор этих троек существенно зави-сит от той последовательности, в которой просматривались текс-турные участки. Можно ввести некотрые правила, уменьшающие меру этой зависимости (например, для каждого участка рассматривать все соседние участки).
Собранный в BF3 код нормируется и к нему добавляется код имени объекта, введенный через блоки NI и CU2. Затем код переда-ется в AF1, где формируется ансамбль, соответствующий объекту.
При распознавании объекта процедура строится аналогичным образом, только в BF3 не вводится код имени объекта. Этот код восстанавливается в процессе распознавания и декодируется блоком CU3. Здесь по сравнению с распознаванием текстур появляются не-которые особенности. При распознавании объекта в общем случае неизвестно, какую площадь в поле зрения занимает его изображе-ние, поэтому первоначально при формировании кода в буферном поле BF3 могут оказаться признаки посторонних объектов и в то же вре-мя не все признаки интересующего нас объекта попадут в это поле. Как уже говорилось выше, в таком случае при распознавании может быть три исхода: распознается правильный объект; распознается неправильный объект; распознавание не происходит (не выбирается ни один ансамбль в ассоциативном поле).
Рассмотрим сначала последний случай. Он регистрируется, когда порог срабатывания нейронов на заключительных тактах пе-ресчета активности оказывается более низким, чем обычно при воз-буждении ансамбля. Поскольку нейронная сеть не может предложить никаких вариантов гипотезы об объекте, нужно либо переместить анализируемую область в другое место изображения, либо расширить ее в надежде, что найдутся дополнительные признаки.
Если же в ассоциативном поле оказался возбужденным ка-
кой-либо ансамбль, он рассматривается как гипотеза о том, что в
поле зрения оказался соответствующий объект. Эта гипотеза должна
быть подвергнута проверке. С этой целью возбужденный ансамбль
необходимо расшифровать, определив, из каких составляющих он
сформирован. Процесс расшифровки ансамбля верхнего уровня через
составляющие ансамбли нижних уровней был описан в гл.2. Этот
процесс нужно последовательно провести вплоть до ансамблей-текс-
тур и ансамблей отношений между однородными текстурными участка-
ми, после чего можно провести более точное выделение текстурных
участков, принадлежащих только анализируемому объекту, и уточ-
нить область изображения, занятую данным объектом. Может ока-
заться, что в составе ансамбля оказались текстуры, которые не
попали в поле зрения при первом анализе. Расшифровка позволяет
начать "прицельный" поиск недостающих текстур как по составляю-
щим текстурным признакам, так и по предположетельному месту их расположения относительно других уже найденных текстурных участ-ков.
Такой дополнительный анализ должен быть завершен повторным распознаванием объекта, после чего итерации могут быть продолже-ны до тех пор, пока уточненный анализ на нижнем уровне не перес-танет приносить новых результатов. Здесь также возможны различ-ные исходы: либо состав найденных текстурных участков соответст-вует тому набору, который содержится в распознанном ансамбле, либо каких-то текстурных участков не хватает. Во втором случае могут быть различные причины несоответствия. Одна из них заклю-чается в том, что рассматривается конкретный объект, возможно неимеющий всех признаков того типового образа, который сформиро-вался в виде нейронного ансамбля. Вторая прничина может заклю-чаться в том, что объект частично заслонен другим объектом. Эта причина может быть обнаружена, если провести распознавание ново-го объекта на тех местах, где по результатам расшифровки должны располагаться недостающие текстурные участки. Если на этих мес-тах обнаруживается хорошо распознаваемый другой объект, то весь-ма вероятно, что он заслоняет недостающие текстурные участки. Предположение о том, что объект частично заслонен можно выска-зать и в том случае, если нового объекта мы не обнаружили, но недостающие текстурные участки входят в ядро распознанного в процессе итераций ансамбля и следовательно свойственны подавляю-щему большинству конкретных объектов, описываемых данным ансамб-лем.
Таким образом, для распознавания объектов уже необходимо использовать итерационную процедуру, включающую как переходы с нижних иерархических уровней на верхние, так и обратные переходы с верхних уровней на нижние. Такая процедура позволяет не только убедиться в правильности распознавания, но и уточнить положение объекта и отдельных его частей, отделить объект от фона и опре-делить, не заслоняет ли его другой объект.
В некоторых отношениях процедура анализа сцен может быть аналогичной процедуре распознавания объектов, только вместо бло-ков распознавания текстур и формы на входе системы будет уже це-ликом блок распознавания объектов. Точно так же, как и в преды-дущем случае, на входе должен быть и блок выделения пространст-венных отношений между объектами. Однако кроме него должна при-сутствовать развитая структура выделения других типов отношений. Рассмотрим лишь отдельные их примеры.
Пусть на изображении распознаны дом и человек, находящийся рядом с домом справа. Этот человек мог выйти из дома, может на-мереваться войти в него, а может просто идти мимо. Эти три отно-шения с некоторой долей вероятности могут быть определены нейро-сетевым устройством по целому ряду признаков, часть из которых можно извлечь при анализе самого изображения, а другую часть не-обходимо получать из системы знаний.
Так, при распознавании дома могло обнаружиться, что дверь
дома расположена справа, а при распознавании человека - что лицо
его повернуто влево. В системе знаний могут храниться сведения о
правилах определения видимых и невидимых предметов для человека,
распознанного на изображении. В данном примере они приведут ней-
росетевое устройство к выводу, что человек смотрит на дверь, а
это означает, что сравнительно велика вероятность того, что че-
ловек собирается войти в дом, т.е. справедливо второе из назван-ных отношений.
Приведем еще один пример. На изображении распознан футболь-ный мяч на фоне неба. Поскольку небо окружает мяч со всех сторон и не может служить мячу опорой, используя базу знаний система может сделать вывод, что мяч летит в воздухе после удара. Гораз-до труднее сделать такой же вывод, если мяч виден на фоне других предметов, например, на фоне стены дома. Для этого система долж-на определить, может ли эта стена быть мячу опорой. В базе зна-ний может храниться правило, что вертикальное расположение по-верхности не позволяет получить опору. Стены дома как правило вертикальные, но стена может иметь и выступ, который можно было бы распознать по появлению характерных текстурных признаков. Кроме того, анализируя характерные размеры текстурных элементов стены и мяча и сравнивая их, система может прийти к выводу о том, что мяч находится гораздо ближе стены (дажпе если зрение системы не бинокулярное).
Приведенные примеры показывают, что полноценный анализ сцен может быть осуществлен только при одновременном использовании информации, извлекаемой из изображения, с информацией, хранящей-ся в базе знаний. Использование базы знаний возможно только в том случае, если в системе организованы процедуры логического вывода. Такие процедуры можно реализовать в рамках АПструктур, что позволяет строить всю систему технического зрения на единой структурной основе.
|
|