Стол находок, где вещи учат компьютер смотреть
После концерта стол находок гудел: ключи, шапки, телефоны, игрушки. Один волонтёр пытался сортировать всё одним правилом и вяз в куче. А сосед сделал несколько дорожек рядом: для мелких примет, для крупных, и простую коробку для быстрого сброса.
С картинками у компьютеров была та же пробка. Раньше их часто усиливали просто делая одну большую схему ещё больше. Получалось как один гигантский стол, куда тащат всё подряд, даже то, что видно с первого взгляда.
Потом придумали узел, похожий на эти дорожки. Один кусочек фото проверяют параллельно: ищут мелкие следы, средние, крупные, и делают быстрый сглаженный проход. Всё складывают вместе и передают дальше. Как на столе находок: одну вещь смотрят разными глазами. Так ловят больше подсказок сразу.
Штука в том, что параллельные проверки тоже могут тормозить, если каждая тяжёлая. Перед ними поставили быстрый предосмотр, который сжимает поток и оставляет главное. На столе это как быстро выписать пару примет и не гонять вещь по всем дорожкам заново.
Такие узлы ставили один за другим, и глубина росла без дикого раздувания работы. А потом по пути добавляли маленьких боковых проверяющих, чтобы ранние шаги не «засыпали» и получали подсказку. Когда всё готово, боковые проверяющие убирают.
В большом соревновании по распознаванию картинок в две тысячи четырнадцатом эта схема, её называли GoogLeNet, оказалась сильной и при этом не такой прожорливой, как многие тяжёлые варианты. Её же удавалось приспособить и к поиску объектов внутри снимка, когда сначала намечают области, а потом уточняют, что там.
И вот контраст: раньше старались выиграть, просто наращивая одну махину. А тут выиграли тем, что разнесли работу по дорожкам и поставили быстрый предосмотр перед тяжёлыми шагами. Как на хорошем столе находок, очередь не захлёбывается, и мелочи не теряются.