Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Університет “Україна” ЗКС52.35-14Б.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.12 Mб
Скачать

3. Двомірні штриховІ кодИ

3.1 Загальний огляд

Історія двомірних штрих-кодів розвивалася за двома напрямками. Перше - створення матричних кодів - народилося на початку 80-х з появи двох розробок: Vericode американської фірми Veritec і CP Code японської компанії ID Tech. Наприкінці 80-х представили свої матричні коди Data Matrix і Maxi Code компанії International Data Matrix і United Parcel Services (UPS) відповідно. У 1990 р. канадська фірма Array Tech Systems запропонувала оригінальний варіант матричного коду Array Tag, в якому дані представлялися фігурами гексагональної і октагонального форми. Трохи пізніше - в 1991 р. - з'явився матричний код Code One американської фірми Laserlight Systems. Свій QR Code компанія Denso запропонувала в 1994 р., але слідом за нею - в 1995 р. - з'явилася розробка Aztech Code американської фірми Wellch Allyn.

Другий напрямок - створення квазідвухмерних складених штрих-кодів - почалося в 1985 р. з появи Code 49 американської компанії Intermec, в якому можна розташувати до 8 рядів штрихів на тому ж просторі, що займає лінійний код. Наприкінці 80-х вийшло ще кілька розробок: Codablock німецької фірми Identicode System, Code 16K компанії Laserlight Systems і PDF417 (PDF, Portable Data File) фірми Symbol Technologies (США). І нарешті, в 1996 р. американська компанія Zebra представила претендує на універсальність складовою код Ultracode.

З усіх цих кодів особливої ​​уваги заслуговує PDF417. Він використовується в армії США та інших американських державних службах, його наносять на особисті картки персоналу для ідентифікації особи. Іншою важливою особливістю коду PDF417 є вперше вбудований в нього метод корекції помилок Ріда - Соломона. Цей метод спочатку розроблявся математиками Рідом і Соломоном з компанії Hughes Aerospace для космічних зондів типу "Вояджер" і призначався для підвищення стійкості прийому та розпізнавання слабкого і зашумленного радіосигналу. У разі двомірного штрих-коду метод забезпечує читання і декодування зображення, навіть якщо його значна частина зіпсована (наприклад, відірвана або закреслена).

Двомірні коди виявляються незамінними, наприклад, в автономних системах ідентифікації або при необхідності зберігання складних ієрогліфів таких мов, як японський або китайський. Практично всі сучасні технології двомірних кодів, на відміну від одновимірних, містять засоби корекції помилок і, отже, гарантують більшу надійність захисту даних.

Як ми вже говорили, двомірні коди діляться на складові і матричні. Складовою код являє собою послідовність лінійних кодів, розмістити яку на тій же площі, що і одновимірний код, вдається шляхом зменшення довжини штрихів. Закладена в цьому коді простота форм (прямокутники штрихів і пробілів) дозволяє зчитувати його за допомогою відносно нескладних лазерних сканерів або лінійних рідерів. Матричний код являє собою частково заповнену чорним барвником сітку з (в більшості випадків) квадратних модулів - осередків даних. Такий код зчитується вже не лінійним, а спеціальним майданних рідером .

3.2 MaxiCode та PDF417

MaxiCode - це високо вмісниий машино зчитуваний код, створений для грузоперевезень і вантажу приймальних систем. Код зводиться до одного стандартного розміру - дюйм на дюйм при допустимих відхиленнях, відповідних термічної лазерного друку. Він може вмістити в себе 100 знаків інформації, стільки ж, скільки містить 19-дюймовий стандарт Коду 128. Може бути включена будь-яка інформація, що стосується розглянутої продукції, а саме її вага, порядковий номер, тип матеріалу, класифікація, ступінь небезпеки. Якщо цього недостатньо, то може бути використано аж до восьми MaxiCode разом. При цьому при формуванні етикетки на деталі портативної може бути поміщене необхідну кількість інформації. Це в жодному разі грузоперевезень дає можливість мати всю інформацію про деталі, яка в будь-який момент доступна без наявності бази даних.

рис. MaxiCode

