Как стать автором
Обновить
116
0
Алексей @AlexeyAB

Пользователь

Отправить сообщение
Как-то всё смешалось и детекция и сегментация.
В лучших real-time алгоритмах Instance Segmentation (YOLACT++, Poly-YOLO) используется модифицированный детектор YOLO.
Then producing a full-image instance segmentation from these two components is simple: for each instance, linearly combine the prototypes using the corresponding predicted coefficients and then crop with a predicted bounding box.


Доля рынка Apple != доля рынка моделей детекторов

Достоверно известно, что Apple использует детекцию в десятке задач (сортировка галереи, поиск в галерее по названию объекта, ...) в любом iPhone -> Apple купила XNOR-YOLO за 200M$ -> Apple заменила все свои детекторы на всех новых iPhone (200М штук в год) на более быстрые и точные XNOR-YOLO.
Но вы утверждаете, что купила за 200M$, но не использует )
Если на слабых процессорах (ARM, Apple, Qualcomm, ...) думаете делать, то дождитесь реализации yolov4-tiny на github.com/Tencent/ncnn и попробуйте её (YOLOv4-full там уже работает): github.com/Tencent/ncnn/issues/1885
После этого разговора я вообще уже не уверен, что есть свидетельства, что кто-то на самом использует детекцию, а уж тем более определить доли рынка конкретных моделей :)

Как же Apple тогда сейчас сортирует фото по наличию обнаженки, бюстгалтеров, мозаики, цукини… в галерее на iPhone? iz.ru/665343/2017-10-31/iphone-raspoznaet-foto-v-biustgalterakh-v-otdelnuiu-kategoriiu (надо понимать, что на фото может быть 10-20 равноценных мелких предметов, и классификация тут не подходит, нужна детекция)
Т.е. Apple отдала 200M$ за XNOR-YOLO, а вместо него для этой задачи использует ваш любимый медленный и кривой EfficientDet от Google, или там люди руками перебирают фото — как это работает? )

Детекция на смартфонах:
— детекция лиц перед их распознаванием
— сортировка фотографий в галерее по объектам
— поиск фотографий по предметам (забыл где на телефоне валяется фото, но помнишь что на нем была гитара)
— размытие фона при общении по Skype / Zoom /… — уж этим все воспользовались во время карантина
— размытие фона на фотографиях

Лучший детектор YOLO можно расширить до лучшего Instance Segmentator YOLACT++, например, чтобы отображать только одного человека, а остальных людей и фон размывать, используя YOLACT++ arxiv.org/pdf/1912.06218.pdf или Poly-YOLO arxiv.org/pdf/2005.13243.pdf



а уж тем более определить доли рынка конкретных моделей :)


Ну то что у Apple доля мирового рынка 32% мирового дохода от продаж телефонов, 66% мирового дохода от мобильных телефонов + сервисов (iCloud, Apple Music, ...), и 15% по количеству проданных iPhone, и продажи 200 миллионов iPhone в год — это по моему не секрет:
www.forbes.com/sites/johnkoetsier/2019/12/22/global-phone-profits-apple-66-samsung-17-everyone-else-unlucky-13/#37452bf92ff3

www.ixbt.com/news/2020/01/30/apple-vozglavljaet-rynok-smartfonov-po-itogam-proshlogo-kvartala-.html


Можно 46 FPS с batch=1 FP32 на CPU.

Скорость и точность разных YOLO: github.com/AlexeyAB/darknet/issues/5079

На CPU — 90 Watt — FP32 (Intel Core i7-6700K 4GHz 8 Logical Cores) OpenCV-DLIE, FPS

1. github.com/AlexeyAB/darknet/blob/master/cfg/yolov3-tiny-prn.cfg46 FPS

2. github.com/AlexeyAB/darknet/blob/master/cfg/yolov4-tiny.cfg — такая же быстрая, но точнее, подождите неделю пока в OpenCV добавят поддержку github.com/opencv/opencv/issues/17666 И затем сразу можете использовать OpenCV-master-branch github.com/opencv/opencv/archive/master.zip
Или дождитесь релиза нового бинарника: opencv.org/releases

