Машинное обучение и нейронные сети способны научить компьютер замечать дефекты и проблемы до того, как они повлияют на производство. Компьютерное зрение (Computer Vision) — это область искусственного интеллекта, которая изучает методы и алгоритмы для интерпретации и анализа изображений и видео. Цель: обучить компьютер «видеть» и понимать изображения, как это делает человек.
Первые работы в поисках метода обучения машин понимать визуальные данные начались еще в 1959 году. Тогда произошел эксперимент Губермана-Вайзкранца: исследователи показывали кошке набор изображений на экране и измеряли электрическую активность ее зрительной коры с помощью электродов на голове. Результаты эксперимента показали, что зрительная кора начинает обработку изображений с обнаружения простых форм, таких как линии и контуры. По такому же принципу работает сверхточная нейронная сеть (CNN). Она начинает с изучения основных черт изображения, таких как резкие края и формы. Затем использует эти знания, чтобы заполнить более детальную информацию об изображении в процессе многократного прогнозирования.
Первые работы в поисках метода обучения машин понимать визуальные данные начались еще в 1959 году. Тогда произошел эксперимент Губермана-Вайзкранца: исследователи показывали кошке набор изображений на экране и измеряли электрическую активность ее зрительной коры с помощью электродов на голове. Результаты эксперимента показали, что зрительная кора начинает обработку изображений с обнаружения простых форм, таких как линии и контуры. По такому же принципу работает сверхточная нейронная сеть (CNN). Она начинает с изучения основных черт изображения, таких как резкие края и формы. Затем использует эти знания, чтобы заполнить более детальную информацию об изображении в процессе многократного прогнозирования.
Сферы применения компьютерного зрения
- Автоматическое распознавание номерных знаков на дорогах. Применяется, например, в системах управления платными парковками, в камерах превышения скорости для идентификации и фиксации номерных знаков нарушителей.
- Распознавание лиц. Технология необходима в различных контекстах, например, для доступа к мобильному телефону, пропуска в здание ограниченного круга лиц, поиска преступников или пропавших людей.
- Медицинская диагностика. Правильно обученный компьютер быстрее и точнее, чем человек, обнаружит патологии на снимках УЗИ и МРТ, предупредит об изменениях кожи, которые могут быть признаком заболеваний, определит признаки Альцгеймера по МРТ мозга.
- Контроль качества. Например, компьютеру можно поручить проверку качества на производственной линии, выявление дефектов и отбраковку неисправных изделий. Это позволяет сократить затраты и повысить эффективность производства, а также снизить количество брака и улучшить качество продукции.
- Автоматическая сортировка. Компьютерное зрение используется в промышленности для сортировки продуктов в зависимости от их характеристик и качества, что уменьшает число ошибок и повышает производительность.
- Беспилотный транспорт. Прежде чем выпускать автомобиль без водителя на дороги, его нужно научить двигаться безопасно для пешеходов и других автомобилей. Для этого компьютер должен уметь распознавать объекты вокруг и знать, что делать в том или ином случае.
- Улучшение жизни людей с ограниченными возможностями. Компьютерное зрение используется при создании специальных устройств: «умные камеры», «умные очки». Они используются для чтения, распознавания образов, навигации по городу и сбора информации из реального мира в реальном времени.
Какие реальные задачи можно решить с Computer Vision?
Реальные приложения демонстрируют, насколько важно компьютерное зрение для бизнеса, развлечений, транспорта, здравоохранения и повседневной жизни. Их появляется все больше из-за огромного потока визуальной информации, поступающей со смартфонов, дорожных камер, систем безопасности и других устройств. Эти данные могут стать основой для роста и развития бизнеса, если вы будете использовать их.
Например, для турнира по гольфу Masters 2018 года IBM использовала систему ИИ IBM Watson для создания My Moments. Watson просмотрел сотни часов видеозаписей и смог найти самые важные кадры. Он курировал эти ключевые моменты и передавал их фанатам в виде персонализированных роликов.
Мы все пользуемся компьютерным зрением в Google Translate: когда наводим камеру смартфона на текст на другом языке и тут же получаем перевод.
IBM и компания Verizon создали систему компьютерного зрения, которая использует искусственный интеллект и машинное обучение для автоматической проверки качества в процессе производства автомобилей. Подобные системы помогают предотвращать дефекты и несоответствия еще на линии, что уменьшает количество отказов на стадии эксплуатации автомобиля и улучшает его безопасность.
Одним из интересных примеров использования компьютерного зрения является система обнаружения поддельных фильмов. Этот инструмент автоматизирует процесс поиска поддельных видеофайлов путем анализа визуальных артефактов и изменений в изображениях. Такие системы помогают органам правопорядка, юридическим компаниям в борьбе с фальсификацией видео и предотвращении мошенничества.
Одна из них — Deep Video Portraits, разработанная учеными из Университета Бата в Канаде. Эта система использует глубокое обучение для создания живого видеопортрета на основе фотографий, в котором люди могут двигаться и разговаривать. Однако она также может использоваться для обнаружения поддельных видео. Другие варианты: TruePic и Amber Authenticate.
Как работает компьютерное зрение?
Приложения компьютерного зрения работают на алгоритмах, которые предварительно обучаются на огромных объемах визуальных данных. Они вычленяют логические связи, распознают шаблоны и используют их для обработки других изображений.
Этапы обработки изображений компьютерным зрением:
- Сенсорное устройство, например, видеокамера или УЗИ-сканер, фиксирует изображение для анализа.
- Изображение передается на интерпретирующее устройство. Оно распознает образы, сравнивает их с библиотекой в памяти и определяет, есть ли там информация, интересующая пользователя.
Например, чтобы научить компьютер распознавать автомобильные шины, он должен просмотреть и проанализировать огромное количество размеченных изображений шин и элементов, связанных с ними. Для этого в основном используются две технологии:
- машинное обучение;
- сверхточная нейронная сеть (CNN).
Машинное обучение использует алгоритмические модели, по которым компьютер учится понимать контекст визуальных данных. Если обучающей информации достаточно, машина сама проанализирует ее и научится отличать изображение кота от дерева.
CNN — частный случай машинного обучения, специально разработанный для анализа изображений. Всем объектам попиксельно присваиваются метки. CNN учитывает пространственное расположение пикселей в изображении и использует специальные сверхточные слои для извлечения признаков на разных уровнях, начиная с общих признаков, таких как линии и формы, до все более сложных, таких как контуры и текстуры. Рекуррентная нейронная сеть (RNN) используется аналогичным образом для видеоприложений, чтобы помочь компьютерам понять, как изображения в серии кадров связаны друг с другом.
Основные функции компьютерного зрения:
CNN — частный случай машинного обучения, специально разработанный для анализа изображений. Всем объектам попиксельно присваиваются метки. CNN учитывает пространственное расположение пикселей в изображении и использует специальные сверхточные слои для извлечения признаков на разных уровнях, начиная с общих признаков, таких как линии и формы, до все более сложных, таких как контуры и текстуры. Рекуррентная нейронная сеть (RNN) используется аналогичным образом для видеоприложений, чтобы помочь компьютерам понять, как изображения в серии кадров связаны друг с другом.
Основные функции компьютерного зрения:
- классификация — например, способность компьютера отличать людей от других объектов на фотографии и подсчитывать, сколько их всего;
- идентификация — система не только определяет, что на фотографии человек, но и анализирует его внешний вид для вывода;
- отслеживание — видео анализируется, чтобы определить местоположение движущегося объекта и спрогнозировать его перемещение;
- оптическое распознавание символов — система находит и распознает текст на изображении, переводит его в удобный формат для редактирования и передачи в другие приложения.
Как применяется в сборе данных для машинного обучения?
Компьютерное зрение используется для создания датасетов, которые состоят из изображений, видео и других типов мультимедийных данных.
Один из примеров применения компьютерного зрения для сбора данных — создание датасета с изображениями людей. Для этого можно использовать камеру и алгоритмы компьютерного зрения для получения изображений и наложения на них аннотаций, отмечающих границы лица и мимики. Этот датасет затем может использоваться для обучения модели распознавания лиц.
Еще один пример — использование компьютерного зрения для создания датасета с изображениями продуктов в супермаркете. Автоматизированная система может фотографировать каждый продукт в магазине и использовать алгоритмы компьютерного зрения для создания меток, указывающих на название продукта и его цену. Далее на основании полученных данных обучается модель AI/ML, которая сможет распознавать продукты на полках магазина и отслеживать их количество и цену.
Другие примеры применения компьютерного зрения в сборе данных для машинного обучения:
- автоматическая разметка. Например, для подготовки датасета по распознаванию объектов. Компьютерное зрение анализирует изображения и видеопотоки, позволяет автоматически выделять и классифицировать объекты на изображении или видео, определять их параметры, такие как размер, форма и цвет;
- распознавание лиц. Facebook использует компьютерное зрение для автоматического распознавания лиц на фотографиях и тегирования пользователей;
- самообучающиеся системы. Google's DeepMind обучился играть в видеоигры, используя только изображения, а не данные об игровом процессе;
- детектирование объектов на видео. Компьютерное зрение позволяет компьютеру просматривать видео и автоматически детектировать движущиеся объекты. Это может быть использовано, например, для создания базы данных видеофрагментов для моделей машинного обучения;
- типы движения объектов. Можно отслеживать и записывать движения на видео. Например, для датасета с видео фитнес-тренировок: чтобы модель научилась распознавать типы спортивных движений.
Какие инструменты используются?
Одна из популярных: Computer Vision Annotation Tool (CVAT). Это open source инструмент, он используется для разметки изображений и видео, предназначенных для обучения модели компьютерного зрения. Подходит для компаний, где требуется быстрая разметка большого объема данных.
Помимо CVAT, есть и другие инструменты:
- TensorFlow — библиотека, разработанная компанией Google, которая используется для создания глубоких нейронных сетей и моделей машинного обучения для компьютерного зрения;
- PyTorch — фреймворк машинного обучения для языка Python на базе Torch. Используется для обучения нейронных сетей и создания моделей;
- OpenCV — открытая библиотека для компьютерного зрения, которая содержит более 2500 алгоритмов для распознавания и анализа изображений и видео;
- Caffe — библиотека на основе фреймворка С++, используется для обучения глубоких нейронных сетей и сверхточных нейронных сетей;
- Microsoft Cognitive Toolkit (CNTK) — библиотека машинного обучения, разработанная Microsoft, используется для создания глубоких нейронных сетей для различных задач, включая компьютерное зрение.
У CVAT удобный пользовательский интерфейс, который позволяет аннотировать изображения и видео с помощью различных инструментов, таких как прямоугольники, многоугольники, маркеры, контуры, поля, текст и другие. Пользователь может добавлять к изображениям и видео метаданные: классы, атрибуты, теги и другие. CVAT также предоставляет механизм для проверки качества аннотаций с помощью экспертной оценки. После завершения разметки данные можно экспортировать в нужном формате, например, COCO, PASCAL VOC, YOLO.