PDF417 (англ. Portable Data File - переносимий файл даних) -двовимірний штрих-код, що підтримує кодування до 2710 знаків. Був розроблений і введений в 1991 році фірмою Symbol Technologies. В даний час PDF417 широко застосовується в ідентифікації особистості обліку товарів, при здачі звітності до контролюючих органів та інших областях. Формат PDF417 відкритий для загального використання. Може містити до 90 рядків. Кожен рядок складається з :

  • стартового і стопового шаблону.

  • набору ключових слів (КС) :

  • лівий і правий індикатори - містять інформацію про номер рядка, кількості рядків і стовпців, рівні корекції помилок;

  • до 30 КС даних, що містять як безпосередньо дані, так і інформацію для відновлення пошкоджених КС.

Кожне КС складається з 4 штрихів і 4 прогалин, ширина КС в 17 разів більше мінімального штриха або пробілу - звідси числовий суфікс в позначенні формату PDF417. Підтримує три типи даних: текст (ASCII), байти і числа.

рис. PDF417

Специфікація символіки PDF417 передбачає можливість корекції помилок або, інакше кажучи, можливість повноцінного зчитування частково пошкодженого символу. Пошкодженням ми називаємо будь-яке спотворення символу, викликане неякісного друку, попаданням бруду, перекриттям його іншими об'єктами, а також невдалими умовами сканування (ракурс, освітлення, відстань до сканера) та іншими явищами, через яких зображення штрих-коду, одержуване сканером, буде неякісним. Корекція помилок реалізується за рахунок того, що в символі кодуються не тільки дані користувача, але ще й спеціальна послідовність кодових слів, названих кодовими словами корекції помилок.

У специфікації штрих-коду передбачені 9 рівнів корекції помилок, кожному з яких відповідає своя кількість кодових слів корекції помилок. Якщо s = 0 ... 8 - це рівень корекції помилок, то відповідне йому кількість кодових слів одно 2(s +1). Створення цієї послідовності здійснює конкретний генератор символів PDF417. Рівень корекції помилок задається користувачем. Чим вище рівень корекції, тим більші пошкодження символу допустимі при збереженні можливості зчитування. Наприклад, при s = 0 зчитування стає неможливим при пошкодженні навіть одного знака символу, тоді як рівень s = 4 гарантує зчитування символу, в якому пошкоджено до 15 знаків символу, а в деяких випадках і до 30.

3.3 QR-код та Data Matrix

QR-код (англ. quick response - швидкий відгук) - матричний код (двовимірний штрихкод), розроблений і представлений японською компанією «Denso-Wave» в 1994 році.

При розробці двомірного матричного штрих- коду фірми Denso особливу увагу було приділено швидкості зчитування / декодування. Представники компанії стверджують , що їм вдалося досягти на порядок більш високої швидкодії - 30 етикеток в секунду (кожна ємністю 100 символів) проти максимум 3 етикеток в секунду ( такої ж ємності ) в кодуванні Data Matrix або PDF417 . Секрет полягає в застосуванні комбінованого методу : зчитування відбувається відразу по всіх напрямках , а прискорити процедуру декодування допомагають спеціальні детектори положення ( вкладені квадрати , розташовані в трьох кутах етикетки ) . Завдяки цим піктограм сканер легко і швидко розбирається як в розмірі коду , так і в орієнтації етикетки на площині.

Максимальна кількість символів, які поміщаються в один QR-код:

  • цифри - 7089;

  • цифри і букви (латиниця) - 4296;

  • двійковий код - 2953 байт (отже, близько 2953 літер кирилиці в кодуванні windows-1251 або близько 1450 літер кирилиці в utf-8);

  • ієрогліфи - 1817.

Хоча термін «QR code» є зареєстрованим товарним знаком

«DENSO Corporation», використання кодів не обкладається ніякими ліцензійними відрахуваннями, а самі вони описані і опубліковані в якості стандартів ISO.

QR коди використовують алгоритм Ріда-Соломона (Reed-Solomon) для корекції помилок. Це дозволяє без проблем зчитувати коди, які якимось чином пошкоджені - затерті, перекреслені, і т.п. QR коди мають 4 рівня корекції помилок, які відрізняються кількістю інформації для відновлення і відповідно кількістю корисної інформації, яку можна відновити при пошкодженні коду. Рівні корекції і відповідні відсотки інформації, які можливо відновити, наступні:

