Чувствительные роботы: что может машина, обладающая зрением и слухом
В 1950 году Алан Тьюринг, а затем в 1980 году Джон Серль предпринимали попытки формализовать понятие искусственного интеллекта (ИИ). Серль при этом ввел философское разграничение между «сильным» ИИ (обладающим самосознанием и способностью мыслить) и «слабым» (не обладающим ни тем, ни другим).
В наше время рассуждения о возможности или невозможности «сильного» ИИ остаются уделом философов. Что же касается «слабого», то его приложения уже вошли в нашу жизнь. Для того чтобы техническую систему можно было считать обладающей «слабым» ИИ, ей достаточно уметь самостоятельно решать какую-то отдельную задачу, для решения которой обычно нужен человек.
Обратимся, например, к нашим органам чувств. Для машины аналогом наших органов обоняния и вкуса могут быть газо- и жидкостные анализаторы, с помощью которых она может распознавать запахи и вкусы, пусть и не в таком объеме, как мы. Уже не первый десяток лет такие «электронные носы» помогают сотрудникам таможни обнаруживать опасные и запрещенные вещества. В лабораториях с их помощью проводят анализ пищевых продуктов на свежесть и наличие недокументированных примесей. Врачам они помогают диагностировать ранние стадии гастрита, а на трубопроводах фиксируют утечки взрывоопасного газа.
Говоря о слухе, в качестве примера можно привести речевых помощников Siri для iOS или Cortana в Windows — это примеры «электронного уха», которое воспринимает вашу речь и «понимает», что вы сказали. Распознание естественной речи — задача очень непростая, поэтому в создание таких систем вовлечены знания из разных областей лингвистики, математики и информатики.
В качестве аналога зрения человека (двум глазам и тем биомеханизмам, которые формируются в нашем мозге с самого рождения) можно привести целую отрасль компьютерной науки — компьютерное (или машинное) зрение. Системы компьютерного зрения решают все задачи, которые можно отнести к видимой действительности, и даже иногда выходят за ее пределы, если речь идет о зрении в инфракрасном диапазоне, электронных микроскопах и рентгенографах. Такие системы распознают рукописный ввод, авторизуют доступ к защищенным системам по сетчатке или радужной оболочке глаза. Позволяют по еле заметным признаками находить патологии на рентгенограммах. Обеспечивают ввод данных через отслеживание движения глаз для людей с ограниченными возможностями. В конце концов, именно им вы должны сказать «спасибо» за штрафы, приходящие с дорожных камер видеофиксации.
Если у вас есть несколько изображений объекта, снятых с каким-то одним отличающимся параметром — это может быть угол поворота, освещение или что-то еще, то задачей систем ИИ является восстановление трехмерной сцены, модели того объекта, который был снят. Такую задачу мы решаем каждый день. Например, мы смотрим куда-то и оцениваем расстояние до объектов, оцениваем их форму, замечаем выступающие части. Это то, что делает наш мозг в фоновом режиме.
Если такие фокусы под силу нашему мозгу, почему этого не может делать машина?
Зачем такое умение нужно техническим системам? Например, у вас есть мобильный робот, на которого вы установили пару камер. Современные алгоритмы компьютерного зрения достаточно быстрые для того, чтобы получение трехмерных данных по изображениям с двух камер занимало всего доли секунды. В этом случае можно говорить об алгоритмах стереосопоставления в реальном времени. Такой робот, оснащенный камерой или камерами, может в реальном времени не только сам себя навигировать в каком-то неизвестном ему пространстве, но и строить модель этого пространства и отправлять ее человеку.
Практическое применение таких систем видится очевидным. Если этот робот — батискаф, квадрокоптер, колесная платформа или шагающий аппарат, то его можно отправить в труднодоступное место, например в радиационно зараженную зону, на дно океана или даже на Луну, и он будет формировать модель окружающего пространства и находить дорогу без участия человека.
Компьютерное зрение и методы, связанные с трехмерной реконструкцией сцены по изображениям, основываются на физических законах. Можно выделить четыре основных подхода к восстановлению трехмерных моделей по изображениям.
Первый основывается на рассеянии Ламберта. Мы берем интересующий нас объект и освещаем его под разными углами. Знание о том, под каким углом мы освещали объект, дает нам возможность вычислить касательные плоскости к поверхности, которая отражает свет. Зная касательные плоскости, мы можем с помощью численного интегрирования восстановить поверхность видимой части сканируемого объекта и получить трехмерную модель.
Второй подход основывается на фокусировке. Существует метод получения объема из фокусного расстояния, на которое настроена камера. Нужно сделать серию снимков с разным фокусным расстоянием, а затем проанализировать каждый снимок. В результате мы выясним, на каких снимках какие части изображения находятся в максимальном фокусе. Затем с помощью преобразования Фурье получаем спектр изображения, вычисляем наиболее резкие области этого изображения и выясняем, что эти области изображения с высокой вероятностью находятся от нас на фокусном расстоянии. Серия таких снимков дает возможность получить карту глубины, то есть расстояния от камеры до элементов сканируемой модели. Имея такую карту, легко получить трехмерную модель.
Третий подход использует структурированную подсветку. Такой подсветкой может быть лазер, развернутый в плоскость, или же проектор, который проецирует на модель цветную или черно-белую сетку. На снимке рисунок подсветки искажается по отношению к тому, что должно было получиться при проекции на плоский экран. Основываясь на законе отражения и зная, откуда идет свет, получаем уже знакомую нам карту глубины.
Еще один, самый, на мой взгляд, развитый и исследуемый подход в построении трехмерных моделей по изображениям — это подход стереосопоставления, когда сцену снимают с разных ракурсов несколькими камерами. Существует физический принцип — явление параллакса: если вы перемещаетесь относительно какой-то сцены, то вам кажется, что более удаленные объекты перемещаются медленнее, чем те, что находятся рядом с вами. Так бывает, когда вы смотрите в окно поезда. Задача алгоритма стереосопоставления в том, чтобы находить на двух (или более) изображениях, снятых с разных ракурсов, одни и те же объекты и, найдя такие соответствия, устанавливать смещение. А уже по смещениям легко вычислить расстояние до каждой точки сцены. Точно так же работают наши глаза. Благодаря этому механизму мы ориентируемся в пространстве, оцениваем скорость едущего по дороге автомобиля и можем поймать летящий в руки мяч.
Однако наше зрение, равно как и зрение машин, не ограничено макроскопическими объектами. К услугам «компьютерных глаз» прибегают врачи для анализа медицинских изображений, энтомологи для идентификации разных видов членистоногих, и даже химики с помощью компьютерного зрения фиксируют результаты экспериментов. Или вот представьте себе, что у кого-то сломался зуб. Он идет в стоматологический кабинет, чтобы врач сделал ему коронку. Раньше копировали форму обломка, сделав слепок, а затем по слепку изготавливали новый зуб. Сейчас можно обойтись без слепков. Необходимо взять специальную камеру, сделать снимки обломившегося зуба с разных сторон и построить трехмерную модель обломка. После этого врач на мониторе покажет пациенту модель этого обломка и модель настоящего зуба. Затем совместит их, специальный алгоритм сделает операцию вычитания объемов и получится трехмерная модель для изготовления. Эту модель в виде файла отправят на печать, станок напечатает недостающую часть зуба, и она идеально поместится в то место, которое для него предназначено.
Также есть пример диагностического применения. Если у врача имеются срезы МРТ головного мозга или других органов, из них можно получить трехмерную картинку, на которой будет понятно, какого объема тот или иной процесс в органах пациента, насколько сильно он распространен.
В настоящий момент технологии трехмерной реконструкции часто применяются для навигации и картографии. Существуют автономные модули, в том числе автомобили, которые оснащены большим количеством датчиков, включая радары, лидары, сонары и камеры. Задачей всех этих приборов является составление максимально полной картины о том, что находится вокруг автомобиля. С их помощью машина может осуществлять парковку, автоматическое движение вдоль линий разметки. Это те технологии, что уже сейчас внедрены и используются либо при автоматизированном вождении автомобиля, либо при автономном (в машинах без водителя). Если подняться повыше в воздух, то там системы компьютерного зрения решают задачи аэрокосмической картографии. По аналогичным принципам, используя снимки в видимом, инфракрасном и ультрафиолетовом диапазонах, системы компьютерного зрения фиксируют земной рельеф, над которым пролетают спутники.
Высокоточное неразрушающее сканирование нашло применение в кинематографе, компьютерной анимации и медицине. Создание моделей максимально реалистичных объектов — лиц людей, животных и т. д. — практически невозможно без технологий быстрой реконструкции. Инструменты высокоточного переноса реальных объектов в виртуальные сцены базируются на алгоритмах со структурированной подсветкой. Существуют компании, которые специализируются на технологиях для кинематографа и анимации. Их решения позволяют при помощи проектора и камеры с высоким разрешением сканировать человеческие лица с субмиллиметровой точностью. Полученные таким образом модели позволяют создавать реалистичных персонажей для мультипликации, а в кино заменять реальных актеров. Другие компании специализируются на создании интерактивных голограмм макроскопических объектов (кварталов, электростанций, бизнес-центров) — им для снятия размеров уже существующих объектов также приходится прибегать к помощи компьютерного зрения.