15 010
75
03 октября 2018 в 8:00
Автор: Станислав Иванейко. Фото: Влад Борисевич
Спецпроект
«Нейросеть определяла девушек как собак». Просто о машинном зрении и нейросетях

При запуске камеры смартфона незаметно для пользователя происходит чистая магия: каким-то неведомым образом система понимает, где находятся лица, а где — зелень, небо, солнце и как это все максимально красиво сфотографировать. За такие вещи отвечает то, что принято называть компьютерным зрением, а его уже относят к искусственному интеллекту. Но как именно оно работает? В рамках спецпроекта Huawei мы отправились в научно-исследовательскую компанию Synesis, которая занимается интеллектуальными системами видеонаблюдения и управления мультиспортивными мероприятиями, Big Data, ИИ и много чем еще, включая платформу безопасного города KIPOD (работает, например, в московском и минском метро, а также в МВД Беларуси и других солидных учреждениях). Разобраться в компьютерном зрении и искусственном интеллекте нам помог руководитель департамента исследования и разработки Synesis Дмитрий Федоров.

Нейросети и классические алгоритмы

— Искусственный интеллект считается одним из главных трендов в IT. Согласны? 

— И да, и нет. Если вспомнить историю, то первая нейронная сеть была математически выдвинута еще в 1943 году. Через семь лет появился первый алгоритм обучения. Что сейчас получилось: вычислительные мощности продвинулись, и стало очень много данных. Интернет дал возможность, скажем так, майнить эти данные для обучения нейросетей. Отсюда и тренд. Пройдет время — будет что-то другое.

— Например? 

— В технологиях все циклично, и в этой сфере тоже. Если раньше мы разрабатывали «железо», чтобы потом делать под него ПО, то сейчас достигли пика по «железу» для использования нейросетей. Дальше мы будем снова делать новое «железо», чтобы работать с более совершенными алгоритмами.

— Помимо очевидного, где в смартфонах используется ИИ? 

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

Также, допустим, есть направление обработки естественного языка. Это когда вам приходит сообщение «Встретимся сегодня в восемь», и система сразу предлагает добавить в органайзер напоминание о событии. Здесь происходит выделение семантического анализа и ключевых слов.

Вообще, все эти подходы к созданию компьютерного зрения существовали и до появления нейросетей, но были построены на классических алгоритмах. Например, в институтах учат такую задачу: определить наличие шариков подшипников на ленте конвейера. Ее решили еще в 1980-х: камера отделяет фон от предметов, находит центр объекта и определяет окружность. Первая массовая система компьютерного зрения — считывание штрих-кодов лазером. Это сейчас в каждом магазине есть.

Компьютерное зрение — это область знаний, как математика или физика. И у нее есть ряд технологий. Одни построены на классических алгоритмах, а другие работают на нейросетях.

Как обучают нейросеть

— Недавно стали массово появляться процессоры с акцентом на ИИ — допустим, Kirin 970, Snapdragon 845 и другие. У них есть какое-то принципиальное отличие от предшественников?

— В принципе, все процессоры, которые сейчас используются для решения таких задач, построены на архитектурах графических процессоров. Здесь чуточку маркетинга и большая доля технической составляющей. Вычисления нейросетей большие, и делать их нужно очень быстро. Сейчас это хорошо умеют графические процессоры — подход точно такой же, как в 3D-графике: перемножение матриц и так далее. Похожие архитектуры используются для прогона нейронных сетей.

— Опишите процесс: как работает то же распознавание лица при запуске камеры? 

— Каких-то параллелей со зрением человека здесь нет. Искусственная нейросеть — это математическая модель работы той части мозга человека, которая отвечает за подсознание. Все зависит от того, как вы обучите нейросеть. Архитектур и наборов данных много. Нет какого-то универсального черного ящика, который называется искусственным интеллектом и может делать все.

Если взяли нейросеть и обучили ее определять лица, она будет делать только это. Научили отличать кошку от собаки — нейросеть не сможет работать над другими задачами. Причем если навести ее на человека, она все равно скажет, что это либо кошка, либо собака — потому что она никогда человека не видела.

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

— Как происходит это натаскивание нейросети?

— Нам нужно обучить нейросеть определять некий объект — пусть это будет бутылка. Есть несколько подходов. Один — нейросеть end-to-end, то есть когда она будет искать именно такие бутылки, какие ей покажут. А можно сделать нейросеть, которая сперва найдет объект, а потом определит его тип: какая конкретно бутылка? Первую задачу мы называем локализацией, вторую — классификацией.

— То есть нейросеть сканирует окружение на поиск чего-то ей знакомого? 

