Комментарии 33
В тестах используется Google/Microsoft API общего назначения. Поэтому полнота там не очень высокая. Очевидно, что fine-tuned модель для сегментации/классификации только машин работает на порядки лучше.

Если и сравнивать, то хотя бы с OpenCV, в котором есть такая же функция. Да и само сравнение в виде пары примеров — это смешно. Ни бенчмарков, ни нормальных метрик.

Именно, думаю, можно за вечер натренировать сеточку распознавать хотдоги КРУЧЕ ЧЕМ В ГУГЛ!!1

Разве это не здорово, что за один вечер можно стать топ1 мира по решению глобальной, пусть и несущественной, задачи?

А тут и не предъявлено лучшее решение в мире. Тут сравнивается одни из лучших плоскогубцев и специализированные клещи для очистки изоляции. И внезапно даже по-быстрому сделанные клещи лучше.
Я уверен, что такие же решения уже есть, просто тут они не рассматриваются.

Это еще как здорово! Просто статья написана таким образом, что у читателя может сложиться мнение что решения от Google и Microsoft совсем никчемные.

Но все равно, как-то, слишком уж слабо себя гиганты показали. При их возможностях могли бы и некий общий классификатор входящего изображения сделать, чтобы он уже запускал более точные модели.
Типа, если на фото парковка, то апприорная вероятность увидеть там машину — 99%, а футляр для очков, или гигантскую детскую игрушку — 0.01

Они не показывают себя плохо. Они натренированы показывать ключевые объекты на картинке. Грубо говоря, они отвечают на вопрос: «Что на картинке?». В ответ на такой вопрос показывать маленькую или замыленную машинку на краю изображения неправильно (с точки зрения оптимизации).
Ну… спорно. По сути, они делают продукт не для конечного юзера (для которого можно они могут четко занть потребности), а для тех, кто сам изучает потребности некой узкой ниши, и делает решение под нее. Поэтому, логично, что надо давать выбор. Условно, топ5 объектов за $0.01, или топ250 за $0.1
Очень смело вот так говорить за других для кого они делают продукт и в чем их ниша.
Тем более, что Ваше мнение неочевидно. Данные сервисы отлично решают задачу общего описания изображений. И в этом они хороши. Без четкой задачи (обведи все машины) сеть должна сделать абстрактное «всё». Что она должна отмечать? Дома? Окна на домах? Стекла? Раму? Кирпичи?

P.S. Например, с помощью этих сервисов можно автоматически проставлять тэги на фотографиях или генерировать текстовые описания.
По ссылке cloud.google.com/vision/docs/object-localizer ограничений и близко не указано. Так что, все еще разочарован. Все таки, повторюсь, это продукт с довольно широким спектром применения, и логично предположить, что ставишь max_results = 100500 и получаешь каждый кирпич, но нет.
Подумал минут 5, и так много разных идей для проектов, которые можно посторить поверх хорошего API для распознавания картинок приходит в голову (всякие аналитики для оффлайн ритейла, монниторинги состояния производства, подсчеты болтов на конвеере), но почти все натыкается на ограничения.
С учётом того что это первый пост автора — мне кажется это банально реклама.
И вот обидно же. Белорусской фирме сейчас надо пиарить не приложение с подсчётом машин, а с подсчётом людей в толпе. Чтобы считать размер митингов. Тогда могли бы сколько угодно кривых сравнений делать.

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

Не совсем. Учитывая результаты чуть выше средних, им еще и еще надо расширять датасет. Так что кроме рекламы это еще и ход для сбора дата сета. Каждый кто попробовал сервис загрузил картинку.

Я, вот, с камер кинул им пару картинок в API. Но результатом был весьма разочарован. Датасет еще не айс.
Вы бы указали, какие модели использовали от google\microsoft.
Не помню, в гугл\майрософт стандартная база моделей, или возможность выбора модели для распознования?
к примеру, тотже openCV, который отсутствует в сравнении (догадываюсь почему), может выдавать результат разной точности, смотря какая модель, смотря какой метод распознования и т.п.
И еще неочевидная часть: для некоторых моделей очень критичны ложно-отрицательные срабатывания и их специально тренируют для минимального числа, жертвуя при этом точностью определения.
А также сильно подозреваю, что модели зависимы от масштаба объекта. По-хорошему, к каждой модели бы прикладывать, на какой дальности и в каких ракурсах там были машины при тренировке.
Не первый стартап на теме парковок и компьютерного зрения. Вы, вообще, как собираетесь выживать в окружении, когда такие темы кругом появляются как грибы? Больше этого: как деньги то зарабатывать будете?
Вы этот, простите, бред зачем здесь написали? Давайте я вам за условных 30 минут yolo дообучу на автомобилях и сравним с «белорусским сервисом» или вы так и сделали? Рассказали б для начала какие модели используете и что полезного с ними сделали.

Общие системы справились хуже, чем специально обученная. Внезапно!

Ну на самом деле, мой тест бел. AI скажем так прошел на тройку:
image

ЗЫ Картинка взята из интернета и авторство неизвестно.

Так а в чем проблема?) У людей узкая ниша. В ней подобных картинок нет. А если и есть, то это входит в % допустимой погрешности, которая не сломает бизнес-процесс заказчика

У нас длиннее всех! *
* — когда все остальные в холодной воде

p.s. простите, не смог удержаться — накрыло воспоминаниями молодости
фреймворк YOLOv3 Darknet. Эксперименты показали, что именно он создает меньше всего проблем в реализации.


А можно немного подробнее о проблемах реализации? почему именно YOLO?

Кстати, аугментацию 3d графикой не думали применить? На первый взгляд, ваши кейсы очень хорошо генерируются

«Скормил» Гугл карты с машинами на дороге, машинки не нашлись…

image


Разве это не крайне странно, что нейросеть распознала часть диска, но не целое?

Как бы это культурнее сказать… Автор похоже не знает про ковариационный сдвиг в выборке. Да и хвастается только удачными картинками. Где же видео? Интересно, как дела обстоят с переобучением и изменением сцены.

Какие нейросети используются в "Google AI" и "Microsoft Computer Vision"? Потому что вот прямо сейчас взял довольно старую разработку от Google "EfficientDet D7" с COCO 2017 (80 категорий объектов) и она без всякого дообучения выдает сравнимое качество распознавания:




Другие более менее современные нейросети тоже не сильно уступают: CenterNet: https://habrastorage.org/webt/xq/eb/ke/xqebkeq1owrwjpm2jytlfhi86lm.jpeg, Faster R-CNN: https://habrastorage.org/webt/1g/rs/96/1grs96te3un9p5n_diajm5g27na.jpeg. Не стал вставлять картинки, чтобы не загромождать комментарий.


Так как исходных картинок в статье нет, то пришлось вырезать прямо из скриншотов в этой статье. Первая (https://habrastorage.org/webt/vy/ya/sf/vyyasfjdaozweeurigu_gdwszco.jpeg) получилась всего 557х413 пикселей и вторая (https://habrastorage.org/webt/2d/3f/ny/2d3fnyuny7qj97ohz_jctgrnvgq.jpeg) 450х254 пикселей. Хотя в статье видно, что оригинальные картинки были как минимум в два раза больше по разрешению. Думаю, с оригиналами получилось бы еще лучше.


Но использовать YOLO3 и дообучать под свой датасет это правильно, конечно. Хотя уже вышел YOLO4 (и какой-то левый YOLO5, но на самом деле это примерно как YOLO4). Кроме того, для вида сверху (без перспективы) есть сетки с Oriented Box и соответствующие датасеты/соревнования (такие как DOTA, пример сетки ), которые не чувствительны к поворотам.


P.S. Эти примеры запустил в браузере через этот Google Colab, ссылка для желающих повторить: https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/tf2_object_detection.ipynb. А здесь список нейросетей в нем (выбираются из списка в самом Colab ноутбуке): https://tfhub.dev/tensorflow/collections/object_detection/1

Вы сейчас их сервис сделали бессмысленным. Осталось только геометки и карту прикрутить, что не трудно. Теперь все то же сможет сделать любая домохозяйка. А там целый стартап. Чтож вы так, а?

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


Новые архитектуры регулярно появляются, но там нет такой большой разницы, улучшения максимум на единицы процентов, а не в разы. А основная и самая трудоемкая работа для практического применения всегда заключается в дообучении какой-нибудь современной нейросети под свой датасет. Так что с этим в статье все нормально, стартап имеет право на существование. Там ведь ещё огромная сложность с выбором минимального score, по которому отсекать результаты. Для этого тоже нужен довольно большой свой датасет. Чтобы по нему выбрать что важнее — детектировать все объекты, но при этом будет много ложных срабатываний, или надёжное срабатывание без ложных целей, но при этом часть объектов будет пропущена. Кроме того, простая замена 80 категорий на 1-2 (как, видимо, сделали в статье) резко уменьшает размер нейоросети и ускоряет ее работу. Если не считать провокационного заголовка и некорректного сравнения с какими-то жутко устаревшими сетями (подозреваю, там mobilenet какой-нибудь, возможно даже первый, если в cloud сервисе крутится на CPU), то ребята все сделали правильно. Результат тоже очень хорош, лучшего на текущем этапе развития нейросетей особо и не добиться.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.