Компьютер с человеческим лицом

Текст впервые опубликован в журнале Подводная лодка N12, 2001.

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

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

Доисторические времена

Устройство для ввода с перфоленты ЕС-7903Для программирования первого универсального электронного компьютера ENIAC (Electronic Numerical Integrator and Computer) использовались простые электрические провода. Следовало соединить в правильной последовательности сотни гнезд и выставить в правильные положения более шести тысяч переключателей, расположенных на 40 панелях машины. Общение с ENIAC напоминало скорее работу телефонистки на телефонной станции в начале века. На программирование одной операции уходило до двух дней работы, при этом права на ошибку не было. Инженер, обслуживающий компьютер, должен был не только обладать обширными знаниями, но и быть достаточно физически выносливым. Впоследствии ENIAC был приспособлен для ввода информации с перфокарт.

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

Командная строка

Командная строка «живет» и в глубине Windows. Не сразу узнаешь, но это именно онаТакое положение вещей не могло продолжаться долго. Фантасты уже вовсю применяли "думающие машины" во всех областях человеческой деятельности, а ломать голову пока что приходилось человеку. В 1959 г. сотрудником Массачусетского технологического института (МТИ) г. Стречи на конференции ЮНЕСКО впервые была предложена идея разделения времени центрального процессора между отдельными программами или пользователями. Не прошло и пяти лет, как сотрудники математического факультета Дартмурского колледжа Томас Курц и Джон Кемени реализовали эту идею. 1 мая 1964 г. в 4 ч утра, по словам Кемени, "…все, наконец, заработало. Одновременно родились язык BASIC и система разделения времени". Новый язык программирования пришлось создать для того, чтобы учесть особенности интерактивной работы пользователя. В BASIC впервые появился оператор интерактивного ввода INPUT. До этого в принципе не существовало средства ввести какие-либо дополнительные данные в программу после того, как она начала работать. Кроме того, язык оказался более простым в освоении по сравнению, скажем, с FORTRAN или COBOL.

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

Первые терминалы представляли собой комбинацию пишущей машинки и телеграфного аппарата. Пользователь набирал запрос на клавиатуре, результат печатался на бумаге. Набор знаков был ограничен литерами телетайпа. Позднее Дугласом Энджелбартом (Douglas Engelbart) из Станфордского исследовательского института (Stanford Research Institute) было предложено использовать электронно-лучевую трубку для отображения на ней информации. Первые дисплеи были способны воспроизводить только алфавитно-цифровую информацию, но это уже был громадный шаг вперед. Не говоря уже об экономии бумаги, стало возможным повысить скорость отображения информации и тем самым увеличить интерактивность. Впервые электронно-лучевой дисплей появился как серийная промышленная модель в мини-компьютере DEC PDP-1. В 1975 г. Энджелбарт в Исследовательском центре аугментации (Augmentation Research Center) создал первый дисплей с отображением текстовой и графической информации.

Интерфейс компьютера тем не менее оставался командно-ориентированным. Пользователь должен был знать наизусть все необходимые ему ключевые слова и правила их применения. А если учесть то, что клавиши управления курсором появились только в 1986 г., следовало знать еще и все комбинации клавиш, при помощи которых можно было бы осуществлять минимальные действия по исправлению введенного текста. Несмотря на это, интерфейс командной строки (CLI - command line interface) до сих пор остается одним из основных интерфейсов, используемых в операционных системах Unix/Linux и при общении со сложным активным сетевым и телекоммуникационным оборудованием.

Графический оконный интерфейс

Дуглас Энджелбарт с первой компьютерной мышьюНо вернемся к истории развития интерфейса. Первые разработки в области графического пользовательского интерфейса (GUI - graphic user interface) начались еще в 1969 г. под руководством Дугласа Энджелбарта. Исследования в этом направлении продолжились в знаменитом центре PARC (Palo Alto Research Center - исследовательский центр Пало-Альто), принадлежащем фирме Xerox. Там же в 1973 г. Аланом Кеем был создан прототип персонального компьютера, интерфейс которого уже был графическим. Дальнейшее развитие этих разработок привело к возникновению графического оконного интерфейса в его сегодняшнем понимании. Изначально разработанный как метафора Рабочего стола с разложенными на нем документами, графический интерфейс к настоящему моменту включает в себя такие обязательные элементы, как окна, меню, пиктограммы. Обязательными устройствами для реализации GUI стали графический растровый дисплей (векторные дисплеи постепенно вышли из обращения) и мышь или аналогичное устройство. Поэтому данный тип интерфейса также называется WIMP (Windows-Icons-Menus-Pointing device).

