Обработка изображений в микроконтроллере? - PullRequest
2 голосов
/ 24 февраля 2011

У меня есть проект робота, и он должен обрабатывать изображения, поступающие с камеры. Но я ищу микроконтроллер для обработки изображений самостоятельно, без каких-либо компьютеров или ноутбуков. Существует ли такой микроконтроллер? Что это? И как это сделать?

Ответы [ 4 ]

10 голосов
/ 25 февраля 2011

Я думаю, что вы неправильно подходите к своему вопросу. По своей сути микроконтроллер - это всего лишь вычислительный движок с различными периферийными модулями. Функции, которые обычно различаются, предназначены для выполнения приложения, где требуется определенный показатель производительности. Таким образом, в этом отношении любого универсального микроконтроллера будет достаточно, если он соответствует вашим критериям производительности. Я думаю, что вы должны спросить:

  1. Какие вычисления вы хотите выполнить? Все основные поставщики контроллеров предлагают какие-то библиотеки обработки графики для использования на своих чипах. Вы можете скачать их и просмотреть их интерфейсы, чтобы увидеть, предлагают ли они необходимые вам операции. Если вы не можете найти библиотеку, которая делает все, что вам нужно, вам, возможно, придется свернуть собственную графическую библиотеку.
  2. Ограничения памяти? Насколько большими будут изображения? Будете ли вы обрабатывать изображение целиком или обрабатывать фрагменты изображения одновременно? Это будет влиять на количество памяти, которое потребуется вашему контроллеру.
  3. Временные ограничения? Существуют ли определенные сроки, которые необходимо соблюдать, например, роботу, требующему результатов в течение определенного периода времени после получения изображения? Это будет влиять на то, насколько быстрым должен быть ваш процессор, или же для того, чтобы потенциальному контроллеру понадобилось специальное вычислительное оборудование, такое как бочкообразные переключатели или модули с множественным сложением, для ускорения вычислений.
  4. Чем еще нужно управлять? Если контроллеру также необходимо управлять роботом, вам необходимо указать, какие периферийные устройства чип должен будет взаимодействовать с роботом. Если робот управляет другой микросхемой, вам необходимо указать, какая шина связи доступна для взаимодействия с другой микросхемой.

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

3 голосов
/ 26 февраля 2011

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

Часто более эффективным решением для задач обработки изображений является использование ПЛИС, а не микропроцессора, посколькуобеспечивает массовое распараллеливание и конвейерную обработку и реализует алгоритмы непосредственно в логическом оборудовании, а не в последовательных программных инструкциях, так что очень сложная обработка изображений может быть достигнута при относительно низких тактовых частотах, а FPGA с частотой всего 50 МГц может легко превзойти процессор настольного классавыполнение специализированных задач.Некоторые задачи было бы невозможно выполнить каким-либо другим способом.

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

Если вы хотите использовать обычный микропроцессор, вам нужно бросить тактовые циклы на проблему (грубая сила), затем ARM 11, RenesasSH-4 или даже Intel Atom могут подойти.Для задач более низкого уровня может подойти ARM Cortex-M4, который включает в себя процессор DSP и опционально аппаратное обеспечение с плавающей запятой.

2 голосов
/ 25 февраля 2011

CMUcam3 - это комбинация небольшой камеры и микроконтроллера на базе ARM, которая свободно программируется. Я запрограммировал код обработки изображений на нем раньше. Однако одно предостережение заключается в том, что он имеет только 64 КБ ОЗУ, поэтому любая обработка, которую вы хотите выполнить, должна выполняться по каждой строке сканирования.

1 голос
/ 25 февраля 2011

Отслеживание цветных объектов и аналогичная простая обработка изображений могут выполняться с помощью AVRcam . Для более интенсивной обработки я бы использовал OpenCV на некоторых платах ARM Linux.

...