Repbase
CubOS
CubIO.Cloud
CubIO
CubVISION
Контакты
Главная
Содержание
Аннотация

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

Эксплуатация комплекса должна производиться персоналом, имеющим навыки работы с компьютерным оборудованием и программным обеспечением. Характер изложения данного документа предполагает, что персонал, осуществляющий эксплуатацию, знаком с одной из следующих операционных систем: Microsoft Windows 7, Microsoft Windows 10, Debian linux 8 или выше, macOS X 10.10 и выше. Также предполагается, что персонал владеет базовыми навыками работы в операционной системе, а также знаком с терминологией и определениями ЕСКД ГОСТ 26.005-82 «Телемеханика. Термины и определения».

Термины
  1. ПО «CubVISION», Комплекс, CubVISION, ПО - аппаратно программный комплекс СubVISION
  2. Камера - любое устройство для регистрации статических изображений
  3. CubIO - аппаратно программный комплекс низкоуровневого управления электроникой. Подробнее прочитать можно по ссылке
  4. Управляющий компьютер - компьютер, обеспечивающий обработку и хранение информации, полученной от камеры
  5. Учетная система - ERP система на базе 1С или Sape или любой другой системы для контроля и учета ресурсов предприятия
  6. PPE - Количество пикселей на 1 значимый элемент штрих кода (pixels per element)
Сфера применения

Программный комплекс «CubVISION» (далее ПК «CubVISION» или Комплекс, или ПО) - это современный инструмент захвата, распознавания и визуализации изображений, считывания и записи распознанных данных для промышленных, торговых предприятий и складов.

ПО «CubVISION» применяется для:

Программный комплекс CubVISION создан на языке JAVA и является мультиплатформенным программным обеспечением без привязки к операционной системе или архитектуре. Программное обеспечение использует несколько параллельных потоков, что позволяет многократно ускорить работу на многопроцессорных и многоядерных процессорах.

Благодаря детальной оптимизации в некоторых тестах CubVISION превосходит в производительности аналоги, такие как Cognex Vision Pro, в распознавании геометрических размеров и распознавании штрих кодов.

Примеры замеров геометрических размеров

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

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

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

Также ПО CubVISION позволяет быстро проверить и другие геометрические размеры объектов, как диаметр, периметр, геометрические размеры, площадь и прочее. На картинке выше видно, как у верхнего левого отверстия периметр значительно отличается. Расчет диаметра через периметр даст наилучший результат, так как погрешность расчета диаметра через прямой замер имеет прямую зависимость, а погрешность расчета через периметр - обратно квадратичную.

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

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

Съемка в инфракрасном диапазоне

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

В зависимости от жидкости и материалов, они могут иметь разную прозрачность в ИК диапазоне. Представлено 2 примера изображений в видимом свете и в инфракрасном диапазоне.

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

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

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

Распознавание штрих-кодов

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

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

Большие объемы распознавания DataMatrix

В реальной работе при достаточных мощностях управляющего компьютера (20 ядер 1 процессор Intel Core i9) скорость распознавания 150 изображений кодов DataMatrix занимает около 60 мс при 100% распознавании, что значительно выше скорости передачи применяемых камер 20Mpx промышленных камер с протоколами GigE Vision, с PPE около 2.4. Тестирование проводилось на упаковке и чернилах сертифицированной для выпуска фармацевтической продукции при послойной агрегации.

Сравнение производительности на разных процессорах

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

