«За три года я победил в семи международных соревнованиях по ИИ». Лайфхаки и стратегии финалиста конкурсов NASA и Google

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Аммар Али вместе со своим другом  Жаафаром Махмудом взяли золото каггла по созданию 3D-реконструкции. Их команда вошла в топ-10 победителей конкурсса Google Image Matching Challenge 2023. Аммар Али работает старший инженер-исследователь MTS AI и учится в аспирантуре ИТМО на факультете информационных технологий и программирования, его друг Жаафар тоже аспирант ИТМО, но учится на факультете систем управления и робототехники. В Image Matching  от Google они принимают участие второй год подряд. В 2022-м вошли в топ-30. Для Аммара это далеко не первая победа в международном конкурсе. Мы решили узнать у него подробности - какое решение принесло им золото Image Matching Challenge 2023, и как вообще победить на международных соревнованиях по ИИ.

— Аммар, поздравляем тебя с победой. Расскажи немного о конкурсе.

— Google Image Matching Challenge проходит ежегодно, начиная с 2019-го. В этом году конкурс длился два месяца с 11 апреля по 12 июня. Целью было создать 3D-реконструкцию объекта по датасету из фотографий. Честно говоря, для меня это было немного сложнее, чем в прошлом году, потому что требовались не только знания в области машинного обучения. Нам было нужно применить дополнительные алгоритмы, математическую оптимизацию структуры для построения 3D-реконструкции, где до сих пор специализировались на Slam в целом в робототехнике. В конкурсе я отвечал за часть задач, связанную с искусственным интеллектом, а Жаафар занимался  оптимизацией и настройкой алгоритмов. 

— Какое решение вы предложили? 

— Наш способ решения задачи включал в себя целый набор инструментов. Мы создали нейросеть, которая анализировала изображение, ракурс объекта и поворачивала его, если это требовалось. Далее нам нужно было собрать как можно больше пар изображений. Обычно для таких задач разработчики используют все возможные пары. Но в данном соревновании это невозможно из-за временных рамок. У нас было максимум девять часов на то, чтобы решение было доступно для всего набора данных. Итак, мы  находили пары изображений с наибольшим совпадением ракурса и расположения объекта на фото, чтобы извлечь из них сам объект. Таким образом, мы рассчитывали поворот и перемещение изображений, а после этого строили облако точек. Для этого мы создали поисковую систему,  которая находит наилучшее соответствие предыдущему изображению. За этим следует извлечение объектов из изображения в качестве локального дескриптора и их сопоставление. Итак, мы находим общие точки и соединяем их. И это только ML-часть. После этого за дело брались математические алгоритмы, такие как настройка пакета оптимизации и BMW. На этом этапе главная сложностью заключалась в следующем: на каждом изображении было несколько соединенных между собой точек. И нам нужно было  найти правильный поворот, чтобы мы могли построить наше облако точек, а затем выполнить триангуляцию с корректировкой лучей. Так что эта часть больше похожа на множество инструментов. Это не ml, это больше похоже на математику и оптимизацию.

— Скажи, какие способы решения этой задачи у вас не сработали? 

— В течение двух месяцев мы каждый день могли отправлять по пять вариантов решения задачи. При этом отправляли не результат, а код, который запускался на платформе организаторов. Код должен был работать в течение девяти часов. Мы перепробовали огромное количество методов, которые в итоге не привели нас к успеху. Например, мы тестировали pixel-perfect-sfm. На бумаге он давал хорошие результаты и, казалось бы, усилил наш пайплайн, но при проверке не сработал. Помимо этого, мы тестировали самые современные методы выделения признаков для плотного сопоставления, но безуспешно. Мы попробовали некоторую фильтрацию по ключевым точкам, метод суперклея. И это тоже не сработало.  

— Ты знаком с решениями, которые предложили другие команды? Как ты их оцениваешь? 

— Честно говоря, самое лучшее решение предложили участники из Китая. Они создали принципиально новую архитектуру, которая позволяла улучшить результаты. Они действительно сделали свою работу на отлично. Какой-то другой участник использовал, например, оптимизацию с использованием математики для того, чтобы достичь результатов.  Мы в свою очередь стали лучшими участниками, которые использовали только одну нейронную сеть. 

— В каких соревнованиях по искусственному интеллекту ты участвовал раньше? 

— За последние три года я выиграл семь международных конкурсов по машинному обучению в различных сферах. В том числе я победил в соревновании, организованном при поддержке NASA. Там нужно было рассчитать индекс солнечного ветра, используя данные из космоса, и создать модель предсказания  электромагнитных штормов в поле Земли. Далее был конкурс, где требовалось создать поисковую систему для спасения китов, которым угрожает опасность из-за станции “Стик”. 

Также я выиграл четыре конкурса AI Journey.  В 2021 году это было соревнование по компьютерному зрению. Участники создавали  алгоритмы, способные распознавать знаки на железной дороге при отправлении поезда. В 2022-м я одержал победу  сразу в нескольких конкурсах: AI4Talk, AI4Biology, FusionBrain. Подробнее о них можно узнать здесь. На этих соревнованиях мы создавали модели speech-to-text, text-to-speech для редкого языка, используемого в России, разрабатывали классификатор бактерий по спектральной информации. Еще один конкурс был посвящен созданию мультимодального приложения, способного  решать 12 различных задач, включая Math Question Answering, Test Question Answering, Visual Question Answering,  Image generation, Image captioning, Optical character recognition

Помимо этого, я выиграл хакатон, организованный компанией Evraz. Он не связан с соревнованиями AI Journey. Здесь мы разрабатывали  систему обнаружения опасности для сотрудников, работающих на заводе. И это только конкурсы, в которых я победил, тех, где я участвовал, наберется гораздо больше. 

— Какие рекомендации ты бы дал тем, кто хочет не просто принять участие в международных конкурсах по искусственному интеллекту, а победить? 

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

Если кому-то хочется участвовать в соревнованиях по нескольким направлениям, то это тоже вариант. Правда, придется потратить гораздо больше времени на то, чтобы читать статьи, совершенствоваться в различных сферах ИИ, и принимать участие в различных конкурсах. 

Источник: https://habr.com/ru/companies/mts_ai/articles/754798/


Интересные статьи

Интересные статьи

Привет! Меня зовут Сергей, я Flutter‑разработчик SimbirSoft. В этой статье хочу поделиться интересным платформоспецифичным кейсом для мобильных устройств и ТСД. Нам с командой удалось с...
Привет читателям Хабра! Меня зовут Сергей Кузнецов, я руковожу отделом frontend-разработки в компании AGIMA. Сегодня мне бы хотелось поговорить про оптимизацию сайта...
«Я работаю в Google над рекламой» «Почему? Я искренне не понимаю, что кто-то может этим заниматься.» Кто-то недавно спросил меня: «Почему я работаю над рекламой?» Я захотел написа...
С недавнего времени к нам начало поступать много ошибочных звонков. Люди звонили и хотели заказать такси, купить что-то в Озоне, спрашивали Почту России и прочие услуги, ...
Привет, Хабр! Я люблю считать и собирать данные! 2020 год состоял из 8784, 4874 из которых я смог учесть в собранной мною статистике. Я знаю как потратил 55% всего времен...