Штриховой код
Штриховой код (англ. barcode) — способ представления данных в визуальной, машиночитаемой форме. Изначально штриховые коды кодировали данные изменением ширины, промежутков и размеров параллельных линий. Такие коды, ныне часто называемые линейными или одномерными (1D), считываются специальными оптическими сканерами, известными как считыватели штрихкодов, которых существует несколько типов.
Позже были разработаны двухмерные (2D) варианты, использующие прямоугольники, точки, шестиугольники и другие узоры; они известны как матричные коды или 2D-штрихкоды, хотя фактически не используют прямые полосы. Обе группы кодов считываются специализированными двухмерными оптическими сканерами различных видов; матричные коды можно также распознать цифровой камерой, подключённой к микрокомпьютеру с программным обеспечением, анализирующим фотографию кода и расшифровывающим его содержимое. Мобильное устройство с встроенной камерой, например смартфон, также может выступать в роли такого считывателя при наличии специализированного программного обеспечения и подходит для обработки и одномерных, и двухмерных кодов.
Штриховой код был изобретён Норманом Джозефом Вудлендом и Бернардом Сильвером, патент на него был зарегистрирован в США в 1952 году[1]. В основе лежала расширенная версия азбуки Морзе[2]. Несмотря на получение изобретения, коммерческий успех пришёл более чем через двадцать лет. В декабре 1962 года журнал Modern Railways (Великобритания) сообщил о внедрении на железных дорогах системы автоматического распознавания штрихкодов на вагонах, движущихся со скоростью до 100 миль в час без ошибок. Одним из первых промышленных внедрений стала система KarTrak ACI, разработанная General Telephone and Electronics (GTE) и внедрённая в 1960-х по инициативе Ассоциации американских железных дорог: на вагоны крепились таблички с разноцветными полосами, кодирующими сведения о владельце, типе и номере вагона[3]. Считывание осуществлялось сканерами, расположенными вдоль рельсов[4]. Этот проект был свернут через десятилетие из-за проблем с надёжностью[3].
Настоящий коммерческий успех штрихкоды получили с автоматизацией кассовых операций в супермаркетах и повсеместным использованием на товарах. В 1973 году Совет по единым товарным кодам выбрал для этого вариант штрихкода, разработанный Джорджем Лаурером[5]. В Великобритании в 1972 году сеть супермаркетов Sainsbury’s первой внедрила сканирование штрихкодов на полках, используя стандарт, разработанный фирмой Plessey[6][7]. В июне 1974 года в супермаркете Marsh (Трой, штат Огайо) впервые был применён сканер UPC для считывания штрихкода на упаковке жевательной резинки Wrigley[8][5]. В 2000-х годах широкое распространение получили QR-коды — разновидность 2D штрихкодов — благодаря растущей популярности смартфонов[9].
Несмотря на развитие альтернатив, универсальность и низкая стоимость штрихкодов долгое время ограничивали распространение более сложных методов автоматической идентификации, в частности радиочастотной идентификации (RFID), появившейся только после 2023 года.
История
В 1948 году студент Дрексельского технологического института Бернард Сильвер услышал, как президент местной сети магазинов Food Fair просил исследовать возможность автоматического считывания информации о товарах на кассе[10]. Вместе с Норманом Вудлендом он начал работу над системами автоматического распознавания. Первая их попытка использовала невидимые чернила, однако те были слишком дорогими и нестойкими[11].
Осознав перспективность идеи, Вудленд покинул университет и продолжил эксперименты во Флориде. Его вдохновила азбука Морзе, благодаря которой первый штрихкод был начерчен буквально на песке пляжа как вытянутые вниз точки и тире[11]. Для чтения использовалась технология оптических звуковых дорожек с использованием фотомножителя. Позже Вудленд предложил печатать узор по кругу (“bull’s eye”), чтобы обеспечивать считывание под произвольным углом.
20 октября 1949 года Вудленд и Сильвер подали патентную заявку; патент был выдан 7 октября 1952 года[1]. В 1951 году Вудленд перешёл в IBM, которая позднее приобрела патент, однако долгое время не занималась разработками по этой теме. Впоследствии патент был куплен компанией Philco, а затем продан RCA[11].
Дэвид Джарретт Коллинз, работая в Pennsylvania Railroad, столкнулся с проблемой автоматической идентификации вагонов. В 1959 году в компании GTE Sylvania он разработал систему KarTrak с использованием отражающих полос разных цветов для кодирования информации о вагонах[11]. Система была внедрена в 1967 году и к 1974 году покрывала 95% подвижного состава Северной Америки, однако серьёзно страдала от загрязнений и была заброшена к концу 1970-х[12].
ИЛу после неудачи на железной дороге система подобного типа использовалась на платных мостах и для отслеживания автомобилей почтовой службы США. Позднее были внедрены более простые версии для складского учёта.
В 1967 году Коллинз основал компанию Computer Identics Corporation[11], где впервые использовал гелий-неоновый лазер вместо ламп для сканирования, а также систему зеркал для распознавания штрихкодов с большего расстояния и при повреждениях этикеток. Первые две индустриальные системы были установлены на заводе General Motors (Флинт, Мичиган) и в распределительном центре General Trading Company.
В 1966 году Национальная ассоциация продуктовых сетей США инициировала разработку единого товарного кода. В 1971 году RCA представила свою систему bull's eye, а вскоре IBM под руководством Вудленда и Лаурера разработала линейный вариант, который был утверждён в 1973 году как национальный стандарт UPC (впоследствии — международный EAN). Система была впервые внедрена 26 июня 1974 года в супермаркете Marsh's, где на кассе впервые просканировали жевательную резинку Wrigley's[13].
Внедрение системы сопровождалось сложностями из-за необходимости перехода к массовой печати штрихкодов производителями, а также значительных первоначальных инвестиций супермаркетов в новое оборудование.
Первыми в Австралии штрихкоды начали использовать супермаркеты сети Sims (1979 год)[14].
Баркодовая система
Баркодовая система — это сеть аппаратных и программных средств, включающая мобильные компьютеры, принтеры, ручные сканеры, инфраструктуру и специализированное программное обеспечение. Такие системы используются для автоматизации сбора данных там, где ручной ввод затратен или слишком медлен. Баркодовые системы не следует путать с системами радиочастотной идентификации (RFID), хотя многие предприятия используют обе технологии как часть комплексного управления ресурсами.
Обычно инфраструктура системы может быть как проводной, так и беспроводной, соединяя мобильные компьютеры, сканеры и принтеры с одной или несколькими базами данных для хранения и анализа собранных данных. ПО системы может быть как простым, обеспечивающим связь оборудования с БД, так и представлять собой полный комплекс (ERP, MRP и др.).
Оборудование для баркод-систем выпускают такие производители, как Datalogic, Intermec, HHP (Hand Held Products), Microscan Systems, Unitech, Metrologic, PSC, PANMOBIL и др., а крупнейшим брендом ручных сканеров и мобильных терминалов является Symbol Technologies (ныне подразделение Motorola).
Многие системы управления предприятием и складом (ERP, MRP и т. д.) поддерживают интеграцию со штрихкодами. Для разработки пользовательских интерфейсов применяют языки программирования C++, C#, Java, Visual Basic.NET и др. Для упрощения разработки выпускаются SDK.
Промышленное внедрение
В 1981 году Министерство обороны США ввело использование кодировки Code 39 для маркировки всех товаров, поставляемых армии. Эта система LOGMARS (Logistics Applications of Automated Marking and Reading Symbols) стала толчком к массовому внедрению штрихкодов в промышленности[15].
Применение
Штрихкоды применяются во всём мире в самых разных сферах. В магазинах коды UPC обычно напечатаны на товарах заранее, ускоряя обработку на кассе, способствуя учёту остатков и препятствуя мошенничеству с подменой ценников (однако злоумышленники могут печатать свои коды самостоятельно)[16]. В издательском деле коды ISBN печатаются на книгах и других изданиях. Карты лояльности используют штрихкоды для идентификации клиентов, позволяя проводить таргетированный маркетинг и собирать индивидуальную статистику покупок.
В медицине и здравоохранении штрихкоды обеспечивают идентификацию пациентов, учёт историй болезни и аллергенов, автоматизацию журналов (SOAP-заметок)[17] и управление медикаментами. Штрихкоды применяют для автоматизированного учёта в промышленной биологии[18], сортировки документов при пакетном сканировании, а также в связке с движущимися весами — для идентификации взвешиваемого объекта.
Штрихкоды используются и для отслеживания объектов: арендованных автомобилей, багажа, радиоактивных отходов, экспресс-почты и посылок. Электронные билеты с индивидуальным штрихкодом обеспечивают вход на стадионы, в кинотеатры, цирки, транспорт и фиксацию въезда/выезда автомобилей. Это снижает случаи мошенничества с билетом. В промышленности штрихкоды облегчают управление заказами и временем выполнения работ.
Отдельные виды штрихкодов служат в качестве маркеров положения (например, в линейных энкодерах) с высокой точностью позиционирования, используются для своеобразной адресации в цифровой бумаге (например, узор Anoto).
Матричные коды могут содержать ссылки на веб-страницы, которые доступны после считывания смартфоном. С 2005 года авиакомпании используют стандартный IATA 2D штрихкод на посадочных талонах[19]; с 2008 года широко применяются электронные билеты с 2D штрихкодами на мобильных телефонах.
Некоторые из применений, характерных для 1970–80-х годов, вышли из употребления: так, исходники программного обеспечения печатались в специальном формате (Softstrip, Paperbyte), а игровая приставка Barcode Battler использовала любые бытовые коды для генерации игровых характеристик.
Штрихкоды находят применение и в искусстве (например, работы Скотта Блейка, Barcode Jesus).
Символики
Отображение сообщения в виде штрихкода называется символикой. Каждый тип символики определяет правила кодирования, обязательные маркеры начала и конца, размеры «тихой зоны» (области до и после кода), а также механизм вычисления контрольной суммы.
Линейные символики различаются по ряду признаков:
- Непрерывные и дискретные
- В дискретных символиках каждый символ кодируется n полосами и n − 1 промежутками. Между символами допускается дополнительный пробел произвольной ширины.
- В непрерывных символиках каждый символ — n полос и n пробелов, без промежутков.
- Две или более ширин («двоичные» и мультимодульные)
- В «двоичных» символиках (binary bar code) полосы и промежутки бывают только двух ширин («широкие» и «узкие»).
- В некоторых системах информация кодируется отсутствием полос, разной высотой и т.п.
- В мультимодульных используется несколько степеней ширины, равных целому числу «модулей».
Ряд символик используют интерливинг (Interleaved 2 of 5) — парное кодирование символов в чёрных полосах и промежутках между ними.
Стековые кодировки — повторение линейного кода по вертикали.
Наиболее распространённые среди двухмерных кодов — матричные (модульные) коды, где компоненты размещаются по сетке. 2D коды бывают и круговыми, возможно скрытое (стеганографическое) внедрение данных.
Линейные кодировки оптимизированы для лазерных сканеров; матричные — для фотосканеров с ПЗС-матрицей. Двумерные (2D) символики требуют оптического сканирования изображением.
Считыватели штрихкодов
Наиболее простые и дешёвые сканеры строятся на подвижном источнике света и одном фотосенсоре. Классификация по подключению:
- RS-232 — требует специального ПО.
- Клавиатурный интерфейс (keyboard wedge) — подключение через PS/2, данные поступают как эмуляция ввода с клавиатуры.
- USB — данные поступают как от клавиатуры, без спецкода.
Современные смартфоны способны распознавать штрихкоды с помощью встроенной камеры и соответствующего ПО (например, Google Lens для Android, «Камера» iOS 11 и новее, mbarcode для Maemo, стандартные приложения для Symbian, BlackBerry и др.)[20]. Тем не менее, качество и скорость работы таких решений уступает специализированным терминалам.
Контроль качества и верификация
Производители и пользователи штрихкодов обычно внедряют систему управления качеством, включая верификацию и валидацию[21]. Верификация определяет возможность и качество считывания согласно стандартам[22]. Проверку кода способен проводить любой участник цепочки поставок. Несоответствие стандартам ведёт к штрафам для производителей (до 10% от выручки)[23].
Верификатор производит несколько тестов: контраст по границе, минимальная отражательная способность для полос/пробелов, символный контраст, модуляция, межсимвольный промежуток, дефекты, декодирование и другие параметры. Для 2D кодов дополнительно проверяются сетка, неравномерность, повреждённость фиксирующих паттернов и др[24]..
Результат определяется по наименьшей оценке из набора тестов, средний балл — итоговая оценка символа по шкале ISO. Обычно минимально допустимая оценка — 2,5 (C)[25]. Проверку следует проводить в постоянных условиях освещения, расстояния и апертуры.
Стандарты верификаторов
Стандарты верификаторов определяются ISO: ISO/IEC 15426-1 (линейные), ISO/IEC 15426-2 (2D); спецификации ISO/IEC 15416 (линейные) и ISO/IEC 15415 (2D). Европейский стандарт EN 1635 заменён ISO/IEC 15416. ANSI X3.182 — прежний стандарт США для UPC. Разрабатывается стандарт ISO/IEC TR 29158 DPM для проверок прямой маркировки[26].
Преимущества
В торговых системах штрихкоды обеспечивают оперативное обновление данных и аналитики:
- Быстрая идентификация быстро/медленно продающихся товаров, управление остатками;
- Анализ отзывчивости мерчендайзинга;
- Точное прогнозирование сезонных колебаний;
- Перепечатка ценников и дисконтных карт, персональные акции;
- Отслеживание индивидуального потребителя (что может вызывать опасения с точки зрения конфиденциальности пользователей).
В логистике штрихкоды позволяют связывать отправления с декларациями, заказами, местом назначения, передавать данные по электронным каналам (EDI). При поступлении в распределительный центр и магазине можно отслеживать источник, содержимое, цену. Штрихкодовые сканеры характеризуются чрезвычайно низкой вероятностью ошибок — ~1 ошибка на 15 000–36 триллионов знаков[27].
Типы штрихкодов
Одномерные коды первого поколения, состоящие из чередующихся полос и промежутков разной ширины, формирующих уникальный узор.
| Пример | Символика | Тип | Тип полос | Применение |
|---|---|---|---|---|
| Codabar | Дискретный | Два | Библиотеки, банковские анализы, авиация | |
| Code 25 – Non-interleaved 2 of 5 | Непрерывный | Два | Промышленность | |
| Interleaved 2 of 5 | Непрерывный | Два | Оптовая торговля, библиотеки, стандарт ISO/IEC 16390 | |
| Code 11 | Дискретный | Два | Телекоммуникации | |
| Farmacode / Code 32 | Дискретный | Два | Фармация (преимущественно Италия) | |
| Code 39 | Дискретный | Два | Международный стандарт ISO/IEC 16388 | |
| Code 93 | Непрерывный | Много | Разные отрасли | |
| Code 128 | Непрерывный | Много | ISO/IEC 15417 | |
| CPC Binary | Дискретный | Два | ||
| Data Logic 2 of 5 | Дискретный | Два | Почта Китая, логистика | |
| EAN 2 | Непрерывный | Много | Журналы (доп.код, только с EAN/UPC) | |
| EAN 5 | Непрерывный | Много | Книги (доп.код, только с EAN/UPC) | |
| EAN-8, EAN-13 | Непрерывный | Много | Ритейл, стандарт ISO/IEC 15420 | |
| || | || | Facing Identification Mark | Дискретный | Два | Почта США |
| GS1-128 | Непрерывный | Много | Ритейл, логистика (приложение Code 128) | |
| GS1 DataBar | Непрерывный | Много | Ритейл, GS1-стандарт | |
| IATA 2 of 5 | Дискретный | Два | Aвиаперевозки | |
| Industrial 2 of 5 | Дискретный | Два | Промышленность (исторически) | |
| ITF-14 | Непрерывный | Два | Коробки, логистика, GS1 | |
| ITF-6 | Непрерывный | Два | Доп.данные к ITF-14/16 | |
| JAN | Непрерывный | Много | Япония (эквивалент EAN-13) | |
| Matrix 2 of 5 | Дискретный | Два | Сортировка, фото, авиабилеты | |
| MSI | Непрерывный | Два | Логистика, склады | |
| Pharmacode | Дискретный | Два | Фармацевтика | |
| PLANET | Непрерывный | Высокий/низкий | Почта США | |
| Plessey | Непрерывный | Два | Каталоги, инвентарь | |
| Telepen | Непрерывный | Два | Библиотеки Великобритании | |
| UPC-A, UPC-E | Непрерывный | Много | Ритейл, ISO/IEC 15420 |
Двумерные коды используют как полосы, так и оба измерения для кодирования информации.
| Пример | Символика | Тип | Форма | Назначение |
|---|---|---|---|---|
| Australia Post | Дискретный | 4 высоты полос | Автоматизация почты Австралии | |
| Codablock | Непрерывный | Много | Медицинская промышленность | |
| Code 49 | Непрерывный | Много | Различные сферы | |
| Code 16K | Плата, медицина, разработан на основе Code 128 | |||
| DX film edge barcode | -- | Высокий/низкий | Цветная фотоплёнка | |
| Intelligent Mail barcode | Дискретный | 4 высоты | Почта США | |
| Japan Post | Дискретный | 4 высоты | Почта Японии | |
| KarTrak ACI | Дискретный | Цветные полосы | Североамериканские железные дороги | |
| PostBar | Дискретный | 4 высоты | Канада, почта | |
| POSTNET | Дискретный | Высокий/низкий | Почта США | |
| RM4SCC / KIX | Дискретный | 4 высоты | Royal Mail/NL Post | |
| RM Mailmark C | Дискретный | 4 высоты | Royal Mail | |
| RM Mailmark L | Дискретный | 4 высоты | Royal Mail | |
| Spotify codes | Дискретный | 23 высоты | Музыка Spotify |
В культуре
Архитектура: здание в Линганге (КНР) архитекторов Gerkan, Marg and Partners оформлено в виде гигантского штрихкода[28], а в Санкт-Петербурге функционирует торговый центр «Штрихкод»[29].
В медиа: в 2011 году Национальный киноцентр Канады запустил проект «Barcode.tv», позволяющий смотреть фильмы о повседневных предметах по сканированию их штрихкодов[30][31].
Использование в поп-культуре: тема штрихкодов отражена на стадионах WWE и в видеоиграх (серия Hitman, Watch Dogs, Judgment и др.).
Оппозиция и критика
Штрихкоды периодически подвергаются критике как инструмент тотального контроля. Часть христианских течений (с 1982 года, книга Мэри Стюарт Релф «The New Money System 666») считают, что коды скрывают число 666, символизирующее «число зверя»[32]. Старообрядцы считают штрихкод «печатью антихриста»[33]. Некоторые СМИ называли штрихкоды «корпоративным заговором против потребителей»[34].
См. также
Примечания
Литература
- Automating Management Information Systems: Barcode Engineering and Implementation. — Г. Бёрк, Thomson Learning, ISBN 0-442-20712-3.
- The Bar Code Book — Р. Палмер, Helmers Publishing, ISBN 0-911261-09-5.
- Руководство по штрихкодированию систем — Г. Бёрк, Van Nostrand Reinhold, ISBN 978-0-442-21430-2.
- Information Technology for Retail: Automatic Identification & Data Capture Systems — Гирдхар Джоши, Oxford University Press, ISBN 0-19-569796-0.
- Punched Cards to Bar Codes — Б. Нельсон, Helmers Publishing, ISBN 0-911261-12-5.
- Revolution at the Checkout Counter — С. Браун, Harvard University Press, ISBN 0-674-76720-9.
- Reading Between The Lines — К. Хармон, Р. Адамс, Helmers Publishing, ISBN 0-911261-00-1.





















