Машинное зрение что это
Что такое машинное зрение и как мы смогли его использовать в горной добыче
Компьютерное зрение (машинное зрение) — направление в области искусственного интеллекта, которое включает алгоритмы для обнаружения, отслеживания и классификации объектов по их изображениям.
Машинное зрение — это попытка смоделировать механизм получения и обработки визуальной информации в человеческом мозге.
Хорошо, а как видит человек?
Глаза принимают данные, мозг их анализирует. Зрение — это непрерывный механический алгоритм в системе «глаза — мозг», плюс процесс восприятия. Алгоритм не трудно себе представить.
Мы начали с запроса в Google «how human gets visual info for dummies».
Чувствительные клетки на поверхности глаза улавливают свет определённых длин волн (видимый свет); глазной хрусталик проецирует его на сетчатку, где свет преобразуется в электрические импульсы и через зрительные нервы передаётся в мозг.
Дальше происходит самое интересное — восприятие информации. По одной из теорий, процесс разбивается на подзадачи для нескольких отделов мозга: одна часть занимается определением форм, другая — цветов, а третья отвечает за распознавание движений и ориентацию в пространстве. Ещё есть теория, согласно которой анализ информации не разделяется и происходит интегрировано всеми системами.
Так или иначе то, какую картинку мы видим, определяется нашим предыдущим опытом. Посредством не до конца понятных механизмов мозг достаёт значимую информацию, которая связывается с паттернами в нашей памяти, и позволяет взаимодействовать с миром.
Картинка немного отфильтрована, но всё ещё видно клубнику, верно?
На изображении нет ни одного(!) красного пикселя. Просто мы знаем, что клубника красного цвета.
Возвращаясь к компьютерному зрению здесь и возникают основные сложности:
1) Если не точно известны механизмы и форма передачи данных у человека, как понять, в каком виде передавать информацию компьютеру?
Идём на рынок выбирать клубнику, фотографируем ягоды и просим компьютер и друга подсказать, какие ягоды лучше. Но с камерой случилась беда, и по цветопередаче фотография похожа на ту, что выше. Скорее всего друг скажет: «клубника ок, бери». А компьютер «увидит» на фотографии серые холмы с высоты птичьего полёта.
2) А сколько «опыта» должно быть в памяти компьютера, чтобы он делал какие-человеку-хочется выводы? Какой должен быть опыт?
Взаимодействие человека с внешним миром определяется предыдущим опытом. Для компьютера пока существует два глобальных способа определения действий на основе полученных данных: классические методы и машинное обучение.
Классические методы впервые были применены для отличия печатного и рукописного текстов ещё в 1970-х годах. В основе лежит работа с контрастом и цветами изображения, выделение геометрических фигур и границ предметов.
Думаю, лучше объяснить на примере. Задача: написать программу, которая на вход получает картинку с геометрическими формами, а после выполнения возвращает ту же картинку с корректными названиями данных фигур.
(Полное решение (вместе с кодом на python и подробным описанием) можно найти здесь.)
— Сначала компьютеру нужен жизненный опыт. В отдельный файл записываются все геометрические формы, которые программа должна уметь распознавать. Также записываются особенности, по которым можно однозначно определить фигуру. Например, у треугольника три стороны, у квадрата четыре, у прямоугольника тоже четыре, но они не равны.
— С помощью готового (взятого из библиотеки) алгоритма на изображении выявляются границы фигур. Информация записывается в виде координат точек, формирующих контуры.
— После сглаживания контуров, можно достать количество и длину сторон фигуры.
— Наконец, по особенностям каждой формы (количество, длина сторон) программа может определить её название.
Простецкая задача для человека оказывается нетривиальной для машины. Всё дело в сложнейшем устройстве мозга. Пока не придумали компьютер, который имел бы такую же производительность при столь малом потреблении энергии, 25-30 Вт.
Оценка расходуемой мощности гипотетического компьютера, который смог бы догнать мозг, составляет 12 000 000 000 Вт.
Ещё один подход к решению задач — машинное обучение. Это иной способ накопления опыта: набор методов, которые умеют замечать и запоминать взаимосвязи между признаками.
В задаче распознавания лиц признаками являются расстояние между глаз и их форма, толщина губ и различные измерения, которые в сумме позволяют уникально идентифицировать конкретного человека или, например, его эмоции.
Беспилотный автомобиль должен в режиме онлайн анализировать обстановку вокруг. Признаки — это ширина дороги, расстояния до объектов и т.д. На основании многочисленных факторов искусственный интеллект выбирает режим движения.
Мы в «Цифре» запустили мониторинг соблюдения норм безопасности на предприятии. Решение интегрируется во внутреннюю систему видеонаблюдения. При помощи технологий машинного зрения решение следит за ношением масок, перчаток и спецодежды; в режиме онлайн определяет дистанцию между сотрудниками и следит за соблюдением других требований к процессам.
Система «Умный экскаватор» при помощи компьютерного зрения контролирует состояние зубьев ковша экскаватора и определяет размер кусков горной массы (гранулометрический состав), полученных в забое при ведении буровзрывных работ.
Буровзрывные работы применяются в подземной и открытой добыче полезных ископаемых и для отделения горной породы – угля или руды – от массива. Чем меньше и равномернее куски горной массы, тем выше скорость погрузки их экскаваторами и больше загрузка самосвалов. Обнаружение фрагментов породы больше заданного размера – негабарита – позволяет предотвратить их попадание в дробилку, которое приводит к простою механизма и повышению потребления им электроэнергии.
Система также в реальном времени отслеживает состояние зубьев ковша экскаватора. Поломка зуба обнаруживается в течение пяти секунд, после чего система подает предупреждающий сигнал оператору и диспетчеру.
Мониторинг состояния зубьев дает возможность планировать их своевременную замену, что уменьшает количество поломок и время простоя экскаватора. Кроме того, снижается вероятность поломки дробильно-сортировочного комплекса из-за попадания в него зубьев. Ремонт и простой комплекса приводит к значительным финансовым потерям.
Машинное зрение. Что это и как им пользоваться? Обработка изображений оптического источника
Машинное зрение — это научное направление в области искусственного интеллекта, в частности робототехники, и связанные с ним технологии получения изображений объектов реального мира, их обработки и использования полученных данных для решения разного рода прикладных задач без участия (полного или частичного) человека.
Исторические прорывы в машинном зрении
Компоненты системы машинного зрения
Машинное зрение сосредотачивается на применении, в основном промышленном, например, автономные роботы и системы визуальной проверки и измерений. Это значит, что технологии датчиков изображения и теории управления связаны с обработкой видеоданных для управления роботом и обработка полученных данных в реальном времени осуществляется программно или аппаратно.
Обработка изображений и анализ изображений в основном сосредоточены на работе с 2D изображениями, т.е. как преобразовать одно изображение в другое. Например, попиксельные операции увеличения контрастности, операции по выделению краёв, устранению шумов или геометрические преобразования, такие как вращение изображения. Данные операции предполагают, что обработка/анализ изображения действуют независимо от содержания самих изображений.
Компьютерное зрение сосредотачивается на обработке трехмерных сцен, спроектированных на одно или несколько изображений. Например, восстановлением структуры или другой информации о 3D сцене по одному или нескольким изображениям. Компьютерное зрение часто зависит от более или менее сложных допущений относительно того, что представлено на изображениях.
Также существует область названная визуализация, которая первоначально была связана с процессом создания изображений, но иногда имела дело с обработкой и анализом. Например, рентгенография работает с анализом видеоданных медицинского применения.
Наконец, распознавание образов является областью, которая использует различные методы для получения информации из видеоданных, в основном, основанные на статистическом подходе. Значительная часть этой области посвящена практическому применению этих методов.
Таким образом, можно сделать вывод, что понятие «машинное зрение» на сегодняшний день включает в себя: компьютерное зрение, распознавание зрительных образов, анализ и обработка изображений и т.д.
Задачи машинного зрения
Распознавание
Классическая задача в компьютерном зрении, обработке изображений и машинном зрении это определение содержат ли видеоданные некоторый характерный объект, особенность или активность.
Эта задача может быть достоверно и легко решена человеком, но до сих пор не решена удовлетворительно в компьютерном зрении в общем случае: случайные объекты в случайных ситуациях.
Один или несколько предварительно заданных или изученных объектов или классов объектов могут быть распознаны (обычно вместе с их двухмерным положением на изображении или трехмерным положением в сцене).
Идентификация
Распознается индивидуальный экземпляр объекта принадлежащего к какому-либо классу.
Примеры: идентификация определённого человеческого лица или отпечатка пальцев или автомобиля.
Обнаружение
Видеоданные проверяются на наличие определенного условия.
Обнаружение, основанное на относительно простых и быстрых вычислениях иногда используется для нахождения небольших участков в анализируемом изображении, которые затем анализируются с помощью приемов, более требовательных к ресурсам, для получения правильной интерпретации.
Распознавание текста
Поиск изображений по содержанию: нахождение всех изображений в большом наборе изображений, которые имеют определенное различными путями содержание.
Оценка положения: определение положения или ориентации определенного объекта относительно камеры.
Оптическое распознавание знаков: распознавание символов на изображениях печатного или рукописного текста (обычно для перевода в текстовый формат, наиболее удобный для редактирования или индексации. Например, ASCII).
Восстановление 3D формы по 2D изображениям осуществляется с помощью стереореконструкции карты глубины, реконструкции поля нормалей и карты глубины по закраске полутонового изображения, реконструкции карты глубины по текстуре и определения формы по перемещению
Пример восстановления 3D формы по 2D изображеню
Оценка движения
Несколько задач, связанных с оценкой движения, в которых последовательность изображений (видеоданные) обрабатываются для нахождения оценки скорости каждой точки изображения или 3D сцены. Примерами таких задач являются: определение трехмерного движения камеры, слежение, то есть следование за перемещениями объекта (например, машин или людей)
Восстановление сцены
Даны два или больше изображения сцены, или видеоданные. Восстановление сцены имеет задачей воссоздать трехмерную модель сцены. В простейшем случае, моделью может быть набор точек трехмерного пространства. Более сложные методы воспроизводят полную трехмерную модель.
Восстановление изображений
Задача восстановления изображений это удаление шума (шум датчика, размытость движущегося объекта и т.д.).
Наиболее простым подходом к решению этой задачи являются различные типы фильтров, таких как фильтры нижних или средних частот.
Более высокий уровень удаления шумов достигается в ходе первоначального анализа видеоданных на наличие различных структур, таких как линии или границы, а затем управления процессом фильтрации на основе этих данных.
Восстановление изображений
Анализ оптического потока (нахождения перемещения пикселей между двумя изображениями).
Несколько задач, связанных с оценкой движения, в которых последовательность изображений (видеоданные) обрабатываются для нахождения оценки скорости каждой точки изображения или 3D сцены.
Примерами таких задач являются: определение трехмерного движения камеры, слежение, т.е. следование за перемещениями объекта (например, машин или людей).
Методы обработки изображений
Счетчик пикселей
Подсчитывает количество светлых или темных пикселей.
С помощью счетчика пикселей пользователь может выделить на экране прямоугольную область в интересующем месте, например там, где он ожидает увидеть лица проходящих людей. Камера в ответ немедленно даст сведения о количестве пикселей, представленных сторонами прямоугольника.
Счетчик пикселей дает возможность быстро проверить, соответствует ли смонтированная камера нормативным требованиям или требованиям заказчика относительно пиксельного разрешения, например, для лиц людей, входящих в двери, которые контролируются камерой, или в целях распознавания номерных знаков.
Бинаризация
Преобразует изображение в серых тонах в бинарное (белые и черные пиксели).
Значения каждого пикселя условно кодируются, как «0» и «1». Значение «0» условно называют задним планом или фоном а «1» — передним планом.
Часто при хранении цифровых бинарных изображений применяется битовая карта, где используют один бит информации для представления одного пикселя.
Также, особенно на ранних этапах развития техники, двумя возможными цветами были чёрный и белый, что не является обязательным.
Сегментация
Используется для поиска и (или) подсчета деталей.
Цель сегментации заключается в упрощении и/или изменении представления изображения, чтобы его было проще и легче анализировать.
Сегментация изображений обычно используется для того, чтобы выделить объекты и границы (линии, кривые, и т. д.) на изображениях. Более точно, сегментация изображений — это процесс присвоения таких меток каждому пикселю изображения, что пиксели с одинаковыми метками имеют общие визуальные характеристики.
Результатом сегментации изображения является множество сегментов, которые вместе покрывают всё изображение, или множество контуров, выделенных из изображения. Все пиксели в сегменте похожи по некоторой характеристике или вычисленному свойству, например, по цвету, яркости или текстуре. Соседние сегменты значительно отличаются по этой характеристике.
Чтение штрих-кодов
Штрих-код — графическая информация, наносимая на поверхность, маркировку или упаковку изделий, представляющая возможность считывания её техническими средствами — последовательность чёрных и белых полос либо других геометрических фигур.
В машинном зрении штрих-коды используют для декодирования 1D и 2D кодов, разработанных для считывания или сканирования машинами.
Оптическое распознавание символов
Оптическое распознавание символов: автоматизированное чтение текста, например, серийных номеров.
Распознавание используется для конвертации книг и документов в электронный вид, для автоматизации систем учёта в бизнесе или для публикации текста на веб-странице.
Оптическое распознавание текста позволяет редактировать текст, осуществлять поиск слов или фраз, хранить его в более компактной форме, демонстрировать или распечатывать материал, не теряя качества, анализировать информацию, а также применять к тексту электронный перевод, форматирование или преобразование в речь.
Моя программа, написанная на LabView по работе с изображениями
Использовано компьютерное зрение для неразрушающего контроля качества сверхпроводящих материалов.
Введение. Решение задач обеспечения комплексной безопасности (как антитеррористической и механической безопасности объектов, так и технологической безопасности инженерных систем), в настоящее время, требует системной организации контроля, текущего состояния объектов. Одними из наиболее перспективных способов контроля текущего состояния объектов являются оптические и оптико-электронные методы, основанные на технологиях обработки видеоизображений оптического источника. К ним относятся: программы по работе с изображениями; новейшие способы обработки изображений; оборудования для получения, анализа и обработки изображений, т.е. комплекс средств и методов относящихся к области компьютерного и машинного зрения. Компьютерное зрение — это общий набор методов, позволяющих компьютерам видеть и распознавать трех- или двухмерные объекты, как инженерного направления, так и нет. Для работы с компьютерным зрение требуются цифровые или аналоговые устройства ввода-вывода, а также вычислительные сети и IP анализаторы локаций, предназначенные для контроля производственного процесса и подготовки информации для принятия оперативных решений в кратчайшие сроки.
Постановка проблемы. На сегодняшний день, главной задачей для проектируемых комплексов машинного зрения остаётся обнаружение, распознавание, идентификация и квалификация объектов потенциального риска, находящихся в случайном месте в зоне оперативной ответственности комплекса. Существующие на данный момент программные продукты, направленные на решение перечисленных задач обладают рядом существенных недостатков, а именно: значительная сложность, связанная с высокой детализацией оптических образов; высокая потребляемая мощность и достаточно узкий спектр возможностей. Расширение задач обнаружения объектов потенциального риска, до области поиска случайных объектов в случайных ситуациях, находящихся в случайном месте, имеющимися программными продуктами не возможно, даже с задействованием суперкомпьютера.
Цель. Разработка универсальной программы обработки изображений оптического источника, с возможностью потокового анализа данных, то есть программа должна быть лёгкой и быстрой для того, чтобы её можно было записать на малогабаритное ЭВМ устройство.
Для упрощения решения задач данного типа, мною была разработана математическая модель и написана программа для ЭВМ устройства по анализу изображения при помощи простейших преобразований исходных изображений.
Программа работает с преобразованиями типа бинаризации, яркости, контраста изображения и т.д. Принцип действия программы продемонстрирован на примере анализа сверхпроводящих материалов.
При создании композиционных сверхпроводников на основе Nb3Sn варьируется объемное соотношение бронзы и ниобия, размер и количество волокон в нем, равномерность их распределения по сечению бронзовой матрицы, наличие диффузионных барьеров и стабилизирующих материалов. При заданной объемной доле ниобия в проводнике увеличение количества волокон приводит, соответственно, к уменьшению их диаметра. Это ведет к заметному возрастанию поверхности взаимодействия Nb / Cu-Sn, что в значительной степени ускоряет процесс нарастания сверхпроводящей фазы. Такое увеличение количества сверхпроводящей фазы при повышении числа волокон в проводнике обеспечивает возрастание критических характеристик сверхпроводника. В связи с этим необходимо наличие инструмента для контроля объемной доли сверхпроводящей фазы в конечном продукте (композиционном сверхпроводнике).
Блок-диаграмма программы
Описание этапов исследования.
1 этап. Пробоподготовка: резка композиционного сверхпроводника на электроэрозионном станке; запрессовка образца в пластмассовую матрицу; полировка образца до зеркального состояния; травление образца для выделения волокон ниобия на бронзовой матрице. Получены образцы запрессованных композиционных сверхпроводниковых образцов;
2 этап. Получение изображений: получение металлографических изображений на сканирующем электронном микроскопе.
3 этап. Обработка изображений: создание инструмента для определения объемной доли сверхпроводящей фазы на металлографическом изображении; набор статистически значимых данных на конкретном типе образцов. Созданы математические модели различных инструментов по обработке изображений; создана программная разработка для оценки объемной доли сверхпроводящий фазы; программа была облегчена путём соединения нескольких математических функций в одну; было получено среднее значение объемной доли волокон ниобия в бронзовой матрице 24.7±0,1 %. Низкий процент отклонения свидетельствует о высокой повторяемости структуры композиционного провода.
Электронномикроскопическое изображения композиционных сверхпроводников
Методы обработки изображений в программе.
Формулы работы программы
Формула бинаризации (метод Оцу):
Формула эрозии:
Формула дилатации:
Схема дилатации и эрозии
Формулы сегментации порогами цвета:
Определение модуля градиента яркости для каждого пикселя изображения:
Вычисление порога:
Компьютерное зрение: технологии, компании, тренды
Компьютерное зрение (Computer Vision, CV), в том числе машинное зрение (Machine Vision, MV) – это автоматическая фиксация и обработка изображений неподвижных и движущихся объектов при помощи компьютерных средств.
С развитием облачных технологий, виртуализации вычислений и прикладных областей развитие компьютерного зрения получило новый импульс.
Наиболее часто используемой моделью глубокого обучения является модель искусственной нейронной сети, называемая сверточной нейронной сетью. Наиболее успешными моделями, используемыми для обнаружения, классификации и анализа изображений, являются AlexNet, ResNets, EfficientNets, YOLO, R-CNN, LambdaNetworks, VGG (описания приведены в Приложении 1).
Лидерами по развитию и использованию компьютерного зрения на международном уровне являются Google, Facebook, Microsoft, Amazon, NVIDIA и др. В России ключевые позиции на рынке занимают Яндекс, VisionLabs, Mail.ru Group, NtechLab, ABBYYи др. Информация о проектах в сфере компьютерного зрения указанных и ряда других компаний приведена в Приложении 1.
Одним из растущих трендов развития технологий компьютерного зрения является переход к периферийным вычислениям, которые выигрывают у облачных сервисов в скорости и безопасности. Все больше и больше компаний используют периферийные вычисления в сочетании с облачными сервисами для своих данных из-за их оптимизированного подхода.
Исследователи возлагают большие надежды на автоматическую разметку данных для обучения нейросетей. Поскольку большой объем хорошо размеченных данных является фундаментом надежной модели, автоматическая разметка заметно сократила бы сроки обучения и ускорила создание конечного приложения компьютерного зрения. Ручная разметка одного изображения (например, из датасета COCO) может занять от 2 до 19 минут, время для разметки всего датасета может достигнуть 53 000 часов. В случае использования автоматической разметки специалисту зачастую необходимо только проверить точность контуров и внести необходимые изменения, что значительно сократит время подготовки датасета. Популярные решения для автоматической разметки изображений: Google’s Vision API, Cloud Annotation Tool (IBM), Computer Vision Annotation Tool (Intel).
Набирают популярность методы ускорения и упрощения моделей для их повсеместного внедрения. Модели становятся всё более универсальными, легко адаптируемыми для конкретных задач, одновременно становясь всё менее ресурсоёмкими. Многие исследователи и компании (в основном это крупные корпорации) выкладывают в общий доступ уже обученные модели, которые далее любая заинтересованная сторона может обучить на собственном датасете под свои конкретные задачи. Такой подход позволяет сэкономить вычислительные мощности, необходимые для обучения моделей.
Аналитики предсказывают наиболее активное развитие и применение технологий компьютерного зрения в автономных транспортных средствах, системах биометрического сканирования и распознавания лиц для повышения безопасности ценных активов, системах контроля качества продукции, автоматизации процессов производства в промышленности.
В прилагаемой аналитической справке кроме описания моделей, алгоритмов и конкретных проектов также приведены примеры и описания наиболее популярных библиотек и инструментов для создания приложений компьютерного зрения, датасеты, используемые для построения моделей компьютерного зрения, а также существующие механизмы поиска подходящего датасета.
Технологии компьютерного зрения могут быть использованы для выявления противоправного контента, однако на современном уровне развития модели требуют дополнительной обработки результатов специалистами в ручном режиме.
Компьютерное зрение: технологии, компании, тренды
Оглавление
Введение
Computer vision (CV) – совокупность технологий, методов и алгоритмов, с помощью которых компьютер может обрабатывать изображения и видеопоток. Использование компьютерного зрения позволяет определять, что изображено, классифицировать эти изображения и анализировать их.
Основные сферы применения: видеонаблюдение и безопасность, распознавание лиц, сельское хозяйство, зрение для роботов, контроль качества на производстве, системы обнаружения бокового трафика в автомобилестроении, автономные транспортные средства, обработка медицинских изображений для постановки диагноза, фильтрация нежелательного контента, выявление фейковых фотографий, актуализация и кастомизация рекламы, наложение фильтров на фото и видео.
Разработчики компьютерного зрения чаще всего используют языки Python или С++, а также специализированные библиотеки. Регулярно пополняются датасеты для обучения нейронных сетей, проводятся соревнования для поиска лучших решений.
Компьютерное зрение работает в три основных этапа:
В части понимания изображения современные системы ИИ могут применяться следующим образом:
Простые приложения компьютерного зрения используют только один из этих методов, но более сложные, такие как компьютерное зрение для автомобилей с самостоятельным вождением, полагаются на различные методы для достижения своей цели.
Библиотеки и инструменты
Наиболее популярные библиотеки и инструменты для создания приложений компьютерного зрения:
Amazon Rekognition
Платформа, выделяющаяся на фоне аналогов возможностью глубокого анализа попавших в объектив камеры предметов, сооружений и людей. Данный сервис является частью системы с интегрированным механизмом полномасштабного самообучения. Ключевой особенностью сервиса значится «глубокий анализ» – способность не просто уведомить пользователя, что на картинке был обнаружен кот или собака, а с высокой точностью указать даже породу животного. А при использовании Amazon Rekognition для распознавания лица программное обеспечение без труда определит по внешним признакам текущее эмоциональное состояние исследуемой личности. Методика включает в себя сравнение двух изображений на основе миллионов признаков.
BoofCV
Библиотека Java с открытым исходным кодом для приложений робототехники и компьютерного зрения в реальном времени, которая распространяется под лицензией Apache 2.0 как для обучения, так и для бизнеса. Функциональность охватывает широкий круг вопросов, включая оптимизированные процедуры обработки изображений на низком уровне, выравнивание камеры, обнаружение/отслеживание функций, определение структуры по движению и распознавание.
CUDA
Продукт NVIDIA для параллельных вычислений, которые просты в программировании, очень эффективны и быстры. Используя мощность графических процессоров, обеспечивает высокую производительность. Набор инструментов включает библиотеку NVIDIA Performance Primitives, содержащую набор функций обработки изображений, сигналов и видео.
GPUImage
Структура, основанная на OpenGL ES 2.0, которая позволяет применять эффекты и каналы с ускорением на графическом процессоре (GPU) к живому движущемуся видео, изображениям и фильмам. Для запуска пользовательских каналов на GPU требуется много кода для настройки и поддержки.
Keras
Библиотека Python для глубокого обучения, которая объединяет элементы разных библиотек, например, Tensorflow, Theano и CNTK. Keras занимает выгодное положение по сравнению с конкурентами, например, Scikit-learn и PyTorch, поскольку работает поверх Tensorflow.
Также может работать на Microsoft Cognitive Toolkit, Theano или PlaidML. Предназначена для быстрых экспериментов с глубокими нейронными сетями, сосредоточена на удобстве, измеряемом качестве и расширяемости. Keras следует лучшим практикам для снижения когнитивной нагрузки: предлагает стабильные и базовые API-интерфейсы и ограничивает количество действий пользователя, необходимых для обычных случаев использования.
Matlab
Инструмент для создания приложений для обработки изображений, обычно используется в исследовательских целях, поскольку позволяет быстро создавать прототипы. Код Matlab очень лаконичен по сравнению с C ++, что упрощает детектирование и устранение неисправностей. Проводит предварительную проверку кода перед выполнением, предлагая несколько различных способов ускорить код.
OpenCV
Самая известная библиотека, многоплатформенная и простая в использовании. Охватывает все основные стратегии и алгоритмы для выполнения некоторых задач обработки изображений и видео, превосходно работает с C ++ и Python.
SimpleCV
Система для создания приложений компьютерного зрения. Предоставляет доступ к большому количеству инструментов компьютерного зрения, схожих с OpenCV, pygame и т. д. Не требует глубокого погружения в тему. Подходит для быстрого создания прототипов.
Tensorflow
Бесплатная библиотека с открытым исходным кодом для потоков данных и дифференциального программирования. Это символьная математическая библиотека, которая дополнительно используется для приложений машинного обучения, например, нейронных сетей. Известность быстро возросла и превзошла существующие библиотеки из-за простоты API.
Theano
Быстрая числовая библиотека Python, которая может работать на CPU или GPU. Она была создана группой LISA (в настоящее время MILA) в Монреальском университете в Канаде. Theano – это улучшенный компилятор для управления и оценки математических выражений, особенно матричных.
Датасеты
Механизмы поиска подходящего датасета
Датасет изображений или видео является основополагающим элементом для создания эффективно работающей модели компьютерного зрения. Как ответ потребностям сообщества разработчиков появились коллекции датасетов и инструменты поиска подходящего датасета. Ниже представлены некоторые из них:
Find Datasets|CMU Libraries
Коллекция датасетов, предоставленная университетом Карнеги Меллон.
Google Dataset Search
Позволяет осуществлять поиск по ключевому слову из 25 миллионов открытых датасетов. Наиболее популярным форматом данных являются таблицы – более 6 миллионов в Dataset Search.
Площадка для соревнований по машинному обучению с множеством интересных датасетов. В списке датасетов можно найти разные нишевые экземпляры.
NAS (Neural Architecture Search)
Алгоритм выбора архитектуры нейросети и оптимизации ее гиперпараметров под конкретный датасет и задачу (классификация, сегментация и др.). NAS является подмножеством AutoML. Алгоритм NAS находит архитектуру из всех возможных архитектур, следуя стратегии поиска, которая максимизирует производительность.
UCI Machine Learning Repository
Один из старейших источников датасетов в сети Интернет. Датасеты добавляются пользователями. Данные можно скачивать сразу, без регистрации
Датасеты для компьютерного зрения, разбитые по категориям. Доступен поиск.
Наиболее популярные датасеты для компьютерного зрения
AViD. Публичный датасет с анонимизированными видеозаписями из разных стран. Датасет предназначен для задачи распознавания действий. AViD состоит из видео, где человек выполняет одно действие (всего – 887).
CelebA-Spoof. Датасет для антиспуфинга, который состоит из 625 537 изображений 10 177 людей. Антиспуфинг лица – это методы борьбы с обманом систем по распознаванию лиц. Датасет включает в себя 43 атрибута: детали лица, освещение, среду и тип обмана. CelebA-Spoof создали на основе датасета CelebA. Изображения из CelebA модифицировали и аннотировали.
CIFAR-10 и CIFAR-100 (Canadian Institute For Advanced Research). Одни из наиболее популярных открытых датасетов, используемых исследователями для обучения алгоритмов машинного зрения. Состоят из 60 000 цветных изображений размером 32×32 (5 обучающих выборок, по 10 000 изображений в каждой и одна тестовая выборка, содержащая 10 000 изображений). При этом, в CIFAR-10 все изображения разделены на 10 классов (по 6000 изображений в каждом классе), а в CIFAR-100 – на 100 классов (по 600 изображений в каждом классе).
CINIC-10. Расширение CIFAR-10, содержит изображения из CIFAR-10 и набор изображений из базы данных ImageNet. Был скомпилирован как «мост» между CIFAR-10 и ImageNet для тестирования приложений машинного обучения. Изображения разделены на три группы: обучающая, проверочная и тестовая выборки (каждая из групп содержит 90 000 изображений).
COIL100. 100 разных объектов, изображённых под каждым углом в круговом обороте.
Google’s Open Images. Коллекция из 9 миллионов URL-адресов к изображениям, «которые были помечены метками, охватывающими более 6000 категорий» под лицензией Creative Commons.
Open Images V4. Одна из версий датасета Open Images. V4 содержит 14,6 миллиона границ объектов для объектов 600 классов.
Open Images V6. В последней версии датасета появились так называемые «локализованные нарративы» для 500 тысяч изображений. Это новый вид мультимодальной разметки, в которой синхронизированы текст аннотации, начитка и движения указателя мыши по описываемым предметам. Значительно расширены типы разметки визуальных взаимосвязей между объектами на изображениях (например, «человек катается на скейтборде», «собака ловит летящий диск»). Также добавлено 2,5 млн разметок человеческих действий («прыгает», «улыбается») и 23,5 млн меток изображений.
Hypersim. Датасет от Apple с фотореалистичными синтетическими изображениями интерьеров. Для каждого изображения доступны попиксельная разметка объектов и геометрия сцены. Датасет состоит из 77,4 тысяч изображений 461 сцены.
ImageNet. Датасет изображений для новых алгоритмов, организованный в соответствии с иерархией WordNet, в которой сотни и тысячи изображений представляют каждый узел иерархии. Состоит из более чем 15 миллионов размеченных высококачественных изображений, разделенных на 22 000 категорий.
ImageNet-A – это датасет с примерами изображений, которые нейросеть не может классифицировать верно. По результатам, модели предсказывали объекты из датасета с точностью в 3%, в то время как для стандартного ImageNet точность предсказаний составляла 97%. ImageNet-A был собран исследователями из University of Berkeley, University of Washington и University of Chicago.
Данные состоят из 7,5 тысяч изображений объектов, которые нейросети сложно классифицировать. Эти объекты – это «естественные состязательные примеры» для нейросетей. Особенность изображений в том, что они содержат естественные оптические иллюзии, которые нейросеть не может распознать.
Indoor Scene Recognition. Датасет для распознавания интерьера зданий. Содержит 15 620 изображений и 67 категорий.
Labelled Faces in the Wild. Набор из 13 000 размеченных изображений лиц людей для использования приложений, которые предполагают использование технологии распознавания лиц.
Labelme. Датасет состоит их 187 240 изображений, 62 197 изображений с аннотациями и 658 992 помеченных объекта. В LabelMe также есть инструмент для удобной аннотации изображения для создания датасетов.
LaSOT. Масштабный датасет для обучения и оценки моделей трекинга объектов. Датасет содержит 1,5 тысяч видеоклипов с объектами 85 разных классов. Всего в датасете более 3,87 миллионов кадров. Каждый клип содержит разметку для одного объекта. Границы объекта на кадрах размечали вручную.
LSUN. Датасет изображений, разбитых по сценам и категориям с частичной разметкой данных, содержит более 9 млн изображений.
MoGaze. Датасет с передвижениями тела и движениями взгляда. Датасет собирали для обучения моделей предсказания действия людей. Такие модели можно использовать в роботизированных системах, тесно взаимодействующих с людьми. Датасет включает в себя 180 минут данных движения с 1 627 действиями поднять-поставить.
MS COCO (Microsoft Common Objects in Context). Набор данных для обнаружения, сегментации, обнаружения ключевых точек и аннотаций. Набор данных состоит из 328 тысяч изображений с более чем 1,5 миллионов объектов на них. Все объекты находятся в их естественном окружении (контексте). Изображения, как правило, содержат объекты разных классов (только 10% имеют единственный класс). Все изображения сопровождаются аннотациями, хранящихся в json формате.
COCO-WholeBody. Первый датасет для оценки позы всего тела. COCO-WholeBody является расширением датасета COCO 2017 с теми же разбивками на тренировочную и валидационную выборки, как в COCO. Для каждого человека доступны 4 типа границ объектов: бокс человека, бокс лица, бокс левой руки и бокс правой руки. Кроме того, 133 ключевые точки: 17 для тела, 6 для ног, 68 для лица и 42 для рук. Датасет доступен исключительно для исследовательских целей. Коммерческое использование запрещено.
Visual Genome. Датасет с
100 тыс. изображений, каждое из которых имеет в среднем 35 объектов, 26 атрибутов и 21 парную связь между объектами.
xView. Один из самых больших общедоступных наборов воздушных снимков земли. Он содержит изображения различных сцен со всего мира, аннотированных с помощью ограничительных рамок. Состоит из более
1 миллиона экземпляров объектов 60 различных классов.
Алгоритмы и модели
Метод Виолы-Джонса (Viola–Jones object detection) – алгоритм, позволяющий обнаруживать объекты на изображениях в реальном времени. Его предложили Паул Виола и Майкл Джонс в 2001 году.
Основные принципы, на которых основан метод, таковы:
Обучение классификаторов идет очень медленно, но результаты поиска лица очень быстры, именно поэтому данный метод часто используется для распознавания лиц на изображении.
Гистограмма направленных градиентов (Histogram of Oriented Gradients, HOG) – дескрипторы особых точек, которые используются в компьютерном зрении и обработке изображений с целью распознавания объектов. Данная техника основана на подсчете количества направлений градиента в локальных областях изображения.
Основной идеей алгоритма является допущение, что внешний вид и форма объекта на участке изображения могут быть описаны распределением градиентов интенсивности или направлением краев. Реализация этих дескрипторов может быть произведена путём разделения изображения на маленькие связные области, именуемые ячейками, и расчетом для каждой ячейки гистограммы направлений градиентов или направлений краев для пикселей, находящихся внутри ячейки. Комбинация этих гистограмм и является дескриптором. Для увеличения точности локальные гистограммы подвергаются нормализации по контрасту. С этой целью вычисляется мера интенсивности на большем фрагменте изображения, который называется блоком, и полученное значение используется для нормализации. Нормализованные дескрипторы обладают лучшей инвариантностью по отношению к освещению.
Дескриптор HOG имеет несколько преимуществ над другими дескрипторами. Поскольку HOG работает локально, метод поддерживает инвариантность геометрических и фотометрических преобразований, за исключением ориентации объекта. Подобные изменения появятся только в больших фрагментах изображения. Более того, как обнаружили Далал и Триггс, грубое разбиение пространства, точное вычисление направлений и сильная локальная фотометрическая нормализация позволяют игнорировать движения пешеходов, если они поддерживают вертикальное положение тела. Дескриптор HOG, таким образом, является хорошим средством нахождения людей на изображениях.
Метод опорных векторов (SVM, support vector machine) – набор схожих алгоритмов обучения с учителем, использующихся для задач классификации и регрессионного анализа. Принадлежит семейству линейных классификаторов и может также рассматриваться как частный случай регуляризации по Тихонову. Особым свойством метода опорных векторов является непрерывное уменьшение эмпирической ошибки классификации и увеличение зазора, поэтому метод также известен как метод классификатора с максимальным зазором.
Основная идея метода – перевод исходных векторов в пространство более высокой размерности и поиск разделяющей гиперплоскости с максимальным зазором в этом пространстве. Две параллельных гиперплоскости строятся по обеим сторонам гиперплоскости, разделяющей классы. Разделяющей гиперплоскостью будет гиперплоскость, максимизирующая расстояние до двух параллельных гиперплоскостей. Алгоритм работает в предположении, что чем больше разница или расстояние между этими параллельными гиперплоскостями, тем меньше будет средняя ошибка классификатора.
AlexNet – первая глубокая сверточная нейронная сеть. Разработчики сети выиграли конкурс по классификации изображений LSVRC-2012 на наборе данных ImageNet.
OverFeat – модель сверточной нейронной сети, которая предназначена для того, чтобы одновременно (т.е. одной сетью) решать три задачи: детектировать объект, классифицировать его и уточнять положение на снимке (detection, recognition, and localization).
Представляет собой многомасштабный алгоритм скользящего окна с использованием сверточных нейронных сетей.
Отличия от модели AlexNet:
Полученные карты признаков объединяются и передаются на вход классификатору, который формирует финальное решение о принадлежности изображения классу
VGG16 – модель сверточной нейронной сети, предложенная K. Simonyan и A. Zisserman из Оксфордского университета в статье «Very Deep Convolutional Networks for Large-Scale Image Recognition». Модель достигает точности 92.7% – топ-5, при тестировании на ImageNet в задаче распознавания объектов на изображении. Этот датасет состоит из более чем 14 миллионов изображений, принадлежащих к 1000 классам.
VGG16 – одна из самых знаменитых моделей, отправленных на соревнование ILSVRC-2014. Она является улучшенной версией AlexNet, в которой заменены большие фильтры (размера 11 и 5 в первом и втором сверточном слое, соответственно) на несколько фильтров размера 3х3, следующих один за другим. Сеть VGG16 обучалась на протяжении нескольких недель при использовании видеокарт NVIDIA TITAN BLACK.
На вход слоя conv1 подаются RGB изображения размера 224х224. Далее изображения проходят через стек сверточных слоев, в которых используются фильтры с очень маленьким рецептивным полем размера 3х3 (который является наименьшим размером для получения представления о том, где находится право/лево, верх/низ, центр).
В одной из конфигураций используется сверточный фильтр размера 1х1, который может быть представлен как линейная трансформация входных каналов (с последующей нелинейностью). Сверточный шаг фиксируется на значении 1 пиксель. Пространственное дополнение входа сверточного слоя выбирается таким образом, чтобы пространственное разрешение сохранялось после свертки, то есть дополнение равно 1 для 3х3 сверточных слоев. Пространственный пулинг осуществляется при помощи пяти max-pooling слоев, которые следуют за одним из сверточных слоев (не все сверточные слои имеют последующие max-pooling). Операция max-pooling выполняется на окне размера 2х2 пикселей с шагом 2.
После стека сверточных слоев (который имеет разную глубину в разных архитектурах) идут три полносвязных слоя: первые два имеют по 4096 каналов, третий – 1000 каналов (так как в соревновании ILSVRC 3 Проект ILSVRC (ImageNet Large Scale Visual Recognition Challenge, Кампания по широкомасштабному распознаванию образов в ImageNet) различные программные продукты ежегодно соревнуются в классификации и распознавании объектов и сцен в базе данных ImageNet, ведётся c 2010 года. требуется классифицировать объекты по 1000 категорий; следовательно, классу соответствует один канал). Последним идет soft-max слой. Конфигурация полносвязных слоев одна и та же во всех нейросетях.
Все скрытые слои снабжены ReLU. Отметим также, что сети (за исключением одной) не содержат слоя нормализации (Local Response Normalisation), так как нормализация не улучшает результата на датасете ILSVRC, а ведет к увеличению потребления памяти и времени исполнения кода.
Сеть VGG имеет два серьезных недостатка:
Из-за глубины и количества полносвязных узлов VGG16 весит более 533 МБ. Это осложняет процесс развертывания VGG. Хотя VGG16 и используется для решения многих проблем классификации при помощи нейронных сетей, меньшие архитектуры более предпочтительны (SqueezeNet, GoogLeNet и другие). Несмотря на недостатки, данная архитектура удобна для обучения, так как её легко реализовать.
SEER – это самообучающаяся нейросеть с миллиардом параметров от FAIR для задач компьютерного зрения. Предобученную на снимках из Instagram модель можно дообучать на своих задачах. Разработчики опубликовали библиотеку VISSL для обучения SEER модели.
SEER объединяет в себе архитектуру RegNet и формат онлайн самостоятельного обучения. В качестве алгоритма для онлайн обучения использовали SwAV. RegNet, в свою очередь, – это масштабируемая сверточная нейросеть, которая позволяет обходить ограничения по времени обучения и памяти. Такая комбинация позволяет SEER масштабироваться до миллиардов параметров и обучающих изображений.
После предобучения на миллиарде случайных, неразмеченных изображений из Instagram SEER обошла большинство наиболее прогрессивных самообучаемых моделей. По результатам экспериментов, максимальная точность предсказаний нейросети составила 84,2% на датасете ImageNet.
SEER также обошла наиболее успешные на данный момент подходы обучения с учителем на таких задачах, как low-shot (изучение концепций через малое количество примеров), детектирование объектов, сегментация и классификация изображений.
Если использовать для обучения 10% изображений из ImageNet, максимальная точность SEER составляет 77,9% для всего ImageNet. Если обучать нейросеть на 1% размеченных изображений из ImageNet, точность составит 60,5%.
Результаты SEER показывают, что формат самостоятельного обучения подходит и для задач компьютерного зрения.
NBDT (Neural-Backed Decision Trees, NBDTs) – это нейросетевая архитектура деревьев решений для задач классификации. Модель объединяет в себе интерпретируемость классического алгоритма дерева решений с качеством предсказаний современных нейросетей. Разработчики тестировали модель на задаче классификации изображений.
NBDTs заменяют последний слой нейросети дифференцируемой последовательностью решений с особой функцией потерь. Это позволяет модели выучивать высокоуровневые концепты и снижает нестабильность предсказаний. В отличие от стандартной нейросети, NBDT выдает последовательные решения, которые привели к предсказанию.
Процесс обучения итогового слоя модели
Модель находится в препринте, публикация планируется в мае 2021, но согласно сравнению разработчиков, результаты работы модели близки к наиболее успешным в настоящий момент подходам на датасетах CIFAR и ImageNet.
YOLO (You Only Look Once) – это семейство моделей, которые стали популярны благодаря легковесности и качеству предсказаний. Такие характеристики позволяю использовать YOLO для задач распознавания объектов в реальном времени и на портативных устройствах.
YOLO – это система обнаружения объектов в реальном времени, созданная Джозефом Редмоном и Али Фархади из Вашингтонского университета. Их алгоритм применяет нейронную сеть ко всему изображению, а нейронная сеть разделяет изображение на сетку и запечатлевает районы с обнаруженными элементами.
Scaled YOLO v4 на датасете Microsoft COCO достигает точности 55,8%, что делает ее одной из самых точных нейронных сетей для обнаружения объектов. Scaled YOLO v4 превосходит по точности нейронные сети: Google; Amazon; Microsoft; Facebook.
Faster R-CNN разработан на основе R-CNN и следующей ее версии Fast R-CNN, где для локализации объекта вместо избирательного поиска используется Region Proposal Networks (сеть позволяет генерировать предлагаемые регионы нахождения объектов на основе последней сверточной карты признаков). Архитектура Faster R-CNN образована следующим образом:
Изображение подается на вход сверточной нейронной сети. Так, формируется карта признаков. Карта признаков обрабатывается слоем RPN. Здесь скользящее окно проходится по карте признаков. Центр скользящего окна связан с центром якорей. Якоря – это области, имеющие разные соотношения сторон и разные размеры. Авторы используют 3 соотношения сторон и 3 размера. На основе метрики IoF (intersection-over-union), степени пересечения якорей и истинных размеченных прямоугольников, выносится решение о текущем регионе – есть объект или нет. Далее используется алгоритм FastCNN: карта признаков с полученными объектами передаются слою RoI с последующей обработкой полносвязных слоев и классификацией, а также с определением смещения регионов потенциальных объектов.
Модель Faster R-CNN справляется немного хуже с локализацией, но работает быстрее Fast R-CNN.
На TensorFlow 4 Открытая программная библиотека для машинного обучения, поддерживаемая Google. tensorflow.org есть ряд предобученных моделей, использующих данный метод.
ResNet (Residual Network, «остаточная сеть») – модель глубокой нейронной сети для классификации изображений. Создана Microsoft, чтобы преодолеть проблему снижения точности предсказаний с увеличением количества слоев в нейронных сетях.
Microsoft ввела глубокую «остаточную» структуру обучения. Вместо того, чтобы надеяться на то, что каждые несколько упорядоченных слоев непосредственно соответствуют желаемому основному представлению, они явно позволяют этим слоям соответствовать «остаточному». Формулировка F(x) + x может быть реализована с помощью нейронных сетей с соединениями для быстрого доступа.
Идентификационные быстрые соединения F (x
Соединения быстрого доступа (shortcut connections) пропускают один или несколько слоев и выполняют сопоставление идентификаторов. Их выходы добавляются к выходам упорядоченных слоев. Используя ResNet, можно решить множество проблем, таких как:
EfficientNets – класс моделей, цель разработки которых сохранить высокое качество решения задачи и повысить эффективность модели (уменьшить количество параметров и снизить вычислительную сложность)
При правильном конструировании моделей масштабирование по любому размеру сети (глубина, разрешение входного изображения, ширина – количество каналов в картах признаков) приводит к повышению качества решения задачи
Важно сбалансировать все размеры сети (глубину, разрешение и ширину) во время масштабирования сети для получения высокой точности и эффективности.
Авторы предлагают метод составного масштабирования модели (compound scaling method). Вводится составной коэффициент 𝜙 для равномерного масштабирования глубины, ширины и разрешения
EfficientNet-B0 – базовая нейронная сеть, построенная с использованием инвертированных остаточных блоков, которые введены в MobileNetV2.
EfficientNet-B1,…,B7 получены в результате поиска оптимального соотношения параметров глубины, ширины и разрешения с использованием предложенного метода масштабирования.
Meta Pseudo Labels (EfficientNet-L2). Для обучения модели EfficientNet использовался полу-контролируемый метод Meta Pseudo Labels (MPL). Одна сеть EfficientNet-L2 используется в таком случае в качестве учителя, а вторая – ученика. Учителем генерируются псевдо-метки на неразмеченных изображениях из датасета, которые затем смешиваются с правильно размеченными данными для формирования обучающей выборки.
В процессе обучения учитель получает сигналы о том, насколько хорошо ученик выполняет мини-пакет, взятый из помеченного набора данных. После чего может изменять метки с целью лучшего обучения.
Полученная сеть достигает максимальной точности 90,2% по проверочному набору ImageNet ILSVRC 2012, став лучшей сетью для классификации изображений на данном датасете.
U-Net считается одной из стандартных архитектур сверточных нейронных сетей для задач сегментации изображений, когда нужно не только определить класс изображения целиком, но и сегментировать его области по классу, т. е. создать маску, которая будет разделять изображение на несколько классов. Архитектура состоит из стягивающего пути для захвата контекста и симметричного расширяющегося пути, который позволяет осуществить точную локализацию. Сегментация изображения 512×512 занимает менее секунды на современном графическом процессоре.
Для U-Net характерно:
Архитектура U-Net (пример изображения с разрешением 32×32 пикселя – самым низким). Каждый синий квадрат соответствует многоканальной карте свойств. Количество каналов приведено в верхней части квадрата. Размер x-y приведен в нижнем левом краю квадрата. Белые квадраты представляют собой копии карты свойств. Стрелки обозначают различные операции.
Архитектура сети приведена на рисунке. Она состоит из сужающегося пути (слева) и расширяющегося пути (справа). Сужающийся путь – типичная архитектура сверточной нейронной сети. Он состоит из повторного применения двух сверток 3×3, за которыми следуют инит ReLU и операция максимального объединения (2×2 степени 2) для понижения разрешения.
На каждом этапе понижающей дискретизации каналы свойств удваиваются. Каждый шаг в расширяющемся пути состоит из операции повышающей дискретизации карты свойств, за которой следуют:
Обрезка необходима из-за потери граничных пикселей при каждой свертке.
На последнем слое используется свертка 1×1 для сопоставления каждого 64-компонентного вектора свойств с желаемым количеством классов. Всего сеть содержит 23 сверточных слоя.
Архитектура U-Net достигает выдающейся производительности и точности в самых разных приложениях биомедицинской сегментации. Метод требует лишь нескольких помеченных изображений для тренировки и имеет приемлемое время обучения: всего лишь 10 часов на графическом процессоре NVidia Titan (6 ГБ).
Cascade Eff-B7 NAS-FPN with Self-training and Copy-Paste – модель обнаружения объектов, основанная на нескольких методах сразу. Так, с помощью случайно вставки изображений в исходные данные была улучшена работа базовых моделей нейронных сетей, а использование в дополнение к данному методу псведо-маркировки для обучения модели позволило значительно улучшить выходные предсказания.
Данная модель на датасете Microsoft COCO достигает точности 57%, что делает ее самой точной нейронной сетью для обнаружения объектов (данные – март 2021).
Все использованные методы для создания модели были представлены автором на рисунке и условно разделены на две части: изменения данных и архитектурная модель.
LambdaNetworks – это нейросетевая архитектура, которая способна захватывать длительные зависимости между входными данными и контекстуальной информацией. Например, пиксель, окруженный другими пикселями. Итоговая архитектура LambdaNetwork требует меньше вычислительных ресурсов и является простой в имплементации в сравнении с альтернативными подходами.
Ключевая особенность структуры сети – это лямбда слой, который учитывает такие зависимости с помощью трансформации доступных контекстов в линейные функции (лямбды). Затем лямбды применяются к каждому входному объекту по отдельности. Лямбда слои могут быть имплементированы в модели для глобальных, локальных и маскированных контекстов.
Линейные функции противопоставляются картам внимания, которые повсеместно используются в наиболее прогрессивных нейросетевых архитектурах. Карты внимания являются дорогими для вычисления.
Исследователи проводили эксперименты на трех задачах: классификации изображений на данных ImageNet и распознавание объектов и сегментация сущностей на данных COCO. LambdaNetworks обходят сверточные архитектуры и архитектуры с механизмом внимания. При этом предложенные модели более вычислительно эффективны.
LambdaResNets – это семейство LambdaNetworks моделей, которые адаптированы под задачу классификации изображений. LambdaResNets выдают предсказания, сравнимые с наиболее успешных в настоящее время моделями на ImageNet, при том, что обучаются в 4,5 раза быстрее EfficientNets.
Компании и проекты
Иностранные компании
Facial Detection – распознавание лиц.
Landmark Detection – распознавание геолокации по фото.
Logo Detection – детектирование символов.
Image Properties – детекция отдельных атрибутов изображения.
Perception – технология понимания сенсорных данных, внедряемая во все продукты компании, включающая распознавание изображений в Google Фото, улучшение качества фото с камеры Pixel Phone, интерфейсы рукописного ввода Android, оптическое распознавание символов в Google Drive, понимание видео YouTube, Google Cloud, Google Фото и Nest, а также компьютерное зрение для мобильных приложений, таких как Motion Stills, PhotoScan и Allo.
ResNeXt – простая высокомодульная сетевая архитектура для классификации изображений.
Алгоритмы машинного зрения используются в Facebook для фильтрации нежелательного контента, в том числе видеоконтента, выявления фейковых фотографий, актуализации и кастомизации рекламы.
Многие возможности Instagram (фильтры, маски, быстрое редактирование фотографий и сториз) обусловлены алгоритмами машинного зрения.
Bing image recognition – в поисковике Bing от Microsoft используются алгоритмы компьютерного зрения.
InnerEye – проект по созданию инструментов для автоматического количественного анализа трехмерных медицинских изображений.
NVIDIA DeepStream – платформа для быстрого анализа видеопотоков в реальном времени.
GPU4Vision, OpenVIDIA – библиотеки для высокопроизводительных вычислений.
Amazon 13 Go – магазины Amazon, в которых покупатели сканируют на входе свои смартфоны, берут с полок товары и выходят из магазина. Покупка оплачивается автоматически, а чек формируется на основе информации, полученной с камер магазина и обработанной алгоритмами компьютерного зрения.
Дроны Amazon, предназначенные для доставки товаров.
Системы умного дома Amazon – комплексные решения, включающие дверные звонки с камерами.
Echo Look – голосовая колонка с камерой от Amazon, управляемая голосом и дающая рекомендации в области моды и стиля.
Megvii Technology Limited
Brain++ – платформа для тренировки моделей, основанных на глубоком обучении.
SensePosture – технология оценки поз (pose estimation). Осуществляет высокоскоростной трекинг движений человека по 17 3D-координатам. Применяется в дополненной и виртуальной реальности.
Intelligent cockpit – система компьютерного зрения, разработанная для автомобилей. Включает в себя биометрическую идентификацию пользователя, систему распознавания жестов, облегчающую управление транспортом, а также системы обнаружения сонливости водителя, мониторинга внимания за рулем и выявления опасного вождения.
Анализ медицинских снимков.
China Merchants Bank’s Facial Recognition Project – в 2015 г. система распознавания лиц компании YITU, а также биометрическая система VTM identity authentication были внедрены в 1500 банков Китая.
Автономный транспорт – компания активно разрабатывает данное направление, планируя использовать беспилотные автомобили для доставки продукции. Тестирование беспилотных транспортных средств проводятся в городе Ханчжоу, средняя скорость движения составляет на данный момент 30-40 км/ч, грузоподъемность – до нескольких тонн.
PaddleDetection – высокопроизводительный инструментарий обнаружения объектов.
Apollo – технологии ИИ, включая алгоритмы распознавания лиц, анализа поведения за рулем, биометрию, использующиеся в бортовых системах автомобилей. Сейчас Baidu бесплатно предоставляет производителям автомобилей лицензию на свою систему в обмен на пользовательские данные, использующиеся для совершенствования моделей. Впоследствии планируется на базе Apollo создавать полностью автономные транспортные средства.
Умные камеры – камеры, соединенные с серверами обработки визуальной информации, используемые для автоматического мониторинга охраняемых объектов.
Роботы-аватары – роботизированные системы с портативной камерой и экраном, применяющиеся для дистанционной коммуникации.
Система распознавания лиц DeepGlint широко используется полицией Китая. Также совместно с Hyundai внедряется в автомобили для биометрического распознавания водителей и анализа моделей поведения в процессе вождения.
Российские компании
Сервис Yandex Vision включает в себя технологии OCR (Optical Character Recognition), автоматическую модерацию контента и определение присутствия человека
Поиск по изображению – по многим оценкам, поиск Яндекса по картинке является лучшим в мире, обходя по качеству поиски Google, Bing и Baidu.
LUNA PLATFORM – система управления биометрическими данными, которая может решать разнообразные задачи с помощью функции распознавания лиц – например, распознавание клиента банка, идентификация сотрудников офиса при входе в здание и т.д.
FindFace Security работает с обычными камерами и распознает лица в том числе в затрудненных условиях: при плохом освещении и наличии посторонних предметов в кадре, при различных поворотах головы и изменении внешности человека.
Архитектура сервиса позволяет подключать практически неограниченное количество видеокамер и серверов.
VOCORD Tahion – ПО для создания систем видеонаблюдения и видеоаналитики любого масштаба.
VOCORD ParkingContol – интеллектуальная система для распознавания ГРЗ ТС и контроля транспорта на парковке или другом объекте с пропускным режимом.
Основное направление – распознавание лиц. Чаще всего лицензируется в форме SDK, иногда в виде веб-системы, реже – в виде кастомизированного решения на основе SDK.
В 2019 появился модуль распознавания документов, есть модуль для оценки размера очередей.
ABBYY Mobile Capture – универсальный инструмент для разработчика, который позволяет встраивать в мобильные приложения и клиенты функции автоматического захвата изображений документов и распознавания текста.
ABBYY FlexiCapture – универсальная платформа для интеллектуальной обработки информации.
ABBYY FineReader Server – корпоративное серверное решение для распознавания, хранения и преобразования файлов в PDF и другие электронные редактируемые форматы.
Face SDK – ПО для распознавания лиц.
Seemetrix – видеоаналитика для рекламных дисплеев.
Мультибиометрическая платформа НейроАМБИС, с элементами искусственного интеллекта.