Обратная сторона Kinect
На E3 2010 контроллер Kinect был в центре внимания, хотя реагировали на него скептически: да, интересно, но явно не для серьезной аудитории — и уж точно ничего общего с ранними демонстрациями, где Kinect презентовали как Project Natal. С тех пор прошел год. За это время было куплено более 10 миллионов контроллеров, а Книга рекордов Гиннесса официально признала Kinect самым быстро продающимся электронным устройством. И хотя серьезных игр к нему нет до сих пор, Kinect взял другим — оказалось, что контроллер отлично подходит для создания дешевых домашних роботов
Все началось с шокирующих новостей: «Награда $3000 первому, кто взломает Kinect», «Kinect взломан», «Microsoft будет тесно сотрудничать с правоохранительными органами», «Microsoft подает на хакеров в суд». Впрочем, шумиха улеглась довольно быстро. Оказалось, что устройство никто не взламывал: программисты просто написали драйвера, перехватывающие информацию с USB-порта консоли.
«Kinect никто не взламывал. Взлом — это когда кто-то добирается до алгоритмов, использующихся на Xbox 360, а ничего такого не было. Люди просто написали PC-драйвер, который перехватывает данные, передаваемые на USB-порт Xbox 360. А это совсем не хакерство», — пояснял представитель Microsoft и добавлял, что компания специально не шифровала протокол передачи данных. Тем не менее людей, занимающихся самодеятельностью на Kinect, часто называют хакерами.
Вскоре произошло еще одно открытие. Многие помнят, что в коллекционном издании Call of Duty: Modern Warfare 2 находился прибор ночного видения. Как-то один из владельцев такого ПНВ случайно посмотрел на комнату, в которой работал Kinect, и поразился: по всем поверхностям были рассыпаны тысячи и тысячи световых пятен. У него в квартире было настоящее лазерное шоу! Оказалось, что Kinect имеет инфракрасный проектор, испускающий множество лучей, рисующих в окружающем пространстве координатную сетку из миллионов световых точек. Инфракрасная камера снимает эту невидимую обычным глазом картинку и строит по ней трехмерную модель. «Да ведь это же настоящий 3D-сканер», — подумали хакеры. И не ошиблись.
Шеф, а я вас вижу!
Как только неофициальные драйвера попали в общий доступ, в Сети начался настоящий кинектобум. Стартовало неофициальное соревнование — кто придумает Kinect самое оригинальное применение.
Одним из первых важных «изобретений» стала программа, делающая из Kinect 3D-камеру. При помощи инфракрасного датчика строилась трехмерная модель, а сверху в качестве текстуры накладывалось изображение с обычной камеры. Первые результаты были жутковаты: так как Kinect видит все только с одной стороны, на экране была видна лишь половина трехмерной модели человека. Рваные, колеблющиеся из-за недостаточной точности датчика контуры, пляшущие чернильные тени в тех местах, куда не могут проникнуть инфракрасные лучи… но лиха беда начало.
В другом эксперименте использовали уже два контроллера, которые слепляли две половинки человека в единое целое и выдавали в реальном времени вполне приличную 3D-сцену, причем транслировали ее напрямую в Сеть. Так получился первый в мире трехмерный видеочат, где можно было рассмотреть своего собеседника с разных сторон, как героя видеоигры. Моделька помещалась в виртуальное окружение: позади нарисованное окно, впереди нарисованный стол с лампой, а за столом сидит странно мерцающая фигура девушки, посредине которой проходит такой же мерцающий разрыв (место склеивания данных с двух контроллеров).
Но самые впечатляющие вещи были впереди. Создатель 3D-камеры сделал целую виртуальную локацию с коридорами, дверьми и полноценной обстановкой. И поместил туда виртуальные проекции себя и своего друга. Симулируя ходьбу, они могли разгуливать по «локации», а когда встречались, то играли друг с другом в крестики-нолики и даже сражались на световых мечах. Конечно, все это — явно нецелевое использование устройства, уж слишком мала его точность для построения качественного изображения. В играх этот алгоритм использовать пока нельзя, но в будущем подобные технологии позволят довести погружение в киберпространство до невероятного уровня.
Глаз — алмаз
Люди видят окружающий мир — комнату, дверь, диван — и понимают, что есть что. Компьютер же видит лишь набор бессмысленных пикселей, опознать которые ему невероятно сложно. Kinect дал компьютеру мощный инструмент для познания мира: теперь он может оцифровать окружающее пространство и представить его в виде понятной трехмерной модели. «Так это же настоящий глаз для робота!» — подумали хакеры. И не ошиблись.
Kinect оказался идеальным инструментом для создания автономных роботов, думающих своими «мозгами», а не действующих по указке оператора. Посмотрите на четырехвинтового робота-вертолета на иллюстрациях. С помощью Kinect он строит модель ближайшего окружения — на картинке видно, как выглядит комната с его точки зрения. К нему подходит человек, и вертолет плавно отлетает назад, избегая столкновения. А что будет, если отпустить его в свободное плавание? Создатели записали на компьютер алгоритм поиска пути и запустили вертолет исследовать дом. Летел он очень медленно: слишком много информации приходилось обрабатывать. Но сантиметр за сантиметром он продвигался по коридорам и комнатам, нашел лаз на второй этаж, исследовал там все и спустился обратно. При этом вся информация об увиденных объектах передавалась на компьютер, так что в конце полета на экране красовалась полная трехмерная модель всех комнат и коридоров.
Подобные разработки появляются постоянно. Например, в лаборатории National Instruments сделали неказистого робота с Kinect и сонаром. Дело в том, что Kinect может видеть небольшие объекты типа ножек стульев, но не может видеть препятствия, которые слишком близко от него. Сонар же ликвидирует это слепое пятно. А один фанат «Звездных войн» построил точную копию R2-M5 (это R2-D2, но красный), которому Kinect позволяет не только видеть препятствия, но и распознавать лица людей и их голос.
Какая от этого польза? Самая прямая! Kinect дал мощный толчок разработке дешевых, но умных роботов. А для тех, кто не умеет собирать их сам, уже появилась первая коммерческая модель робота под названием TurtleBot (от 500 до 1200 долларов за штуку!). Он самостоятельно ездит по дому, знает, что где находится, и может доставить на подносе завтрак прямо к креслу хозяина. Если бы он еще умел сам открывать холодильник и доставать оттуда пиво, продажи исчислялись бы миллионами.
У меня стальные нервы. Нет, правда, — стальные
Количество созданных с помощью Kinect роботов-машин просто не поддается исчислению. Но студенты из Великобритании подошли к делу гораздо серьезнее: они построили настоящий вездеход, предназначенный для спасения людей. Он занял первое место в немецком Чемпионате роботов-спасателей. Во время демонстрации вездеход лазил по препятствиям и благодаря мощному мотору бодро тащил за собой по полу одного из разработчиков. Как и описанный выше вертолет, он мог составлять трехмерную карту пройденного маршрута, которая наверняка нужна при разработке плана спасения.
Еще одно полезное изобретение — прототип хирургического комплекса для проведения операций, сделанный в Вашингтонском университете. Для тонких работ врачи давно пользуются роботами, но вот беда — у механической руки нет органов чувств, равно как нет и тормозов. Нажали не на те кнопки — отрезали чего-нибудь лишнего. Трехмерный сканер позволяет добавить в программу обратную связь. Например, хирург двинул скальпель чуть дальше, чем нужно, а его останавливают и дают сигнал: нельзя, там у больного печенка, она ему еще понадобится! С таким помощником можно будет уверено проводить операции удаленно, за тысячи километров от больного. Это очень актуально во время стихийных бедствий и других катастроф, когда нехватка квалифицированных врачей особенно ощутима. Разумеется, никто не будет встраивать Kinect в серьезные медицинские приборы, но понимание его технологий позволит здорово удешевить устройства, которые стоят сейчас десятки тысяч долларов.
Незадолго до выхода Kinect компания Microsoft запатентовала технологию, позволяющую контроллеру распознавать язык жестов и даже читать по губам. «Настоящий автоматический переводчик для глухонемых!» — раскатали губу рядовые пользователи. И ошиблись, так как ничего такого Kinect не умеет. Скорее всего, Microsoft просто отложила идею в долгий ящик. Зато программисты из Технологического института Джорджии не поленились и научили контроллер переводить множество слов и выражений: в ходе тестирования программа перевела 500 простых предложений, ошибившись всего 6 раз, — удивительный результат. Аналогичные исследования сейчас ведутся и в других странах, так что Kinect уже изучает французский, арабский и другие языки. Делаем вывод: технологии трехмерного сканирования даже в нынешнем примитивном состоянии пригодны не только для игр, но и для очень важных исследований в области робототехники и для повышения качества жизни простых людей.
Как у Спилберга
Помните фильм Стивена Спилберга «Особо мнение»? Еще бы вы его не помнили, мы столько раз о нем писали: там герой Тома Круза работал с компьютером, пассами рук выбирая видеофайлы — просматривал их, ставил на паузу, увеличивал картинку. Одной из первых самодельных программ для Kinect как раз оказался прототип такого интерфейса. За пару месяцев специалисты Массачусетского технологического института собрали вполне рабочую демонстрацию — устройство распознавало даже движения пальцев. Подобные системы управления вполне можно выпускать уже сейчас, только никто не хочет: выглядит эффектно, да махать руками очень утомительно, елозить мышкой гораздо удобнее.
Впрочем, это лишь начало. Вы наверняка слышали, что консоль Xbox 360 не могла в полной мере использовать мощности Kinect: выпущенная еще в 2005 году, приставка имела крайне неудачный контроллер USB-порта с пропускной способностью в 2-3 раза ниже обычного. Раньше на это никто не обращал внимания, но для работы Kinect понадобилось передавать двойной поток видео (с обычной и с инфракрасной камеры), разрешением 640x480 точек каждый и скоростью в 30 кадров в секунду. Xbox 360 с таким потоком данных не справлялась, и Microsoft пришлось снизить разрешение сенсоров вдвое и отказаться от массы идей.
А ведь планы были грандиозные — сканирование, распознавание жестов и мимики, то же чтение по губам! В то же время на PC никаких ограничений не было, и энтузиасты принялись за разработку альтернативных методов управления. Сначала были написаны программы по распознаванию движений головы (удобно использовать в разного рода симуляторах для управления обзором), но затем пошли дальше. А что, если сделать виртуальную клавиатуру? Попробовали: неудобно, точности все-таки не хватает. Обычная клавиатура гораздо лучше. А если сделать виртуальное пианино? Это уже гораздо интереснее! И вот появилась программа, которая позволяет в несколько кликов превратить любую поверхность в музыкальный инструмент. Хотите исполнить «Лунную сонату» на коврике мыши? Без проблем! Сыграть «Мурку» на крышке стола? Тоже можно. Закончилось все тем, что изобретатели спроецировали гигантскую MIDI-клавиатуру в несколько метров длиной прямо на пол и станцевали на ней вдвоем Шопена (фальшивили, надо сказать, просто кошмарно).
Эй, это не летающая тарелка!
За свой недолгий век Kinect отметился не только в играх и научных исследованиях, но и в искусстве. Известно как минимум два видеоклипа, снятых при помощи контроллера: это композиция Spalter немецкой группы Genepool, а также хип-хоп Sum of it all австралийской группы The Herd. Очень рекомендуем найти их на YouTube (словосочетания «Genepool — Spalter (Video)» и «THE HERD — The Sum of it All» соответственно). Есть даже фотосессия «Dancing with Invisible Light» (частично в стиле ню), где использовался инфракрасный свет от Kinect.
Оценив, как народные умельцы совершенно бесплатно рекламируют их продукт, Microsoft выпустила официальные драйвера для PC. Их главным достоинством оказалась система распознавания частей тела человека. Тут же появилось множество роботов, управляемых движениями тела. Идея не нова, зато теперь не надо нацеплять на себя кучу разных датчиков. «А что, если управлять не роботом, а человеком?» — подумала пара студентов. И вскоре создала совершенно жуткую систему: первый встал перед Kinect, а второй добровольно нацепил на себя кучу электродов. И началось: первый поднимает руку — система распознает движение и шлет электричество на мускулы второго, заставляя его тоже поднять руку. Если машины все-таки завоюют человечество, эти методы управления им очень пригодятся.
На PC энтузиасты воплотили в жизнь множество идей, которые Microsoft еще только собирается предоставить пользователям Xbox 360. Дошли они и до Москвы. В бутике Topshop торгового центра «Европейский» появилось зеркало, да не простое, а с секретом: покупатели могут примерять на свое отражение разные модели одежды. Конечно же, это всего лишь большой телеэкран, подключенный к компьютеру с Kinect, и подобную виртуальную примерочную вскоре обещают дать и пользователям приставок… Но и сейчас уже очевидно, что Kinect — это не только занятные и необычные устройства, а попытка заглянуть в будущее и выяснить, что может ждать нас там. А ждет нас там все что угодно.