1.6Kпросмотров
18 января 2024 г.
statsScore: 1.8K
BSRC-2023 или как сделать так, чтобы ничего не делать Про соревнование я узнал в конце августа, прочитав анонс в какой-то из групп в tg. Ознакомился с условием, посмотрел на метрику и благополучно закрыл до лучших времен. "Окей, вернусь к этому в конце сентября, когда станет понятнее, что с этим делать", - подумал я про себя. Наступил сентябрь. Я наконец-то попытался отправить в тестирующую систему baseline от организаторов. Угадаете, что было дальше? Правильно, решение не засчитывалось. Я всё время получал "Report not found!!". Оказалось, что там были некоторые баги у самих организаторов, но спустя 10 посылок я все же получил желаемый результат. Я считаю, это уже победа. С учётом того, что в конце выяснится, что у некоторых и этого не вышло, однозначно успех. Тестирующую систему победил, а что делать дальше? Прежде, чем что-то обучать или придумывать свой велосипед, стоит немного поресерчить – статьи и код сами себя не напишут. Мне посчастливилось наткнуться на github, в котором собрано огромное количество статей по задаче Super Resolution с разбиением по годам, а также комментариями/тегами от автора. Это колоссальная работа и титанический труд, даже если всё это и частично автоматизировано. Среда, на часах 3 часа ночи. Через 4 часа уже нужно вставать, чтобы ехать в университет. Студенты могут проспать пару, а вот если это сделаю я, появятся вопросики. Самое время вернуться к соревнованию. Я принялся перебирать статьи, начиная с 2022 года. В этот момент уже понимаешь и чувствуешь, откуда берётся огромная пропасть между production-ready и академическим решением(кодом): поломанные зависимости, непонятный код инференса, отсутствие примеров вызова, предобученных весов, которые указаны в статье, а также многое другое. Спустя примерно 6-7 попыток запустить/измерить качество имеющихся решений, я наткнулся на первое очень сильное решение – VapSR (Efficient Image Super-Resolution using Vast-Receptive-Field Attention). 6 утра, немного модернизации кода и заветный результат уже в кармане – первое место. На какое-то время можно отложить это соревнование. Я предполагал, что задача от организаторов появилась не на пустом месте. Возможно, что они чем-то вдохновились. По счастливой случайности в этом году проводился очередной воркшоп NTIRE 2023 Challenge, а тематика этого года – Efficient Super Resolution. Ничего не напоминает? Да, не бинаризация, но явно какие-то идеи оттуда можно подчерпнуть. Я изучил результаты этого соревнования, почитал описание работ и архитектур, даже нашёл какой-то google docs, в котором участники указывали свои email. В этот момент я уже думал, что поймал удачу за хвост. Возьми код первого места, проверь его на текущем наборе данных и PROFIT, но не тут-то было. Одна из интересных особенностей BSRC – наличие минимального порога по PSNR, который нужно преодолеть. Даже если у тебя супер крутая архитектура, у неё низкая вычислительная сложность, но она не позволяет преодолеть этот порог – будь добр получить свои 0 баллов и думать дальше. Как и всегда, можно немного модернизировать архитектуру, увеличив сложность модели (с точки зрения количества операций умножений), но получить более точный результат. Я так и поступил: изменил, обучил и ничего. Дьявол всегда кроется в деталях. Помимо очень классной архитектуры, авторы воспользовались большим количеством обучающих наборов данных. Какой-то из них весил под 200-300 GB в сжатом виде, что после разархивации и нарезки на патчи уже превратится в +- в 1TB. Слишком много усилий для «студенческого» соревнования.
1.6K
просмотров
3532
символов
Нет
эмодзи
Нет
медиа

Другие посты @everydaycv

Все посты канала →
BSRC-2023 или как сделать так, чтобы ничего не делать Про со — @everydaycv | PostSniper