Работает быстрее, если скомпилировать OpenCV с бэкэндом OpenVINO: github.com/opencv/opencv/wiki/Intel's-Deep-Learning-Inference-Engine-backend
И забавно сравнивать популярность детектора по тому, что используют в не менее узкоспециализированной ROS. Одно развёрнутое гуглом приложение на мобильники даст install base в тысячу раз больше, чем все пользователи рос вместе взятые. Причём гугл даже не будет это нигде рекламировать как отдельную фичу (ну разве что где-нибудь в блоге для девелоперов напишут заметку, мимоходом, дескать используем мобайлнет для детекции чего-нибудь на миллиарде устройств).

Ну покажите ссылки и назовите продукты где Google использует какие-либо детекторы массово, кроме своих Pixel-phone тиражом в 2 штуки. Вот Apple купила XNOR-YOLO за 200M$ и уже использует XNOR-YOLO на всех iPhone из-за её быстроты и энергоэффективности — это 200 миллионов iPhone каждый год, да и через 2 года будут использовать на PC, переход PC на ARM уже начался.

Остальные сети вообще нигде не используются, и исследователи их не любят, и точность и скорость у них крайне низкие — объективные числа я привел в предыдущем сообщении.

Компания Tencent (капитализация 500 000 000 000$) считает хорошей сеткой YOLO, а не Facebook-RetineNet/MaskRCNN или Google-EfficientDet: github.com/Tencent/ncnn

Может быть я предвзят из-за своего отрицательного опыта и поэтому так воспринимаю (у меня тоже ограниченное видение), но то, в йоло всё так перемешано и захардкожено (шаг вправо, шаг влево — сегфолт, градиенты всякие вручную прописанные в дебрях Си,

Вы по моему не тот Darknet использовали, надо про нейронные сети, а не где продают запрещенные вещества )
Захардкожено — это в TensorFlow-EfficientDet вся сеть захардкожена в коде на Python, и приходится лазить по всему исходному коду, чтобы хоть чуть-чуть поменять архитектуру
— TF-EfficientDet — backbone в одном месте github.com/google/automl/blob/b26c32ab3062c271eb3a2c2754d633b5572a98c2/efficientdet/backbone/efficientnet_model.py, neck в другом месте github.com/google/automl/blob/b26c32ab3062c271eb3a2c2754d633b5572a98c2/efficientdet/efficientdet_arch.py другие части ещё где-то раскиданы

— в YOLO вообще ничего не зарадкожено, вся сеть целиком в одном простом cfg-файле (читаемый формат INI) github.com/AlexeyAB/darknet/blob/master/cfg/yolov4-tiny.cfg и чтобы поменять архитектуру сети вообще не надо программировать на C/C++/CUDA/Python/…. Авторы CSPNet вообще не правили ни строчки код, а только изменили cfg-файл: arxiv.org/abs/1911.11929

Успешно изменяют YOLO разные люди: и которые вообще не умеют программировать, но знают нейронные сети, и люди которые знают chain-rule/differentiation, могут писать собственные слои и их реализации на CUDA.
Вышла модель YOLOv4-tiny с экстремально высокой скоростью 370 FPS на GPU 1080ti, или 16 FPS на Jetson Nano (max_N, 416x416, batch=1, Darknet-framework): github.com/AlexeyAB/darknet/issues/6067

Дождемся официальной реализации и релиза yolov4-tiny в OpenCV, и там скорее всего будет Real-time 30 FPS на Jetson-Nano и NPU Intel Myriad X (1 Watt), и ещё быстрее при batch=4 / INT8.
Под приличными я имел в виду то, что эти бейзлайны были не слабыми, как типично бывает (когда берётся плохо натренированный бейзлайн и сравнивается с сильно тюнингованной своей сетью), а хорошими бейзлайнами, популярными вариантами, хорошо натренированными и известными.

Я понимаю, что для вас это центральная разработка и из-за того, что вы варитесь в нём и среди людей, которые его используют, то может показаться, что это очень популярная и распространённая штука.

