Например, увидев человека, сидящего за столом в определенной позе, мы можем сделать вывод, что он держит ручку, нацелившись на лист бумаги, хотя на самом деле не видим ни того, ни другого.
Когда мы что-то «видим», мы, по сути, каждый раз задействуем все накопленные ранее знания о мире — все, что узнали за свою жизнь о перспективе, геометрии, здравом смысле и обо всем том, что видели до этого. У человека это происходит просто и естественно, но научить тому же самому компьютер крайне сложно.
Компьютерное зрение — область исследований, которая пытается преодолеть трудности и сделать так, чтобы компьютеры умели видеть и понимать то, что они видят.
Уже сегодня мы практически ежедневно соприкасаемся с технологиями компьютерного зрения.
Их можно использовать в режиме реального времени в разнообразных областях — от транспорта до сферы безопасности. Приведу примеры.
• В автомобилях устанавливаются системы помощи водителю «Антисон», не дающие уснуть за рулем.
• Магазины без касс и очередей — типа Amazon Go: установленные в них камеры сами распознают товар, который вы кладете в корзину или возвращаете на полку.
• Охрана аэропортов (подсчет количества людей, распознавание террористов).
• Распознавание жестов (баллы за движения в танцевальных играх для Xbox).
• Распознавание лиц (использование лица пользователя для разблокировки мобильного телефона).
• Смарт-камеры (портретный режим вашего iPhone распознает и выделяет людей на переднем плане, а затем красиво размывает фон для создания эффекта фото, сделанного зеркальным фотоаппаратом).
• Военное дело (определение, кто напротив — солдат противника или мирный житель).
• Автономные системы навигации дронов и автомобилей.
В самом начале рассказа «Боги под масками» мы видели, как системы распознавания лиц используются в реальном времени для автоматической оплаты проезда — путем идентификации пассажиров, проходящих через турникет вокзала. И узнаем, что пешеходы, используя жестикуляцию, могут взаимодействовать с мультяшными животными в уличной рекламе. А смартстрим Амаки использует компьютерное зрение для распознавания городских улиц и указания маршрута, помогает ему добраться до незнакомого пункта назначения.
Кроме того, компьютерное зрение можно применять к изображениям и видео — не такими прямолинейными способами, но не менее полезными и важными. Приведу примеры:
• Интеллектуальное редактирование фотографий и видео (такие инструменты, как Photoshop, широко используют компьютерное зрение для удаления эффекта красных глаз и улучшения качества селфи).
• Анализ медицинских снимков (для определения наличия злокачественной опухоли на КТ-снимке легких).
• Модерирование (цензурирование) контента (обнаружение порнографического и насильственного контента в социальных сетях).
• Подбор сопутствующей рекламы, основанный на содержании конкретного видео.
• Интеллектуальный поиск изображений (находит нужное по ключевым словам или другим изображениям).
• И, конечно же, создание дипфейков (подмена лиц в видео).
В «Богах под масками» рассказывается об инструменте для создания дипфейков, который, по сути, является ничем иным, как автоматическим инструментом для редактирования видео; он по частям подменяет одного человека другим, начиная с черт лица, пальцев, ладоней и голоса и заканчивая жестами, походкой и мимикой. Поговорим об этом подробнее.
Заставить компьютерное зрение работать на основе стандартной нейронной сети оказалось очень непростой задачей — ведь любое изображение состоит из десятков миллионов пикселей, и научить систему глубокого обучения находить тончайшие подсказки и признаки в огромном количестве изображений — это, согласитесь, даже звучит устрашающе. В поисках вдохновения в деле усовершенствования этой технологии исследователи обратились к человеческому мозгу.
Зрительная зона коры головного мозга задействует нейроны, соответствующие множеству ограниченных областей (известных как рецептивные поля, или поля восприятия), в рамках которых наши глаза фиксируют изображение в любой конкретный момент времени. Рецептивные поля идентифицируют основные признаки видимых объектов: формы, линии, цвета или углы. Эти детекторы соединены с неокортексом, верхним слоем коры головного мозга (новой корой).
Неокортекс хранит информацию иерархически и обрабатывает выходы полей восприятия, преобразуя их в более сложную интерпретацию сцены.
Наблюдения за тем, как «видят» люди, и вдохновили разработчиков на изобретение так называемых сверточных нейронных сетей (CNN — convolutional neural networks). Самый низкий слой CNN состоит из большого числа фильтров, которые многократно применяются к изображению. Каждый из этих фильтров, как и рецептивные поля, может видеть только небольшие смежные участки изображения.