Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Интернет вещей

Программное обеспечение с открытым исходным кодом удовлетворяет широкие потребности разработчиков робототехнического зрения


Эта статья является частью специального проекта AspenCore по роботам с визуальным управлением.

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

Ни одна статья о программном обеспечении для машинного зрения не может не выделить Библиотеку компьютерного зрения с открытым исходным кодом (OpenCV) [источник]. Среди доступных пакетов программного обеспечения с открытым исходным кодом OpenCV, пожалуй, является наиболее широко используемым и функционально богатым. Распространение OpenCV, реализующее более 2500 алгоритмов, удовлетворяет требования к обработке изображений с помощью ряда модулей, которые включают, среди прочего, следующие:

Написанный на C ++, OpenCV доступен с интерфейсами для C ++, Python, Java и Matlab и поддерживает Windows, Linux, Android и Mac OS. Наряду с поддержкой наборов инструкций с одной инструкцией и несколькими данными (SIMD), OpenCV обеспечивает ускорение графического процессора на основе CUDA для многих функций через модуль графического процессора и ускорение OpenCL через модуль ocl. Недавно выпущенный OpenCV 4.0 содержит ряд улучшений производительности и возможностей, включая реализацию популярного алгоритма Kinect Fusion.

Для своей функциональности OpenCV может потребовать кривой обучения, превышающей терпение разработчиков, стремящихся быстро продвигаться с помощью видения роботов. Для этих разработчиков ответом может быть SimpleCV [источник] на основе Python. SimpleCV, построенный на OpenCV, обеспечивает функциональность, требуемую продвинутыми разработчиками роботизированного зрения, но предоставляет доступную структуру, которая помогает менее опытным разработчикам исследовать базовые функции машинного зрения с помощью простых вызовов функций Python. Например, разработчики могут быстро реализовать часто используемые функции, такие как определение порога изображения, используя простой встроенный метод в классе SimpleCV Image (img.binarize () в листинге ниже) и, наконец, отображать результаты, показанные на рисунке 1.

 from SimpleCV import Image, Color, Display # Создайте функцию, которая выполняет половину и половину image.def halfsies (left, right):result =left # обрезать правое изображение, чтобы оно было только правой стороной. crop =right.crop (right.width / 2.0,0, right.width / 2.0, right.height) # теперь вставьте кадрирование на левое изображение. result =result.blit (crop, (left.width / 2,0)) # вернуть результаты. return result # Загрузить изображение из imgur.img =Image ('http://i.imgur.com/lfAeZ4n.png') # преобразовать изображение в двоичную форму с использованием порогового значения 90 # и инвертировать результаты. output =img.binarize ( 90) .invert () # создать параллельное изображение image.result =halfsies (img, output) # показать получившееся изображение.result.show () # сохранить результаты в файл .result.save ('juniperbinary.png' ) 


Рис. 1. Перечисленные выше результаты кода Python (Источник:SimpleCV)

Помимо основных функций обработки изображений, OpenCV и SimpleCV реализуют ряд высокоуровневых алгоритмов обработки изображений, которые необходимы роботизированным системам для работы с объектами или безопасной работы в своей физической среде. Одной из фундаментальных структур данных, используемых во многих из этих вычислений, является облако точек - совокупность многомерных точек данных, представляющих объект (рисунок 2). Облако точек объекта, полученное с камер, используется для фундаментальных роботизированных операций, таких как идентификация объекта, выравнивание и подгонка. Для работы с облаками точек библиотека облаков точек (PCL) [источник] реализует алгоритмы фильтрации, подгонки, извлечения ключевых точек, сегментации и многого другого.


Рис. 2. Набор данных облака точек для базового тора. (Источник:Wikimedia Commons / Kieff).


Интернет вещей

  1. Обновления программного обеспечения в IoT:введение в SOTA
  2. GE запускает компанию IIoT стоимостью 1,2 млрд долларов
  3. Все идет IoT
  4. Там, где старое встречается с IoT, интеграция SaaS
  5. Software AG прогнозирует будущее Интернета вещей
  6. В промышленной сфере надежное программное обеспечение означает безопасность
  7. Tata превозносит преимущества IIoT
  8. Проблемы тестирования программного обеспечения устройств Интернета вещей
  9. 10 признаков того, что ваше программное обеспечение ERP нуждается в улучшении
  10. Использование DevOps для решения проблем встроенного программного обеспечения