— Да, ищет то, на чем ее обучили. Показали тысячи изображений бутылок — она будет определять бутылки, но про стаканы ничего не скажет. Мы берем миллионы разных изображений и отмечаем на них нужный нам объект. Все делается вручную. Есть целый штат людей, которые занимаются разметкой дата-сетов. Такая профессия появилась недавно, она уже во многих компаниях есть — разметчик.

— Звучит очень скучно…

— Сейчас мы работаем над тем, чтобы автоматизировать процесс. Но на практике это делается вручную. Показываем на каждой картинке: «Вот это такая бутылка, а вот это — такая». Изображения берутся прямо из интернета, их собирают отдельные специалисты — дата-майнеры. В мире даже соревнования среди них проходят.

Если после сотен тысяч, миллионов итераций мы покажем нейросети бутылку, которой не было в дата-сете, она с какой-то вероятностью определит объект как бутылку. Дальше идет процесс тестирования, верификации.

— Чему сложнее обучить нейросеть, а чему проще? Допустим, бутылка или лицо — разница есть?

— Ну есть, конечно (смеется. — Прим. Onliner.by). Чем больше объект может принимать разных состояний, тем сложнее. С бутылками все довольно просто: они более-менее похожи. Да, бутылка минералки отличается от бутылки вина, но в общем-то не слишком сильно.

А представьте, что мы обучаем нейросеть определять стулья. Их много — каждый день появляются новые. Где-то с четырьмя ножками, а где-то с тремя или двумя. Возможно, наученная на стульях с тремя ножками нейросеть распознает стул, у которого четыре ножки — по крайней мере, она поймет, что это похожие объекты.

Или есть задача: определить автомобиль. Само по себе это довольно просто. Но когда нужно обучить нейросеть поиску конкретной модели или марки, задача уже посложнее: машины одного бренда могут быть похожи на другие и так далее.

Распознавание лиц и Big Data

— Системы распознавания лиц работают по такому же принципу? 

— Зависит от конкретного решения. Мы разработали систему, которая способна различить однояйцевых близнецов. Людям, например, очень сложно их отличать. Близнецы рассказывали, как регулярно пользуются своей схожестью: водительскими правами меняются и все в таком духе. А система видит особенности.

— Определение по лицевым точкам идет? 

— Нет, здесь именно лицевые особенности. Нейросеть находит корреляции и отличия, но не такие, какие замечает человек. И все это закладывается в процессе обучения: нейросеть видела миллионы лиц и может отличать одно от другого. А системы 3D-распознавания лица работают как проекторы: строят что-то вроде маски пользователя в трехмерном пространстве.

— Упомянутый массив данных для обучения нейросети — это то, что называют Big Data? 

— Не обязательно. Big Data может включать, например, базу данных на десять миллионов слов. Или одно изображение, полученное в лабораторных условиях с разрешением, допустим, 10×10 миллионов пикселей — по идее, это тоже Big Data. Все зависит от самих данных. В моем понимании, Big Data — это когда порядок измерений составляет миллионы каких-то единиц.

Основное применение — поисковики. Раньше мы запрос вводили целиком, а теперь Google на ходу подсказывает варианты поиска. Почему так происходит? Поисковик обучился на множестве разных примеров, когда люди начинали писать примерно то же — возможно, они похожи на вас, потому что вы залогинены в Facebook, или это люди из вашего региона, со схожими интересами. Здесь работает «облачный» искусственный интеллект.

Второй пример — поиск по картинкам. Это задача компьютерного зрения и Big Data. Если очень упрощенно, то где-то в «облаке» хранятся хэши картинок. Хэш — цифровое описание, аннотация изображения в понятном системе формате. Нейросеть переводит изображение в числовое значение, и поиск идет по похожему числу.


В теме искусственного интеллекта мы разбираемся вместе с Huawei. На IFA 2017 компания представила первую мобильную платформу для ИИ — чипсет Kirin 960. Позже технологии были использованы в смартфонах Mate 10ProP20 и P20Pro с камерой Leica. Алгоритмы камеры сами выставляют настройки для ночной съемки или под 19 других категорий, моделируют портреты, помогают с яркостью, детализацией и цветопередачей, дают советы по выстраиванию композиции фотографии.


Партнерский проект подготовлен при поддержке ООО «Бел Хуавэй Технолоджис» УНП 190835312.

Читайте также:

Наш канал в Telegram. Присоединяйтесь!

Быстрая связь с редакцией: читайте паблик-чат Onliner и пишите нам в Viber!

Перепечатка текста и фотографий Onliner.by запрещена без разрешения редакции. nak@onliner.by

Автор: Станислав Иванейко. Фото: Влад Борисевич