Когда появился термин компьютерное зрение
Компьютерным зрением обычно называют научную дисциплину, которая даёт машинам способность видеть, или более красочно, позволяя машинам визуально анализировать своё окружение и стимулы в нём. Этот процесс обычно включает в себя оценку одного или нескольких изображений или видео. Британская ассоциация машинного зрения (BMVA) определяет компьютерное зрение как «автоматическое извлечение, анализ и понимание полезной информации из изображения или их последовательности».
Термин понимание интересно выделяется на фоне механического определения зрения — и демонстрирует одновременно и значимость, и сложность области компьютерного зрения. Истинное понимание нашего окружения достигается не только через визуальное представление. На самом деле визуальные сигналы проходят через оптический нерв в первичную зрительную кору и осмысливаются мозгом в сильно стилизованном смысле. Интерпретация этой сенсорной информации охватывает почти всю совокупность наших естественных встроенных программ и субъективного опыта, то есть как эволюция запрограммировала нас на выживание и что мы узнали о мире в течение жизни.
В этом отношении зрение относится только к передаче изображений для интерпретации; а компьютинг указывает на то, что изображения больше походят на мысли или сознание, опираясь на множество способностей мозга. Поэтому многие верят, что компьютерное зрение, истинное понимание визуального окружения и его контекста, прокладывает путь к будущим вариациям Сильного Искусственного Интеллекта благодаря совершенному освоению работы в междоменных областях.
Но не хватайтесь за оружие, потому что мы ещё практически не вышли из зачаточной стадии развития этой потрясающей области. Эта статья должна просто пролить немного света на самые значительные достижения компьютерного зрения в 2016 году. И возможно попытаться вписать некоторые из этих достижений в здравую смесь ожидаемых краткосрочных общественных взаимодействий и, где это применимо, гипотетических прогнозов завершения нашей жизни в том виде, какой мы её знаем.
Хотя наши работы всегда написаны максимально доступным образом, разделы в этой конкретной статье могут показаться немного неясными из-за предмета обсуждения. Мы везде предлагаем определения на примитивном уровне, но они дают только поверхностное понимание ключевых концепций. Концентрируясь на работах 2016 года, мы часто делаем пропуски ради краткости изложения.
Одно из таких очевидных упущений относится к функциональности свёрточных нейронных сетей (CNN), которые повсеместно применяются в области компьютерного зрения. Успех AlexNet в 2012 году, архитектуры CNN, которая ошеломила конкурентов в конкурсе ImageNet, стала свидетельством революции, которая де-факто произошла в этой области. Впоследствии многочисленные исследователи начали использовать системы на основе CNN, а свёрточные нейросети стали традиционной технологией в компьютерном зрении.
Прошло более четырёх лет, а варианты CNN по-прежнему составляют основную массу новых нейросетевых архитектур для задач компьютерного зрения. Исследователи переделывают их как кубики конструктора. Это реальное доказательство мощи как open source научных публикаций, так и глубинного обучения. Однако объяснение свёрточных нейросетей легко растянется на несколько статей, так что лучше оставить его для тех, кто более глубоко разбирается в предмете и имеет желание объяснить сложные вещи понятным языком.
Для обычных читателей, которые желают быстро вникнуть в тему перед продолжением этой статьи, рекомендуем первые два источника из перечисленных ниже. Если вы желаете ещё более погрузиться в предмет, то для этого мы приводим ещё и другие источники:
- «Что глубокая нейронная сеть думает о твоём селфи» от Андрея Карпаты — одна из лучших статей, которая помогает людям понять применение и функциональность свёрточных нейросетей. — здесь полно отличных ссылок и объяснений. Особенно подходит для тех, у кого не было предварительного понимания в этой области. — отличный ресурс для более глубокого изучения темы.
- «Глубокое обучение» (Goodfellow, Bengio & Courville, 2016) даёт подробное объяснение функций свёрточных нейросетей и функциональности в главе 9. Авторы любезно опубликовали этот учебник бесплатно в формате HTML.
- «Нейросети и глубокое обучение» (Nielsen, 2017) — бесплатный онлайновый учебник, который обеспечивает действительно интуитивное понимание всех сложностей нейросетей и глубокого обучения. Даже чтение первой части должно во многом осветить для новичков тему предмета этой статьи.
От лица всех участников,
The M Tank
Задача классификации по отношению к изображениям обычно заключается в присвоении метки целому изображению, например, «кот». С учётом этого локализация может означать определение, где находится объект на этом изображении. Обычно тот обозначается неким ограничивающим прямоугольником вокруг объекта. Нынешние методы классификации на ImageNet уже превосходят группы специально обученных людей по точности классификации объектов.
Рис. 1: Задачи компьютерного зрения
Источник: Fei-Fei Li, Andrej Karpathy & Justin Johnson (2016) cs231n, лекция 8 — слайд 8, пространственная локализация и обнаружение (01/02/2016), pdf
Однако увеличение количества классов, вероятно, обеспечит новые метрики для измерения прогресса в ближайшем будущем. В частности, Франсуа Шолле, создатель Keras, применил новые методы, в том числе популярную архитектуру Xception, к внутреннему набору данных Google с более чем 350 млн изображений с множественными метками, содержащими 17 000 классов.
Рис. 2: Результаты классификации/локализации с конкурса ILSVRC (2010–2016)
Примечание: Конкурс ImageNet Large Scale Visual Recognition Challenge (ILSVRC). Улучшение результатов после 2011–2012 гг связано с появлением AlexNet. См. обзор требований конкурса в отношении классификации и локализации
Источник: Jia Deng (2016). Локализация объектов ILSVRC2016: введение, результаты. Слайд 2, pdf
Интересные выдержки с ImageNet LSVRC (2016):
-
Классификация сцены обозначает задачу присвоения меток изображению с определённым классом сцены, таким как «оранжерея», «стадион», «собор» и т.д. В рамках ImageNet в прошлом году прошёл конкурс по классификации сцен на выборке из набора данных Places2: 8 млн изображений для обучения с 365 категориями сцен.
Как можно догадаться, процесс обнаружения объектов делает именно то, что должен делать — обнаруживает объекты на изображениях. Определение обнаружения объектов от ILSVRC 2016 включает в себя выдачу ограничивающих рамок и меток для отдельных объектов. Это отличается от задачи классификации/локализации, поскольку здесь классификация и локализация применяются ко многим объектам, а не к одному доминирующему объекту.
Рис. 3: Обнаружение объектов, где лицо является единственным классом
Примечание: Картинка представляет собой пример обнаружения лиц как обнаружения объектов одного класса. Авторы называют одной из неизменных проблем в этой области обнаружение маленьких объектов. Используя маленькие лица как тестовый класс, они исследовали роль инвариантности размеров, разрешений изображения и контекстуальных обоснований.
Источник: Hu, Ramanan (2016, p. 1)
Одной из главных тенденций 2016 года в области обнаружения объектов стал переход к более быстрым и эффективным системам обнаружения. Это видно по таким подходам как YOLO, SSD и R-FCN в качестве шага к совместным вычислениям на всём изображении целиком. Этим они отличаются от ресурсоёмких подсетей, связанных с техниками Fast/Faster R-CNN. Такую методику обычно называют «тренировкой/обучением от начала до конца» (end-to-end training/learning).
По сути идея состоит в том, чтобы избежать применения отдельных алгоритмов для каждой из подпроблем в изоляции друг от друга, поскольку обычно это повышает время обучения и снижает точность нейросети. Говорится, что такая адаптация нейросетей для работы от начала до конца обычно происходит после работы первоначальных подсетей и, таким образом, представляет собой ретроспективную оптимизацию. Однако техники Fast/Faster R-CNN остаются высокоэффективными и по-прежнему широко используются для обнаружения объектов.
- SSD: Single Shot MultiBox Detector использует единую нейронную сеть, которая выполняет все необходимые вычисления и устраняет необходимость в ресурсоёмких методах предыдущего поколения. Он демонстрирует «75,1% mAP, превосходя сравнимую самую современную модель Faster R-CNN».
- Одной из самых впечатляющих разработок 2016 года можно назвать систему, метко названную YOLO9000: Better, Faster, Stronger, в которой используются системы обнаружения YOLOv2 и YOLO9000 (YOLO означает You Only Look Once). YOLOv2 — это сильно улучшенная модель YOLO от середины 2015 года, и она способна показать лучшие результаты на видео с очень высокой частотой кадров (до 90 FPS на изображениях низкого разрешения при использовании обычного GTX Titan X). Вдобавок к повышению скорости, система превосходит Faster RCNN с ResNet и SSD на определённых наборах данных для определения объектов.
YOLO9000 реализует совмещённый метод обучения для обнаружения и классификации объектов, расширяющий его возможности предсказания за пределы доступных размеченных данных обнаружения. Другими словами, он способен обнаруживать объекты, которые никогда не встречались в размеченных данных. Модель YOLO9000 обеспечивает обнаружение объектов в реальном времени среди более 9000 категорий, что нивелирует разницу в размере наборов данных для классификации и обнаружения. Дополнительные подробности, предобученные модели и видеодемонстрацию см. здесь.
Обнаружение объектов YOLOv2 работает на кадрах фильма с Джеймсом Бондом
Рис. 4: Компромисс между точностью и размером объектов при обнаружении объектов на разных архитектурах
Примечание: По вертикальной оси отложен показатель mAP (mean Average Precision), а по горизонтальной оси — разнообразие мета-архитектур для каждого блока извлечения признаков (VGG, MobileNet… Inception ResNet V2). Вдобавок, малый, средний и большой mAP показывают среднюю точность для малых, средних и крупных объектов, соответственно. По существу, точность зависит от размера объекта, мета-архитектуры и блока извлечения признаков. При этом «размер изображения зафиксирован на 300 пикселях». Хотя модель Faster R-CNN относительно неплохо показала себя в данном примере, важно отметить, что эта мета-архитектура значительно медленнее, чем более современные подходы, такие как R-FCN.
Источник: Huang et al. (2016, p. 9)
В вышеупомянутой научной статье представлено подробное сравнение производительности R-FCN, SSD и Faster R-CNN. Из-за сложностей точного сравнения техник машинного обучения мы хотели бы указать на достоинства создания стандартизированного подхода, описанного авторами. Они рассматривают эти архитектуры как «мета-архитектуры», потому что их можно сочетать с разными блоками извлечения признаков, такими как ResNet или Inception.
Авторы изучают компромиссы между точностью и скоростью работы в разных мета-архитектурах, блоках извлечения признаков и разрешениях. Например, выбор блока извлечения признаков сильно изменяет результаты работы на различных мета-архитектурах.
В научных статьях с описанием SqueezeDet и PVANet ещё раз подчёркивается необходимость компромисса между тенденцией повышения скорости работы приложением со снижением потребляемых вычислительных ресурсов — и сохранением точности, которая требуется для коммерческих приложений реального времени, особенно в приложениях беспилотного автотранспорта. Хотя китайская компания DeepGlint показывала хороший пример обнаружения объектов в реальном времени в потоке с камеры видеонаблюдения.
Определение объектов, отслеживание объектов и распознавание лиц в системе DeepGlint
Результаты ILSVRC и COCO Detection Challenge
COCO (Common Objects in Context) — ещё один популярный набор данных изображений. Однако он относительно меньше по размеру и тщательнее курируется, чем альтернативы вроде ImageNet. Он нацелен на распознавание объектов с более широким контекстом понимания сцены. Организаторы проводят ежегодный конкурс на обнаружение объектов, сегментацию и ключевые точки. Вот результаты с конкурсов ILSVRC и COCO на обнаружение объектов:
- ImageNet LSVRC, обнаружение объектов на изображениях (DET): Система CUImage показала 66% meanAP. Выиграла в 109 из 200 категорий объектов.
- ImageNet LSVRC, обнаружение объектов на видео (VID): NUIST 80,8% meanAP
- ImageNet LSVRC, обнаружение объектов на видео с отслеживанием: CUvideo 55,8% meanAP
- COCO 2016, обнаружение объектов (ограничивающие рамки): G-RMI (Google) 41,5% AP (абсолютный прирост в 4,2 п.п. по сравнению с победителем 2015 года — MSRAVC)
Рис. 5: Результаты систем обнаружения на изображениях в конкурсе ILSVRC (2013–2016)
Примечание: Результаты систем обнаружения на изображениях в конкурсе ILSVRC (2013–2016). Источник: ImageNet 2016, онлайновая презентация, слайд 2, pdf
Относится к процессу отслеживания конкретного интересующего объекта или нескольких объектов, на заданной сцене. Традиционно этот процесс применяется в видеоприложениях и системах взаимодействия с реальным миром, где наблюдения производятся после обнаружения исходного объекта. Например, процесс критически важен для систем беспилотного транспорта.
- «Полностью свёрточные сиамские сети для отслеживания объектов» сочетает базовый алгоритм отслеживания с сиамской сетью, обученной от начала до конца, которая достигает рекордных показателей в своей области и работает покадрово со скоростью, превышающей необходимую для работы приложений реального времени. Эта научная статья пытается преодолеть недостаток функциональной насыщенности, доступный моделям отслеживания из традиционных методов онлайнового обучения.
- «Обучение глубоких регрессионных сетей отслеживанию объектов на 100 FPS» — ещё одна статья, авторы которой пытается преодолеть существующие проблемы с помощью онлайновых методов обучения. Авторы разработали трекер, который применяет сеть с механизмом прогнозирования событий (feed-forward network) для усвоения общих взаимоотношений в связи с движением объекта, его внешним видом и ориентацией. Это позволяет эффективно отслеживать новые объекты без онлайнового обучения. Показывает рекордный результат в стандартном бенчмарке отслеживания, в то же время позволяя «отслеживать общие объекты на 100 FPS».
Видео работы GOTURN (Generic Object Tracking Using Regression Networks)
Компьютер видит не так, как люди. Мы стремимся к внедрению в компьютерное зрение лучшего из того, что может человек, но мы ограничены способами записи информации, поступающей непосредственно в компьютер или доступную программу. Таким образом, когда компьютер проводит генерализацию того, что он видит на изображении, и выделяет в ней некие паттерны, ошибки более чем распространены. В первую очередь это связано с тем, что человеческие способности к различению класса объектов тоже ограничены.
Для слайда «Что это может быть?» специально использовано изображение собаки, похожей на кота: на этой фотографии еще более-менее понятно, что это собака, но в целом, если бы я смотрела серию фотографий серых котов, я бы отнесла это животное к ним. Таким образом, мои способности к генерализации отличий изображений с серым котом и серым щенком с плюшевой шерстью имеют предел.
Кроме того, как видно из примеров распознавания этого кота моделью машинного обучения, она на основании обучающей выборки предполагает, что это может быть собака, шапка или кружка. Модель не до конца уверена, является ли наличие кошачьих ушей на 100% подтверждением того, что это не шапка и не кружка. Именно поэтому нам важно понимать, на каком основании модель принимает то или иное решение.
С этой точки зрения нейросети являются черным ящиком, поэтому, несмотря на относительно большую точность, их не любят в местах, где доверие к технологиям машинного обучения низкое. Поэтому требуется, чтобы модель была абсолютно понятна человеку. Например, когда мы делаем модель-помощника для эксперта, эксперт хочет точно знать, на каких основаниях модель приняла определенное решение.
С другой стороны, когда мы как дата-сайнтисты работаем с обычной моделью, а она где-то работает неверно, нам важно понять, почему так происходит. Для этого сейчас есть некоторые возможности. В частности, есть библиотеки, которые интерпретируют решения нейросети в виде тепловой карты, показывая те куски изображения, на основании которых была проведена классификация. Вот пример из довольно распространенной библиотеки Sharp:
Возможность показать, почему нейросеть приняла то или иное решение, очень важна: например, можно оценить, насколько рациональны с точки зрения человека те характерные особенности, которые увидела нейросеть. Если хотите понять, почему ваша модель принимает то или иное решение, советую обязательно обратиться к тепловым картам.
1. Классификация изображения — мы смотрим на картинку целиком и присваиваем ей некий класс из заранее нам известных.
2. Локализация на изображении конкретного объекта (или объектов) в рамке. Множество объектов отличается от одного только тем, что будет применяться более замысловатая нейросеть.
Как вариация классификации, существует сегментация изображения на отдельные объекты точно по контуру. В некотором смысле, сегментация классифицирует каждый пиксель как относящийся к объектам того или иного класса и рисует на изображении контур. Как подвид сегментации можно упомянуть распознавание границ, когда модель видит линии, обозначающие на изображении какие-то границы: разметка, регулирующая движение автомобиля; разметка в цехах, за которую нельзя заходить или можно заходить только в защитной каске, и т. п.
Если вы интересовались компьютерным зрением для беспилотников, то знаете, что в каждом релизе приводится изображение того, как видит машина. Компьютерное зрение, применяемое в беспилотном вождении, использует сегментацию изображений, потому что едущей машине важно понимать: перед ней дорога или тротуар; где разметка, которую нельзя пересекать; где пешеход, на которого нельзя наезжать, и т. д.
3. Восстановление изображений. Нейросеть убирает шум и улучшает качество картинки, но я неслучайно выбрала изображение, которое с точки зрения человека распознано неудачно:
Напомню: нейросеть очень чувствительна к тому, на каком наборе изображений она обучалась. У нас есть опыт, который мы получали на протяжении всей нашей жизни, а у нейросети есть набор изображений, которые ей показали для объяснения определенных общих принципов. Так как этот проект, использованный для восстановления фотографии бывшего президента США, сделан русскоязычными разработчиками, мы можем предположить, что в датасете, на котором обучалась нейросеть, не было достаточного количества примеров фотографий людей с темным цветом кожи (или они могли быть недостаточно разнообразны). Из-за этого происходит искажение, которое зрителю-человеку очевидно — ведь нам знаком оригинал. С точки зрения нейросети это должно быть изображение сильно загорелого белого человека.
Другой пример — восстановление конкретно «глубины» сцены. Чаще всего это используется для беспилотных аппаратов, а работает оно по такому же принципу, как зрительные способности людей и животных.
Наше зрение не случайно бинокулярное. Если закрыть один глаз, через некоторое время способность оценивать расстояние до предметов постепенно восстанавливается, но природа не зря дала человеку два глаза. Бинокулярность зрения позволяет в полной мере понимать объем предметов и расстояния между ними. Эту способность можно сравнить со стереозвуком. Один глаз не в состоянии дать столько информации об окружающем мире.
То же происходит, когда мы говорим о восстановлении глубины и объемности сцены в рамках работы компьютерного зрения. Множество двумерных снимков одной и той же сцены с разных ракурсов позволяет получить для компьютера как минимум аналог бинокулярного зрения (а чаще — даже более, потому что на камеры не распространяется ограничение природы человека, имеющего только два глаза), и это позволяет точно оценивать расстояние до объекта и придавать ему объём.
Восстановление объемных характеристик относительно неважно, если речь идет о четко расчерченном (например, разметкой на парковке) изображении, на котором хорошо видна нанесенная граница, и камера, оценивающая пересечение этой границы другими объектами, всегда висит под одним и тем же углом, а линия никуда не двигается. В этом случае не требуются восстановление сцены и дополнительные камеры. А вот если речь идет о динамическом действии, потребуется более одного изображения.
Другой интересный кейс касается проверки на мошенничество при идентификации пользователя через распознавание лица. Если алгоритм не будет проверять наличие у изображения объема, то машине не будет очевидно, что ей показывают: лицо реального человека или фото.
Поэтому при задаче идентификации людей по лицу важно определить, что у показываемого изображения есть глубина, что это не плоское изображение. Например, ранние варианты можно было обмануть, показав фото нужного человека (или видеозапись, если создатели подумали о нескольких ракурсах). Теперь системы аутентификации стремятся увидеть, что, условно говоря, — вот у человека нос, он не показан в плоскости, а действительно как-то выдается над лицом. Таким образом, восстановление сцены также используется для борьбы с мошенническими попытками взломать решения нейросети в лоб.
4. Еще одна из задач касается исключительно видео — отслеживание движущегося объекта.
Рассмотрим, например, механизм работы камер ГИБДД. Фактически, в данном случае модель определяет, с какой скоростью и в каком направлении двигается выделенный ею объект. Однако, когда мы собираем все эти задачи в один беспилотный автомобиль, выясняется, что всё это очень важно и требует быстрой обработки, а также обмена информацией между разными элементами изображения.
Если вам интересна тема развития методов обработки object detection с помощью нейросетей, рекомендую прочитать статью моего коллеги.
О том, какие задачи можно решать с помощью этой технологии, я расскажу в следующем моем посте.
Александра Царева, ведущий специалист Центра машинного обучения ИТ-компании «Инфосистемы Джет»
Мы запускаем камеру на смартфоне, наводим на объект и видим маленькую иконку внизу. Смартфон понимает — что именно мы снимаем. Вы когда-нибудь задумывались, как это работает?
Беспилотные автомобили спокойно объезжают машины и тормозят перед пешеходами, камеры видеонаблюдения на улицах распознают наши лица, а пылесосы отмечают на карте, где лежат тапочки — всё это не чудеса. Это происходит прямо сейчас. И всё благодаря компьютерному зрению.
Поэтому сегодня разберем, как работает компьютерное зрение, чем оно отличается от человеческого и чем может быть полезно нам, людям?
Для того чтобы хорошо ориентироваться в пространстве человеку нужны глаза, чтобы видеть, мозг, чтобы эту информацию обрабатывать, и интеллект, чтобы понимать, что ты видишь. С компьютерным или, даже вернее сказать, машинным зрением, такая же история. Для того, чтобы компьютер понял, что он видит, нужно пройти 3 этапа:
Пройдёмся по всем этапам и проверим, как они реализованы. Сегодня мы будем разбираться, как роботы видят этот мир, и поможет нам в этом робот-пылесос, который напичкан современными технологиями компьютерного зрения.
Этап 1. Получение изображения
В начале компьютеру надо что-то увидеть. Для этого нужны разного рода датчики. Насколько много датчиков и насколько они должны быть сложные зависит от задачи. Для простых задач типа детектора движения или распознавания объектов в кадре достаточно простой камеры или даже инфракрасного сенсора.
В нашем пылесосе есть целых две камеры, они находятся спереди. А вот, например, для ориентации в трехмерном пространстве понадобятся дополнительные сенсоры. В частности 3D-сенсор. Тут он тоже есть и расположен сверху. Но что это за сенсор?
LiDAR
Вообще с названиями 3D-сенсоров есть небольшая путаница, одно и тоже часто называют разными словами.
Эта штука сверху — называется LDS или лазерный датчик расстояния, по-английски — Laser Distance Sensor. Подобные датчики вы наверняка могли заметить на крышах беспилотных беспилотных автомобилей. Это не мигалка, это лазерный датчик расстояния, такой же как на роботе пылесосе.
Вот только в мире беспилотников такой сенсор принято называть лидаром — LIDAR — Light Detection and Ranging. Да-да, как в новых iPhone и iPad Pro.
А вот в Android-смартфонах вместо лидаров используется термин ToF-камера: ToF — Time-of-flight.
Но, как ни называй, все эти сенсоры работают по одному принципу. Они испускают свет и замеряет сколько ему понадобится времени, чтобы вернуться обратно. То есть прямо как радар, только вместо радиоволн используется свет.
Есть небольшие нюансы в типах таких сенсоров, но смысл технологии от этого не меняется. Поэтому мне, чисто из-за созвучия с радаром, больше всего нравится название LiDAR, так и будем называть этот сенсор.
Кстати, лидары использует не только в задачах навигации. Благодаря лидарам сейчас происходит настоящая революция в археологии. Археологи сканируют территорию с самолета при помощи лидара, после чего очищают данные ландшафта от деревьев. И это позволяет находить древние города, скрытые от глаз человека!
Также помимо статических лидаров, направленных в одну сторону, бывают вращающиеся лидары, которые позволяют сканировать пространство вокруг себя на 360 градусов. Такие лидары используется в беспилотных автомобилях, ну и в этом роботе-пылесосе.
Еще 8 лет назад такие сенсоры стоили каких-то невероятных денег, под 100 тысяч долларов. А теперь у вас по дому может спокойно ездить маленький беспилотник.
Лидар в пылесосе
Окей, тут лидар используется для построения карты помещения и это не новая история. Такую технологию мы видели еще года 3-4 назад.
Благодаря лидару и построенной карте, пылесос ездит не рандомно как скринсейвер в Windows, стукаясь об углы, а аккуратно проезжая всю площадь (модели без лидаров обычно катаются странно).
Но внутри пылесоса стоит, на секундочку, восьмиядерный Qualcomm Snapdragon 625 (Qualcomm APQ8053), поэтому у него хватает мозгов не только построить карту, но и ориентироваться по ней.
Более того пылесос может хранить в памяти до четырёх карт и распознаёт этажи. Это существенно ускоряет уборку. Потому при переносе с этажа на этаж пылесос это может понять и не тратит время, чтобы построить карту заново.
Также каждую из 4 карт можно поделить на 10 специальных зон. Для которых можно настроить свои параметры уборки: мощность всасывания (до 2500 Па), количество проходов и прочее. А куда-то можно вообще запретить ездить. Можно даже выбирать сухую и влажную уборку для разных зон. Правда для этого не нужно подключать/отключать отдельный резервуар с водой. И всё это стало возможно благодаря лидару.
Тем не менее у технологии есть некоторые недостатки — очень разреженные данные. Пространство сканируется линиями. В больших автомобильных радарах разрешение — от 64 до 128 линий. Плюс ко всему у лидар есть мертвая зона. Если лидар стоит на крыше — то он не видит, что творится в достаточно большом радиусе вокруг него.
Также в роботе-пылесосе лидар тут сканирует пространство всего одним лучом. Поэтому, всё что он видит — это тонкая линия на высоте где-то 9-10 сантиметров от пола. Это позволяет определять где стены и мебель, но он не видит того, что валяется на полу.
Две камеры
Две камеры, во-первых, позволяют убрать мертвую зону впереди пылесоса. А во вторых позволяют достаточно точно определять расстояние до валяющихся на полу предметов.
Это позволяет пылесосу обнаруживать предметы размером не менее 5 см в ширину и 3 см в высоту и объезжать их.
Этап 2. Обработка
Итак, мы получили достаточно данных с различных сенсоров. Поэтому переходим ко второму этапу компьютерного зрения — обработке.
Данные с лидара мы получаем в виде трехмерного облака точек, которые фактически не нуждаются в дополнительной обработке.
Как получить стерео с двух камер тоже понятно — высчитывается разница между изображениями снятыми чуть под разным углом и так строится карта глубины. Это несложно.
Но вот совместить данные с разных сенсоров — это нетривиальная задача.
Например, пылесос на полу обнаружил какой-то предмет. Дальше ему нужно понять где именно он находится на карте построенной при помощи лидара. А также нужно предположить какие у него габариты по проекции с одной стороны. То есть нам нужно поместить предмет в некий объёмный куб правильного размера.
Эту задачу можно решить разными способами. Один из способов называется “усеченная пирамида”. Сначала на камере обнаруживаются предметы. Потом эти предметы помещаются в конус, а объем этого конуса вычисляется нейросетью.
Поэтому даже, казалось бы, такая тривиальная задача требует серьёзных вычислений и решается при помощи нейросетей.
А раз мы заговорили про нейросети, значит мы уже немного зашли на 3-й этап компьютерного зрения — анализ.
Этап 3. Анализ
За распознавание, сегментацию и классификацию объектов на изображении в современном мире в основном отвечают нейросети. Мы даже делали подробный ролик о том как это работает, посмотрите.
Если кратко, нейросеть — это такое большое количество уравнений, связанных между собой. Загружая в нейросеть любые данные — ты обязательно получишь какий-то ответ.
Но, например, если постоянно загружать в нейросеть фотографии кошечек, и указать ей, что ответ должен быть — кошка. В какой-то момент, нейросеть перестает ошибаться на обучающей выборке. И тогда ей начинают показывать новые незнакомые изображения и если на них она тоже безошибочно определяет кошек — нейросеть обучена.
Дальше нейросеть оптимизируется для того, чтобы она стала меньше, быстро работала и не жрала много ресурсов. После этого она готова к использованию.
Что-то похожее происходит с нейронными связями в человеческом мозге. Когда мы чему-то учимся или запоминаем, мы повторяем одно и то же действие несколько раз. Нейронные связи в мозге постепенно укрепляются и потом нам это легко даётся!
Например, в данном пылесосе за работу нейросети отвечает встроенный NPU-модуль. Всё-таки внутри Snapdragon, пылесос может себе такое позволить.
Нейронка предобучена определять различные предметы домашнего обихода: игрушки, тапочки, носки, всякие удлинители, зарядки и даже неожиданности от домашних животных.
Распознавание предметов происходит при помощи гугловской библиотеке Tensorflow. Алгоритм самообучается и умнеет от уборки к уборке.
Практика
В нашем роботе-пылесосе технология распознавания называется Reactive AI. Мы протестировали насколько она хорошо работает на практике.
Кайфовая штука, что все найденные предметы пылесос отмечает не карте. Поэтому теперь, я не обещаю, но такое возможно, вы всё-таки обнаружите логово пропавших носков.
С недавних пор бренд начал официально продаётся в России, поэтому устройства полностью локализованные.
Внутри кстати стоит батарейка на 5200 мАч, которая способна выдержать до 3 часов уборки.
Итоги
Ребят, ну вы сами всё видели. Правда, стоит обратить внимание, что пока корректное распознавание предметов работает только если запускать пылесос через специальное приложение. И это нюанс, поскольку оно пока недоступно в Play Market Россия. Но в течение нескольких месяцев оно появится.
Компьютеры, роботы, искусственный интеллект… В основе многих передовых технологий лежала необходимость воспроизведения или имитации человеческого мышления, чувств и поведения.
Различные датчики, например, акустические и видеосенсоры, а также датчики давления, были созданы после того, как мы разобрались, как устроены наши собственные слух и зрение, как мы воспринимаем давление.
Несомненно, одним из главных для человека органом чувств является зрение. Благодаря ему мы можем видеть среду, в которой находимся, интерпретировать и анализировать ситуацию, предпринимать адекватные действия.
Человеческое зрение — это невероятно сложная интеллектуальная «машина», которая задействует значительную часть головного мозга. Нейроны, предназначенные для обработки зрительной информации, занимают около 30% коры.
Вот уже несколько лет ученые и инженеры работают над созданием устройств, объектов и вещей, способных «видеть» окружающую среду, а также анализировать и интерпретировать увиденное.
Технологическая сложность, большая ресурсоемкость и непозволительно высокие затраты ранее ограничивали сферу применения компьютерного зрения и соответствующих инструментов аналитики, и поэтому они применялись только в составе систем безопасности и видеонаблюдения. Но сегодня ситуация резко изменилась, поскольку рынок видеосенсоров переживает бурный рост. Камеры встраиваются во всевозможные устройства, объекты и вещи — как мобильные, так и стационарные. Кроме того, вычислительная мощность конечных устройств и облачных решений резко возросла. И это привело к революции в области компьютерного зрения.
Доступная цена сенсоров и камер, различные передовые технологии, увеличение разрешения видеосенсоров, динамический диапазон и объем вычислительной мощности для обработки видео и изображений — все это приводит к более широкому распространению таких систем и появлению все новых вариантов их применения.
В современном мире подключенных встраиваемых систем, устройств и объектов стал возможным интеллектуальный анализ изображений и видео с применением классической обработки и глубинного обучения на основе ресурсов самого устройства, а также облачных вычислений.
В результате мы наблюдаем бум развития технологий автономных автомобилей, беспилотных летательных аппаратов, роботов, автоматизированных систем для промышленности, розничной торговли, транспорта, систем безопасности и видеонаблюдения, бытовой техники, медицинских устройств и решений для здравоохранения, спорта и сферы развлечений, расширенной и виртуальной реальности потребительского уровня и, разумеется, вездесущих мобильных телефонов. Технологии компьютерного зрения и соответствующих инструментов аналитики в составе Интернета вещей переживают бурное развитие, и это только начало.
Фактически видеосенсор произвел настоящую революцию, и в этом с ним не сравнится ни один другой датчик. Видео стало частью нашей повседневной жизни, и большинство людей уже считают это само собой разумеющимся. Потоковая передача видео, предоставление видео по запросу, видеозвонки — принимая во внимание все это, легко забыть о том, какое значительное влияние оказали датчики в мире подключенных к Интернету сред и устройств; поэтому видеосенсор — самый недооцененный герой в мире Интернета вещей. А в тандеме с технологиями интеллектуального анализа видео и изображений видеосенсоры создают новое измерение для всего рынка.
Одним из главных факторов бурного развития компьютерного зрения стало все более широкое распространение мобильных телефонов со встроенными камерами. До революции в сфере мобильных телефонов видеосенсоры и камеры, а также соответствующие инструменты аналитики применялись в основном в системах безопасности и видеонаблюдения. Но затем появились мобильные телефоны со встроенными камерами, что также сопровождалось активным ростом вычислительной мощности конечных устройств и облачных систем, доступной для систем видеоаналитики и интеллектуального анализа. Такая взрывная комбинация стала катализатором быстрого развития и распространения видеосенсоров, которые начали использоваться повсеместно, от роботов и дронов до автомобилей, промышленного оборудования, бытовой техники и т. д.
Существуют различные типы видеосенсоров, но комплементарные элементы металл-оксид-полупроводник или CMOS-датчики, безусловно, оказали самое большое влияние и привели к взрывному развитию этих технологий и встраиванию видеосенсоров в различные системы и смартфоны.
Датчики повсюду, и они многочисленны. Автономные автомобили сегодня используют более 10 видеокамер, дроны — от трех до четырех, камеры видеонаблюдения установлены практически повсеместно, мобильные телефоны уже умеют транслировать видео в режиме реального времени. Видеоинформация из этих источников передается в облако для дальнейшего анализа, а обработка в реальном времени выполняется на самих устройствах.
Разрешение и динамический диапазон видеосенсоров, а также их количество, продолжают увеличиваться, и в обозримой перспективе эта тенденция будет только набирать обороты. Для обработки, передачи и хранения больших объемов видеоинформации требуются все более значительные ресурсы.
Поначалу все старались передавать потоковое видео в облака для его анализа в режиме реального времени или постфактум. Облака предоставляли огромную вычислительную мощность, но для передачи видео, даже после сжатия, требовались каналы с очень высокой пропускной способностью. Необходимость хранения огромных объемов данных, существенные задержки и возможные проблемы с безопасностью и конфиденциальностью заставляют пользователей переосмысливать подходы к применению облачных вычислений. Теперь многие анализируют видеоинформацию на уровне устройства или объекта, а затем выполняют автономную обработку видео в облаке.
А с появлением новой высокоскоростной связи 5G, обеспечивающей минимальные задержки, возникла идея распределить задачи обработки видео в реальном времени между конечными устройствами и облачными средами. Тем не менее еще только предстоит выяснить, насколько это возможно (если возможно в принципе) и имеет ли смысл передавать сжатое видео от миллионов конечных точек в облако в реальном времени, практически полностью загружая каналы связи.
По мере осознания важности аналитики на уровне конечных устройств все более широкое распространение получали различные системы на кристалле (SoC), графические процессоры (GPU) и видеоускорители. Облачные ресурсы с ускорением GPU используются для анализа архивного видео или обучения нейронных сетей на большом количестве тестовых данных, а обработка в режиме реального времени происходит на самих конечных устройствах с ускорителями.
Технологии глубинного обучения и оптимизированные SoC, наряду с видеоускорителями для традиционной обработки изображений, способствуют поддержанию тенденции к выполнению анализа на конечных устройствах, при этом дополнительные события, параметры и аналитика передаются в облака для дальнейшего исследования и сопоставления. Облачные ресурсы по-прежнему будут применяться для анализа видеоархивов, в то время как некоторые системы все еще будут выполнять анализ в режиме реального времени.
Компьютерное зрение. Реальные примеры использования
Рынок технологий компьютерного зрения и соответствующих инструментов аналитики продолжит активное развитие. В настоящее время наблюдаются определенные удивительные тенденции в сфере технологий, и они должны придать новый импульс развитию систем компьютерного зрения на годы вперед. Вот лишь некоторые примеры:
3D-камеры и 3D-сенсоры. 3D-камеры или, в более общем смысле, сенсорная техника с поддержкой 3D, позволяющая определять глубину в сцене и строить 3D-карты сцены. Эта технология появилась некоторое время назад, и сегодня она широко используется в игровых системах, таких как Microsoft Kinect, а совсем недавно она была применена в 3D-сенсоре iPhoneX для биометрии. И этот рынок снова ждет бурный рост, когда смартфоны смогут обеспечивать необходимое ускорение для гораздо более широкого набора вариантов применения. Кроме того, роботы, дроны и автономные автомобили с 3D-камерами смогут распознавать форму и размер объектов и будут использовать эти технологии для навигации, составления карт и обнаружения препятствий. 3D- и стереоскопические камеры также являются основой дополненной, виртуальной и смешанной реальности.
Глубинное обучение на конечных устройствах и в облаке. Системы искусственного интеллекта на основе нейронных сетей получают все более широкое распространение. Опять же развертывание сетей глубинного обучения стало возможным только благодаря доступной сегодня колоссальной вычислительной мощности. Существуют и другие факторы, которые привели к бурному развитию нейронных сетей и вариантов их практического применения, это в том числе наличие огромных объемов данных (видео, фотографии, текст), доступных для обучения и проведения передовых исследований и разработок в университетах и компаниях первого уровня, которые вносят свой вклад в популяризацию и развитие открытых решений и систем. В результате возникает большое количество нейронных сетей, применяемых для решения конкретных практических задач. В самом деле, для роботов, автономных автомобилей и дронов глубинное обучение с применением GPU/SoC на конечных устройствах уже стало нормой. Облачные ресурсы по-прежнему будут использоваться в рамках сетей глубинного обучения, а также для обработки видео из архивов. Обработка данных в рамках распределенных архитектур, охватывающих конечные устройства и облака, также возможна, поскольку сетевые задержки и задержки видеопотока уже считаются приемлемыми.
SLAM в автомобилях, роботах, дронах. Одновременная локализация и картирование (Simultaneous Localization And Mapping, SLAM) — ключевой компонент автономных автомобилей, роботов и дронов, оснащенных различными типами камер и сенсоров, включая радар, лидар, ультразвуковые датчики и т. д.
Дополненная/виртуальная реальность и перцепционные вычисления. Возьмем для примера Microsoft HoloLens. На чем базируется эта система? Шесть камер в сочетании с датчиками глубины. Корпорация Microsoft даже объявила о создании исследовательского центра в Кембридже (США), который специализируется на разработке технологий компьютерного зрения для HoloLens.
Безопасность/видеонаблюдение. В данной статье не затрагивается это направление сбора и анализа видеоинформации. Это сам по себе очень крупный рынок.
Биометрическая аутентификация в мобильных телефонах и встроенных устройствах. Биометрическая аутентификация может придать новый импульс для развития мобильных приложений, и здесь опять же применяются видеосенсоры в сочетании с инструментами аналитики на конечных устройствах и в облаках. По мере развития эта технология будет реализована в различных встраиваемых устройствах.
Розничная торговля. Магазин Amazon Go являет собой пример использования камер и передовой видеоаналитики. Вскоре у стеллажей покупателей будут встречать роботы-консультанты, оснащенные несколькими камерами с системой анализа видео, а также другими датчиками.
СМИ. Видеоаналитика уже широко используется в медиаиндустрии. Системы видеоаналитики позволяют просматривать большие видеофайлы в поисках определенной темы, сцены, объекта или лица.
Спорт. 3D-видео реального времени, видеоаналитика и виртуальная реальность позволят создавать персонализированные спортивные и развлекательные системы нового поколения.
Перспективы, вызовы, мотивы и проблемы
Потребность в постоянном увеличении разрешения, динамического диапазона и частоты кадров видео, а также производительности систем видеоаналитики приводит к необходимости соответствующего повышения вычислительной мощности и расширения возможностей систем передачи и хранения данных. И решать эти задачи оперативно удается не всегда.
Несколько компаний придерживаются другого подхода к решению этой проблемы. В основе нейронных сетей лежат результаты исследований в области биологии, аналогичным образом начинают появляться разработки и коммерческие продукты в сфере компьютерного зрения, которые реагируют на изменения в сцене и генерируют поток из небольшого количества событий вместо того, чтобы передавать последовательность изображений. Это позволит применять системы сбора и обработки видеоинформации с гораздо более скромными возможностями.
Такой подход представляется многообещающим, он может кардинально изменить способы получения и обработки видео. В результате значительного уменьшения требуемой вычислительной мощности также будет достигаться большая экономия электроэнергии.
Видеосенсоры по-прежнему будут главными катализаторами бурного развития Интернета вещей. Аналогичным образом видеоаналитика на уровне конечных устройств будет продолжать стимулировать развитие индустрии SoC и полупроводников, способствуя совершенствованию видеоускорителей, использующих GPU, специализированных интегральных схем (ASIC), программируемых SoC для логического вывода, программируемых пользователем вентильных матриц (FPGA) и алгоритмов обработки цифровых сигналов (DSP). Все это также будет способствовать совершенствованию традиционных систем обработки изображений и технологий глубинного обучения, а разработчики получат более широкие возможности для программирования.
Сегодня это поле битвы, на котором сошлись многие крупные игроки и стартапы.
Встроенные видеосенсоры с низким энергопотреблением
В настоящее время миллионы объектов с автономным питанием используют видеосенсоры и видеоаналитику, поэтому совершенствование встроенных видеосенсоров с низким энергопотреблением остается одним из главных факторов роста всей отрасли в новую эпоху, а также одной из ключевых проблем, которую нужно решить. Появление устройств и систем со встроенными видеосенсорами и инструментами видеоаналитики обусловливает необходимость анализа и устранения проблем конфиденциальности и безопасности уже на стадии проектирования.
Читайте также: