+7 (495) 646-88-24
Rus
/Вопросы и ответы/Как написать ПО для камер машинного зрения

Как написать ПО для камер машинного зрения

Еще до начала выбора камеры вам нужно определиться с применяемой аппаратной частью. Многие производители камер специализируются на определенных вариантах архитектуры ПК и ОС, и переход на иную платформу может быть затруднителен. 
 
Более развернутую информацию вы можете прочитать в programmers guide для выбранной серии камер, чтобы его получить- напишите нам на info@cameraiq.ru, мы будем рады помочь вам. 
Напомним, что машинное зрение - это программно-аппаратный комплекс, и изучение машинного зрения дается куда проще, если у вас есть камера машинного зрения, которую можете взять у нас на бесплатное тестирование сроком на один месяц.

Методы обработки изображений

  • Самостоятельное написание обработчика изображений

    • Самостоятельная обработка изображений требует очень высоких знаний программирования и математики, а также знаний работы с аппаратной частью ПК и иногда навыков программирования FPGA

    • Помимо программной части, часто прошивается аппаратная часть камеры для оптимальной работы и защиты от несанкционированного доступа

    • Применяется в создании собственного масштабируемого программного продукта, например ПО для распознавания номеров, автопилота 

  • Использование научного ПО

    • Многие научные системы содержат алгоритмы работы с изображением. Но их работоспособность, оптимальность и возможность применения в производстве - индивидуальное решение

    • Зачастую, данное научное ПО платное

    • Требует средних навыков программирования, однако требуется хорошее знание математики

  • Использование библиотек компьютерного зрения

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

    • Требуется высокий уровень программирования

    • Техническая поддержка оказывается энтузиастами либо это платная услуга

  • Использование профессионального конфигуратора машинного зрения

    • Использование ПО, такого как MVTec Halcon позволяет использовать отлаженные и оптимальные алгоритмы для решения производственных задач

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

    • Техническая поддержка оказывается профессиональными программистами и экспертами машинного зрения

    • Простой переход между ОС и платформами

    • Возможно решить как разовую задачу, так и масштабировать до серийного образцов

 

Также стоит обратить внимание на невозможность параллельной работы различных SDK от разных производителей камер, так как драйверы и фильтры используют один и тот же стандарт GenICam, однако работают они лишь со своим SDK. Отладку ПО рекомендуется производить на очищенной ОС, без использования виртуальных машин.
 

Процесс работы с камерами машинного зрения по протоколу GenICam
 
В SDK разный производителей по-разному названы функции для работы с камерами. Не все функции камеры одного производителя будут доступны в SDK другого производителя.
 

Процесс и функции обработки изображения в SDK Teledyne Dalsa
 

Программирование на Windows

Большинство производителей имеют SDK под Windows, рассчитанный на работу в среде программирования Microsoft Visual Studio. Примеры в SDK зачастую написаны в Visual Studio на языках C# и C++
 
Рекомендации:
  • ОС Windows не старше 7,  с установленными обновлениями
  • Язык программирования: C++, C, C#, Python, VB NET
  • Компилятор: Visual Studio (C++, C, C#), Embarcadero C++ Builder
  • Важно! Примеры в SDK написаны на C++ и C#
 

Программирование на Linux

Будьте готовы к тому, что не все производители готовы оказывать поддержку в работе с Linux. Рекомендую уточнить это перед приобретением камер под проект на Linux.
 
Рекомендации:
  • Язык программирования: C++, Python
  • ОС: Ubuntu® (16.04 и моложе) Fedora, Debian, openSUSE
  • Компилятор: GCC
  • Важно! Примеры в SDK написаны на C++

 

Программирование под ARM

Мощность компактных однопалатников уже позволяет собирать недорогие, но эффективные решения для автоматизации техпроцессов. Особенно удобно работать с USB 3.0 камерами, так как драйвер под них идет вместе с SDK, и не возникает проблем с настройкой интерфейсов.

Рекомендации:

  • Язык программирования: C++
  • Компилятор: GCC
  • Важно! Совместимая с SDK платформа

 
Важно! Перед выбором ARM платформы, убедитесь что она поддерживается производителем.
 
Например: производитель Baumer гарантирует работоспособность GAPI SDK под Linux ARM для следующих платформ:
  • NVIDIA® Jetson TK1 Linux® for Tegra® С ОС Ubuntu® 14.04
  • Raspberry Pi® 3 & Pi 4 С ОС Raspbian
  • CompuLab CM-FX6 (SBC-FX6) С ОС Debian®
  • ODROID-XU4 С ОС Ubuntu® 15.04
 
Камеры от Teledyne Dalsa работают на платформах:
  • x86 : Intel/AMD 32-bit and 64-bit CPUs
  • ARMv8 Hard Float: 64-bit ARM v8 platform
  • ARMv7 Hard Float: 32-bit ARM v7 with hardware floating point platform
  • ARM Soft Float: 32-bit ARM for software emulated floating point platform
 
Программирование под ARM не обязательно осуществлять на одноплатном ПК, достаточно перенести код, написанный c помощью SDK под Linux код и скомпилировать его встроенными средствами ОС на ARM платформе (зачастую, в ОС присутствует GCC компилятор для языков C/C++).
 

Программирование под MIPS

Под данную платформу, на которой и был разработан российский процессор Байкал, пока существует лишь open-source библиотека Aravis (https://github.com/AravisProject/aravis). Она работает с большинством GenICam камер. Проверена на работе с GigE камерами производства Baumer.

 

© 2013 -2020 ООО «Камера Ай-Кью»
Отправить заявку
Нажимая кнопку "Отправить", я даю согласие на обработку моих персональных данных в соответствии с условиями Пользовательского Соглашения