Или может быть все знают кроме вас — вот что показывают объективные числа:
Никто не знает и не считает важным детекторы MobileNetv2 / Facebook-RetinaNet / PeleeNet / CornerNet, в отличии от Yolo.

1. Что используют в реальных системах — поиск в гугле по общей фразе «ros object detection» — первая строчка: github.com/leggedrobotics/darknet_ros

2. О чем знают обычные пользователи из ютуб — про какой ещё детектор объектов рассказывали на TED и имеется более 1 млн просмотров на ютуб?
youtu.be/Cgxsv1riJhI
youtu.be/4eIBisqx9_g

3. Какие самые популярные детекторы объектов у исследователей:
YOLOv1 (2015) — 7234 раз процитировано: arxiv.org/abs/1506.02640
YOLOv2 (2016) — 3664 раз процитировано: arxiv.org/abs/1612.08242

CornerNet (2017) — 231 раз процитировано: arxiv.org/abs/1808.01244
RetinaNet (2017) — 1796 раз процитировано: arxiv.org/abs/1708.02002 (FaceBook)
YOLOv3 (2018) — 2431 раз процитировано: arxiv.org/abs/1804.02767
MobileNetv2 (2018) — 1862 раз процитировано: arxiv.org/abs/1801.04381
PeleeNet (2018) — 87 раз процитировано: arxiv.org/abs/1804.06882

CenterNet (2019) — 109 раз процитировано: arxiv.org/abs/1904.08189
EfficientDet (2019) — 38 раз процитировано: arxiv.org/abs/1911.09070 (Google)

Сгруппировано по годам, т.к. чем старее статья — тем больше цитат.
Понятно, что статья вышедшая только месяц назад почти не будет процитирована.

4. О каком ещё детекторе объектов кроме XNOR-YOLO рассказывал CEO ARM?
twitter.com/morastegari/status/1158966293262819328

5. Какой ещё детектор объектов кроме XNOR-YOLO пытались купить сразу Microsoft, Intel, Amazon, Apple (и Apple купила за 200M$)? www.geekwire.com/2020/seattle-ai-startup-drew-interest-amazon-microsoft-intel-selling-apple
Seattle AI startup drew interest from Amazon, Microsoft, Intel before selling to Apple


6. И самое главное, какой детектор самый быстрый и точный? — Об этом эта статья.

Критика о том, что у фреймворка Darknet только 11 000 (my) / 18 000 (official) Stars, про него ничего нет в Wiki, и бывает трудно найти в гугле — принимается. Ну на то он и Darknet.

Под маргинальностью Darknet можно понимать только то, что если я перестану его разрабатывать, то его развитие остановится.

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


Могли, но не стали. И я их понимаю — одно дело запустить одной командой условный детектрон и перетренировать, другое дело разбираться с установкой и работой с даркнетом и так далее, особенно, когда тебе это нужно ради добавления одной цифры в статью, которая вообще в целом не об этом.


Конечно, это очень трудно покликать по стрелочкам в Google Colab, чтобы увидеть как компилировать и запускать Yolo на Darknet: https://colab.research.google.com/drive/12QusaaRj_lUwCGDvQNfICpa7kA7_a2dE

Скомпилировать Darknet используя Cmake — 2 команды
cmake .
make

Скачать датасет
scripts/get_coco_dataset.sh

Затем обучение запускается одной строкой: https://github.com/AlexeyAB/darknet/wiki/Train-Detector-on-MS-COCO-(trainvalno5k-2014)-dataset
./darknet detector train cfg/coco.data cfg/yolov4.cfg csdarknet53-omega.conv.105


Вот здесь пробуют запустить обучение «эффективной» Google-EfficientDet-D5 одной командой даже на топовой игровой GPU RTX 2080ti 11GB или на Titan V (3000$) вы столкнетесь с Error: Out of Memory, даже с batch_size=1 (хотя EfficientDet требует batch_size=128 для достижения заявленной точности): github.com/google/automl/issues/85

In my mind, efficientdet is light-weighted and efficient. However, I can only run efficientdet-d4 on a single Nvidia Titan V GPU by setting train_batch_size=1. Training efficientdet-d5 will result in OOM.
Может если бы йоло не была так привязана к маргинальному (будем честны, он такой и есть) даркнету, то авторы не поленились бы и запустили её в сравнение ко всем остальным ретинам.


