Встраиваемые системы компьютерного зрения: что нового?


PDF версия

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

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

Хотя обе задачи имеют немало общего, но и различий между ними немало. Одно из главных различий, на наш взгляд, заключается в том, что при обработке видеоконтента разработчику все чаще приходится иметь дело с 3D-изображениями, в то время как обработка изображений сосредоточена на 2D-изображениях и не подразумевает работу с движущимися объектами.

Технические системы зрения развиваются очень быстро. Например, консалтинговое агентство Tractica прогнозирует, что к 2025 г. доход от продаж аппаратных и программных средств машинного зрения возрастет на 25%, достигнув 26 млрд долл. За последние несколько лет аппаратные средства для разработки компьютерного зрения претерпели заметные изменения. Нет сомнений, что и в следующие пять лет эти изменения продолжатся.

Наиболее важными компонентами аппаратных средств машинного зрения являются устройства обработки видео­сигналов. В качестве таковых используются не только микропроцессоры, но и ПЛИС. В настоящее время предлагаются макетные платы для изучения и оценки систем компьютерного зрения от разных производителей. В качестве вычислительного элемента в них используются, например, процессоры Qualcomm Snapdragon, Intel Core i5, i7, ПЛИС компаний Lattice и Intel (Altera).

Однако, как было замечено, все быстро меняется в этом приложении – появились специализированные процессоры для обработки видеоизображений (image signal processors, ISP). Они дополняют основной процессор, используемый для обработки видеоконтента, а также ускоряют время анализа и повышают надежность обработки сигнала. Перечислим некоторые широко представленные на российском рынке компании, выпускающие процессоры ISP.

Начнем с Qualcomm. Как утверждают в этой компании, Spectra 380 является первым в мире процессором ISP с элементами искусственного интеллекта. Разумеется, не осталась в стороне и компания Renesas – в семействе СнК R‑Car V3M для автомобильной электроники процессор ISP является дополнением к двум ядрам ARM Cortex A53 и двум ядрам ARM Cortex R7. Компания ON Semiconductor AP0100CS имеет в своей продуктовой линейке процессор ISP AP0100CS для обработки сигналов видеокамеры с разрешением 1280×960. Аналогичное решение имеется и у компании STMicroelectronics.

Появление процессоров ISP не замедлило сказаться на предпочтениях разработчиков. На рисунке 1 показаны результаты опроса [1], который провел Embedded Vision Alliance – альянс производителей и ученых, занимающихся компьютерным зрением. Как видно из рисунка, предпочтения инженеров, занимающихся компьютерным зрением, довольно разнообразны.

Устройства для обработки видеосигналов
Рис. 1. Устройства для обработки видеосигналов

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

Заметим, что по мере роста эффективности процессоров стало возможным внедрять алгоритмы глубокого обучения. Однако они тоже представляют собой палку о двух концах. С одной стороны, широко используемые алгоритмы глубокого обучения имеют много общих характеристик, их проще формализовать, что упрощает задачу проектирования, тогда как традиционные алгоритмы очень разнообразны и имеют мало общего. С другой стороны, реализация методов глубокого обучения требует еще большей производительности процессора, чем обычные алгоритмы обработки видеосигналов. Тем не менее, согласно [1], примерно треть разработчиков использует алгоритмы глубокого обучения.

Так или иначе, но на сегодняшний день более-менее определилась структура аппаратных средств: параллельно с основным процессором для обработки видеосигналов используется сопроцессор, и пока в качестве такового лидирует графический процессор (ГП) (см. рис. 1). Его лидерство вполне объяснимо – он давно известен, и разработчики привыкли с ним работать. У каждого программиста наверняка имеются собственные наработки с ГП. Не последнюю роль играет и консерватизм инженеров. Здоровый это консерватизм или нет – другой вопрос, но когда сроки сдачи очередного проекта поджимают, выбор в пользу проверенного решения вполне объясним.

В нашем кратком обзоре нельзя не сказать несколько слов о ПО, используемом в описанных выше аппаратных средствах. В данном случае все относительно традиционно – явным лидером является C++. Этот язык программирования выбирают 75% разработчиков. Далее следует Python – ему отдают предпочтения 61% инженеров и C, который предпочитают использовать 46%. Что касается программных библиотек и API, то в этом отношении разнообразия значительно меньше: явным лидером является OpenCV; 89% программистов выбирают эти средства.

Не последнюю роль в технологии машинного зрения играют датчики изображений. Их прогресс в последнее время очевиден. Датчики 2D-изображения обеспечивают отличный обзор, но добавление информации о глубине чрезвычайно полезно для многих приложений, т. к. позволяет распознать не только боковое движение, но и перпендикулярное датчику движение. Кроме того, добавление глубины изображения повышает надежность распознания лиц.

Если раньше добавление глубины изображения было дорогой технологией, то в настоящее время ее стоимость значительно снизилась, и эта технология появилась даже в гаджетах. Как показал опрос [1], 34% разработчиков уже ее используют, а еще 29% планируют включить ее в следующий проект.

Использование нейронных сетей
Рис. 2. Использование нейронных сетей

Думаем, читателей интересует вопрос использования нейронных сетей. Этот интерес вполне понятен – где еще использовать эту технологию, как не в таких приложениях? Ответ дает рисунок 2, на котором представлены результаты опроса. Раз уж мы коснулись нейронных сетей, приведем рисунок 3, который показывает, какое ПО используют программисты, работающие с нейронными сетями.

Использование ПО для работы с нейронными сетями
Рис. 3. Использование ПО для работы с нейронными сетями

Литература

  1. 1. Embedded Vision Alliance Tools & Processors for Computer Vision/ /www.embedded-vision.com.
Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *