logo_foroffice
FOROFFICE

Технологии штрихкодирования

Статья опубликована: 13.10.2025
Статья обновлена: 13.10.2025
Технологии штрихкодирования

Использование технологии штрихкодирования доказало свою эффективность на протяжении десятилетий и продолжает набирать популярность. Она доказала свою эффективность для:

  • ввода и управления данными;
  • отслеживания активов, запасов и информации;
  • повышения операционной эффективности;
  • снижения количества ошибок, связанных с человеческим фактором и данными.

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

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

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

Принцип работы сканеров штрихкодов

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

Существует два основных типа штрихкодов:

  • одномерные штрихкоды состоят из вертикальных черных линий на полностью белом фоне. Линии имеют различную ширину и определенные промежутки между ними, что создает определенный узор.
  • двумерные штрихкоды состоят из квадратных или прямоугольных узоров двух измерений. Эти узоры, как правило, черные на полностью белом фоне. Как правило, двумерные штрихкоды хранят больше данных и поддерживают более широкий набор символов, чем одномерные штрихкоды.
 
Шаг 1: определение области, где присутствует штрихкод Шаг 2: извлечение закодированной информации из штрихкода

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

Набор символов

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

  • числовой — набор цифровых символов включает только цифры (0–9).
  • буквенно-цифровой — набор буквенно-цифровых символов включает цифры и буквы (0–9 и A–Z).
  • полный ASCII — набор символов ASCII включает любые символы ASCII (от 0 до 127).

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

Локализация и декодирование

Как декодировать одномерные штрихкоды

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

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

Как декодировать двумерные штрихкоды

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

       
QR-код. Отличается наличием четкой квадратной метки в трех из четырех углов. Отсутствующая четвертая цель указывает на правильную ориентацию QR-кода. Штрихкод DataMatrix. Четкий рисунок сплошных линий по левому и нижнему краям, а также чередующимися заполненными и пустыми блоками по верхнему и правому краям. Штрихкод PDF417. Характеризуется начальным и конечным узорами, окружающими несколько вертикальных полос. Штрихкод Aztec. Характеризуется квадратной сеткой с узором «бычий глаз» в центре.

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

Расширенные методы локализации

Существует три метода локализации:

  • связанные блоки
  • статистический
  • сегмент линии

Каждый метод имеет свои уникальные преимущества и недостатки. Хорошо спроектированный сканер штрихкодов должен обеспечивать баланс между скоростью и точностью.

Связанные блоки

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


После того, как все блоки на изображении идентифицированы, сканер ищет известные шаблоны штрихкодов для фильтрации их местоположений. Например, QR-коды характеризуются наличием отдельных квадратных целей в трех из четырех углов. Каждая квадратная цель в углу состоит из двух блоков: сплошного квадрата в середине полого внешнего квадрата. Толщина поперечного сечения внешнего квадрата, зазор и ширина сплошного центрального квадрата имеют соотношение 1:1:3.


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

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


Статистический метод

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

Сегмент линии

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

Как повысить скорость распознавания штрихкодов

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

Например, если вы размещаете штрихкод на печатной медицинской карте, вероятно, стоит избегать размещения штрихкода там, где пользователи обычно скрепляют другие предметы скрепкой. Указание квадранта или области, где штрихкод всегда будет находиться, также может повысить скорость. Например, если вы знаете, что штрихкоды всегда будут располагаться в поле размером 7,5 на 7,5 см в правом верхнем углу страницы размером 21,5 на 28,5 см, с помощью хорошего программного обеспечения можно настроить программу на считывание только этой области. Таким образом, не будет тратиться время на сканирование других частей страницы, где штрихкодов нет.

Зона тишины

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


Направление и поворот штрихкода

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

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

Плавное масштабирование

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


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

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

Количество штрихкодов на страницу

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

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

Многопоточность

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

Повышение скорости распознавания штрихкодов

Разрешение

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

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

Как правило, для одномерных штрихкодов считается, что на каждый наименьший штрих и промежуток в символе требуется не менее трех пикселей. Для двумерных штрихкодов это обычно около пяти пикселей. Иногда, несмотря на правильные настройки разрешения, хорошей плотности пикселей просто не хватает. Это может быть вызвано многими причинами: низкое качество ленты или принтера этикеток и т. д.


Работа с нечитаемыми или поврежденными штрихкодами

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

Дилатация — добавляет пиксели к границам объектов на изображении, а эрозия — удаляет пиксели на границах объектов.


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


Деспекл или автоматическая процедура удаления мелких «соринок» — анализирует среднее значение пикселей в области, чтобы определить, соответствует ли пиксель цвету, которому он должен быть, или это шум, возникший во время получения изображения.


Различные сценарии поврежденных штрихкодов