Старая добрая компьютерная мышь родилась в 1968 г. Дуглас Энджелбарт, уже упоминавшийся выше, представил это устройство на конференции по вычислительной технике в Сан-Франциско в 1968 г.

С тех пор в ее функциональности изменилось совсем немногое. Стандартная PC-мышь имеет две клавиши (родилась она трехкнопочной), хотя истории известны монстры и с 40 кнопками (такое устройство было выпущено специально для поддержки пакета Lotus 1-2-3). В последнее время мышь нарастила себе верхнее и боковое колесики для более удобной прокрутки текста. Видимо, это новшество настолько усложнило конструкцию, что Microsoft назвал ее IntelliMouse, намекая не то на интеллект, не то на связи с Intel. Кроме того, налицо стремление мыши отбросить хвост и перейти на использование инфракрасного или радиоинтерфейса с компьютером, а также отказаться от использования шарика в пользу оптических технологий.

Привычный всем графический WIMP-интерфейс — результат тридцатилетней работы, начатой еще в 50-е годыБлизкими родственниками мыши являются всевозможные трекболы, touch-screen, touch-pad, track-point. Последние два вида, как правило, используются в ноутбуках и прочих портативных устройствах. Несколько особняком стоят джойстики, которые находят применение в основном в игровой и военной сфере. Хотя встречались и случаи закупки джойстиков для бухгалтерии, "чтобы проводки точнее проводились".

Отдельную нишу занимают планшеты, также известные как дигитайзеры. Предназначенные в первую очередь для чертежных работ, они остаются наиболее точными приборами для ручного ввода графической информации в компьютер. Примерно такую же роль выполняет и световое перо (кстати, первые прототипы световых перьев были разработаны еще в 1950 г. в МТИ для военных целей).

WIMP-интерфейс принес существенные изменения в жизнь пользователей. Казалось, при помощи меню и окошек каждый сможет, наконец, управлять компьютером, не прилагая сверхъестественных усилий. Меню, пиктограммы, анимированные курсоры, раскрывающие окна, подмигивающие программные "помощники", инструментальные панели заполнили экраны, разрешение которых все возрастало и возрастало. Возникли технологии drag-and-drop, point-and-click, WYSIWIG (What you see it what you get). Параллельно с этим от процедурного программирования стали переходить к объектно-ориентированному подходу, многозадачные операционные системы вызвали к жизни системы, управляемые событиями (event-driven). Под флагами IBM PC и Apple свершилось массовое пришествие персональных компьютеров на рабочий стол людей, чья непосредственная деятельность не была связана с компьютером. Обработка текста, электронные таблицы, базы данных, обработка графики, системы CAD (Computer-Aided Design) - сложно перечислить все те направления применения компьютеров, которые развились с пришествием графического интерфейса.

Графический интерфейс пользователя развивался, и выявлялись его недостатки. Во-первых, текст документов все равно приходилось набирать на клавиатуре. Во-вторых, создание действительно интуитивного интерфейса зачастую становилось проблемой. Вместо команд и опций CLI-интерфейса пользователь заучивал значение пиктограмм, элементов управления, иерархию системы меню. Способность интерфейса программы настраиваться не всегда становилось положительным качеством - каждый пользователь, настраивая систему "под себя", с трудом воспринимал такие же модификации, сделанные другим. Несмотря на целые тома руководств и рекомендаций по созданию GUI-интерфейса - а регламентируется достаточно много, от размера и взаимного положения отдельных элементов до желательных вариантов локализации, каждый программист может создать свой собственный вид интерфейса. За примером далеко ходить не надо. В первых версиях Windows диалоговые окна были белые (в стандартной настройке). С переносом компиляторов Borland под Windows был создан альтернативный вариант оформления (библиотека ObjectWindows) - в серых тонах с большими рисунками на кнопках. Начиная с Word 6.0 серые диалоговые окна использует и Microsoft, а т. к. поддержка этого варианта интерфейса была сделана на уровне компонента операционной системы, то и в последующих версиях Windows диалоговые окна посерели. Переход от Windows 3.x к Windows 9x изменил внешний вид многих элементов оконного интерфейса, в особенности "пострадали" заголовки окон. В Windows 2000 курсоры обрели тень, в общем, нет пределов совершенству. Беда в том, что для пользователя менять собственные привычки не так легко, как запустить программу SETUP, а поиски наилучшего расположения кнопки "Пуск" на самом деле имеют мало общего с созданием действительно дружественного интерфейса.

Меж тем компьютеры наращивали тактовые частоты, объемы оперативной и долговременной памяти, обрастали новыми областями применения. В 1989 г. Creative Labs создала Sound Blaster. Просто Sound Blaster, 8-битную плату стандарта ISA. Это было не первое средство извлечения звука из персонального компьютера - PC Speaker был в нем, что называется, от рождения, но первое, чье имя стало нарицательным. Год спустя появляется спецификация MPC - Multimedia PC - компьютер, приспособленный для обработки мультимедийной информации. Отсюда уже рукой подать до следующей вехи в истории развития интерфейсов.

Речевой интерфейс

Языки юго-восточной Азии компьютеру особенно сложно распознавать из-за их интонационного разнообразияПосле появления аппаратных средств по обработке звука при помощи компьютера стали возможными попытки создания интерфейса, основанного на речевых технологиях. Такие интерфейсы также называют SILK (Speech, Image, Language, Knowledge - речь, образ, язык, знание). Задача создания такого интерфейса содержит в себе несколько разделов, которые сами по себе достаточно сложны. Прежде всего, это проблема синтеза речи и проблема распознавания речи. С синтезом речи дело обстоит гораздо проще - известный всем действующий образец доступен по телефону 100. Это, конечно, скорее, шутка, но проверьте список установленных у вас программ - возможно, голосовые технологии уже с вами. Автор достаточно времени проводит за компьютерными играми, и одна из них принесла в комплекте вместе с вездесущим Microsoft DirectX также и Microsoft Text-to-Speech Engine 4.0.

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

Такую же ситуацию мы наблюдаем и в деле распознавания визуальных образов. Существующие коммерческие системы распознавания машинописного (sic!) текста (вспомнить тот же ABBYY Fine Reader) эквивалентны распознаванию речи, синтезированной машиной же. До коммерческого применения дошла реализация распознавания так называемого рукопечатного текста, т. е. текста, написанного рукой, но печатными буквами по оговоренным правилам (например, Cognitive Technologies CuneiForms). Это, конечно, прогресс, но хотелось бы в перспективе видеть и распознавание рукописного текста. А это опять замыкает нас на грамматический и семантический анализ текста. Кроме того, как быть, например, с математическими и химическими формулами? Для них, конечно, существует то или иное машинное представление (пользователям Microsoft Equation просьба не беспокоиться), но задача по опознанию и выделению их в слитном тексте - это отдельная история.

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

Разговор о речевом интерфейсе закончим попыткой описать область его применения. Дело в том, что на самом деле сфера применения этих технологий не вполне очевидна. Обычная речь произносится человеком со скоростью около 25 слов в минуту, но она сильно отличается от письменной речи. Достаточно сравнить полную стенограмму любого заседания с напечатанным текстом подготовленного доклада. И даже с учетом того, что непрофессионал набирает примерно 0,5 слова в секунду, необходимость внятно диктовать компьютеру уменьшит скорость диктовки до той самой степени, когда проще набрать на клавиатуре. Тут и кроется ответ на вопрос о наиболее перспективных областях применения речевого интерфейса. Если руки у человека заняты, ему остается только говорить. Например, речевое управление мобильным телефоном в автомобиле уже предлагается на рынке. Команд реализовано не очень много - снять трубку, набрать номер, но большего пока и не требуется. С другой стороны, действительно трудно представить себе, скажем, комнату, полную программистов, которые диктуют исходный текст программ. Не говоря уже о том, что в таких условиях возникают неизбежные помехи.

Виртуальная реальность

Манипулятор PHANTOM фирмы SensAble TechnologiesНаиболее молодым типом интерфейса следует считать системы создания виртуальной реальности (VR - virtual reality). Под виртуальной реальностью понимают моделирование какой-либо среды (существующей или вымышленной) в реальном масштабе времени с возможно более подробным ее воссозданием (зрение, слух, осязание). При этом модель должна быть достаточно интерактивной, чтобы воздействие на какой-либо объект среды получало обратный отклик.

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

Сегодня на рынке представлено достаточно много устройств, которые предназначены для поддержки виртуальной реальности. Прежде всего, это так называемые HMD (Head Mounted Display), или носимые дисплеи. Их выпускают такие фирмы, как Eye-Trek, Kaiser Electro-Optics, i-O Display Systems, Albatech и др. В основном они основаны на жидкокристаллических дисплеях, иногда встречаются и варианты с электронно-лучевой трубкой. Разрешение экранов достигает 1,5 млн пикселов. При этом во многих устройствах предусматривается поддержка стереоскопического режима. Подключение таких дисплеев к источнику видеосигнала осуществляется либо с помощью стандартных интерфейсов, либо с использованием оригинальных разработок. Например, модель HMD PM-1L производства Albatech, предназначенная для использования в медицине и на производстве, оснащена специальными разъемами, исключающими возможность самопроизвольного отсоединения. Кроме того, она допускает ношение очков, что немаловажно. На бытовое применение рассчитаны HMD, обеспечивающие полную изоляцию глаз от внешнего мира и предназначенные для компьютерных игр и просмотра видео. Существуют также варианты беспроводного подключения для получения максимальной свободы передвижения.

Для поддержки ввода информации в режиме виртуальной реальности используется широкий спектр аппаратуры. Наиболее известны, видимо, "виртуальные перчатки". Их имеет в своем арсенале практически каждая фирма, производящая оборудование для поддержки VR. В перчатки вмонтирована система датчиков, которая позволяет отслеживать положение кисти руки в пространстве и движение каждого отдельного пальца. Типичные реализации (например, CyberGlove компании Virtual Technologies) включают в себя около 20 датчиков, которые позволяют фиксировать даже жесты типа "o'key", когда соединяются кончики пальцев. Перчатки могут дополняться системой тактильной обратной связи, хорошо знакомой владельцам джойстиков с force feedback. Скорость съема и передачи информации в обрабатывающий компьютер превышает 100 измерений в секунду, что вполне достаточно для воссоздания плавного виртуального движения руки оператора на экране. При этом материал перчаток, как правило, выбирается достаточно мягким и эластичным, чтобы не препятствовать возможности пользоваться клавиатурой по старинке.

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

В приложениях трехмерного инженерного моделирования используются более точные приборы - трехмерные устройства ввода в виде пера, закрепленного на специальном манипуляторе. Такое устройство, например, предлагается фирмой SensAble Technologies под названием PHANTOM. Манипулятор обеспечивает перемещение пера с шестью степенями свободы, формируя при этом тактильную обратную связь по трем степеням свободы. Зона перемещения пера ограничена некоторым объемом порядка 20ґ30ґ40 см. Такой манипулятор может применяться в любых приложениях трехмерного моделирования. Для оцифровки существующих объемных объектов предназначены автоматические трехмерные сканеры, в которых аналогичный манипулятор управляется компьютером. На конце манипулятора находится игла, которая ощупывает предмет. На основании полученной информации строится объемная модель анализируемого объекта. Естественно, такой метод имеет свои ограничения, связанные как с максимальными, так и с минимальными размерами объекта. Отверстия и полости также создают дополнительные трудности.

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

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

За горизонтом

Что же ждет нас после виртуальной реальности? Сейчас практически полностью задействованы два из пяти чувств человека - зрение и слух. На осязание идет решительная атака всеми вышеперечисленными устройствами, создающими тактильную обратную связь. Проектируются чипы для синтеза запахов - еще немного и обоняние также будет поставлено на службу интерфейсу. Представляете, если сообщение об ошибке будет пахнуть тухлятиной, а окно о завершении длительного процесса - розами? Видимо, печально известный синий экран смерти должен отдавать ароматами могилы… Из всех известных чувств остается вкус, но в принципе ничего невозможного в создании устройства генерации вкусов нет - уже реализованный синтез запахов сложнее на порядок, а базовых вкусов известно всего четыре.

Дальнейшее развитие интерфейса уже многократно воспето в научной и не совсем фантастике. Речь идет о прямом интерфейсе человека с машиной. Естественно, при этом предполагается использовать те или иные имплантированные устройства. Если в хрестоматийном "Газонокосильщике" мы видим классическую реализацию интерфейса типа "виртуальная реальность", то недавняя "Матрица" уже предлагает на выбор либо нейрошунт в кору головного мозга, либо - жива еще старушка-то - старую добрую командную строчку. Так вот по поводу нейрошунта. Имплантированные устройства сегодня уже существуют. Правда, в основном они используются как средства идентификации человека и животных. Известен также вполне работоспособный образец системы искусственного зрения для слепого человека, построенный на имплантации в зрительный нерв десятков тысяч проводников. Система создает эффект туннельного зрения (изображение ограниченного размера на черном фоне). Вес системы составляет всего 5 кг.

Существуют также разработки в области создания искусственной сетчатки. Компания Optobionics разработала искусственную кремниевую сетчатку (ASR - Artificial Silicon Retina), которая может быть использована для частичного возвращения зрения людям с поврежденным верхним слоем сетчатки (зрительный нерв должен функционировать).

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

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

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

Автор дописывает эту статью, используя стандартную 101-клавишную клавиатуру, изредка нажимая мышью на иконку "Сохранить" и мечтая о том времени, когда для этого достаточно будет просто подумать…