L 7%

M 15%

Q 25%

H 30%

Рис. QR-код

Код може бути розділений на декілька кодів меншого розміру, причому інформація, збережена в наборі кодів, відновлюється у вигляді єдиного блоку даних. Один символ може бути розкладений в набір до 16 символів меншого розміру, завдяки чому можна підвищити розмір модулів штрих-коду при розміщенні на обмеженій площі (наприклад, у витягнутій прямокутної області). За рахунок такого підходу підвищується надійність зчитування даних. 

QR-код дозволяє ефективніше (на меншій площі при однаковому розмірі модуля), ніж Aztec і Data Matrix кодувати великі обсяги цифрових даних. Символіка Data Matrix поступається QR коду при кодуванні більше 88 цифр, Aztec поступається QR коду при кодуванні більше 170 цифр. Але по ефективності кодування тексту QR код значно поступається Aztec, а Data Matrix перевершує тільки при обсязі тексту більшому 298 символів. Однак, при кодуванні тексту набраного прописними (заголовними) літерами ефективності QR код і Aztec близькі, а Data Matrix поступається QR код вже при кодуванні 88 букв.

Доступність для широкого кола користувачів зробила QR код дуже поширеною символікою і сприяла появі нових областей застосування штрих-кодів. Основні області застосування QR коду:

  • Реклама та розваги (зберігання web - посилань, контактної

інформації)

  • Логотипи, що містять інформацію про фірму

  • Візитки (код містить детальну інформацію про людину)

  • Туризм (для надання web - посилання або інформації про об'єкт)

  • Електронні квитки (код пред'являється на моніторі мобільного

пристрою)

  • Проїзні квитки (друкується на квитку) маркування продуктів

Data Matrix - був розроблений компанією RVSI / Acuity CiMatrix (зараз частина концерну Siemens AG). Код застосовується для маркування:

- Медична промисловість;  

- Поштові перевезення;  

- Електронна промисловість;  

- Автомобілебудування;  

- Харчова промисловість;  

- Авіакосмічна та оборонна промисловість;  

- Енергетичне машинобудування.

Кожен код DataMatrix містить дві суцільні пересічні лінії у вигляді букви L, для орієнтації пристрою, що зчитує, дві інші кордони коду складаються з перемежованих чорних і білих точок і служать для вказівки розмірів коду зчитує.

Особливості DataMatrix коду :

  • Стандартизація (прийнятий міжнародний стандарт ISO/IES16022 , готується російський стандарт)

  • Велика інформаційна ємність (більше 2000 букв або 3000цифр)

  • Висока швидкість розпізнавання і декодування

  • Низькі вимоги до якості поверхні, на которуюнаносітся мітка

  • Розпізнавання не залежить від фону зображення

  • У символу допускається дві форми - квадрат і прямокутник, це полегшує вписування мітки в наявне на виробі простір

Найбільш поширене застосування DataMatrix - це маркування невеликих об'єктів, наприклад мікросхем, оскільки дозволяє закодувати 20 символів в зображенні розміром 3-3 мм, який може бути лічений без проблем. Загалом-то розмір коду обмежений тільки технологічно, як і у випадку будь-якого іншого 2D коду, але оскільки DataMatrix - це відкритий стандартизований код, багато компаній його використовують для своїх цілей. Цим можна пояснити його широке поширення.

Рис. Data Matrix

Коди DataMatrix складаються з модулів, зістикованих один з одним. Всього можливо закодувати до 3116 символів ASCII. Коди повинні містити парна кількість модулів по вертикалі і горизонталі. Більшість штрих кодів квадратні, але в цілому можна використовувати і прямокутні коди. Всі коди використовують корекцію помилок стандарту ECC200, який, у свою чергу, використовує алгоритм Ріда - Соломона для кодування / декодування даних. Це дозволяє відновити у разі пошкодження коду до 30% корисної інформації.

3.4 Microsoft Tag та Aztec Code

Microsoft Tag - двовимірний кольоровий штрихкод (High Capacity Color Barcode - HCCB), розроблений Microsoft. Був спеціально розроблений для розпізнавання за допомогою фотокамер, вбудованих в мобільні телефони. Призначений для швидкої ідентифікації та отримання на пристрій заздалегідь підготовленої інформації, прив'язаної до коду і зберігається на сервері компанії Microsoft. Просунуті методики обробки зображень дозволяють декодувати навіть розфокусовані знімки, зроблені з використанням об'єктивів з нерухомою, властивих більшості стільникових телефонів.

Відмінності від матричних кодів, переваги та недоліки:

Коди є кольоровими, отже, вимагають застосування кольорових друкуючих і відеоконтрольних пристроїв. Якщо кольорові монітори і камери в даний час складають переважну більшість, чорно-білі принтери все ще досить широко поширені, але створення чорно-білих тегів підтримується штатно.

Використання кольорових трикутників дозволяє зберігати більшу кількість інформації при тому ж фізичному розмірі елементів зображення;

На поточний момент вся інформація зберігається на серверах Microsoft, а отже вимагає підключення до Інтернету мобільного пристрою. Збій мережі, спустошений рахунок або відсутність зв'язку з мобільним оператором унеможливлюють розпізнавання кодів.

Інформацію несуть виключно невеликі кружечки в центрах трикутників і кінці синхронізаційних ліній. На всьому іншому просторі може бути що завгодно, тому можливі MS Tag'і з малюнками.

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

Коди чутливі до геометричних спотворень, тому для їх використання потрібно плоска поверхня. З цієї ж причини на розпізнавання впливає кут, під яким код видно зчитувальний пристрій.

Рис. Microsoft Tag

Сам код зберігає власний номер довжиною 105 двійкових розрядів (13 байт плюс один додатковий біт, для контролю). Програма-зчитувач відправляє цей номер на сервер, який у відповідь відправляє інформацію, прив'язану до тегу.

Незалежно від того, яка саме інформація прив'язується до коду, необхідно ввести його заголовок. Він повинен обов'язково починатися з латинської літери. За бажанням можна додатково ввести невелику замітку (її не слід плутати з довільним текстом при отриманні кодів з прив'язаною інформацією цього типу).

Інформація, прив'язана до тегу, може бути в будь-який момент відредагована його власником скільки завгодно разів. При наступних зчитування тега сервер буде відправляти нову, виправлену інформацію. Можна також видалити інформацію, прив'язану до того чи іншого тегу, з сервера зовсім, при зчитуванні такого тега програма буде видавати помилку « An error occured processing the code » («При обробці коду виникла помилка»). Відновлення працездатності такого тега неможливо.

Aztec Code - двовимірний матричний штрих-код. Розроблено в 1995 році доктором Andrew Longacre, Jr., дослідником з фірми Welch Allyn Inc. (пізніше Hand Held Products Inc., зараз Honeywell Imaging and Mobility). Код був опублікований фірмою AIM International в 1997 році, і хоча на код був отриманий патент, він був переданий в суспільне надбання.

Рис. Aztec Code

Особливості Aztec : 

- Розмір від 15x15 до 151x151 модулів; 

- Чітка структура штрих-коду Aztec дозволяє відмовитися від вільної

зони (чистої області навколо штрихового коду). Він може бути

розташований впритул до тексту, іншим штрих-кодами і т.п.; 

- Сканери VMC зчитують штрих-коди типу Aztec повернені під

довільним кутом, в дзеркальному відображенні або інвертовані за

кольором; 

- Обсяг кодуемої інформації в одному штрих-коді: від 6 довільних

байт (або 12 букв/13 цифр) до 1914 довільних байт (або 3067

букв/3832 цифр). Значення вказані для рекомендованого

стандартом рівня корекції помилок; 

- Система корекції помилок призначена для збереження цілісності

даних при пошкодженні штрих-коду. Рівень корекції помилок

користувач може задавати самостійно, виходячи з передбачуваних

умов застосування штрихового коду. Зокрема, стандарт Aztec

дозволяє створити штрих код, який буде зчитуватися при

пошкодженні до 90 % його площі (за умови збереження ключових

елементів його структури);

- Структурний з'єднання дозволяє розподіляти інформацію на кілька

штрих-кодів (до 26-ти), що може бути корисно при розміщенні

штрих-кодів в умовах обмежень на місце розташування і розміри

(наприклад, іноді зручніше розташувати поруч кілька невеликих

штрих-кодів, ніж один великий). Також структурне з'єднання може

використовуватися для кодування великих обсягів інформації, що

не поміщаються в одиночний штрих-код; 

- Можливість кодувати довільні 8-ми бітові послідовності,

наприклад, літери різних алфавітів і будь-які дані в призначеному

для користувача форматі; Підтримка настроювальних символів,

застосовуваних для настроювання сканера за допомогою штрих-

коду; 

- Підтримка рун - невеликих (11x11 модулів) штрих-кодів, що містять

один байт інформації; 

- Підтримка функціонального коду 1 (FNC1); 

- Формат Aztec відкритий для загального користування.

Декодування Aztec Code виконується послідовно.

Виконувється читання символу Aztec Code.

Штрих-код Aztec Code "знайдено" на відсканованої зображенні

завдяки мішені, центр якої надійно ізольований від країв (подібно

острівця, розташованого в центрі озера, що знаходиться на острові в

центрі великого озера). Як тільки виявлена ​​область мішені, кожне кільце мішені простежується для уточнення місця розташування центру, одночасно знаходяться 4 кута. Напряму і відстані між сусідніми кутами далі використовуються для оцінки напряму і масштабу основних осей символу. Залежно від кута сканування, вони можуть перетинатися під непрямим кутом і мати різний масштаб.

Знову починаючи з центру, місця розташування модулів розраховуються до країв символу шар за шаром з уточненням позицій, зберігаючи їх відцентрувати щодо країв сусідніх позицій. Цей процес названий "нарощуванням кристала" триває до досягнення першого шару даних, розташованого за мішенню. Далі, елементи орієнтації по кутах цього граничного шару дозволяють визначити перебором чотирьох можливих варіантів орієнтації та їх дзеркальних відображень, напрямки основних осей символу (яке "Північ", а де " Схід"). Далі, біти рядка режиму визначені, виконана корекція помилок, і розібрані для визначення розміру декодуємого символу і довжини закодованого повідомлення.

Якщо шарів даних чотири або менше (включаючи всі Компактні символи), зона нарощування кристала продовжується назовні для досягнення меж поля даних. Для великих символів лінійна версія нарощування кристала використовується замість визначення центрів всіх модулів решітки прив'язки до границі символу. Ці позиції потім інтерполюються для визначення розрахункових точок для всіх модулів даних. Кожна процедура дає бітову карту вмісту області даних, яка потім перетвориться з спіралі в послідовність кодових слів.

Якщо будь-які кодові слова, навіть містять одиночні модулі, випадають з відсканованої картинки, або з'являються неправильні кодові слова, що вимагають "підчищення", використовується алгоритм корекції помилок. Якщо процедура корекції помилок завершена успішно, сканер подає сигнал і закодоване повідомлення реконструйовано з послідовності кодових слів.

Поширення штрих кодів Aztec:

В Залізниці штрих-код використовується залізничними операторами Deutsche Bahn, Trenitalia, Nederlandse Spoorwegen і Swiss Federal Railways для квитків проданих онлайн та роздруковані клієнтами. Оператори Heathrow Express і National Express East Coast, використовують штрих-код як електроні квитків, що доставляються на мобільні телефони і показуються з їх екранів, а також для самостійного роздрукування. Штрих-коди скануються ручним сканером при перевірці квитків контролером.

В авіалініях Aztec Code був обраний міжнародною асоціацією повітряного транспорту для електронних квитків (стандарт BCBP IATA) Деякі авіакомпанії (зокрема, російська S7 Airlines) відправляють штрих-коди Aztec code на мобільні телефони пасажирів в якості електронних (або безпаперових) квитків. Авіакомпанія Air New Zealand буде використовувати Aztec code для квитків всередині країни, але впровадження цієї системи ще в процесі.

Польські реєстраційні документи на автомобілі містять в собі штрих-код Aztec code для автоматизованого розпізнавання даних. Проводиться робота зі страховими компаніями для того, щоб вони автоматично заповнювали відповідні поля укладення контракту, розпізнаючи штрих-код з цифрової фотографії документа.