Вы считаете, что 10 000 студентов смогли обучить и запустить Yolo, а топовые исследователи из Google не смогли? Какое-то у вас предвзятое и негативное мнение о Google.

Почему тогда CEO ARM рассказывает про XNOR YOLO, и нафига тогда Apple платить $200M за TradeMark на YOLO?
www.patentlyapple.com/patently-apple/2020/06/four-xnorai-trademarks-covering-yolo-tools-for-real-time-object-detection-have-officially-been-transferred-to-apple.html
This week the U.S. Patent and Trademark Office officially published the transfer of four XNOR.AI registered trademarks to Apple that include: YOLOV2; YOLOV3; YOLO9000; and TINY YOLO as presented below. The actual registered trademark certificates have yet to be republished with Apple Inc. shown as owner.


www.forbes.com/sites/janakirammsv/2020/01/19/apple-acquires-xnorai-to-bolster-ai-at-the-edge/#568e22063975

Apple reportedly acquired Xnor.ai, a Seattle-based startup for $200 million

The founders of Xnor.ai, Ali Farhadi and Mohammad Rastegari, are experts in computer vision. Ali is a co-author of the popular object detection technique. YOLO — You Look Only Once. YOLO is one of the most popular techniques used in object detection in real-time.


news.crunchbase.com/news/apple-acquires-ai-on-the-edge-startup-xnor-ai-for-around-200m
Researchers at Xnor.ai developed an object detection model they called You Only Look Once (aka YOLO), which the company licensed to enterprise customers including internet-connected home security camera company Wyse.




А то, что они «кинулись» статью исправлять, то тут миллион причин может быть, может быть им ревьюеры на CVPR, куда эта статья прошла, на это указали и попросили уточнить (а это проще сделать, чем спорить)

Все правильно, и я, и авторы CVPR считают, что сравнение EfficientDet на GPU 130 000 TFlops-TC против YOLOv3 на GPU 6 000 TFLops в статье EfficientDet — это фейк, и в первоначальном виде их статью бы не допустили на CVPR. Я это объяснил 99% пользователей, которые это не понимали. Странно почему вы против того, чтобы пользователи это знали.

Если Google указывает Inference time в статье и делает специальную версию EfficientNet-TPUEdge (backbone для EfficientDet) ai.googleblog.com/2019/08/efficientnet-edgetpu-creating.html, в которой убирает все фишки (DepthWise-conv, SE, ...) снижающие BFLOPS, чтобы это работало побыстрее, с сильным падением точности обнаружения — хотя бы по точности/скорости как самая древняя YOLO, значит Google важна скорость. И если в результате все равно это не быстрее/точнее — значит просто не могут сделать. Apple их обгоняет в этом плане потому, что они используют что?

Может если бы йоло не была так привязана к маргинальному (будем честны, он такой и есть) даркнету, то авторы не поленились бы и запустили её в сравнение ко всем остальным ретинам.

YOLO есть на всех фреймворках: Facebook-Pytorch, Google-TensorFlow, Tencent-NCNN, nVidia-TensorRT, Intel-OpenCV, Mxnet, Keras, TVM, Darknet,…
всего 13 000 репозиториев, 4852 на Python: github.com/search?q=yolo
* YOLOv3 Pytorch: github.com/ultralytics/yolov3
* YOLOv3-ASFF Pytorch: github.com/ruinmessi/ASFF

The founders of Xnor.ai, Ali Farhadi and Mohammad Rastegari, are experts in computer vision. Ali is a co-author of the popular object detection technique. YOLO — You Look Only Once. YOLO is one of the most popular techniques used in object detection in real-time.

Приватные разработки в том числе на маргинальном Darknet были куплены компанией Apple за $200 000 000 именно из-за быстроты XNOR-YOLO на ARM-чипах/NPU www.forbes.com/sites/janakirammsv/2020/01/19/apple-acquires-xnorai-to-bolster-ai-at-the-edge/#156e95733975

