Мозговая атака: как разрабатывают ПО для российских беспилотников
Ездить на автомобилях, увешанных нештатными приборами и мониторами, мне доводилось не единожды. Но это всегда происходило на зарубежных полигонах гигантов мировой автоиндустрии. А сейчас я сижу в кроссовере Nissan X‑Trail, превращенном в испытательную лабораторию специалистами московской компании «Когнитивные технологии». Очень показательно: 12 лет назад я ездил по этому же столичному проспекту на вазовской Самаре, считая ее вполне современной и достойной машиной. А теперь выруливаю на улицу на автомобиле, который практически дорос до того, чтобы поехать без помощи человека.
Русский ум
Пока, конечно, это невозможно. Хотя бы потому, что запрещено законом – в автомобиле, согласно Венской конвенции о дорожном движении, должен быть водитель. Но дорожные знаки, автомобили и пешеходов обвешанный электронными глазами Nissan распознает исправно. Все это отлично видно на экране ноутбука, где иллюстрируется суть работы системы.
Машины-автономники разных производителей почти не отличаются друг от друга набором электронных блоков, датчиков и исполнительных механизмов. Основные изюминки зашиты в программных алгоритмах, управляющих автоматикой. И именно за их секретами я приехал в офис «Когнитивных технологий», где не боятся поделиться некоторыми ноу-хау.
Самое сложное при создании автономных транспортных средств – научить машину ориентироваться и замечать все возможные опасности. Без видеокамер не обойтись. Но обрабатывать данные необходимо со скоростью 20–25 кадров в секунду, а каждый кадр в высоком разрешении содержит миллионы пикселей – требуется мощная (а значит, дорогая) техника.
Находка компании «Когнитивные технологии» – так называемый алгоритм виртуального туннеля. Наши инженеры предложили анализировать лишь зону основного риска. Остальную часть картинки электроника держит в поле зрения, но начинает уделять ей более пристальное внимание, только если там появляются движущиеся объекты, представляющие потенциальную опасность. Фактически это аналог человеческого зрения, к имитации которого тем или иным способом стремятся все разработчики зрения машинного.
Российские специалисты создали, по сути, компьютерную модель фовеального зрения человека: объекты в центре внимания видятся в высоком разрешении, а все остальные – в низком. Ведь при движении на машине на высокой скорости мы смотрим преимущественно вдаль, словно в туннель. Вот и «мозги» автопилота будут обрабатывать в полном объеме лишь 5–10% площади изображения, снятого с объектива видеокамеры.
Кроме того, машинное зрение должно иметь высокую степень адаптации к российским условиям эксплуатации. К примеру, в систему заложена определенная погрешность, возникающая из-за значительных вертикальных колебаний и смещения линии горизонта на разбитых дорогах. При этом приходится жертвовать точностью обработки данных или быстротой, но в конечном итоге такой подход дает более качественную картинку по сравнению с «нежными» зарубежными аналогами.
Зная специфику российских дорог, при разработке алгоритма не полагались и на идеальную дорожную разметку. Линии на асфальте электроника распознаёт по совокупности факторов. Когда знакомые белые или желтые полосы видны компьютерному глазу слабо, он подключает механизм сложной аналитики. Пусть разметка больше похожа на грязные пятна, но если они повторяются через определенные интервалы и сходятся к линии горизонта, то с большой долей вероятности это и является ориентиром. Кроме того, компьютер может обратиться за подсказкой к цифровым картам, в памяти которых есть сведения о количестве полос движения на этом участке дороги.
Похожим образом автоматика распознает и границы дороги. Тут речь даже не о разметке. В России хватает грунтовых трасс, на которых водитель тоже вправе рассчитывать на помощь электроники, а в некоторых регионах по нескольку месяцев в году под снегом не видно даже асфальта. Машинное зрение определяет правильную траекторию по косвенным признакам – по деревьям, ограничительным столбикам и снежным отвалам вдоль дороги, по линии горизонта. Разработчики уверяют, что их электронное детище в таких условиях видит не хуже человека.
Заглянем на кухню
Распознавание объектов на видеозаписи происходит по методу машинного обучения. Сначала накапливается база образов для электронного разума. Ее можно формировать вручную: операторы на каждом кадре отмечают объекты и присваивают им категории (человек, велосипед, дорожный знак, машина). Можно доверить процесс инструментам-детекторам, тогда останется только проверить за ними работу. Когда меток накопится достаточно, система будет сама по аналогам распознавать те или иные объекты.
Отдельная категория – так называемые препятствия общего рода. К ним относятся объекты, которые радары и камеры «видят», но не могут соотнести с заложенной в их память базой. Это, например, животные или упавшие деревья: многообразие их форм и размеров делают попросту невозможным формирование полной базы для компьютерного мозга.
Непросто и с пешеходами. Они тоже сильно отличаются друг от друга в зависимости от пола, возраста, времени года (слишком разнится одежда) и сопутствующих предметов (сумки, зонтики, коляски). Но с пешеходами никаких поблажек разработчики себе позволить не могут: это одна из главных ежеминутных опасностей, а потому система обязана знать все ее нюансы досконально.
Еще один сложный для идентификации элемент – светофор. Автоматика должна не только узнать его, но и определить, какой сигнал в данный момент горит. Электроника ориентируется на характерную форму объекта, возможное место его расположения (выше автомобилей) и цвет включенного сигнала. Программа учитывает, что машина может стоять в левом или правом рядах многополосной дороги, – соответственно изменяется сектор обзора. Вдобавок на некоторых перекрестках в поле зрения камеры попадают сигналы для других направлений движения. Отсечь их помогают подробные цифровые карты, дающие подсказку об архитектуре перекрестка и расположении светофоров на нем.
Если распознавание сигнала опирается только на его цвет, систему в первую же ночь сведет с ума обилие задних габаритных огней. Инженеры закладывают в алгоритм ряд критериев, помогающих компьютеру точно идентифицировать светофоры и не обращать внимания на ложные раздражители. Например, габаритных фонарей у автомобиля должно быть два, они симметрично расположены, а между ними – подсветка номерного знака или третий стоп-сигнал. Если система распознала такой набор признаков, значит это точно не светофор.