С 3 по 16 июля на базе ННГУ им. Н.И. Лобачевского проходила Межвузовская Летняя школа Intel по компьютерному зрению — Computer Vision Summer Camp, в которой приняло участие более 100 студентов. Школа была направлена на студентов технических специальностей нижегородских вузов, которым интересно компьютерное зрение, глубокое обучение, нейронные сети, Intel OpenVINO, OpenCV.

В данной статье мы поделимся тем, как проходил отбор в Школу, что изучали, чем в практической части занимались ребята, а также расскажем о некоторых проектах, представленных на защите.

Процесс отбора и формы участия


Мы решили предоставить ребятам выбор подачи заявки на две формы обучения: очную и очно-заочную. На очно-заочную форму студенты не проходили отбор и зачислялись сразу. Они посещали только лекции, по будням, в первой половине дня. Также у ребят была возможность выполнять практические задания и отправлять их на GitHub для проверки преподавателями.

Чтобы пройти в очную форму, ребятам предстояло приехать в офис Intel на собеседование с комиссией. Отличие от очно-заочной формы заключалось в том, что помимо лекций участники лагеря разбирали практические задания с кураторами — преподавателями ННГУ и инженерами из Intel. На второй неделе практические задания закончились и начались проекты, над которыми участники работали в группах по 3 человека.

На собеседовании студентам задавали вопросы по математике и программированию, а также давали задачу, которую нужно было решить на месте. Стоит отметить, что комиссия состояла из инженеров-программистов, инженеров-алгоритмистов, и преподавателей университета им. Н.И. Лобачевского, поэтому собеседование получилось многосторонним и незаурядным. С точки зрения собеседующего, было интересно выяснить базовые технических знания студентов применительные к компьютерному зрению, поэтому спрашивались такие темы, как С++/STL, ООП, базовые алгоритмы и структуры данных, линейная алгебра, математический анализ, дискретная математика и многое другое. Из задач приоритетно было узнать рассуждения студентов. Также комиссия интересовалась, где они учились, какой опыт у них был до этой школы (к примеру научная деятельность) и как его можно было бы применить непосредственно к сфере компьютерного зрения.

Всего в отборе на очную форму приняло участие 78 студентов, в то время как мест в очной форме было 24. Конкурс составил 3 студента на место. Статистику по участникам и наглядные различия очной и очно-заочной формы участия вы можете увидеть в нижеприведенной таблице:



Чем занимались ребята на протяжении 2 недель?


Студенты в теории и на практике познакомились с основными задачами компьютерного зрения: классификацией изображений, детектированием объектов и их сопровождением. Лекционная составляющая по каждой теме как правило включала в себя исторический экскурс в развитие классических методов решения задач компьютерного зрения и современные методы решения при помощи машинного обучения и нейронных сетей. За теорией шла практика, где студенты, скачав популярные нейросетевые модели, запускали их при помощи модуля DNN библиотеки OpenCV, создавая пользовательское приложение.

Презентации всех лекций выкладывались в публичном репозитории Github, чтобы студенты всегда могли открыть и посмотреть необходимую информацию, в том числе и после школы. Пообщаться с лекторами, преподавателями практики и инженерами Intel можно было как вживую, так и через чат в Gitter. Удачным оказалось и время проведения проектной недели: она начиналась в среду, что позволяло с пользой потратить выходные дни, свободные от лекций, улучшая командные решения. Самые ответственные участники провели половину субботы в офисе Intel, за что были поощрены внеплановой экскурсией в тот же день.

Как проходила защита проектов?


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

По завершении дня мы присвоили одно первое, два вторых и три третьих места. Выбирать было довольно сложно, потому что каждая команда, каждый проект имел свою изюминку и отличался оригинальностью подачи.


Участники очной формы CV Camp, защита проектов, офис Intel в Нижнем Новгороде

Представленные проекты


Умная перчатка




Использование детектора и трекера с помощью OpenCV для визуальной навигации в пространстве. Команда дополнительно добавила возможность определения глубины, используя две камеры. В качестве интерфейса управления используется Microsoft Speech API.

Рецептор




Детектирование еды и подбор рецепта готового блюда, включающего найденные ингредиенты. Ребята не побоялись поставленной задачи и за неделю собственными силами разметили достаточное количество изображений, натренировали детектор с помощью TensorFlow Object Detection API и добавили логику по нахождению рецепта. Просто и со вкусом!

Монтажер 2.0




Участники проекта применили совокупность нейронных сетей (поиск лица, нормализация изображения лица по ключевым точкам, вычисление дескриптора изображения лица) для распознавания лиц в рамках задачи поиска фрагментов в длинных видео, на которых присутствует определенный человек. Разработанная система может быть использована в качестве системы помощи при видеомонтаже, освобождая человека от необходимости самому просматривать видео в поисках нужных фрагментов. Используя нейронные сети из библиотеки моделей OpenVINO, команде удалось достичь высокой скорости работы приложения: на ноутбуке с процессором Intel Core i5 скорость обработки видео составляла 58 кадров в секунду.

Анонимайзер




Отрисовка очков и масок на лице человека. Для детектирования лиц и ключевых точек была использована сеть MTCNN.

Анонимус




Ещё одна интересная работа на тему сокрытия личности. Эта команда представила несколько вариантов искажения лиц: размытие и пикселизацию. За одну неделю ребята не только разобрались с поставленной задачей, но и предоставили режим анонимизации конкретного человека (с распознаванием по лицу).

