Компоненты для проектирования систем машинного зрения

Создано: 13 Августа, 2021
Обновлено: 1 Июля, 2024

 

Умные камеры, компьютерное зрение, машинное зрение… как бы вы это ни называли, приложения зрения находят своё применение во всё большем количестве продуктов. Классическое применение, с которым знакомы большинство разработчиков печатных плат, - это производство, а в последнее время также и распознавание лиц на вашем смартфоне. Разработчики, хорошо знакомые с проектированием и системами машинного зрения, наблюдают множество уникальных применений в медицине, автомобилестроении, робототехнике, аэрокосмической отрасли, безопасности и, безусловно, в других областях.

 

Одна из интересных особенностей электронной индустрии - это лёгкость, с которой новые технологии могут быть интегрированы в новые системы по мере их распространения. Машинное зрение определённо перешло порог, достигнув стандартизации, поддержки разработчиков и наличия большого количества компонентов, доступных для дизайнеров, желающих инновировать в этой области. Сегодня существует несколько популярных аппаратных платформ, которые являются вариантом начального уровня для новых разработчиков. Если вы вышли за рамки прототипирования и готовите аппаратное обеспечение производственного уровня, новые процессоры позволяют создавать более интегрированные системы, использующие передовые технологии, такие как машинное обучение.

 

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

Архитектура системы машинного зрения

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

 

Высокоуровневая архитектура системы машинного зрения

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

FPGA, MPU или GPU?

МКУ или на основе МКУ SoC всегда были популярны, даже для систем, реализующих возможности машинного зрения. МКУ со стандартными цифровыми интерфейсами могут взаимодействовать с более специализированными ASIC для обработки изображений, в то время как FPGA могут быть достаточно большими, чтобы реализовать встроенный захват изображений, функции цифровой обработки сигналов и другую обработку на уровне системы. GPU могут обеспечивать выделенный внешний процессор зрения, который передает данные обратно контроллеру хоста.

 

 

 

С точки зрения уровня развития, архитектуры MPU + FPGA или MPU + GPU предпочтительнее для машинного зрения в реальном времени. Они также предпочтительнее для обработки изображений высокого разрешения, поскольку FPGA/GPU могут реализовывать параллелизацию, что сокращает время обработки, когда требуется обработка изображений высокого разрешения/глубины цвета. Это основное преимущество FPGA, так как логика гибкая, но управление и алгоритмы для продвинутой обработки сложнее разработать без предварительного опыта.

 

Это не значит, что МКУ и МПУ не могут использоваться в качестве хост-контроллеров в приложениях машинного зрения. Например, ваш телефон и компьютер не используют их, и они могут выполнять некоторые более простые задачи обработки изображений из видео с низкой частотой кадров и статических изображений. Честно говоря, CPU/SoC в этих устройствах, как правило, имеют гораздо больше вычислительных мощностей, чем высококлассный МПУ. МКУ может использоваться для обработки изображений с низким разрешением, низкой частотой кадров, низкой глубиной цвета или монохромной обработки, и по мере добавления вычислительных мощностей вы можете обрабатывать более детализированные изображения. МПУ являются лучшим вариантом на производстве, так как вам может потребоваться доступ к внешней высокоскоростной памяти, что означает необходимость интерфейса DDR RAM и, возможно, PCIe для некоторых периферийных устройств, чего обычно не найдешь на более медленном МКУ.

Специализированные против обобщенных

Если вы хотите реализовать более продвинутые алгоритмы распознавания изображений и сегментации в вашей системе, то вы можете выбрать SOM, COM или одноплатный компьютер в качестве основного контроллера для вашего приложения машинного зрения. Если процессор имеет достаточно встроенной памяти и внешней RAM, он, как правило, может реализовывать большинство задач захвата и обработки, а также управлять остальной частью вашей системы. Эти архитектуры часто используются для задач сегментации изображений на основе порогов и обнаружения объектов в очень специфических приложениях от видеоданных с низкой до умеренной частотой кадров.

