Открыть список
Как стать автором
Обновить

Комментарии 22

LoFTR выглядит круто. Должно быть хорошо для задач Visual SLAM.

По поводу 5:45 youtu.be/xQFeeh5DqeY?t=345

Да не сказать, чтобы Detr или Deformable-Detr прям рвал COCO:
* Table-1 — DETR-DC5-R101 — 10 FPS — 44.9 AP% — 26 May 2020 arxiv.org/pdf/2005.12872.pdf
* Table-1 — two-stage Deformable DETR — 19 FPS — 46.2% AP — 8 Oct 2020 arxiv.org/pdf/2010.04159v4.pdf
* Table-2 — Cascade Mask R-CNN Swin-B — 11 FPS — 51.9% AP — arxiv.org/pdf/2103.14030v1.pdf
* Table-2 — EfficientDet-D6 — 10 FPS — 52.6 AP% — 20 Nov 2019 arxiv.org/pdf/1911.09070.pdf
* Table-11 — YOLOv4-P6 — 30 FPS — 54.5% AP — 16 Nov 2020 arxiv.org/pdf/2011.08036.pdf

Тот же EfficientDet вышел и раньше, и точнее, и быстрее, чем Detr/Deformable DETR.

Новый Swin Transformers для тех моделей где указан FPS, тоже не лучшее, чем EfficientDet. А для самых больших и медленных моделей, где FPS не указан — то превосходит EfficientDet по точности (58.0% AP с Test-time-data-augmentation Multi-scale-inference).

Но в целом тренд есть, статей вышло много (CaiT,PiT,ViViT,ViL,CvT,CrossViT,Swin Transformer,STAM,DPT,DeepViT,CeiT,HVT,ConViT,PVT,CPVT,T2T-ViT) и трансформеры допилят до нужного состояния.

1. Точность по датам выхода алгоритма: paperswithcode.com/sota/object-detection-on-coco


2. Соотношение точности к времени задержки (V100, batch=1, no TensorRT, no TTA):
В детекции объектов на изображении на текущий момент получается лучше всего Slaled-YOLO4 использовать?
Пока что да, пока мы ещё чего то не выпустили )
Есть нюансы, что некоторые модели лучше для очень маленьких или сильно перекрывающихся объектов, какие-то лучше для запуска на смартфонах. Я могу и Scaled-YOLOv4 для этих задач настроить и обучить, но пользователям проще другую модель выбрать.

Как правильно в комментариях заметили, большинству компаний дешевле взять чужую сеть и увеличить точность за счет сбора хорошего датасета, чем за счет улучшения или разработки своей сети, особенно в таких высоко-конкурентных задачах как ImageNet Classification или MS COCO Object detection, где постоянно соревнуются Топ-10 IT компаний мира.
Алексей, можете пояснить, как специалист по обнаружению.
Вот есть датасет COCO, по сути единственный адекватный для использования в бенчмарках для детекции.
Но если посмотреть на него внимательно, то можно увидеть, что качество его разметки далеко неидеальное, независимо от выборок train/test/val — много неразмеченных объектов, много очень спорных аннотаций (например, ладонь человека крупным планом отмечена как «person»).
Всё это приводит к неоднозначности при обучении.
Справедливо ли вообще сравнивать различные архитектуры в таких условиях по метрике mAP?
Я вижу много недостатков в MS COCO датасете и метрике AP, но пока что это самый лучший из имеющихся способов для сравнения сетей. Если ты хочешь сравнивать сети друг с другом, то у тебя нет другого варианта, т.к. все самые большие компании Apple/Google/Facebook/Microsoft/Intel/Baidu для самых лучших нейронных сетей используют этот датасет и эту метрику.

Все другие попытки придумать датасет и метрику лучше, обычно выглядели как попытка подогнать датасет под свой алгоритм, чтобы выглядеть лучше других.

Минусы:
* MSCOCO датасет — слишком много ошибок, например, много людей в датасете не размечено
* метрика AP — усредняет по классам, т.е. если в датасете из 2х классов одна сеть нашла 100000 из 100000 человек и 0 из 1 сумок, а другая сеть нашла 0 из 100000 человек и 1 из 1 сумок, то у обеих сетей будет одинаковая точность 50%.

Плюсы:
* MSCOCO датасет — неизменен, т.е. новую сеть можно сравнить с сетями созданными 5 лет назад.
* метрика AP — усредняет по Precision-Recall-кривой, т.е. не зависит от подбора confidence_threshold, т.е. можно успешно сравнивать сеть с большими TP и FP и сеть с малыми TP и FP

Спорные моменты:
* MSCOCO датасет — наличие ошибок в обучающем (но не в valid/test) некоторые считают хорошим тестом на возможность сети обходить взаимоисключающие ошибочные метки. Ошибки в реальных датасетах или RL-подходах будут всегда, и сеть должна эффективно их обходить.
* метрика AP — усреднение по классам некоторые считают хорошим тестом на решение проблемы дисбаланса количества объектов разных классов (т.е. сеть может обучаться и на большом количестве изображений одного объекта, и на малом количестве изображений другого объекта)

