Идентификация личности. Как это делается
АрхивКак известно, самым дорогим товаром является информация. Мы стараемся оградить данные от посторонних глаз, изобретая при этом невероятные способы защиты. Мы шифруем файлы, используя алгоритмы, для "взлома" которых требуются недели работы суперкомпьютеров, мы ограничиваем доступ к нашим машинам и помещениям, где хранятся секретные материалы, прибегая к помощи новейших технических средств и обычной службы охраны.
Как известно, самым дорогим товаром является информация. Мы стараемся оградить данные от посторонних глаз, изобретая при этом невероятные способы защиты. Мы шифруем файлы, используя алгоритмы, для "взлома" которых требуются недели работы суперкомпьютеров, мы ограничиваем доступ к нашим машинам и помещениям, где хранятся секретные материалы, прибегая к помощи новейших технических средств и обычной службы охраны.
Александр Тельных и Александр Коган написали эту статью по материалам разработок и обсуждений в группе автоволновых процессов (АВП - AWP team: Владимир Яхно, Александр Коган, Сергей Кузнецов, Александр Тельных, Павел Хурлапов, Ирина Нуйдель, Николай Беллюстин, Ирина Красильникова, Андрей Перминов, Андрей Панфилов) из института прикладной физики РАН и ряда других исследовательских фирм Нижнего Новгорода.
Ежедневно по несколько раз мы вводим всевозможные пароли: чтобы попасть на работу (вспомните о кодовом замке на вашей двери), чтобы загрузить операционную систему, чтобы открыть файл базы данных или чтобы попасть на "закрытую" страничку в Сети. Зададимся вопросом: "Что общего у всех перечисленных действий?" Общее в том, что мы передаем системе некий код, по которому она может отличить нас от непрошеного гостя. А что может служить универсальным кодом, отличающим вас от остальных пользователей? Ответ достаточно очевиден: ваши индивидуальные биологические, или, как говорят, биометрические, характеристики. Пусть система узнает вас по вашей улыбке, походке или отпечатку пальца, а не по набору символов, который может ввести кто-то другой, и даже не по пластиковой карточке, которую у вас могут украсть.
Наверное, нет смысла доказывать, что системы биометрической идентификации человека надежнее, чем любые устройства ограничения доступа, представленные сейчас на рынке. Все вышесказанное приводит нас к выводу, что в ближайшем будущем мы станем свидетелями нового бума в области информационных технологий, бума систем с использованием биометрических параметров пользователя как ключа для доступа к данным и вычислительным ресурсам. Эти слова подтверждаются исследованиями специализированных фирм (например, Frost & Sullivan), анализирующих перспективы развития рынка. В частности, существует прогноз, что рынок оборудования и программ для биометрической идентификации в 2003 году достигнет объема 170 млн. долларов (в 1996 году - 103 млн. долларов). В разработках участвуют и небольшие активные фирмы, и гиганты компьютерного бизнеса (например: Cambridge Neurodynamics, Ltd; Communication Intelligence Corporation; British Technologies Group (BTG), Ltd; Biometric Security Systems, Ltd; IriScan, Inc.; Personix, Ltd; Sensar, Inc.; Technology Recognition Systems, Inc.; IBM Corporation; Lockheed Martin IMS; NEC; North American Morpho Systems; Security by Design; Siemens Nixdorf и многие другие). Рынок биометрических систем находится в стадии активного формирования, и небольшие фирмы могут внести значительный вклад в развитие новых технологий доступа.
Эта статья не является готовым рецептом построения подобных систем, скорее, это пища для размышлений и приглашение в мир систем распознавания образов. Она может как подтолкнуть людей, готовых работать в этом направлении, так и удовлетворить любопытство тех, кто хочет понять, как машина может отличить одного человека от другого.
Что измерять?
Очевидно, что первичным источником данных является сам человек, точнее, его уникальные биологические свойства. Они служат основой для построения систем биометрической идентификации, которые можно определить примерно так: системой биометрической идентификации человека является любое устройство, способное отличить одного человека от другого, используя его уникальные биологические свойства (либо комбинацию этих свойств). В качестве измеряемых свойств могут выступать уникальные особенности человека: отпечаток пальца, рисунок радужной оболочки глаза, черты лица или почерк. Менее известные, но тоже уникальные параметры - форма кисти руки, манера говорить, походка и так далее.
Следует различать системы идентификации и верификации человека. В процессе верификации пользователь подтверждает ввод пароля собственными биометрическими данными, при этом устройство проверяет, действительно ли пароль введен тем человеком, которому он принадлежит. При идентификации система сама "узнает" пользователя, используя уникальность его биометрических параметров.
Что использовать в качестве источника исходных данных, конечно, определяет автор системы. Но ему в любом случае предстоит решить задачу перевода интересующих данных на язык, понятный устройству распознавания. Назовем такого "переводчика" устройством ввода. Так, если вы желаете использовать голос как источник биометрических данных, то вам в качестве устройства ввода достаточно обычной звуковой карты; а если вам интересны способы идентификации человека по походке или лицу, то необходима уже система захвата видео; если же вас интересует отпечаток пальца, кисть руки или радужная оболочка глаза - придется создавать устройство ввода, в котором видеокамера или сканер будут одним из составных элементов. Но можно представить систему идентификации по темпу нажатия кнопок на клавиатуре во время печати, тогда устройством ввода биометрической информации будет служить обычная клавиатура. Как видим, устройства ввода очень разнообразны, и среди них можно найти весьма экзотические. Тем не менее, все они служат одной цели: формировать поток данных, понятный устройству распознавания, в котором содержится интересующая нас биометрическая информация. В зависимости от природы исходных данных входной поток можно представить разными способами. Например, для системы распознавания человека по походке - это видеофрагмент, по голосу - звуковой фрагмент, по отпечатку пальца - статическое изображение, по темпу нажатия клавиш - временной ряд. В дальнейшем будем называть поток данных, поставляемый устройством ввода в систему распознавания, исходным сигналом. Оперируя терминами "устройство ввода" и "исходный сигнал", можно абстрагироваться от распознавания конкретных объектов и сосредоточиться на принципах работы любой системы идентификации личности.
Предобработка данных
В подавляющем большинстве случаев исходный сигнал, формируемый устройством ввода для системы распознавания, несет в себе огромное количество "лишней" информации, которая скрывает биометрические характеристики человека. Для того чтобы избавиться от ненужной информации в сигнале и сделать важные для нас параметры более "выпуклыми", существует стадия предобработки данных. Какая информация в исходном потоке является полезной, а какая "вредной", зависит от того, что, собственно, мы хотим измерять. Если измеряются только геометрические характеристики объекта на изображении, то, очевидно, информация о цвете и яркости не нужна. В другом случае данные о яркости конкретного объекта на изображении могут быть весьма полезными, но этот объект скрывается фоном сравнимой с ним яркости - в этом случае нам необходимо выделить его из окружающего фона. Для систем, принимающих решения на основе анализа видеофрагментов, весьма полезной предобработкой будет выделение областей, в которых наблюдается движение.
Какими же методами осуществляется первичная обработка данных? Прямого ответа на этот вопрос не существует. Все зависит от природы исходного потока и параметров, которые мы хотим выделять. Как правило, во время первичной обработки сигнал пропускается через набор фильтров самой разной природы - от простейших линейных фильтров, подавляющих шумы, до сложных нейроноподобных систем, выделяющих объекты заданного размера, линии определенного направления или ищущих границы между текстурами.
Рис. 1.
a - тестовое изображение отпечатка пальца; b - результат обработки однородной системой с постоянной для всех точек среды функцией связи, выбранный масштаб функции связи не соответствует реальным масштабам исходного изображения (разрывы линий на бинарном изображении); c - распределение масштабов исходного изображения; d - результат бинаризации исходного изображения системой с перестраиваемой функцией связи.
(Рисунок взят из статьи [4].)
Применительно к системам идентификации личности, основанным на анализе геометрических характеристик объекта, содержащихся в изображении (отпечаток пальца, радужная оболочка глаза, лицо, изображение кисти руки и так далее), очень часто на стадии предобработки выполняется так называемая бинаризация исходного полутонового изображения, которая трансформирует исходное полутоновое изображение в бинарное, оставляя при этом интересующие нас объекты и удаляя шум и ненужную информацию о цвете и яркости. На рис. 1. приведен пример обработки изображения отпечатка пальца с помощью нейроноподобного фильтра (см. также врезку).
|
Для систем, работающих в реальном масштабе времени (real-time systems), другой важнейшей задачей стадии предобработки является поиск в исходном сигнале полезной информации. Представим себе систему идентификации пользователя по лицу. Пусть она состоит из видеокамеры, платы захвата видеосигнала и соответствующего программного обеспечения. В этой системе блок предварительной обработки "просматривает" каждый кадр, поступающий с видеокамеры. Целью этого "просмотра", очевидно, будет поиск на изображении объектов, напоминающих человеческое лицо. Как только такой объект будет обнаружен, немедленно запускаются блоки идентификации. Другими словами, блок предварительной обработки данных может "включать" систему идентификации личности. Резюмируя вышесказанное, можно выделить две основные задачи блока предобработки исходного сигнала:
Признаки
Итак, имея преобразованный исходный сигнал, в котором уже отсутствуют шумовые данные и, вероятно, есть заслуживающие внимание фрагменты, система идентификации приступает к стадии классификации, чаще всего основанной на выделении признаков.
Для начала дадим определение признака.
Назовем признаком некий параметр исходного сигнала, отражающий свойство объекта, важное для распознавания [1, 2].
Несомненно, важность, или вес, признака применительно к системам идентификации личности определяется его способностью с большей или меньшей степенью уникальности характеризовать его носителя, то есть человека. Во многих случаях на начальных стадиях разработки подобных систем очень трудно определить, какие из вычисляемых признаков являются существенными для распознавания, а какие - нет. Поэтому часто вес того или иного признака определяется волей создателя идентифицирующего устройства. В дальнейшем, с получением значительного объема биометрических данных, вес признака можно измерить и использовать при принятии решения.
Как правило, одного признака для описания недостаточно, поэтому система выделения признаков извлекает из исходного сигнала сразу набор, или, как говорят, вектор признаков. Выбранный вектор признаков формирует пространство признаков, размерность которого определяется их числом. Причем в таком пространстве определенное измерение соответствует определенному признаку. Например, если мы в качестве признаков возьмем яркость объекта и его площадь, то получим двумерное пространство, в котором одним измерением будет яркость, а другим - площадь. Измеряя яркость и площадь объектов, содержащиеся в исходном сигнале, мы получаем точки на плоскости яркость-площадь. Пусть вектор признаков содержит N значений, тогда наше пространство признаков будет N-мерным, и, выполняя измерение вектора признаков, мы будем получать точки в N-мерном пространстве. Пример проекции N-мерного пространства на плоскость показан на рис. 2, где по осям отложены значения признаков P1 и P2. Синие точки - результат измерения признаков P1, P2 у одного пользователя системы распознавания, а красные - результат измерения тех же признаков другого пользователя. В теории систем распознавания говорят, что это наборы реализаций различных классов. Назовем классом некий уникальный объект окружающего мира, "известный" системе распознавания. Под "известностью" будем понимать, что всякая реализация (измеренный вектор признаков) имеет специфическую метку, относящую ее к тому или иному классу. Совершенно очевидно, что для систем идентификации личности классами являются ее пользователи. В этом случае меткой класса будет служить идентификационный номер пользователя или его ID.
Рис. 2.
Пример проекции многомерного пространства признаков на плоскость Р1, Р2.
Каким образом сформировать пространство признаков, каким должно быть число измерений? Ответ на эти вопросы предполагает решение классического противоречия между скоростью и качеством. Действительно, первоначально мы формируем вектор признаков таким образом, чтобы он наиболее полно описывал уникальные свойства человека, при этом, несомненно, повышается точность работы нашего устройства. Однако увеличение числа признаков повышает вычислительную сложность и общие затраты на измерение характеристик объекта. Отсюда вытекает важность проблемы оптимизации пространства признаков. Иными словами, разработчик системы распознавания должен найти компромисс между сложностью и временем выполнения процедуры извлечения признаков, а также достоверностью работы распознающего устройства. Наиболее распространенными способами формирования оптимизированного набора признаков являются [2] селекция и применение ортогонального линейного преобразования исходного пространства X в новое пространство признаков Y. Селекция представляет собой просто выбор наиболее информативных признаков из общего набора. Об их "информативности" можно судить, используя различные параметры. Например, рабочие признаки можно отбирать по критерию высокой стабильности (критерий минимизации внутриклассового разброса). Другим критерием может быть разделяющее свойство признака. То есть абсолютные значения признака для разных классов должны сильно отличаться (критерий максимизации межклассового расстояния). Применение ортогонального преобразования позволяет избавиться от признаков, имеющих взаимное влияние друг на друга. Такое преобразование еще иногда называют декоррелирующим. Интересующимся проблемой обработки данных можно посоветовать отличную книгу: Браверман Э. М., Мучник И. Б. Структурные методы обработки эмпирических данных. М.: "Наука", ГРФМЛ, 1983.
Сам процесс измерения признаков, конечно же, зависит от вида исходного сигнала и способов предобработки. Тут не может быть общих рецептов. Скажем, в системах, работающих с видеообразами, признаками могут служить геометрические характеристики объекта, его яркость и гистограмма ее распределения, данные о пространственном расположении отдельных точек, их атрибуты и тому подобные величины, которые укладываются в вектор заданного размера. Типичный пример - отпечаток пальца. Тут признаками могут являться точки-концы папиллярных линий, сами линии. Здесь на помощь приходит процедура сравнения двух отпечатков. На входе система имеет два отпечатка, а на выходе набор параметров или параметр "похожести" двух образов. В качестве выходных параметров могут быть, например, количество совпавших точек или линий, качество совпадения и т. д. Из этой информации уже можно формировать вектор признаков похожести одного изображения на другое. Пути преобразования изображения и сравнения векторов признаков показаны на рис. 3.
Рис. 3.
Основные этапы кодирования фрагмента дактоотпечатка и принятия решения при его верификации:а) исходное изображение; б) формирование разного вида бинарных изображений (например, с помощью нейроноподобных алгоритмов, с использованием клеточной логики и т. п.); в) формирование "скелета" папиллярных линий; г) выделение локальных особенностей на изображении; д) сравнение с архивным описанием и принятие решения о точности распознавания; е) нахождение границ между "своими" и "чужими" значениями признаков (в соответствующем пространстве), получаемых в процедуре обучения при сравнении данного архивного описания со всеми имеющимися в выборке прецедентов фрагментами изображений.
(Рисунок взят из статьи [3].)
Понятно, что процесс извлечения признаков весьма многообразен и зависит от типа решаемой задачи, но его цель остается неизменной во всех распознающих устройствах. А именно: формирование некоего набора параметров по таким известным системе правилам, которые позволяют "полно и всесторонне отразить все наиболее существенные детали распознаваемого объекта" [2].
Процесс "обучения"
Сформировав словарь признаков, можно приступать к "обучению" системы распознавания. В литературе процесс обучения определяется различными способами. Например так: "восполнение недостатка априорных знаний о распознаваемых классах путем использования информации о них, содержащейся в обучающих наблюдениях, и построение эталонных описаний классов" [2]. Анализируя это определение, процесс обучения можно разбить на три этапа:
Рассмотрим эти шаги подробно применительно к системам идентификации личности.
Формирование словаря классов. Как уже было отмечено в разделе, посвященном выделению признаков, для систем идентификации личности классами являются ее пользователи. При этом система формирует (обновляет) свой словарь классов в то время, когда пользователь проходит регистрацию, и создает его уникальный идентификационный номер (ID) или метку класса. В зависимости от типа конкретного устройства система может предоставлять или не предоставлять пользователю его ID. Например, устройства верификации предоставляют своим пользователям либо пароль, основанный на ID, либо непосредственно метку класса машины распознавания. Системы идентификации такой информации, как правило, не предоставляют все метки классов - это дело самой машины распознавания и ее администратора.
Выполнение обучающих наблюдений. Обновив словарь классов, система уже "знает" о существовании нового пользователя (класса), но "не знает" его параметров. Восполнить этот пробел помогает следующий этап процесса "обучения" - выполнение "обучающих наблюдений". С точки зрения пользователя, это выглядит примерно так. Система несколько раз (от одного до N) измеряет интересующие ее параметры. Например, в случае распознавания человека по кисти руки пользователь несколько раз предъявляет руку для "обучения" системы. При этом внутри распознающего устройства формируется (обновляется) так называемая матрица данных, или обучающая выборка. Строками этой матрицы являются векторы признаков, а первым столбцом - метка класса. Совокупность матриц для всех классов, известных системе распознавания, составляет ее общую базу данных. Именно из нее извлекается информация для оптимизации пространства признаков; именно с этого момента - когда сформирована матрица данных для пользователя, система способна "узнать" его; именно матрица данных служит основой для выполнения третьего этапа обучения - построения эталонного описания каждого класса.
Эталонное описание классов. Основной целью третьего этапа обучения является создание архива. Каждая запись в архиве содержит эталонное описание одного класса, которое можно определить следующим образом: эталонным описанием классов S1...Sp назовем описание характеристик признаков X1...Xn для каждого класса [2]. Для получения эталонных описаний можно использовать различные методы: статистические, структурные, перцептронные, логические и т. д. Все они достаточно подробно описаны в литературе. Простейшим примером эталонного описания класса может служить вектор признаков, где каждый элемент есть среднее значение этого признака из обучающей выборки. В этом случае под описанием характеристик признаков понимается среднее значение признака. Можно представить себе эталонное описание класса, где каждый признак будет характеризоваться набором атрибутов (среднее, дисперсия, минимальное, максимальное значения и т. д.). Тогда процесс построения эталонных описаний классов сводится к вычислению этих характеристик у каждого признака для каждого класса. В этом случае записи в архиве будут содержать метку класса плюс вектор признаков с атрибутами. Все приведенные примеры схожи тем, что эталонное описание класса есть запись постоянной длины:
L = число признаков _ число атрибутов признака.
В некоторых случаях эта формула неприменима. Рассмотрим, например, систему идентификации личности по фрагменту дактоотпечатка, где в качестве признаков используются точки - концы папиллярных линий с атрибутами. Очевидно, что число точек различно для разных предъявлений. В этом случае в качестве эталонного описания класса можно использовать композицию нескольких фрагментов дактоотпечатка, представляющую собой отпечаток пальца в целом.
Весьма полезно строить пространство признаков и эталонное описание класса так, чтобы имелась возможность реконструировать образ. Эта возможность, конечно же, никак не влияет на сам процесс распознавания, но просто необходима во время ее разработки и отладки, поскольку дает возможность визуального контроля качества обработки исходного сигнала и выделения признаков. Примеры реконструкции исходных сигналов приведены на рис. 4.
Рис. 4.
Преобразование исходного изображения в: (а) бинарный препарат; b) набор "скелетов" линий. Обратное восстановление изображений из кодовой таблицы представлено в виде: (c) "скелетов", показанных на исходном полутоновом изображении; (d) восстановленного бинарного препарата. (Рисунок взят из статьи [3].)
Классификация, или процедура принятия решения
Процедура принятия решения занимает центральное место в процессе распознавания, и ее смысл заключается в отнесении неизвестного (или, как еще говорят, неклассифицированного) вектора признаков к тому или иному классу, "известному" системе идентификации личности или принятию решения. "Отнесение" к тому или иному классу означает, что процедура принятия решения должна указать метку класса или его ID для неизвестного вектора признаков. В теории распознавания образов этот процесс называется классификацией. В случае успешной классификации система идентификации "узнает" пользователя и производит предопределенное разработчиками действие: разрешает доступ к вычислительным ресурсам или данным, открывает дверь в охраняемое помещение, заводит двигатель в автомобиле и т. д., и т. п. Каким же образом такая система может узнать пользователя? Как построить процедуру принятия решения, или, как еще говорят, классификатор?
Практически все алгоритмы распознавания основываются на сравнении той или иной меры близости [1] или сходства распознаваемого объекта с каждым классом. При этом, если выбранная мера близости данного объекта (представленного в виде вектора признаков) и некоторого класса (представленного в виде эталонного описания) превышает меру близости этого объекта со всеми остальными классами и превышает некоторое заранее заданное число Р, то принимается решение о принадлежности неизвестного объекта к данному классу. Если мера близости не превышает число Р ни для какого класса, то принимается решение о том, что в базе данных системы распознавания не существует класса, к которому принадлежит распознаваемый объект. Очевидно, варьируя число Р, мы можем регулировать "строгость" системы идентификации. В теории систем распознавания это число иногда называют порогом принятия решения.
В классификаторах наиболее распространены следующие меры близости [1].
При использовании вероятностных методов распознавания используется несколько критериев, связанных с риском принятия того или иного решения:
Существует еще множество методов классификации данных, поле для творчества в этой области безгранично, но в любом случае классификатор основывается на функции, которая возвращает число, отражающее меру близости между неизвестным вектором признаков и эталонным описанием класса. Вычисляя меры близости для всех известных классов и беря экстремум, мы получим систему идентификации, а вычисляя меру близости между неизвестным вектором признаков и эталонным описанием класса, который определен введенным паролем, и сравнивая ее с порогом принятия решения, мы получим систему верификации.
Оценка точности работы устройства
"А вы уверены, что машина меня узнает и не пропустит вместо меня кого-нибудь другого?" - первый вопрос любого человека, собирающегося использовать систему распознавания. Не зная точность работы биометрических систем, их нельзя применять не только в критичных производствах, где необходимо знать и уметь предотвращать даже маловероятные ошибки, но и в повседневной жизни. Решитесь ли вы установить на дверь своей квартиры замок, узнающий вас, скажем, по фигуре, если не знаете хотя бы приблизительно точность его работы? Ведь при недостаточной точности распознавания человек, похожий на вас, может ввести систему в заблуждение и проникнуть в квартиру. А может быть и другой случай: вы подходите к двери, а система вас не узнает. Придется идти ночевать к соседям...
Эти два случая и определяют возможные ошибки распознающего устройства - ошибки "пропуска чужого" (False Acceptance Rate, FAR) и "непропуска своего" (False Rejection Rate, FRR). Иначе их называют ошибками первого и второго рода. Относительную ошибку "пропуска чужого" в какой-либо класс определяют как процентное соотношение количества реализаций, неверно отнесенных к данному классу, к общему числу реализаций, предъявленных в эксперименте, за исключением реализаций рассматриваемого класса. Ошибку "непропуска своего" - как процентное соотношение количества реализаций, соответствующих данному классу, но неверно отнесенных к другим классам, к общему числу реализаций, соответствующих рассматриваемому классу. Ошибки первого и второго рода для всего распознающего устройства определяются как средние по всем классам системы.
Из определений ошибок распознавания видно, что их подсчет может производиться только на уже обученной системе и делается путем проведения эксперимента по предъявлению объектов распознавания и сбора статистики по результатам классификации.
Как уже говорилось, "строгость" системы определяется порогом распознавания. При нулевом пороге ошибка "пропуска чужого" стремится к нулю, а ошибка "непропуска своего" - к ста процентам, то есть система распознавания в данный класс не пропускает никого - ни своих, ни чужих. При увеличении порога до некоторого значения ошибка "пропуска чужого" стремится к ста процентам, а ошибка "непропуска своего" обращается в нуль, то есть в рассматриваемый класс пропускаются все реализации (см. рис. 5). Таким образом, мы можем с помощью полученных графиков выбрать наиболее подходящий порог распознавания, используя какой-либо критерий, например, равенство ошибок первого и второго рода или минимизацию ошибки "пропуска чужого" с ограничением ошибки "непропуска своего". Второй критерий выбора обычно используется для более "строгих" систем, где отвержение "своего" с первого предъявления не играет большой роли, а пропуск чужого может привести к нежелательным последствиям.
Идеальным для распознавания является случай, когда при некотором диапазоне порогов ошибки и первого и второго рода обращаются в нуль (см. рис. 5). Это означает, что данный класс в пространстве признаков не имеет пересечения ни с какими другими классами. Чем больше в системе непересекающихся классов, тем проще получить правильное решение задачи распознавания. Если же классы плохо разделяются, стоит подумать о пересмотре набора признаков и об использовании другого метода классификации.
Рис. 5.
Зависимость процента ошибок от порога распознавания.
Ошибки распознавания зависят от набора классов в архиве, а также от набора реализаций, предъявляемых при эксперименте. Это может повлечь за собой изменение ошибок при изменении классов и условий проведения эксперимента. Естественно, при увеличении числа классов в архиве и количества предъявляемых при эксперименте реализаций относительные ошибки стабилизируются. Однако в реальных условиях необходимо всегда помнить, что существуют люди, у которых снимаемые биометрические характеристики настолько похожи, что даже система, практически точно распознающая классы из текущего архива, может ошибиться.
Литература
[1] А. Л. Горелик, В. А. Скрипкин Методы распознавания. М.: Высшая школа, 1977.
[2] Я. И. Фомин, А. В. Савин. Оптимизация распознающих систем. М.: Машиностроение, 1993.
[3] В. Г. Яхно и др. Исследовательская система принятия решений по фрагментам сложного изображения, использующая нейроноподобные алгоритмы. Изв. вузов, Радиофизика, 1994.
[4] В. П. Иванов, А. С. Батраков. Трехмерная компьютерная графика. М.: Радио и связь, 1995.
[5] Браверман Э. М., Мучник И. Б. Структурные методы обработки эмпирических данных. М.: Наука, ГРФМЛ, 1983.
[6] Распознавание образов и анализ сцен. М.: Мир, 1973.