Выравнивание перекоса штрихкода

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


Расстояние сканирования

Для одномерных штрихкодов расстояние сканирования важно, поскольку оно может повлиять на распознавание штрихкода, поскольку вы можете отсканировать нежелательные пиксели. Например, цифра «1» на странице, будь то часть текста в предложении или часть символа штрихкода, может быть принята за штрих в зависимости от ее расположения и расстояния сканирования. Таким образом, для оптимальной скорости и точности декодирования идеально установить расстояние сканирования в пять пикселей или более. Как правило, чем больше расстояние сканирования (более пяти), тем быстрее будет считывание.

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

Начало работы со штрихкодами

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

Поддержка штрихкодов

Если вы хотите создать приложение для считывания штрихкодов, в конечном итоге вы, вероятно, обратитесь к SDK, чтобы сэкономить время, ресурсы и деньги. Поэтому вам необходимо убедиться, что SDK поддерживает ваши требования к технологии штрихкодирования. Это означает, что он должен поддерживать декодирование одномерных и двухмерных штрихкодов.

Он также должен поддерживать декодирование из популярных источников, таких как изображения, PDF-файлы или камеры.

Поддержка платформ

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

Поддержка языков программирования

Выбранный вами сканер также должен легко интегрироваться в ваше приложение. Поэтому он должен поддерживать ключевые API, такие как C, C++, .NET и JavaScript, а также 32- или 64-битные среды. Он также должен поддерживать широко распространенные языки программирования, такие как C#, VB.NET, Java, C++, VBScript, JavaScript, Python, Perl, Ruby, Swift, Objective-C и т. д.

Выбор сканера штрихкодов

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

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

Здесь перечислены основные характеристики пяти популярных технологий считывания штрихкодов.

ПЗС (прибор с зарядовой связью)

Это распространенное устройство, часто используемое в розничной торговле или офисной автоматизации. ПЗС — это еще один тип ручного устройства, но он гораздо более «агрессивен», чем считыватель. Исторически они считались контактными устройствами и имели ограниченную дальность считывания. В настоящее время это не является основной проблемой. Некоторые ПЗС-считыватели могут считывать штрихкод на расстоянии до 170 мм. Традиционные ПЗС-считыватели имели один существенный недостаток: апертура входного устройства ограничивала возможности считывания. Обычно ПЗС-считыватели имеют головку диаметром 60 или 80 мм. Штрихкоды шире этих размеров считываться не могли. ПЗС-считыватели требуют меньше обучения оператора и обеспечивают более высокую производительность, чем считыватель с лазерной головкой.

Ручной лазерный сканер

Это, пожалуй, самые популярные устройства для считывания штрихкодов. Они гораздо более эффективны, чем ПЗС-считыватели, имеют большую дальность считывания и, как правило, могут считывать штрихкоды низкого качества. Типичный лазерный сканер может считывать на расстоянии от 6 до 18 дюймов, в то время как варианты с большим радиусом действия — на расстоянии до 10 метров. С помощью этой технологии возможно считывание на поверхностях сложной формы. Инстинктивно оператору не потребуется много времени на обучение. Скорость сканирования достигает 200 сканирований в секунду, что обеспечивает высокую производительность.

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

Презентационные/Hands-Free сканеры

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

Сканеры изображений

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

Данные могут быть отправлены на хост в различных форматах. Большинство сканеров штрихкодов поддерживают любой из основных форматов. Это USB, Keyboard Were, RS232 или эмуляция сканера.

  • USB — это технология plug-and-play, позволяющая подключать множество периферийных устройств к одному порту. Она заменяет все виды последовательных и параллельных портов. С совместимыми с USB компьютерами и сканерами вы просто подключаете их и включаете, USB делает процесс автоматическим.
  • Keyboard Were — считыватель или декодер штрихкода подключается между клавиатурой и базовым блоком ПК. Данные передаются на ПК так, как будто они получены с клавиатуры.
  • RS232 — это отраслевой стандартный протокол для передачи данных между двумя периферийными устройствами. Спецификация позволяет передавать данные с одного передающего устройства на другое с относительно низкой скоростью (до 38,4 Кбит/с) и на короткие расстояния (до 15 метров).
  • Эмуляция Wand — данные выводятся в виде аналогового сигнала, требующего декодирования перед отправкой в ​​хост-систему.

Оцените материал:
Рейтинг 4.9 Отзывов 16
Иван Сорокин
Автор статьи:

Об авторе

Специалист отдела продаж полиграфического оборудования и оргтехники.

Другие статьи

26 августа 2025
Статья

И в чем преимущества технологии?

06 октября 2025
Статья

Полезные советы для офиса и дома.

09 июня 2025
Статья

Плюс исключительное качество.

logo