NameOSCPUMulticore (ms)Single core (ms)
1DesktopWindows 7 64bitIntel Core i5-7400 @ 3.00GHz217.19559.82
2Laptop Macbook Pro 2017MacOS X 10.14.6Intel Core i5-7360U @2.30Ghz267.62542.26
3Smartphone Xiaomi MI 10T ProDebian over Android 11ARM Qualcomm Snapdragon 865 @ 2.84Ghz391.46846.16
4Laptop HP ProbookLinux Debian 9 64bitIntel Core i5-3230M @ 2.60GHz395.11732.41
5Laptop Macbook Air mid2012MacOS X 10.14.6Intel Core i5-3317U @1.80Ghz648.611373.61
6Raspberry PI 4 B+RaspbianARM Cortex-A72 (ARM v8) 64bit @ 1.50Ghz891.741943.30
7Smartphone Xiaomi Readmi Note 7Debian over Android 10ARM Qualcomm Snapdragon 660 @ 2.20Ghz1258.592008.17
8Laptop Dell Inspirion 3521Windows 7 32bitIntel Core i3-3217U @1.80GHz1829.293919.17
9Raspberry PI 3 B+RaspbianARM Cortex-A53 64bit @ 1.20Ghz2053.214671.29
10Tablet Chuwi13Windows 10 64bitIntel Atom x5-Z8300 @ 1.44GHz3031.108101.56
11Tablet 4Good T800iWindows 10 32bitIntel Atom Z3735G @ 1.33MHz4020.387873.10
12Tablet Momo7wWindows 10 32bitIntel Atom Z3735G @ 1.33GHz4159.3310232.33
13 Laptop Samsung N2100 Windows 7 32bit Intel Atom N2100 @ 1.66GHz 10576.12 13366.33
Поиск штрих кодов

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

Штрих коды плохого качества
Штрих коды плохого качества

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

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

Большинство программных комплексов, в том числе алгоритм известной компании Cognex (для тестирования применялось ПО Cognex Vision PRO и мобильное приложение Cognex Barcode Scanner для Android), не способны распознать изображения с таким низким качеством изображения. При тестировании на Программном Комплексе CubVISION вероятность считывание достигало 100%, а с определенной долей вероятностью считывание происходило и на PPE до 1.15 пикселей/ед.

Для тестирования своего программного обеспечения Вы можете скачать архив с подготовленным картинками разного качество по ссылке bad_quality_datamatrix.zip или же просто попробовать считать с экрана штрих код, изображенный выше.

Зависимость качества изображения от времени распознавания кода

Явно прослеживается зависимость скорости распознавания кода от качества исходного изображения. Алгоритм ПК CubVISION построен таким образом, что если код не был распознан более простыми и быстрыми алгоритмами, то последовательно к нему применяются более сложные алгоритмы распознавания, занимающие большее время. График зависимости распознавания 4х кодов от их PPE:

Для большинства задач оптимальным будет PPE 2.8 и выше. Таким образом вы обеспечите себе 100% считывание кодов за наименьшее время. При достаточно больших объектах возможно понизить PPE до 2.5 и даже ниже, но в этом случае сильно возрастает требование к освещенности и качеству печати самих штрих-кодов.

Коды покрытые пленкой
Коды покрытые пленкой

Иногда следует поднять PPE до 5 и выше. Например, для чтения кодов через пленку. В данном случае не получится никак побороть блики и искажения от пленки в видимом диапазоне из-за изменения поляризации пленкой. Лучший способ - поднять PPE и применить программные фильтры для улучшения чтения кодов. В этом случае вероятность распознавания меньше зависит от контрастности изображения и внешнего освещения. Подробнее о борьбе с бликами Вы можете прочитать в разделе Борьба с бликами.

Верификация кода

В Программном Комплексе CubVISION есть модуль верификации и проверки кода DataMatrix и QRCode штрих кодов. Благодаря модулю верификации Вы можете оценить качество печати кодов и получите уведомление, когда качество кодов упадет. Оценка идет по следующим критериям:

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

Борьба с бликами

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

Расположение камеры под углом
Расположение камеры под углом

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

Использование поляризационных фильтров
Использование поляризационных фильтров

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

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

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

Использование полимерных поляризационных пленок

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

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

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

Также возможно обработать и убрать блики при помощи программной обработки. Это возможно сделать в случае, если на вашей системе распознавания изображений установлена система управление подсветкой (подробнее можно прочитать в разделе Подключение внешнего оборудования) и имеется несколько источников света, пересекающихся под углом в 90 градусов.

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

Сделав 2 кадра попеременно с противоположными включенными лампами, мы получим 2 кадра с разным расположением бликов. Далее эти блики можно легко убрать с помощью программной обработки, например, при помощи утилиты для вычисления бликов и шума изображений Flash and noise remover Bmp для изображений в формате BMP.

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

Фокусировка, настройки диафрагмы, настройка положения камеры

Большинство промышленных камер не имеют автоматическую фокусировку или функции зума на объективе по нескольким причинам:

Стоит учесть, что некоторые объективы сконструированы таким образом, что диафрагма выше 8 единиц сильно ухудшает качество изображения.

Фокусировка камеры на объектах разной высоты

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

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

Подключение внешнего оборудования

Для подключения внешнего оборудования к программному комплексу CubVISION необходимо использовать дополнительную плату, основанную на программной части CubIO. Пример макетного выполнения платы подключения внешнего оборудования: Данное устройство подключается к компьютеру через USB (с эмуляцией Serial-порта) или через интернет через встроенный WiFi.

Выходы и входы:

Интеграция с учетными системами

Программный комплекс CubVISION позволяет настроить обмен данных с внешними системами учета по следующим протоколам и форматам:

  1. универсальный формат JSON с обменом через HTTP(S) или файловую систему;
  2. CSV с обменом через HTTP(S) или файловую систему (в том числе и интеграция с 1С);
  3. прямое подключение к базе данных;
  4. подключение напрямую к программе для управления через socket API;

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

Захват изображения

Захват изображения происходит из одного преднастроенного источника, совместимого с ПК «CubVISION».  Совместимые источники изображений:

  1. Промышленные камеры, работающие через протокол GigE Vision, через утилиту захвата изображения GigE Simple Grabber for Unix или GigE Simple Grabber for Windows
  2. Файл изображения с жесткого диска компьютера или смонтированной директории с внешнего источника, в т.ч. с карты памяти камеры. Поддерживаются форматы изображения RAW, BMP, GIF, JPEG, PNG;
  3. Изображение, получаемое через протокол HTTP(S), с загрузкой из локальной сети или через интернет. В этом случае источником может служить как IP камера, поддерживающая протокол HTTP(S), так и другой компьютер с установленным на нем web сервером;
  4. USB камеры, поддерживающие работу с драйвером v4l (большинство USB камер, в том числе и производственные камеры ELP)
  5. Камеры с аналоговым сигналом (в том числе камеры видеонаблюдения) при помощи платы оцифровки изображений
  6. Другие источники могут быть добавлены в Программный Комплекс индивидуально

Минимальные системные требования

  1. Процессор 32-x или 64 битный IBM совместимый (i386, amd64 в т.ч. компьютеры, ноутбуки) или ARM процессор (Cortex-A7 или выше с) с тактовой частотой 700 МГц или выше.
  2. Операционная система Microsoft Windows 7, Microsoft Windows 10, macOS X 10.10 и выше, Debian linux 8 и выше или совместимые операционные системы.
  3. Оперативная память: 128 Мб и больше.
  4. Жесткий диск: 500 Мб и больше.
  5. Монитор: при запуске Комплекса в формате взаимодействия с пользователем, необходим цветной монитор с разрешением 800x600 и более 256 цветов. Возможен запуск для автоматизированного управления производственной линии без использования монитора.
  6. Устройства ввода: при запуске Комплекса в формате взаимодействия с пользователем, необходимы клавиатура и мышь или монитор с сенсорным управлением. Возможен запуск для автоматизированного управления производственной линии без использования устройств ввода.
  7. Для работы с подпрограммой послойной агрегации необходима сетевая карта (проводная или беспроводная) для связи с учетной системы. Для автономной работы программы верификации может использоваться внешнее оборудования для сигналов производственному оборудованию без подключения к сети.
  8. Камера с совместимым устройством захвата изображения:
    • Промышленные камеры, поддерживающие протокол GigE Vision
    • USB камера с совместимым драйвером v4l (большинство USB камер)
    • IP-камера с передачей изображения через протокол HTTP(S)
    • Аналоговые камеры с помощью платы захвата USB DVR, в том числе и камеры видеонаблюдения
    • Камера или устройство, способное передавать изображение через файловую систему или смонтированный каталог
    • Любая другая камера или устройство, имеющее открытый протокол с возможностью захвата изображения (требуется доработка Комплекса «CubVISION» под специфику оборудования)