Думаю вопрос «как сильно пострадала наша репутация от того, что мы в одной из второстепенных строк одной из таблиц указали данные из оригинальной статьи, а потом вычеркнули совсем для единообразия и ясности» вызовет у них в лучшем случае недоумение :)

Если бы Google-brain статью не исправили, и их бы не пустили на CVPR — вот у них было бы недоумение.

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

Т.е. вы считаете, что в статье EfficientDet сравнение писалось на отвали, а вместо точных чисел скорости и точности они использовали термины «приличные»? Я считаю, что Google намного лучше, чем вы о них думаете.
То есть вы берёте цифры конкурентов из их статей и все остальные поступают точно так же — берут цифры конкурентов из их статей, поэтому и получается сравнение новых сетей на новых железках со старыми сетями на старых железках.

Нет, не получается. Прочитайте статью.
У нас новая сеть сравнивается с другими сетями на одинаковых железках.
Новая сеть на старом железе со старой сетью на старом железе.
Новая сеть на новом железе с новой сетью на новом железе.

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

Если бы им было все равно, то они бы не кинулись через пол года доделывать сеть и исправлять статью, при этом бросив текущие проекты.
Если бы им не было важно Inference time (ms), то они бы их не указывали.

Недавно был опубликован анонс новой YOLOv5, которая идейно дает гораздо лучший процент распознавания на датасете COCO, чем предыдущие версии.


Читайте, YOLOv5-Ultralytics хуже, чем YOLOv4 и по точности и по скорости: https://github.com/pjreddie/darknet/issues/2198

Мне кажется, что пока единственный удачный эксперимент в применении Transformer к картинкам был вот этот — arxiv.org/pdf/2005.12872.pdf (я даже по его поводу небольшую статью накатал — cv-blog.ru/?p=310 )


А Repulsion Loss (21 Nov 2017) / CVPR 2018 arxiv.org/abs/1711.07752v2 или Soft-IoU layer (CVPR 19) arxiv.org/abs/1904.00853v3 потом не пробовали для обнаружения в толпах?
Привет.
А batch=32 для измерения Latency (ms) не смутило сразу? )
Тут два варианта:

1. Либо один пакет в 32 изображения обрабатывается за 17мс с точностью 47%AP, т.е. скорость ~2000 FPS с точностью 47%AP

2. Либо один пакет в 32 изображения обрабатывается за ~500мс, а затем они зачем то это делят на 32, и получают 17мс. Только задержка 1 сэмпла в пакете не может быть меньше задержки всего пакета 500мс.

То есть чтобы понять, что дурят, даже в нейронных сетях не надо разбираться, надо только знать что такое Latency и Batching.

По факту Ultralytics-YOLOv5 чуть хуже, чем YOLOv4 если честно сравнивать: github.com/AlexeyAB/darknet/issues/5920

коммент ниже
4. На GPU (и Jetson) ещё больше проблем с Grouped/Depthwise-conv используемых в EfficientDet.
— MobileNetv3-small — 16.1% AP arxiv.org/pdf/1905.02244v5.pdf
— YOLOv4-416 — 41.2% AP и 30 FPS на Jetson Xavier AGX если запустить на OpenCV или tkDNN-TesnorRT batch=1

Результаты на AGX Xavier, полагаю, для int8?


Везде FP32/16. Если использовать int8, то надо и точность для int8 писать.

И не особо важно, как что-то работает на старой Jetson Nano (Maxwell), гораздо важнее как что-то работает на современных Jetson Xavier / TPU-Edge / Intel Myriad X и на будущих устройствах.

Очень любопытно, спасибо, что уточнили! Я, увидев FPS, сразу неявно предположил, что действительно с batch-size=1 указано, а так это, конечно, меняет дело.

На это и расчет.

— MobileNetv3 — оптимальна только для CPU / мобильных-CPU / устройств 5-летней давности
— YOLOv4 full/tiny — оптимальна для GPU и NPU/VPU/TPU
— EfficientDet — ни для чего не оптимальна
5. Google это коммерческая компания, с большими зарплатами, которые там не платят просто за написание статьи. Сказать что им не важна скорость — это сказать, что им не важны деньги.

Без всякого сарказма: у Вас есть объяснение тому, что при всём при этом разработки архитектур EfficientDet и MobileNetv3 вообще покинули стены лаборатории? Я в своих оценках могу основываться только на результатах, приведённых в статьях, которые, по Вашим словам, местами, мягко говоря, не без предвзятости (о чём, в общем, и в других источниках время от времени упоминается), хотя архитектурные решения EfficientDet мне кажутся элегантными. Неужели NIH-синдром? И считаете ли Вы базовую модель, EfficientNet, также не совсем удачной или с ней дела лучше?

1. А вы как думаете, почему они сначала написали, а потом удалили из своей статьи FPS/latency для Yolov3?
2. И почему EfficientDet и MobileNetv3 вообще покинули стены лаборатории?

На NAS-сети потратили десятки миллионов долларов на разработки и TPU для AutoML / Hyper-parameter Tuning.
Плюс надеются, что grouped/depthwise-conv когда-то все таки оптимизируют именно на NPU, а не на GPU, поэтому и мы от этого полностью не отказываемся, о чем и написали в статье.
Все данные в статье EfficientDet верны, и там написано, что EfficientDet не лучше, чем старая Yolov3, просто большинство людей читать не умеют — на это и расчет )
В моих собственных экспериментах на Jetson Nano вариант MobileNetv3-small показывает ещё несколько более впечатляющие результаты.


4. На GPU (и Jetson) ещё больше проблем с Grouped/Depthwise-conv используемых в EfficientDet.
— MobileNetv3-small — 16.1% AP arxiv.org/pdf/1905.02244v5.pdf
— YOLOv4-416 — 41.2% AP и 30 FPS на Jetson Xavier AGX если запустить на OpenCV или tkDNN-TesnorRT batch=1

— MobileNetv3 — оптимальна только для CPU / мобильных-CPU / устройств 5-летней давности
— YOLOv4 full/tiny — оптимальна для GPU и NPU/VPU/TPU
— EfficientDet — ни для чего не оптимальна

вот автор одной из недавних реализаций на PyTorch заявляет о более высоком уровне в его экспериментах.

Потому что тестируют с batch=64 github.com/rwightman/efficientdet-pytorch/issues/28#issuecomment-636532299

Если YOLOv4 запустить хотя бы с batch=4, то мы уже получаем более 400 FPS на той же RTX 2080Ti, с гораздо большей точностью чем у D0:


5. Как можно судить, в титульной реализации EfficientDet, похоже, вообще не очень-то преисполнялись темой быстродействия,


5. Google это коммерческая компания, с большими зарплатами, которые там не платят просто за написание статьи. Сказать что им не важна скорость — это сказать, что им не важны деньги. Допустим Apple заплатила $200 M за то, чтобы Yolo работала побыстрее с небольшим падением точности: news.crunchbase.com/news/apple-acquires-ai-on-the-edge-startup-xnor-ai-for-around-200m
Researchers at Xnor.ai developed an object detection model they called You Only Look Once (aka YOLO), which the company licensed to enterprise customers including internet-connected home security camera company Wyse.

EfficientDet разрабатывала команда Google Brain, для того, чтобы использовать её как на TPU-Edge-devices, так и внутри Google, и от скорости зависит сколько они потратят на Hardware в масштабах Google, например, $10 M или $20 M. Так же зависит их репутация от фейкового сравнения со старой Yolov3.
Поэтому они сразу кинулись допиливать код и исправлять статью, а именно таблицу 2:
— было 3 Apr 2020: arxiv.org/pdf/1911.09070v4.pdf
— стало 24 May 2020: arxiv.org/pdf/1911.09070v5.pdf

1. Убрали Latency/FPS для Yolov3

2. Бросились увеличивать скорость потому, что как оказалось, на самом деле самая быстрая EfficientDet-D0 даже медленнее, чем самая медленная старая Yolov3-608 :)
Было D0-512 — 62 FPS — 33.8% AP — 52.2% AP50
Стало D0-512 — 98 FPS — 33.8% AP — 52.2% AP50

