Автор: Антон Броиловский

Редактура: Дмитрий Раков

Введение

Развитие YOLO проходило гладко за все время существования семейства YOLO. Каждая следующая версия имела новые фишки, которые позволяли повышать планку как по скорости инференса, так и по итоговому качеству среди real-time детекторов. Даже смена авторов не помешала двигаться вперед, и YOLOv4 была достаточно тепло принята сообществом.

Извините за спойлер нашей статьи, но так не могло продолжаться вечно 🙂

Рояль в кустах

Статья про YOLOv4 появилась на архиве 23 апреля 2020 года. И, примерно через месяц, компания Ultralytics выпустила новую версию — YOLOv5! 31 мая они открыли репозиторий c моделями YOLOv5 в 4-х модификациях: s(7M), m(25.2M), l(61M) и x(123M). В скобочках указано количество параметров, для сравнения у YOLOv4 ~ 64M. Сообщество немного удивилось: неужели теперь новые версии архитектур будут выходить каждую неделю?

Однако все было не так просто. В этот же день в репозитории открылось скромное issue под названием The project should not be named yolov5! (Этот проект не должен называться yolov5). Кажется, это плохой знак, когда одно из первых issue в репозитории начинает оспаривать его имя… Так и случилось: следующие несколько недель научное сообщество (и не только) активно обсуждало, что это за модель такая, в чем разница с предыдущими моделями, и достойна ли она называться YOLOv5. У такой реакции было несколько причин:

1**.** Снова поменялись авторы. Если Алексей Бочковский (автор YOLOv4) имел прямое отношение к Джозафу Редмону (автору первых 3-х моделей), то Ultralytics не были широко известны. Однако их CEO, Гленн Джохер (Glenn Jocher), был упомянут в статье YOLOv4 за изобретение mosaic augmentations, также о нем хорошо отзывался Алексей:

*@glenn-jocher did a lot for the development and improvements of Yolo and showed a lot of ideas, he created at least 2 very good repositories on Pytorch. Thus, he gave Yolo a long life outside of Darknet. All this hype around the Yolov5 was not raised by him. (с) Alexey Bochkovskiy*

2**.** Ultralytics не выпустили статьи с описанием модели, как делали все предыдущие авторы. Они обещали сделать статью до конца 2020 года:

Our current goal is to continue internal R&D throughout the remainder of 2020, and hopefully open source and publish at least a short synopsis of this to Arxiv by the end of the year. (с) Glenn Jocher

Но статьи нет до сих пор 😢

Более того, в плане архитектуры новая модель практически не отличалась от YOLOv4. Единственное отличие: она была переписана на торч.

  1. Первоначальные метрики были плохо посчитаны. На релизе значения метрик не воспроизводились, а масло в огонь подлили ребята из roboflow со статьей YOLOv5 is here, где сделали абсолютно корявые расчеты (позже они выпустили новую статью, но лучше не стало).

Основная дискуссия о YOLOv5 развернулась в двух issue на гитхабе. Первая в репозитории YOLOv5: о воспроизводимости результатов. Вторая в репозитории darknet: о валидности новой модели, воспроизводимости результатов и методах расчета итоговых метрик. На самом деле это любопытное обсуждение о том, как правильно сравнивать качество разных моделей, очень советую почитать на досуге 🙂