Полноценных школ по компьютерному зрению, таких, чтобы участники могли получить опыт от разработчиков алгоритмов из крупных технологических компаний, осталось очень немного. В этом плане больше всего повезло студентам из Нижнего Новгорода, ведь каждое лето силами преподавателей Университета Лобачевского и инженеров компании Intel проводится Computer Vision Summer Camp - Летняя школа по компьютерному зрению. А для тех, кому не удалось на нее попасть, мы расскажем самое важное и интересное…
С 5 по 26 июля проходила Межвузовская Летняя школа Intel по компьютерному зрению — Computer Vision Summer Camp, в которой приняло участие более 100 студентов из Нижнего Новгорода и соседних областей. В течение трех недель студенты слушали лекции, решали практики и выполняли групповые проекты, чтобы прокачаться в такой интересной области, как компьютерное зрение.
Канва школы была составлена таким образом, чтобы участники школы “прошли” через все этапы становления компьютерного зрения: становление зрения живых организмов -> машинное обучение и развитие классического компьютерного зрения -> современные алгоритмы компьютерного зрения и глубокого обучения. Именно поэтому Школа стартовала с очень познавательной лекции “Эволюция зрения в природе и в машинах”, которая погрузила всех участников в предметную область.
На лекциях студенты знакомились с основными возникающими задачами компьютерного зрения и историческим развитием алгоритмов их решения:
Классификация изображений;
Детектирование объектов;
Сопровождение объектов;
Семантическая сегментация изображений;
Для того, чтобы расширить кругозор студентов, программа Школы также включала задачи глубокого обучения, которые выходят за рамки компьютерного зрения - это генеративные состязательные сети и обработка естественного языка. Не обошлось без персонажей из мемов.
Помимо “академической” части Школа знакомила с инструментами для создания приложений компьютерного зрения - библиотек OpenCV и OpenVINO. На прошлых школах основным языком программирования был язык C++, но в этом году основным языком обучения стал Python. Студенты узнали что такое OpenVINO и как его использовать для достижения максимальной производительности, какие готовые демо-приложения содержатся в зоопарке моделей Open Model Zoo и как на их основе быстро собрать MVP для собственного решения. В Open Model Zoo собрано более 50 демо-приложений, среди них можно встретить и распознавание рукописных формул в LaTex, и колоризацию изображений, и распознавание действий водителя, и сегментацию трехмерных медицинских данных.
Также инженеры Intel рассказали про NNCF - библиотеку оптимизации нейронных сетей с помощью их сжатия. Участники познакомились с алгоритмами оптимизации моделей - квантизации и бинаризации весов, создания разреженных моделей с помощью удаления весов и ребер, и прунинга моделей.
Помимо уже хорошо известных технологий, студенты познакомились с самой свежей разработкой - Model API. Model API это новый функционал OpenVINO, обеспечивающий быстрое и легкое построение оптимизированных конвейеров запуска глубоких моделей. Для студентов-программистов, впервые сталкивающихся с асинхронной обработкой данных, тяжело построить эффективный конвейер с OpenVINO для минимальных задержек в обработке; Model API реализует это за пользователя. К моменту проведения школы в Model API еще не было функционала по созданию асинхронного конвейера для каскадов из нескольких глубоких моделей, очень возможно что ребята из Школы будут решать эту задачу в качестве интернов Intel.
В этом году лекционные и практические занятия были смещены в первую половину школы, чтобы студенты смогли плодотворно поработать над собственными разработками в области компьютерного зрения. Наставниками студенческих микрокоманд были инженеры Intel, которые делились своим опытом и помогали научиться командной работе. Команды выбрали из списка 8 задач, которые они решали с помощью OpenCV и OpenVINO.
Just dance. Это как Twister, только с использованием экрана в качестве коврика. На экране появляются точки, куда игрок должен "положить" руку или ногу. Ребята сделали соло режим и режим на двоих.
Magic Piano. По видео с RGB камеры (без камеры глубины) определялось положение пальцев рук, детектировалось “нажатие” на клавиши и воспроизводились нужные тона.
Quick, Draw! Участники реализовали приложение в котором с помощью указателя-маркера игрок должен нарисовать в воздухе заданный предмет так, чтобы глубокая модель угадала его по контуру. Для этого они взяли датасет MS COCO и выделили из изображений объектов контуры.
Без масочки не обслуживаем. Приложение для детектирования медицинской маски на лицах, попадающих на камеру, и подсчет людей в масках и без.
Pet-tracker. Участники представили свое видение решения задачи Multiple Object Tracking для домашних животных. Версия с капибарой в разработке.
MemCheck. Мини-игра, которая позволяет оценить уровень мемов той или иной площадки. С помощью изображения с веб-камеры и звука с микрофона определяется уровень счастья участника игры, и заполняется шкала радости.
GoodBoy bot. Telegram bot для классификации породы собаки по присланной фотографии и получения описания этой породы. Если ему прислать фото кота, то он в ответ пришлет милую фразу про котика.
Time machine. Команда собрала приложение для комплексного улучшения старых изображений и видео. Студенты провели мини-исследование качества и производительности различных алгоритмов восстановления изображений для удаления царапин и пустот, колоризации изображений и увеличения разрешения картинки.
Полученные за время школы знания точно пригодятся участникам в учебе и работе. Также мы надеемся с ними продолжить взаимодействие в других наших проектах, например на предстоящей Зимней школе по оптимизации ПО.
Материалы Школы доступны всем желающим на GitHub. А видео с лекций и практик доступны в группе Интел в ВК.