Привет! Я Валентин Хрульков — исследователь из команды Yandex Research. Мы регулярно посещаем отраслевые конференции, а после делимся на Хабре впечатлениями: кто из докладчиков запомнился, какие стенды невозможно было обойти стороной, чьи постеры привлекли больше всего внимания. 2020 год внёс существенные коррективы в привычное расписание: многие события были отменены и перенесены, однако организаторы некоторых из них рискнули попробовать новые форматы.
CVPR 2020 — это 7600 участников, 5025 работ, событий и взаимодействий, 1,497,800 минут дискуссий — и всё онлайн. Больше подробностей — под катом.
Как это было: планы VS реальность
Conference on Computer Vision and Pattern Recognition — одно из самых крупных мероприятий такого рода в сфере технологий компьютерного зрения и распознавания образов — вы наверняка и сами оценили цифры выше. Добавим букв: рейтингов конференций существует довольно много, критериев их составления — ещё больше, но верхушка списка почти всегда маркируется «А». CPRV — A, A1 и A* — топовая, наряду с ICCV и ECCV. Заявки проходят строгий отбор: к участию допускают примерно 20% всех поданных на рецензию статей. По умолчанию — с постерными докладами: плакаты вывешивают в свободном доступе, презентация материалов авторами обычно не предусмотрена. Лучшим предлагают выступить с устными докладами — около 25% приглашённых. В этом году было подано 6656 заявок, одобрено — 1470, устных докладов — 335. Также в программе — встречи с представителями индустрии, стенды компаний, нетворкинг. Три из пяти дней отведены под воркшопы и мастер-классы.
В этом году всё переехало в онлайн: постеры — на сайт конференции, стенды — на лендинги, а доклады, обсуждения и образовательные мероприятия — в Zoom. Без накладок, конечно, не обошлось, но вряд ли кого-то ещё можно удивить историями про неловкие ситуации во время онлайн-трансляций. Ощущалось отсутствие живого общения, когда к любому, даже самому крутому специалисту можно подойти поговорить в неформальной обстановке. Обсуждая впечатления внутри команды, мы пришли к следующим выводам:
Минусы
- Очень большой оргвзнос за онлайн-участие: 350–500$. Например, смежная по тематике и не слишком уступающая по популярности конференция ICLR, которая также прошла полностью виртуально, снизила оргвзнос до 100$.
- Мало живого общения. Не стоит недооценивать этот пункт: всё-таки иногда вопросы коллег из других команд и компаний заставляют по-новому взглянуть на свой продукт.
- Не всё может переехать в онлайн: выставки, демонстрации свежих устройств и прототипов, к сожалению, не состоялись.
- Часовые пояса: конференция проходила по времени Сиэттла. Заседания каждой секции проводились по два раза, с интервалом в 12 часов: можно было выбрать, когда удобнее послушать интересные доклады. А вот воркшопы и туториалы не дублировались. Особенно непросто приходилось организаторам и участникам мероприятий, длившихся целый день.
Плюсы
- Удалённое участие всё же дешевле: нет издержек на транспорт и проживание.
- Легко переключаться между событиями: достаточно перейти по ссылке.
- Опыт подготовки материалов на серьёзное мероприятие во всё более популярном виртуальном формате.
- Авторам постерных докладов дали слово: на сайте конференции можно было разместить минутный видеокомментарий к плакату.
- Домашняя еда и никаких очередей.
Ту самую очередь увековечили на cvpr20.com:
Туториалы: онлайн VS офлайн
С дистанционными докладами всё сравнительно легко: устные — транслировать или записывать, постерные — размещать на сайте. А как адаптировать мероприятия требующие постоянного взаимодействия между участниками и организаторами: воркшопы, конкурсы, туториалы?
Мы знаем, что коллеги из Толоки и команды беспилотников Яндекса волновались, удастся ли их совместный мастер-класс: хотя для них это уже четвёртый туториал, онлайн его проводили впервые. В офлайне как-то проще: есть вопрос? Поднимите руку — организаторы поспешат вам на помощь. А вот как не упустить аудиторию в целом и отслеживать сложности каждого участника в групповой конференции в Zoom, было не слишком очевидно.
Туториал Efficient Data Annotation for Self-Driving Cars via Crowdsourcing on a Large-Scale был рассчитан на целый день, в нём приняли участие около 70 человек — кто-то из науки, кто-то из индустрии. Начали со знакомства с Толокой и её возможностями (как работает и что умеет платформа, рассказывали, например, здесь). После участникам предложили две задачи: сложную демонстрационную и посильную практическую. Обе, кстати, настоящие: с подобными задачами сталкивается команда, которая учит наши беспилотные автомобили распознавать объекты.
В какой-то момент процесс развития любой технологии спотыкается о необходимость тестов на специфическом наборе данных, отличном от классических и тех, что в открытом доступе — либо что-то ломается и требует ремонта, либо где-то можно улучшить, но стоит предварительно проверить. Впрочем, какой бы ни была причина, нестандартные данные придётся собрать и разметить самостоятельно.
Безопасно ездить беспилотные автомобили уже умеют, но разработчики компьютерного зрения постоянно улучшают используемые алгоритмы и модели. Для этого регулярно требуется расширять датасеты как в количественном смысле, так и с точки зрения типов распознаваемых объектов. На автомобили устанавливают камеры и лидары, в поездках одновременно записываются два типа данных: 2D-изображения (фотографии) и 3D-облака (поточечное представление поверхностей вокруг автомобиля, зафиксированое лидаром). На демонстрационной задаче показали, как устроены настоящие SDС проекты в Толоке, внутри которых эти данные сопоставляют и превращают в тренировочные датасеты. Постарались охватить весь процесс: в каком виде приходят изображения извне, как оформить их в задания и верифицировать результаты.
Второй, посильной задачей было собрать датасет с выделенными дорожными знаками, пригодный для обучения систем компьютерного зрения беспилотного автомобиля. Стартовый набор каждого участника — инструкция, тестовый аккаунт Толоки и 100 сырых фотографий (дорожные знаки были не на всех, их предстояло отсортировать). Разметка такого количества изображений происходит за пару минут — каждый день Толоку посещает около 30 000 исполнителей, задания разбирают быстро. Но до этого следовало продумать план: декомпозировать исходную задачу, продумать «флоу» процесса — связи между этапами, решить как организовать контроль качества выполнения. Окончательный пайплайн выглядел так:
Что запомнилось
Не только переезд в онлайн! Интересных материалов было очень много, ограничиться несколькими из них для этой статьи оказалось действительно сложной задачей. Участники конференции из Kitware, IBM и Cornell, кстати, свои предпочтения визуализировали.
Cross-Batch Memory for Embedding Learning: как выиграть в качестве и не сильно потерять в остальном
В существующих пайплайнах обучения эмбеддингов для поиска похожих изображений тренировочные пары или триплеты формируются внутри каждого батча: и чем он крупнее, тем выше качество выходных результатов. Но из-за ограничений по GPU памяти батчи не могут быть очень большими: эффективное количество обучающего сигнала от любого из них будет мало.
Авторы статьи предлагают простой способ существенно увеличить число обучающих пар на каждой итерации обучения: поскольку на поздних этапах обучения эмбеддинги, спродуцированные моделью, меняются незначительно, эмбеддинги, вычисленные на предыдущих итерациях, можно просто запомнить и использовать при составлении пар/триплетов на последующих. Эта простая модификация приводит к существенному увеличению качества (проверено на трёх академических датасетах) ценой нескольких строчек кода и незначительного роста потребления памяти.
CNN-generated images are surprisingly easy to spot… for now: как распознать фейк
Вероятностные модели (в первую очередь GAN’ы) генерируют всё более реалистичные изображения и видео, которые легко использовать недобросовестно: заподозрить подвох на глаз практически невозможно. На большом датасете картинок, порождённых state-of-the-art GAN’ами, авторы обучили классификатор, отличающий настоящие фото от несуществующих.
Результаты обнадёживают: какими бы правдоподобными не казались нам фейки, классификатор отлично справился с задачей. Более того, даже если обучать его на картинках, сгенерированных только одной GAN, он распознает обманки, созданные другими нейросетями.
Learning Better Lossless Compression Using Lossy Compression: использовать потери, чтобы избавиться от них
Предлагается новый способ сжатия изображений без потерь (lossless). Идея проста: применить state-of-the-art необучаемый метод с потерями (lossy), а затем в lossless режиме закодировать лишь остаток от сжатия с потерями.
Интуиция в том, что остатки обычно распределены проще и для их lossless кодирования необходимо небольшое число бит. Метод нетривиальный, на момент проведения CVPR код, воспроизводящий эксперименты, ещё не был выложен, но в результатах авторы заявили о преимуществах метода перед известными lossless-JPEG2000 и WebP.
Image Processing Using Multi-Code GAN Prior: восстановить всё
А что, если инвертировать GAN не полностью, а локально, по частям? Найти несколько латентных кодов, финальную картинку синтезировать из их перевзвешенных промежуточных фичей?
Инверсии получаются очень приличными, технику можно приспособить под разные задачи: денойзинг, морфинг, инпейнтинг за счёт Prior GAN — испорченная картинка восстанавливается, её инверсия оказывается тем, что и было надо.
Effectively Unbiased FID and Inception Score and where to find them: измеряем качество GANs правильно
FID сегодня одна из самых популярных метрик качества генеративных моделей. Она измеряет разницу между распределениями эмбеддингов настоящих и сгенерированных данных, вписывая в них гауссианы.
В статье подробно рассматривается смещённость по числу семплов, приводится способ её избежать. На практике это, скорее всего, осмысленно для очень близких моделей, например, для сравнения разных сидов.
FDA: Fourier Domain Adaptation for Semantic Segmentation: преобразований Фурье достаточно
Очень простой и дешёвый с точки зрения вычислений способ domain adaptation: подмена части Фурье-спектра одного домена Фурье-спектром другого. Обмен идет низкими частотами, которые мало влияют на объекты/текстуры. Показывает хорошие результаты на задаче сегментации.
Single-Image HDR Reconstruction by Learning to Reverse the Camera Pipeline: новый подход к восстановлению изображений
Процесс преобразования HDR (High Dynamic Range) в LDR (Low Dynamic Range) разбивают на части: клип сигнала, нелинейное преобразование, квантизация. Для обратного преобразования LDR-HDR пытаются приблизить каждый из этих шагов нейросетями в инвертированном порядке. Спойлер: в части сетапов получат state-of-the-art, показывают, что их метод лучше количественными и качественными экспериментами.
A Multigrid Method for Efficiently Training Video Models: tradeoff найден
Анализируют как эффективнее всего обучать модели, работающие с видео, ищут компромисс: способ сохранить оптимальное разрешение видео, размер минибатча и качество модели одновременно. Большие батчи не подходят в случае высокого разрешения кадров, а при маленьком разрешении модели становится плохо.
Авторы вдохновились идеей многосеточных методов численной оптимизации, и попробовали динамически менять разрешение видео в процессе обучения: например, начинали с большого батча и маленького разрешения, и постепенно понижали размер батча, повышая разрешение. Исследовали и другие схемы (или «циклы», как их называют в численных методах). В результате удалось сильно ускорить обучение: классическими методами аналогичное качество достигается в 4,5 раза медленнее.
Towards Robust Image Classification Using Sequential Attention Models: визуализировать и отразить адверсальные атаки
DeepMind рассказывают про новый вид моделей (смесь CNN, LSTM и аттеншна) — более устойчивый (по построению) к адверсальным (злонамеренным) атакам. Базируется на двух идеях:
- Feedforward архитектура не полностью соответствуют восприятию картинки человеком: мы не ограничиваемся одним взглядом, много раз смотрим на разные кусочки картинки.
- Для адверсальных атак характерна «глобальная» структура: то есть целятся во все пространственные координаты одновременно. То есть чтобы сделать модель более робастной, надо научить её рассматривать картинку по частям и агрегировать информацию.
Идея реализована с помощью LSTM, которая последовательно обрабатывает выход механизма внимания с последнего свёрточного слоя ResNet'а: разделяет его пополам вдоль каналов, одна часть — ключи, другая — значения.
После нескольких суток обучения на 150 TPU всё это показывает хорошую робастность, адверсальные атаки теперь выглядят не как шум, а имеют наглядный смысл. Например, если устроить таргетированную на класс «змея» атаку, на картинке-мишени появятся контуры змеи.
Adversarial Vertex Mixup: Toward Better Adversarially Robust Generalization: и ещё об адверсальных атаках
Ещё один новый подход для тренировки более устойчивых к адверсальным атакам сеток. Робастность достигается за счёт уменьшения generalization gap при adversarial training (разница качества на трейне и тесте может достигать 40%). И также скомбинированы два подхода:
- Mixup — в качестве обучающего примера выбирается линейная комбинация двух семплов и их лейблов.
- Label smoothing — кросс-энтропия обучается не с one-hot target, а сглаженным показателем u: вероятность правильного класса — u, а (1 — u) равномерно распределяется по остальным классам.
Алгоритм получается такой. По инпуту x генерится адверсальная картинка x* (например PGD атакой), строится так называемый «adversarial vertex kx*», того же класса, что и x. Сглаживаем метки обоих с разными коэффициентами, и для обучения делаем mixup этих двух точек (x и kx*).
Бонус — теоретический анализ через робастные (полезные для классификации) и неробастные фичи (ненужные, по сути, для классификации).
Результаты впечатляют, особенно когда техника применяется к предыдущему — SOTA — подходу, и на выходе получается практически полностью робастная к PGD атаке сеть.
High-Resolution Daytime Translation Without Domain Labels: как сделанную днём фотографию превратить в ночную
Можно ли, не используя метки на датасете, обучить модель которая визуально изменяет время суток на картинках высокого разрешения? Например, по мотивам сделанной днём фотографии сгенерировать реалистично выглядящую ночную. Собрать и подготовить к работе датасет для такой задачи достаточно сложно, поэтому хотелось бы выучить модель именно в unsupervised режиме.
Авторы предлагают объединить две идеи: использовать AdaIN слои, популярные в сетях для переноса стиля (style transfer) и skip-connections, помогающие сохранить мелкие детали на картинках. Также показывают как добиться, чтобы сеть хорошо работала на изображениях высокого (1024 x 1024) разрешения: скомбинировать результаты применения сети к нескольким версиям обрабатываемой картинки в более низком разрешении.
Hyperbolic Image Embeddings: вкладываем картинки в шар Пуанкаре
В NLP с 2017 года интересуются методами преобразования слов в вектора таким образом, чтобы пространственные расстояния характеризовали порядковые связи между словами. Например, кошка — млекопитающее, но не любое млекопитающее — кошка: в каком пространстве можно закодировать взаиморасположением этих двух слов иерархию «общее-частное»? Ответ давно известен: гиперболические пространства — плоскость Лобачевского, шар Пуанкаре — пространства такого вида с небольшим количеством измерений заменяют многомерные Евклидовы, что сказывается на удобстве работы с данными.
Yandex Research в коллаборации со Сколтехом решили проверить, сработает ли такой подход на картинках: получится ли формально задать иерархию? Получилось: пришлось искать способы перехода от Евклидовых алгоритмов к гиперболическим. Замены несложные, легко встраиваются в привычные методы, но на удивление сильно повышают качество простых моделей: точность возрастает примерно на 10%. Проверить в коде — здесь.
В заключение
На фоне множества перенесённых и отменённых мероприятий очень приятно, что CVPR 2020 всё-таки состоялась. Хотя это был интересный опыт, надеемся, следующие конференции состоятся офлайн.
Поиск по всем материалам, кажется, доступен только участникам, но программа есть в открытом доступе, а вот здесь — записи всех докладов, туториалов и воркшопов. Спасибо, что дочитали до конца. До встречи в комментариях!