То что в датасете рука обозначена как человек (в датасете нет отдельного класса рука) — это не ошибка, человек там почти точно есть. Например, если автопилот или производственный робот видя торчащую из-за препятствия руку не среагирует должным образом, то могут быть серьёзные травмы.
Хороший разбор всевозможных применений трансформеров. Как всегда в тренде )
В целом, если сравнивать два конкретных стандартных решения Convolutional networks (ResNet50/152) и Visual Transformers (ViT-B/L-32), то:

1. Convolutional networks (ResNet50/152) — дают лучшую точность на маленьких датасетах, за счет лучшей обобщающей способности из-за трансляционной инвариантности и наличия локальных корреляций, которые ты упомянул

2. Visual Transformers (ViT-B/L-32) — дают лучшую точность для больших датасетов (или auto/meta/pseudo-labeling/distillation), за счет рационального использования емкости сети из-за внимания только к нужным деталям

Page 6 — Figure 4: arxiv.org/pdf/2010.11929.pdf

Как я понимаю, проблема даже не в самих алгоритмах, а в качественных датасетах.

Вопрос: у трансформеров есть возможность понять, чему именно они научились и почему приняли то или иное решение (эту возможность нашли у свёрточных сетей) или они такой же чёрный ящик, как более старые варианты сетей (даже многослойный перцептрон не вдруг поймёшь)?

Через визуализацию слоев Attention можно, достаточно много есть на эту тему статей и примеров

Да, это ода из тех причин почему их любят больше сверточных сетей.
Но не всегда отклик адекватен.
ну тоже не совсем. Просто один дополнительный механизм появился, чтобы что-то понять. Но на деле для инженеров все еще в большой степени черный ящик.
По сравнению с многослойным перцептроном (от которого я в своё время был вынужден отказаться именно потому, что практически невозможно было понять, что в обучающей выборке провоцирует ошибки классификации на реальных данных) – большой прогресс.

Да, трансформеры знатно бомбанули, даже не верится, что с первых DETR'ов меньше года прошло, столько всего сделали за это время.


Про сегментацию и глубину — за пару дней до интела ещё вот такая статья выходила, где результаты нейросети выглядят едва ли не детальнее, чем GT :)

У Интеловской DPT результаты ещё лучше по всем параметрам на обоих датасетах Kitti и NYU )

А вот за несколько месяцев до этого (28 Nov 2020) незаметно вышла ещё одна статья по mono-depth, тоже с использованием трансформеров — AdaBins arxiv.org/abs/2011.14141, и там результаты на Kitti лучше, но на NYU хуже, чем у Интеловской DPT arxiv.org/abs/2103.13413

Можно посмотреть прикольные примеры работы связки MiDaS+Inpainting: shihmengli.github.io/3D-Photo-Inpainting
После замены MiDaS на DPT, должно быть ещё намного лучше.

Да уж, уследить стало совершенно невозможно, если каждый день этим не заниматься, не смотришь пару месяцев на конкретную подзадачу, а там всё поменялось :) Уже кажется, что бесполезно самому пытаться что-то улучшать (если ты не работаешь в лабе по конкретному узкому направлению) — проще подождать полгода/год и результаты превзойдут все твои ожидания.

Да, каждый год становится сложнее выжимать большую точность из нейронных сетей, больше компаний этим занимаются, больше денег вкладывается, исследования дорожают, другим компаниям остается только наблюдать за прогрессом на сайте paperswithcode.com/sota

Но, например, DPT-monodepth имеет намного лучшую zero-shot точность, чем любой другой алгоритм, и в реальных задачах zero-shot точность важнее, чем точность на конкретном датасете, но нет общепринятого теста для zero-shot, и соответственно нет такого раздела на paperswithcode.
Хочу сказать спасибо за DPT, в нашей задаче раньше использовали Midas, попробывали DPT и результат шокировал, очень хорошее улучшение даже визуально. Осталось перенести ее на Tensorrt ) В процессе.
Пожалуйста ) А в какой задаче используете?
Что меня удивляет — я не вижу хорошей реализации OCR на трансформерах.

Реализации нет, а статья интересная есть — http://arxiv.org/abs/2103.12731


Еще кажется интересная статья в тему про HaloNet — http://arxiv.org/abs/2103.12731
TLDR — путем трюков они добились качества и размера сеток на Imagenet, но ресурсов оно жрет все равно сильно больше.


Супер важная вещь, про которую все забывают в погоне за сенсациями — это стоимость обладания системы. Даже если она показывает лучше результат на 1%, но ее стоит в 10 раз больше ресурсов натренировать, полезно ли это (даже при таком же косте на инференсе и размере)?


Вообще мне кажется, что будущее в:


  • использовании гибрида из сверток условно в первой трети сетки
  • и какого-то простого способа кормить 2D feature-maps в трансформеры
А вообще какие-нибудь публичные реализации OCR на новых технологиях есть? Такое впечатление, что всякие «раскрашивалки», «состаривалки», «морфилки» и прочее just for fun валятся стремительным домкратом, а такая, сугубо полезная и востребованная область, как OCR, остаётся там же, где была 10 лет назад… Отчего не случилось революции появления табуна софтин, уделывающих какой-нибудь условный FineReader как бык — овцу?
Спасибо за статью! Жаль что нет ничего про Attention, что находиться в основе всех трасформеров.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.