Статьи

Могут ли камеры технического зрения верифицировать 2D код?

Самой необходимой для Честного ЗНАКА функцией технического зрения может быть верификация штрих кодов. Но заменят ли камеры верификатор?

В предыдущей статье мы поговорили о различиях между ручным сканером и камерами машинного зрения. Разобрались в том, что техническое зрение может решать совершенно разные прикладные задачи, в зависимости от того, какого рода программное обеспечение используется для обработки изображений, полученных с камеры. Как пример – программа-декодер 2D кода, которая ищет в изображении код и «считывает» его.

С точки зрения применений «Честного ЗНАКА» одной из абсолютно необходимых функций является проверка качества напечатанного кода и его «грейдирование» в соответствии с требованиями ГОСТ - верификация. Можно ли камерам технического зрения доверить эту задачу? Ведь в отличие от стационарного верификатора, предназначенного для выборочной проверки отдельных кодов, камера машинного зрения может считывать коды в потоке, на скорости. Значит, может заодно и верифицировать их по ГОСТу прямо во время печати или нанесения? Или все-таки нет?

Давайте разберемся.

Для начала заглянем в ГОСТ 15415, в соответствии с которым оценивается качество 2D кода. В документе четко указаны критерии оценки, приведена принципиальная схема устройства, обязательным является факт его калибровки на уровни отражений от черных и белых участков «рисунка» кода. Для точной оценки качества кода обязательно должно быть четко определенное и выверенное расстояние между кодом и матрицей камеры, кроме того, код во время исследования должен всегда располагаться строго параллельно матрице. Понятно, что в условиях монтажа камеры на производстве или конвейерной линии, по которой двигаются упаковки с продукцией, добиться соблюдения всех этих требований, скажем так, весьма затруднительно.

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

Поясним ситуацию на примерах.

Код - лучше, чем его "видит" камера

Одно из требований к напечатанному коду GS1 DataMatrix – он должен быть строго квадратной формы, без геометрических искажений. Напоминаем, что процесс верификации подразумевает первоначальный «захват» изображения, весь анализ кода на его качество - это работа алгоритмов по полученному изображению. Во время проверки кода с помощью специализированного верификатора, упаковка с кодом прижимается к стеклу сканирования, так, чтобы плоскость матрицы верификатора всегда была бы параллельна плоскости, на которой напечатан 2D код. Таким образом получается, что геометрических искажений при проекции кода на матрицу не возникает: устройство «увидит» код таким, как он есть.

А что в случае камеры, размещенной над конвейером? Когда мы размещаем камеру произвольно, то нет никакой гарантии в том, что она установлена параллельно плоскости конвейера. Например, для достижения наилучшего считывания устройство может находится под углом (с целью убрать блики). Изображение 2D кода, сфотографированного камерой под углом, имеет, соответственно, искажённую геометрию. Получается, что для анализа в данном случае код подается не такой, какой он есть на самом деле, а уже искаженный…. Далее – алгоритм верификации находит искажение и в худшем случае бракует код... А если и не бракует, то грейд такого кода все равно будет ниже, чем он есть на самом деле.

А если используется широкоугольный объектив?

Другой пример – на камерах машинного зрения может устанавливаться разная оптика, в том числе широкоугольные объективы. Вспомните фотографии, сделанные с помощью объектива «рыбий глаз»: в кадр, попадает больше объектов, но изображение сильно искажается, растягивается по краям: чем шире угол зрения объектива, тем больше у него искажений. И если идеально напечатанный штрих код фотографируется такой линзой, и, особенно, если код на этой фотографии попадает ближе к краю изображения, то у нас получается не красивый квадрат, а бочка. Дальше он попадает в декодер и декодер снова говорит: «а у вас код кривой». Но код – то и тут исходно нормальный…

Или не хватает освещенности?

Третий пример. 2D код для получения высокого грейда должен не только не иметь искажений, но и быть контрастным, четко выраженными, без смаза. Что необходимо для того, чтобы полученное изображение было контрастным и четким? Прежде всего - хорошее освещение и правильно выбранная выдержка, при которой делается снимок. Понятно, что в условиях производства не всегда возможно соблюсти эти условия: захват изображений может осуществляться при недостаточном освещении, на более длинных выдержках.  С увеличением скорости конвейера с высокой вероятностью есть шанс получить смазанное изображение. И опять декодер будет анализировать не фактический код, а его неконтрастное и/или смазанное изображение - и занижать ему оценку.

Расстояние от камеры до измеряемого кода - тоже важно

Четвертый пример, самый неочевидный. Анализ некоторых параметров качества печати по ГОСТ происходит по кружку замера – т.н. апертуре замера (не путать с апертурой - она же диафрагма -самого объектива камеры). Апертура замера выбирается верификатором исходя из требований ГОСТ, в зависимости от размера единичного модуля анализируемого 2D кода. Точно измерить размер модуля можно только точно зная расстояние от кода до матрицы. При установке камеры расстояние до кода анализатору неизвестно, поэтому размер модуля вообще получается «от потолка», а далее выбирается апертура замера… А ведь на одном и том же коде, при использовании разных апертур замера можно получить грейды качества, различающиеся на 1-3 ступени…  

Это далеко не все причины, по которым камера технического зрения не может претендовать на роль полноценного верификатора – есть еще проблемы калибровки, банальной фокусировки объектива на резкость, вероятного попадания пыли на оптику в конце концов… А еще, обработка изображения для целей верификации требует весьма! существенной нагрузки на процессор. На практике это означает, что с увеличением скорости конвейера, декодер может и не успевать обсчитывать изображение для грейдирования и начнет пропускать коды…

Итак, можно ли камере технического зрения доверить верификацию по ГОСТу? Исходя из логики написанного выше – нет. Камеры могут дать грубую, предварительную оценку напечатанному коду, а чтобы оценка была более-менее точной, при установке камеры необходимо соблюдение многих условий.

Из всего вышесказанного делаем вывод: добиться от системы машинного зрения решения задачи верификации штрих кода по ГОСТу очень трудно: если все же пытаться решать эту задачу, преодолевать указанные выше трудности, то потребуются: дорогостоящая высокоскоростная камера с качественной оптикой и подсветкой, профессиональный ее монтаж, мощный внешний ПК с установленными классным и поэтому дорогим программным декодером. Кроме того, построенная система будет нуждаться в периодических калибровках, проверках и поверках оборудования. Будет ли уровень вложений оправдан решаемой задачей? Решать заказчику.

С нашей точки зрения более оправданным решением было бы снижение планки требований. Перед камерами и системами машинного зрения нужно ставить задачу более грубой оценки качества. Да, такую оценку необходимо «соотнести» с данными от стационарного верификатора, но на этом и остановиться.  А детальную проверку качества печати оставить специализированным устройствам – верификаторам 2D кода. Все мы передвигаемся на машинах с неповеренными спидометрами, они показывают приблизительную скорость движения, и хотя поток машин от этого не останавливается, все же иногда приходится узнать, что показания спидометра не совпали с мнением еще одной системы технического зрения - стоящей на вооружении инспектора ГИБДД и априори эталонной…

В следующей статье мы поговорим – какие задачи можно доверять системам технического зрения в рамках маркировки «Честный ЗНАК».