Вызовы в дизайне машинного зрения

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

 

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

  • EMI/EMC: Поскольку системы машинного зрения обычно являются смешанными сигнальными системами, они требуют правильной компоновки для предотвращения помех между цифровыми компонентами и выходными данными с CMOS-сенсора или CCD. CMOS может быть лучшим вариантом, поскольку преобразование данных выполняется на уровне чипа. Чтобы обеспечить точное восстановление изображения в компактных системах с быстрой обработкой, убедитесь, что вы реализуете некоторые лучшие практики для подавления EMI.

  • Целостность питания: Системы зрения и системы HMI могут испытывать проблемы с целостностью питания, если компоновка выполнена неправильно, даже в случае, когда дизайн не работает с компонентами или протоколами высокой скорости. Это может звучать как проблема, которую можно устранить фильтрацией, но это не так. Вместо этого решение может быть таким простым, как обеспечение наличия земляного слоя для маршрутизации всех цифровых сигналов, поступающих на основную плату.

  • Монтаж оптики: Системы зрения требуют оптики для определения объекта и плоскости изображения, а также для формирования четких изображений на датчике изображения, чтобы могла происходить сбор данных. Современные системы машинного зрения требуют стабильного крепления с низким гистерезисом и, возможно, автоматической фокусировки с интегрированным управлением мотором. Это вызов как в механическом, так и в электрическом дизайне, где последний включает в себя потребление энергии в цепи управления мотором и тайминга.

 

Компоненты, которые вам понадобятся

Очевидно, мы не можем показать каждый возможный компонент в этой статье, так как это было бы слишком длинно. Что мы можем сделать, так это предоставить вам хороший список компонентов, которые вы можете использовать для начала сборки различных частей вашей системы. В приведенном ниже списке я включил некоторые примеры компонентов из каждой части новой системы, которые вы можете использовать для начала:

 

  • Микроконтроллеры, такие как STM32 и MSP430, являются отличным вариантом для создания легковесной системы машинного зрения и реализации некоторых простых задач вывода ИИ.

  • Для задач, требующих значительно большей вычислительной мощности, платформа Zynq FPGA является отличным выбором для систем машинного зрения. Xilinx также предлагает большую поддержку разработчикам систем машинного зрения на базе Zynq.

  • CMOS-датчики изображения и CCD-датчики могут быть как монохромными, так и цветными, и они представлены в различных разрешениях. Например, MT9P031I12STC-DR1 от ON Semiconductor является хорошим примером цветного CMOS-датчика для приложений машинного зрения высокого разрешения.

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

 

Я бы рекомендовал использовать GPU или FPGA для более обобщенных задач, таких как распознавание изображений, сегментация и идентификация объектов с отслеживанием в видеоданных без применения специфической предварительной обработки (т.е. из необработанных изображений). Я упоминаю это здесь, потому что нам нужно учитывать, как взаимодействовать с датчиком изображения, и датчик необходимо согласовать с процессором. В FPGA логика захвата и последующая обработка могут быть реализованы параллельно с остальной логикой приложения.

 

Одной из популярных открытых аппаратных платформ, которую можно использовать для разработки системы, является OpenMV. Эти модули камеры включают в себя логику захвата изображений, аппаратные средства для монтажа оптических элементов и печатную плату для обеспечения EMI/EMC и SI/PI. Они также совместимы с микроконтроллерами STM32 и другими платформами. Это хорошая система для разработчиков приложений, которые хотят использовать внешний процессор в качестве основного контроллера для более крупного приложения в системе, но без погружения в разработку и отладку аппаратного обеспечения.

 

Модуль камеры M7 (слева) и Модуль адаптера FLIR Lepton (справа).

 

Интеграция проектов машинного зрения с облаком

Машинное зрение чрезвычайно полезно во всех его формах, и неудивительно, что продвинутые решения на основе MCU, MPU или FPGA должны быть интегрированы с облаком. В зависимости от того, как используется облачный расчет, может быть лучше перенести обработку в центр обработки данных, а не выполнять ее на периферии, так что можно использовать MCU или легковесный MPU. Когда требуется быстрая обработка на местах, задачи по обработке должны выполняться на месте с помощью более мощного контроллера (FPGA, MPU + FPGA или MPU + GPU). Опять же, выбор зависит от объема предварительной обработки, которую вы выполняете на устройстве для очистки и сжатия изображений перед их отправкой в облако для обработки.

 

Для приложений ИИ/ML, связанных с машинным зрением, некоторые компании предлагают SoC и ASIC в качестве дополнения к более медленным процессорам или в качестве дополнительных модулей для SBC. Google Coral является одним из таких вариантов, действуя как выделенный процессор для запуска моделей TensorFlow Lite, связанных с выводом из данных изображений. На рынок выходят и другие варианты от стартапов, нацеленных на вывод ИИ для нескольких видеопотоков, идеально заменяющих GPU более маленькими пакетами.

 

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

 

 

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

Оставайтесь в курсе наших последних статей, подписавшись на нашу рассылку.

Связанные ресурсы

Вернуться на главную
Thank you, you are now subscribed to updates.