image

Когда дело касается распознавания объектов, первые клики будут в сторону Google или Microsoft. Что если они сразятся между собой в распознавании автомобилей? Мы провели исследование, добавив в список игроков белорусский сервис SpotVision Car Detection. Кто победит?

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

Цель в том, чтобы распознавать автомобили на изображениях с камер видеонаблюдения и передавать информацию в схематичном варианте на карту в мобильном приложении или дашборде.

Первым делом мы протестировали Google AI, так как многим продуктам гугла мы доверяем безоговорочно. И казалось, что для такого крупного и влиятельного монстра распознавание автомобилей будет плёвым делом (дастся легко, будет легко выполнимым). Однако, нас ждало разочарование. Распознавание Google AI для автомобилей проходит с малой точностью. Поэтому оно скорее выглядит как пиар для других продуктов гугла, чем качественно работающая система компьютерного видения.

Для первого теста мы взяли хорошо освещенные изображения с оптимальной высоты и масштабом автомобилей. Пристрелочный запуск провалился. Из более чем 40 автомобилей Google AI и обвел только 10 машин.

Test 1. Google AI
image

Обнаружив, что даже великий гугл фэйлит распознавание на таком банальном уровне, мы взяли на сравнение сервис Microsoft Computer Vision. У нас получился вот такой результат.

Test 1. Microsoft Computer Vision
image

Всего 6 (!) автомобилей. И это выглядит очень печально.

Понимая, что сфера AI только начинает развиваться, а нашего спортивного интереса не унять, мы стали собирать датасет из автомобилей и тренировать собственную нейронную сеть. За основу мы взяли фреймворк YOLOv3 Darknet. Эксперименты показали, что именно он создает меньше всего проблем в реализации. Он быстро обрабатывает изображения и автоматически применяет аугментацию при недостаточном количестве изображений. Спустя период интенсивного обучения у нас появилась натренированная нейронная сеть на базе более 25 тысяч изображений. На текущий момент мы добавляем еще 2500 картинок для тренировки.

Вот как с этим же заданием справилась белорусская AI система SpotVision Car Detection.

Test 1. SpotVision Car Detection

image

Как видно, определено подавляющее большинство автомобилей, причем не только на парковке. То есть там, где человеческий глаз без проблем может рассмотреть автомобиль, система SpotVision справляется на “отлично”.

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

Вот что выдал в результате гугл.

Test 2. Google AI
image

И аналогичный вариант от Майкрософта

Test 2. Microsoft Computer Vision
image

То есть — полный ноль и отсутствие каких-либо признаков автомобилей на изображении.

Сравним результаты системы распознавания машин SpotVision.

Test 2. SpotVision Car Detection
image

Двигаемся дальше. Чаще всего камеры видеонаблюдения установлены на верхних этажах многоэтажных домов. Это обеспечивает наибольший визуальный охват площади парковки одной камерой. Что снижает затраты сервисов видеонаблюдения на оборудование и установку. Так как наиболее частый и востребованный кейс — распознавание автомобилей во дворах жилых комплексов и бизнес-центров, мы также взялись проанализировать его в трех системах.

Test 3. Google AI
image

Test 3. Microsoft Computer Vision
image

Test 3. SpotVision Car Detection
image

Теперь поставим вопрос ребром: насколько справляются системы, если на изображении один автомобиль целиком и захвачены края рядом стоящих?

Test 4. Google AI
image

Test 4. Microsoft Computer Vision
image

Test 4. SpotVision Car Detection
image

По результатам, Google AI нашел на картинке 4 объекта, причем три из них — это колеса, а не автомобили целиком. Microsoft Computer Vision определил 2 авто. Spotvision распознал 4 автомобиля целиком и отдельно одно колесо. С небольшой погрешностью, но наиболее полно с задачей справилась белорусская система распознавания автомобилей.

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

Test 5. Google AI
image

Test 5. Microsoft Computer Vision
image

Test 5. SpotVision Car Detection
image

На удивление, все три сервиса определили машину точно, только Google AI дополнительно среагировал на колесо или завихрения от цветного дыма, обведя его прямоугольником.
Еще одним естественным природным усложнителем распознавания проявляется дождь и туман. Они снижают четкость изображения и могут прятать объекты от компьютерного видения.

Test 6. Google AI
image

Test 6. Microsoft Computer Vision
image

Test 6. SpotVision Car Detection
image

Google AI и SpotVision Car Detection показали наилучший результат, хотя и потеряли из виду две машины, едущие вдалеке. Microsoft Computer Vision упустил одну машину и из очевидных четырех обвел только три.

Итак, два контрольных теста с максимальным количеством изображенных автомобилей. На Test 7 изображено 46 автомобилей.

Test 7. Google AI
image

Test 7.Microsoft Computer Vision
image

Test 7. SpotVision Car Detection
image

Из 46 машин на картинке Google AI нашел 11 авто, Microsoft Computer Vision — 30 машин и ошибочно обвел знак на столбе, а SpotVision — нашел 46 машин.

Продолжим с примерами, где много машин. Изменяем угол обозрения.

Test 8. Google AI
image

Test 8. Microsoft Computer Vision
image

Test 8. SpotVision Car Detection
image

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

Test 9. Google AI
image

Test 9. Microsoft Computer Vision
image

Test 9.SpotVision Car Detection
image

Тот же вид, только в ночном режиме.

Test 10. Google AI
image

Test 10. Microsoft Computer Vision
image

Test 10. SpotVision Car Detection
image

Выходит, что Google AI и Microsoft Computer Vision работают с более широким спектром задач, но потерпели абсолютный провал в распознавании автомобилей. Большинство кейсов было провалено полностью или частично, некоторые распознаны с помарками. Поэтому они не подходят для обслуживания бизнеса, который хотел бы расширить свои возможности за счет интеграции с AI-сервисами. При этом белорусский сервис SpotVision Car Detection справился на 98% с поставленными задачами и готов к прикладному применению в режиме реального времени.

Если вы сами хотите проверить работу каждого из сервисов, вот ссылки

Google AI
Microsoft Computer Vision
Spotvision Car Detection