Разминка


Команда проекта “Разминка” решала задачу создания спортивного помощника для упражнения наклонов головы. И если даже финальное применение данного приложения всё ещё остается спорным, было проведено емкое исследование по сравнению различных алгоритмов детектирования лица: каскады Хаара, сети из TensorFlow, OpenCV и OpenVINO. Размялись не только физически, но и умственно!

Нижний 800




Нижнему Новгороду, городу где и проходила школа, через 2 года исполнится 800 лет, а это значит, что есть достаточно времени, чтобы реализовать интересный проект. Мы предложили ребятам подумать над задачей создания гида, который по изображению фасада зданий может выдать информацию о том, что за объект представлен на изображении и какие факты о нем известны. На наш взгляд, эта задача являлась одной из самым сложных, поскольку относится к классическому компьютерному зрению, но команда показала достойный результат.

Камень, ножницы, бумага


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

Отзывы участников


Мы попросили студентов разных курсов поделиться своими впечатлениям о Летней школе:

Недавно мне посчастливилось пройти обучение в Intel Computer Vision Summer Camp, и это был замечательный опыт. Мы получили много новых знаний и навыков в области CV, установки ПО, отладки, также были погружены в рабочую обстановку, сталкивались с реальными проблемами, обсуждали возможные решения с коллегами и преподавателями школы.Существует миф, что работа программиста заключается исключительно в общении с компьютером. Однако это не так от слова совсем. Наша творческая работа неотделима от общения с людьми. Именно коммуницируя, можно было получить уникальные знания. И эта составляющая школы понравилась мне больше всего. Однако есть один минус… после окончания обучения хотелось продолжения! Помимо теоретических знаний в DL и практических навыков в CV, я получила представление о том, каким областям математики стоит уделить особое внимание, какие технологии следует изучить. Целеустремленность, профессионализм и любовь к своему делу инженеров и исследователей Intel повлияли на мой выбор направления в IT. Именно за это хотелось бы поблагодарить всех организаторов школы.
Кристина, 1 курс, ВШЭ

За такое короткое время школа смогла дать максимум информации и практики по теме компьютерного зрения. И хоть она и была рассчитана на начальные знания, лекции содержали много технического материала, с которым хочется разобраться и потратить ещё время на изучение. Менторы и лекторы школы охотно отвечали на все вопросы и общались со слушателями. Ну а во время выполнения финального проекта пришлось окунуться в дебри разработки готового приложения и столкнуться с трудностями, которые не всегда возникают при учебе. Наша команда в итоге сделал приложение для игры с компьютером в игру «камень-ножницы-бумага». Натренировали модель, распознающие фигуру на веб-камера, написали логику и сделали интерфейс на основе фреймворка opencv. Школа дала пищу для размышлений и вектор для последующего обучения и развития. Очень, доволен, что поучаствовал.
Сергей, 3 курс, ННГУ

Школа не совсем оправдала моих ожиданий. Лекции проводились довольно опытными людьми из разработчиков компании Intel. Общение с лекторами всегда было интересным и полезным, наставники отзывчивые, всегда готовые помочь.Лекции приятно слушать, темы довольно актуальны и информативны. Но некоторые вещи я и так уже знал, а те, что не знал, никак не подкреплялись практикой, в связи с чем действительно хороший материал так и не был до конца мною понят и изучен. Да, большинство информации подано в ознакомительных целях, чтобы затем опробовать ее уже дома, либо просто представлять о чем идет речь, но все же хотелось реализовать некоторые существующие алгоритмы самостоятельно под надзором опытных педагогов, которые могут дать дельный совет или помочь, если что-то не получается. В итоге на практике использовались уже готовые решения, а код, можно сказать, предварительно был написан за нас, требовалось лишь слегка его изменить. Проекты были простейшими, а если пробуешь усложнить каким-нибудь образом задачу, то тебе не хватает времени на ее реализацию до более-менее стабильного состояния, как это произошло у нас.
В целом вся школа похожа на некую не слишком серьезную игру в разработчиков и в этом вина как раз-таки практической части. Я думаю, что нужно увеличить время на проведение школы, усложнить материал практик, чтобы можно и нужно было писать что-то самому, что-то действительно сложное и нужное, а не использовать готовое, сделать практику более плавной в увеличении сложности, темы на конкурсные проекты выдавать в первые дни, чтобы материал с лекций и практик можно было использовать сразу в своих проектах и было больше времени на реализацию. Тогда время, потраченное на школу, послужит хорошим опытом для начинающих специалистов.
Дмитрий, 1 курс магистратуры, НГТУ

Летняя школа от компании Intel предстала огромным шансом провести это лето, занимаясь любимым делом. Сам факт того, что лекции вели работники Intel, связанные с программированием в сфере компьютерного зрения, не давал расслабиться, хотелось взять максимум от всего процесса, хотя это и было иногда тяжело. Каждый день проходил очень быстро, незаметно и плодотворно. Возможность реализации своего собственного проекта позволила поработать в команде с замечательными кураторами и другими участниками школы. Коротко описать эти две недели можно так – интересно и мимолётно.
Елизавета, 2 курс, ННГУ

Осенью (октябрь-ноябрь) вас ждёт образовательная программа Delta, информацию о которой вы сможете узнать из нашей группы Вконтакте. Следите за обновлениями!