Итак, мы имеем нормализованное изображение с локализованными на нем лицами. Посредством нескольких дополнительных операций изображения лиц переводятся в стандартный формат (например, обрезаются по контуру, чтобы исключить окружающий фон, – такие тонкие рамки вокруг лиц вы можете видеть в научно-фантастических фильмах). Теперь компьютер готов перейти к следующему шагу – попытаться определить, кому принадлежит лицо.
Если выйти на Таймс-сквер и спросить у случайных прохожих, как компьютер распознает лица, большинство из них ответит примерно следующее: «В компьютер закладывают правила об основных параметрах лица. Например, он измеряет расстояние между глазами или высоту лба. А затем сравнивает эти параметры неизвестного лица с параметрами лиц, которые есть в его базе данных».
Действительно, системы распознавания лиц на основе фиксированных правил существуют. Например, разработанный Мэтью Терком и Алексом Пентлендом алгоритм использует расчет так называемых собственных векторов для главных компонентов лица. Но на сегодняшний день большинство систем распознавания лиц используют машинное обучение. Разумеется, ситуация может измениться, и в будущем правиловые алгоритмы вполне могут вернуться на сцену (вспомните о моем предсказании через десяток лет). Но пока этого не произошло, мы сосредоточимся на обучающихся нейронных сетях.
Давайте посмотрим, как работает простой алгоритм распознавания лиц на основе машинного обучения, который входит в пакет инструментов MATLAB. Это полезное упражнение, потому что, как выяснилось, человеческое восприятие функционирует во многом похожим образом. Первые шаги по преобразованию изображения лица в стандартный формат не отличаются от тех, что описаны выше для основанного на правилах алгоритма. А дальше происходит вот что:
● Огромное множество обработанных изображений лиц (равномерно освещенных, с выделенными краями, анфас) вводится в многослойную нейронную сеть. Это этап машинного обучения. Каждое лицо имеет свое имя: «Дик», «Джейн», «Билл» и т. д. И для каждого изображения лица вы сообщаете машине: «Это Билл» или «Это не Билл».
● Нейронная сеть, как и простой маленький перцептрон, использует обратное распространение для настройки весов отдельных соединений. Те соединения, которые подают самый сильный сигнал, когда учитель сообщает, что «это Билл», усиливаются. Разница лишь в том, что мощная система использует целый массив простых перцептронов, организованных в скрытые слои. В процессе обратного распространения происходит настройка всех этих скрытых слоев вплоть до входного.
● После обучения нейронную сеть нужно протестировать: в сеть вводится другое изображение Билла, которое не входило в обучающий набор. Усиленные синаптические связи должны среагировать на специфические черты лица Билла, благодаря чему центр решений должен получить сильный суммарный сигнал и выдать ответ: «Это Билл».
Очень большая нейронная сеть, обученная на большом количестве лиц, становится очень умной: она способна узнать лицо Билла с разных сторон, ярко освещенным или затененным, с воротничком белой рубашки или воротом красной футболки. В реальной жизни для обучения нейронных сетей распознаванию лиц используются гигантские базы данных. Раньше такими базами служили, например, архивы фотографий с водительских прав, содержащие миллионы идентифицированных изображений.
Самое удивительное, что мы не знаем, как именно нейронная сеть распознает лицо Билла. По оттенку кожи? Соотношению высоты и ширины лица? Форме носа? Ямочках на щеках? Старым послеугревым рубцам? По всему вышеперечисленному? Все это скрыто в глубинных слоях нейронной сети с их сотнями тысяч соединений.
В главе 11 мы подробнее поговорим о том, чем биологическая зрительная система похожа на видящие компьютеры. Я утверждаю, что обучаемые синапсы играют ключевую роль в основанных на нейронных сетях зрительных системах на всех этапах процесса восприятия – от сетчатки (входного слоя) до высших уровней, где происходит распознавание объектов. Но сразу предупреждаю и подробнее объясню это в главе 13 (внимание, спойлер!): распознавание объектов в биологической зрительной системе происходит вовсе
11 | Как работает зрение
Большинство фундаментальных научных идей по существу просты и могут быть выражены языком, понятным каждому.