Когда
YOLOv4-416 — 96 FPS — 41.2% AP — 62.8% AP50
YOLOv4-320 — 123 FPS — 38% AP — 60% AP50
Yolov3-416 — 100 FPS — 31% AP — 55% AP50

Т.е. по AP50, даже старая (2018 год) Yolov3-416 быстрее и точнее, чем даже улучшенная (2020 год) версия EfficientDet-D0. Т.е. вообще занавес.



Да, конечно, нормализованное relu.


Relu(w[i]) / (sum(Relu(w[k])) + 0.001)
Где sum Суммирует по всем k

Спасибо автору, что знакомит российскую аудиторию с современными достижениями ИИ.

Несколько уточнений:
1. Официальный код на TensorFlow: github.com/google/automl/tree/master/efficientdet

Также в EfficientDet используется хитрая фунцкия вместо SoftMax, в основе которой лежит метод быстрой нормализации слияния,

2. Эта хитрая функция называется — ReLU

3. BiFPN использует weighted multi-input Residual connections, в которых сумма весов равна 1 (нормализованы). Это обычные Residual connections из ResNet-сетей, но:
— I. На вход подается не 2, а от 2 до 4 выходов предыдущих слоев
— II. Входы не просто складываются, а умножаются на вес (1 вес на каждый вход). Т.е. если на вход подается 3 слоя, то:
out[i] = in1[i]*w1 + in2[i]*w2 + in3[i]*w3;
out[i+1] = in1[i+1]*w1 + in2[i+1]*w2 + in3[i+1]*w3; ...

Тогда как для обычного Residual connection: out[i] = in1[i] + in2[i]; out[i+1] = in1[i+1] + in2[i+1];

4. Авторы EfficientDet разработали эффективную с точки зрения формальных параметров BFLOPS, но не эффективную с точки зрения производительности, поэтому в Google отказались от большинства фич, которые радикально уменьшают BFLOPS, а именно отказались от: Swish, Depthwise convolution и Squeeze-and-excitation block
ai.googleblog.com/2019/08/efficientnet-edgetpu-creating.html

5. Авторы EfficientDet в таблице 2 уточняют, что FPS-скорость для Yolov3 они взяли из yolo-статьи, где её измеряли на TitanX/M40 maxwell, а FPS-скорость для EfficientDet они измеряли на TitanV volta, которая на 2 поколения новее и в несколько раз быстрее. Только поэтому EfficientDet получилась чуть лучше по скорости и точности, чем старая Yolov3.

6. Авторы EfficientNet/Det из Google AI использовали AutoML/NAS для автоматического подбора оптимальных гиперпараметров/разрешения/глубины/количества-параметров для конкретных датасетов ILSVRC2012-classification / MSCOCO-detection.
nni.readthedocs.io/en/latest/TrialExample/EfficientNet.html
ai.googleblog.com/2019/05/efficientnet-improving-accuracy-and.html
Количество фильтров/слоев в Neck (FPN, PAN, BiFPN, ASFF, ...) сильно зависит от network resolution, backbone, dataset, BoF/BoS,… чуть что-то изменил, и надо заново подбирать. Это всегда будет поиск компромисса или точнее и медленнее, или быстрее, но точность хуже. Мы же старались добавить фичи, которые увеличивают точность без уменьшения скорости, и которые затем можно использовать в любых других сетях, детекторах или даже задачах.

Единственное, что могу посоветовать, это использовать те же скейл параметры (α = 1.2, β = 1.1, γ = 1.15), как в EfficientNet/Det для compound scaling method, если хотите уменьшить/увеличить сеть и скорость/точность. arxiv.org/abs/1905.11946

Вы можете использовать NAS (как часть AutoML) для подбора оптимальной архитектуры, но если вы не Google, который может тратить миллионы $ на NAS, то больших результатов ждать не стоит. en.wikipedia.org/wiki/Neural_architecture_search

В Google-brain использовали NAS в большей или меньшей степени для: NAS-FPN, MnasNet + NECK, EfficientNet/Det, MixNet,… а все равно не смогли сделать сеть точнее, чем старая Yolov3 при той же скорости, если запускать обе на том же GPU (TitanV/TeslaV100).

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность