СПОСОБЫ И ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ, ЯВЛЯЕТСЯ ЛИ МЕТКА ПОДЛИННОЙ
METHODS AND A COMPUTING DEVICE FOR DETERMINING WHETHER A MARK IS GENUINE

Перекрестная ссылка на связанные заявки
[0001] Настоящая заявка является частичным продолжением патентной заявки 14/623,925 США, поданной 17 февраля 2015 (теперь патент США № 9,519,942), содержание которой включено в настоящий документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящее раскрытие относится, в общем, к анти-контрафактной технологии и, более конкретно, к способам и вычислительному устройству для определения того, является ли метка подлинной.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0003] Контрафактные продукты, к сожалению, широко распространены и часто трудны для обнаружения. Когда производители контрафакта производят поддельные товары, они обычно копируют маркировку и штрих-коды в дополнение к действительным продуктам. На поверхностном уровне, метки и штрих-коды могут казаться подлинными и даже выдавать действительные данные при сканировании (например, декодироваться до подходящего универсального кода продукта). В то время как существует множество технологий, в настоящее время доступных для противодействия такому копированию, большинство этих решений связаны с введением различных типов кодов, шаблонов, микроволокон, микроточек и других знаков, чтобы помочь воспрепятствовать производству контрафакта. Такие методы требуют от производителей использования дополнительного оборудования и материала и добавляют уровень сложности к процессу производства.
ЧЕРТЕЖИ
[0004] В то время как приложенная формула изобретения излагает признаки представленных методов конкретно, эти методы, вместе с их задачами и преимуществами, можно наилучшим образом понять из следующего подробного описания, взятого совместно с прилагаемыми чертежами, на которых:
[0005] Фиг. 1 является примером системы, в которой могут быть реализованы различные варианты осуществления раскрытия;
[0006] Фиг. 2A, фиг. 2B и фиг. 2C являются блок-схемами последовательностей операций процессов, выполняемых одним или несколькими вычислительными устройствами в соответствии с вариантом осуществления;
[0007] Фиг. 3 является другим примером системы, в которой могут быть реализованы различные варианты осуществления раскрытия;
[0008] Фиг. 4A, фиг. 4B и фиг. 4C являются блок-схемами последовательностей операций процессов, выполняемых одним или несколькими вычислительными устройствами в соответствии с вариантом осуществления;
[0009] Фиг. 5 показывает архитектуру вычислительного устройства в соответствии с вариантом осуществления;
[0010] Фиг. 6 показывает пример метки в соответствии с вариантом осуществления;
[0011] Фиг. 7 показывает пример метки в соответствии с другим вариантом осуществления;
[0012] Фиг. 8 показывает пример того, как вычислительное устройство отбирает набор измерений и выбирает идентификаторы местоположения поднабора метрик в соответствии с вариантом осуществления;
[0013] Фиг. 9 показывает пример того, как вычислительное устройство формирует блоки хэш-идентификаторов из идентификаторов местоположения, соответствующих множеству поднаборов метрик в соответствии с вариантом осуществления;
[0014] Фиг. 10 показывает пример того, как вычислительное устройство сравнивает два блока хэш-идентификаторов и подсчитывает результаты сравнения в варианте осуществления;
[0015] Фиг. 11 показывает пример того, как вычислительное устройство комбинирует множество блоков хэш-идентификаторов в полный хэш-идентификатор в варианте осуществления;
[0016] Фиг. 12 и фиг. 13 иллюстрируют процесс, при котором вычислительное устройство работает, чтобы преобразовать степень корреляции между двумя наборами авто-коррелированных значений для данной характеристики (или данного набора метрик характеристики) в балльную оценку соответствия (совпадения) для этой характеристики или набора метрик в варианте осуществления;
[0017] Фиг. 14, фиг. 15 и фиг. 16 показывают примеры степенного ряда, генерируемого вычислительным устройством в варианте осуществления;
[0018] Фиг. 17 показывает пример того, как вычислительное устройство генерирует электронную сигнатуру для метки в варианте осуществления;
[0019] Фиг. 18 показывает графики двух волновых форм, иллюстрирующих вариативность печати;
[0020] Фиг. 19 показывает вторую волновую форму фиг. 18 перед процессом фильтрации и после процесса фильтрации в соответствии с вариантом осуществления;
[0021] Фиг. 20 показывает усредненные в диапазоне значения как наложенные на волновую форму уменьшенной вариативности фиг. 19 в соответствии с вариантом осуществления;
[0022] Фиг. 21A показывает двоичные значения, назначаемые диапазонам на фиг. 20 в соответствии с вариантом осуществления;
[0023] Фиг. 21B показывает значения с плавающей запятой, назначаемые диапазонам на фиг. 20 в соответствии с вариантом осуществления.
[0024] Фиг. 22 является блок-схемой процесса, выполняемого вычислительным устройством в соответствии с вариантом осуществления;
[0025] Фиг. 23 показывает примерную волновую форму набора ʺвысокоэнергетичныхʺ данных метрик в соответствии с вариантом осуществления;
[0026] Фиг. 24 показывает степенной ряд Фурье ʺвысокоэнергетичныхʺ данных метрик Фиг. 23 в соответствии с вариантом осуществления;
[0027] Фиг. 25 показывает примерную волновую форму набора ʺнизкоэнергетичныхʺ данных метрик в соответствии с вариантом осуществления;
[0028] Фиг. 26 показывает степенной ряд Фурье ʺнизкоэнергетичныхʺ данных метрик фиг. 25 в соответствии с вариантом осуществления;
[0029] Фиг. 27 иллюстрирует примерный результат (F) битового отсчета для хорошо совпадающего хэш-идентификатора кандидата в соответствии с вариантом осуществления; и
[0030] Фиг. 28 изображает и иллюстрирует примерный результат (F) числа битов для плохо совпадающего хэш-идентификатора кандидата в соответствии с вариантом осуществления.
ОПИСАНИЕ
[0031] Настоящее раскрытие в общем направлено на способы и вычислительное устройство для определения того, является ли метка подлинной. В соответствии с различными вариантами осуществления, вычислительное устройство (или его логическая схема) использует непреднамеренно произведенные артефакты в подлинной метке для определения идентифицируемой электронной сигнатуры (ʺсигнатурыʺ) и извлекает определенные признаки сигнатуры, чтобы усилить простоту и скорость, с которой можно находить многочисленные подлинные сигнатуры и сравнивать их с сигнатурами меток-кандидатов.
[0032] Настоящее раскрытие будет часто ссылаться на ʺметкуʺ. Как использовано в настоящем документе, ʺметкаʺ является видимым указателем, который преднамеренно накладывается на физический объект. Метка может быть чем-то, что идентифицирует бренд (например, логотип), чем-то, что переносит информацию, такую как штрих-код (например, двумерный (ʺ2Dʺ) штрих-код, как специфицировано в стандарте ISO/IEC 16022 Международной организации стандартизации (ʺISOʺ) и Международной электротехнической комиссии (ʺIECʺ)), срок годности или информация отслеживания, такая как серийный номер), или оформление. Метка видима на некотором участке электромагнитного спектра, хотя необязательно невооруженным глазом.
[0033] Термин ʺартефактʺ, как использовано в настоящем документе, является признаком метки, который был произведен машиной или процессом, которые создавали метку, но не дизайном или намерением (т.е., нерегулярность). Примеры артефактов включают в себя: (a) отклонение в среднем цвете подобласти (например, элементе 2D штрих-кода) от среднего, полученного из метки (которое может быть средним для соседних элементов одного и того же номинального цвета), (b) смещение в положении подобласти в отношении сетки наилучшего соответствия соседних подобластей, (c) области одного из по меньшей мере двух цветов, отличного от номинального цвета элементов, (d) отклонение от номинальной формы непрерывного края в метке и (e) несовершенства или другие вариации, происходящие в результате печати метки. В некоторых вариантах осуществления, артефакт является воспроизводимым неконтролируемым образом.
[0034] Термины ʺблизко соответствоватьʺ, ʺблизко совпадающийʺ и ʺблизко согласованныйʺ, как использовано в настоящем документе, относятся к результатам определения, осуществленного на основе сравнения между значениями (например, двумя хэш-идентификаторами), которое дает сходство между значениями, которое достигает или превышает предопределенный порог. Например, если предопределенный порог составляет 20 процентов, то можно сказать, что два хэш-идентификатора ʺблизко соответствуютʺ, являются ʺблизко совпадающимиʺ или являются ʺблизко согласованнымиʺ, если 20 процентов или более составных частей (например, 20 процентов или более составных блоков хэш-идентификаторов) одного хэш-идентификатора равны по значению 20 процентам или более составных частей другого хэш-идентификатора.
[0035] Термин ʺидентификатор местоположенияʺ как использовано в настоящем документе, относится к численному значению, которое отображается на местоположение в метке. Отношение отображения между идентификатором местоположения и местоположением в метке может быть один к одному. Примером идентификатора местоположения, имеющего отношение отображения один к одному с местоположением в метке, является индексное число растра.
[0036] Термин ʺлогическая схемаʺ, как использовано в настоящем документе, обозначает схему (тип электронных аппаратных средств), предназначенную для выполнения сложных функций, определенных в терминах математической логики. Примеры логической схемы включают в себя микропроцессор, контроллер или специализированную интегральную схему. Когда настоящее раскрытие относится к вычислительному устройству, выполняющему действие, следует понимать, что это может также означать, что логическая схема, интегрированная в вычислительное устройство, фактически, выполняет действие.
[0037] Термин ʺустройство мобильной связиʺ, как использовано в настоящем документе, является устройством связи, которое способно отправлять и принимать информацию по беспроводной сети, такой как сотовая сеть или сеть WiFi. Примеры устройств мобильной связи включают в себя сотовые телефоны (например, смартфоны), планшеты и портативные сканеры, имеющие функциональность беспроводной связи.
[0038] Настоящее раскрытие, в общем, направлено на способ и вычислительное устройство для определения, является ли метка подлинной. В соответствии с вариантом осуществления, вычислительное устройство принимает захваченное изображение подлинной метки и генерирует электронную сигнатуру для подлинной метки. Чтобы генерировать электронную сигнатуру, вычислительное устройство использует захваченное изображение, чтобы: измерить набор характеристик во множестве местоположений в подлинной метке, что приводит к набору метрик для подлинной метки; и формирует электронную сигнатуру для подлинной метки на основе набора метрик.
[0039] В соответствии с вариантом осуществления, вычислительное устройство (или его логическая схема) измеряет второй набор характеристик во множестве местоположений в подлинной метке, что приводит ко второму набору метрик для подлинной метки. Вычислительное устройство затем формирует электронную сигнатуру для подлинной метки на основе первого и второго набора метрик.
[0040] В варианте осуществления, вычислительное устройство генерирует хэш-идентификатор (ʺHIDʺ) для подлинной метки путем: извлечения волновой формы из набора метрик (в котором волновая форма основана на упорядоченном парном отношении между набором метрик и местоположениями (например, выраженными как индексные числа растра), в которых были получены измерения, которые приводят к этим метрикам). Вычислительное устройство может фильтровать волновую форму (например, путем применения процесса сглаживания, такого как скользящее среднее). Вычислительное устройство извлекает атрибуты волновой формы (или отфильтрованной волновой формы) и формирует HID для подлинной метки из атрибутов волновой формы (или отфильтрованной волновой формы). Вычислительное устройство затем сохраняет HID в базе данных в ассоциации с электронной сигнатурой подлинной метки.
[0041] В соответствии с вариантом осуществления, вычислительное устройство выполняет извлечение и применение операций на втором наборе метрик (что приводит к второй волновой форме) и формирует HID из атрибутов первой и второй волновых форм.
[0042] В варианте осуществления, создаются другие электронные сигнатуры и другие HID, причем каждая электронная сигнатура ассоциирована со своим собственным HID.
[0043] В соответствии с вариантом осуществления, вычислительное устройство принимает, от запрашивающей стороны, захваченное изображение метки-кандидата и запрос, чтобы определить, является ли метка-кандидат подлинной, и генерирует электронную сигнатуру для метки-кандидата одним из способов, описанных выше, для подлинной метки. Вычислительное устройство может также формировать HID одним из способов, описанных выше, для подлинной метки.
[0044] В варианте осуществления, вычислительное устройство определяет, на основе сравнения HID метки-кандидата с HID подлинной метки, совпадает ли близко HID метки-кандидата с HID подлинной метки. Если HID метки-кандидата определен как близко совпадающий с HID подлинной метки, то вычислительное устройство извлекает, из устройства хранения данных, электронную сигнатуру подлинной метки. Вычислительное устройство затем определяет, на основе сравнения электронной сигнатуры метки-кандидата с извлеченной электронной сигнатурой подлинной метки, является ли метка-кандидат подлинной. Если метка-кандидат определяется как подлинная, то вычислительное устройство передает сообщение на запрашивающую сторону, указывая, что метка определена как подлинная.
[0045] В соответствии с различными вариантами осуществления, HID метки-кандидата может близко совпадать с HID множества подлинных меток. Сравнение HID метки-кандидата с HID подлинных меток является, однако, менее вычислительно интенсивным и использует меньше памяти, чем сравнение действительных сигнатур. Таким образом, путем использования HID при начальном прохождении через набор известных сигнатур подлинных меток, вычислительное устройство или логическая схема может значительно сократить число действительных сигнатур, которые требуется сравнивать.
[0046] Возвращаясь к фиг. 1, показан пример системы, в которой могут быть реализованы различные варианты осуществления раскрытия. Процедуры, выполняемые в этой системе, показаны в блок-схемах последовательностей операций на фиг. 2A, фиг. 2B и фиг. 2C. Фиг. 1 описана здесь параллельно с фиг. 2A, фиг. 2B и фиг. 2C.
[0047] Устройство 100 нанесения меток наносит подлинную метку 102 (ʺметку 102ʺ) на легитимный физический объект 104 (ʺобъект 104ʺ) (блок 202 на фиг. 2A). В некоторых вариантах осуществления, объект 104 является продуктом производства, таким как элемент одежды, сумка или модный аксессуар. В других вариантах осуществления, объект 104 является этикеткой, такой как этикетка штрих-кода или упаковка для некоторого другого физического объекта. Метка 102 может быть чем-то, что идентифицирует бренд (например, логотипом), чем-то, что переносит информацию (например, штрихкодом), или оформлением. Возможные варианты осуществления устройства 100 нанесения меток включают в себя печатающее устройство (например, лазерное или термографическое печатающее устройство), травильное устройство, гравировальное устройство, устройство формовки, устройство нанесения маркировок, устройство сшивания и устройство термопечати. Устройство 100 нанесения меток наносит метку 102 путем, например, печати, травления, гравирования, формования, нанесения маркировок, сшивания или термического переноса метки 102 на объект 104. Метка 102 включает в себя один или несколько артефактов. В некоторых вариантах осуществления, метка 102 также включает в себя преднамеренно произведенные анти-контрафактные признаки, такие как микроскопические шаблоны (узоры).
[0048] Первое устройство 106 захвата изображений (например, камера, устройство машинного зрения или сканер) захватывает изображение метки 102 после нанесения (блок 204) метки 102. Обстоятельства, при которых первое устройство 106 захвата изображений захватывает изображение метки 102, являются контролируемыми, так что существует разумная гарантия того, что изображение является, фактически, изображением подлинной метки 102. Например, временной интервал между нанесением устройством 100 нанесения меток метки 102 и получением первым устройством 106 захвата изображений изображения метки 102 может быть малым, и первое устройство 106 захвата изображений может быть физически расположено рядом с устройством 100 нанесения меток на упаковочной линии. Таким образом, когда используется термин ʺподлинная меткаʺ, он относится к метке, которая была нанесена устройством нанесения меток в легитимном источнике (т.е., не скопирована незаконно или тайно).
[0049] Первое устройство 106 захвата изображений передает захваченное изображение на первое вычислительное устройство 108. Возможные варианты осуществления первого вычислительного устройства 108 включают в себя стационарный компьютер, смонтированный в стойке сервер, ноутбук, планшет и мобильный телефон. В некоторых вариантах осуществления, первое устройство 106 захвата изображений интегрировано с первым вычислительным устройством 108, в этом случае первое устройство 106 захвата изображений передает захваченное изображение на логическую схему первого вычислительного устройства 108. Первое вычислительное устройство 108 или логическая схема в нем принимает захваченное изображение и передает захваченное изображение на второе вычислительное устройство 110. Возможные реализации второго вычислительного устройства 110 включают в себя все из этих устройств, перечисленных для первого вычислительного устройства 108.
[0050] Второе вычислительное устройство 110 принимает захваченное изображение и использует захваченное изображение, чтобы измерить различные характеристики метки 102, что приводит к набору метрик, которые включают в себя данные касательно артефактов метки 102 (блок 206). Как будет описано дополнительно, набор метрик может быть одним из нескольких наборов метрик, которые генерирует второе вычислительное устройство 110 о метке 102. Второе вычислительное устройство 110 может выполнять измерения в разных местоположениях на метке 102. Тем самым, второе вычислительное устройство 110 может разделять метку 102 на множество подобластей (например, в соответствии с промышленным стандартом). В варианте осуществления, если метка 102 является 2D штрих-кодом, второе вычислительное устройство 110 выполняет измерения на всех или поднаборе полного числа подобластей (например, всех или поднаборе полного числа элементов) метки 102. Примеры характеристик метки 102, которые может измерять второе вычислительное устройство 110, включают в себя: (a) форму признака, (b) аспектные отношения признака, (c) местоположения признака, (d) размер признака, (e) контраст признака, (f) линейность края, (g) разрывы области, (h) внешние метки, (i) дефекты печати, (j) цвет (например, светлота и/или оттенок), (k) пигментация и (l) вариации контраста. В некоторых вариантах осуществления, второе вычислительное устройство 110 выполняет измерения в одних и тех же местоположениях от метки к метке для каждой характеристики, но в разных местоположениях для разных характеристик. Например, сначала второе вычислительное устройство 110 может измерить среднюю пигментацию на первом наборе местоположений метки и на том же самом первом наборе местоположений для последующих меток, но измерить линейность края на втором наборе местоположений на метке и на последующих метках. Два набора местоположений (для разных характеристик) могут называться ʺразнымиʺ, если существует по меньшей мере одно местоположение, которое не является общим для обоих наборов.
[0051] В варианте осуществления, результаты измерения характеристики вторым вычислительным устройством 110 включают в себя набор метрик. Может существовать один или несколько наборов метрик для каждой из измеренных характеристик. Второе вычислительное устройство 110 анализирует набор метрик и, на основе анализа, генерирует сигнатуру, которая основана на наборе метрик (блок 208). Поскольку набор метрик включает в себя данные касательно артефакта (или множества артефактов) метки 102, сигнатура будет косвенным образом основана на артефакте. Если метка 102 несет данные (как в случае 2D штрих-кода), второе вычислительное устройство 110 может также включать в себя такие данные как часть сигнатуры. В другом случае, в некоторых вариантах осуществления, сигнатура может быть основана как на артефактах метки 102, так и на данных, переносимых меткой 102.
[0052] В варианте осуществления, чтобы сгенерировать сигнатуру, для каждой измеренной характеристики метки 102, второе вычислительное устройство 110 ранжирует метрики, ассоциированные с характеристикой, по величине и использует только те метрики, которые достигают предопределенного порога, как часть сигнатуры. Например, второе вычислительное устройство 110 может воздерживаться от ранжирования тех метрик, которые ниже предопределенного порога. В варианте осуществления, существует разный предопределенный порог для каждой измеряемой характеристики. Один или несколько предопределенных порогов могут быть основаны на пороге шума и на разрешении первого устройства 106 захвата изображений.
[0053] В варианте осуществления, второе вычислительное устройство 110 получает сто точек данных для каждой характеристики и собирает шесть групп измерений: один набор измерений для пигментации, один набор измерений для отклонения от сетки наилучшего соответствия, один набор измерений для внешних маркировок или пустот и три отдельных набора измерений для линейности края.
[0054] В качестве части процесса ранжирования, второе вычислительное устройство 110 может группировать вместе метрики, которые находятся ниже предопределенного порога независимо от их соответственных местоположений (т.е., независимо от их местоположений на метке 102). Также, второе вычислительное устройство 110 может упорядочивать метрики (например, по величине) в каждой категории характеристик как часть процесса ранжирования. Аналогично, второе вычислительное устройство 110 может просто не учитывать метрики, которые находятся ниже предопределенного порога. Также, процесс ранжирования может просто образовывать отделение метрик, которые находятся выше порога, от метрик, которые находятся ниже порога.
[0055] В варианте осуществления, второе вычислительное устройство 110 упорядочивает измеренные характеристики в соответствии с тем, насколько чувствительны характеристики к факторам разрешения изображений. Например, если первое устройство 106 захвата изображений не имеет способности захватывать изображение с высоким разрешением, то может быть сложно для второго вычислительного устройства 110 идентифицировать нелинейности краев. Однако второе вычислительное устройство 110 может не иметь проблем при идентифицировании отклонений в пигментации. Таким образом, второе вычислительное устройство 110 может, на этой основе, приоритизировать пигментацию над нелинейностями края. В соответствии с вариантом осуществления, второе вычислительное устройство 110 упорядочивает измеренные характеристики в обратном порядке зависимости от разрешения следующим образом: пигментация подобласти, смещение положения подобласти, местоположения пустот или внешних маркировок и нелинейности края.
[0056] В соответствии с вариантом осуществления, второе вычислительное устройство 110 взвешивает измеренные характеристики метки 102 на основе одного или более из разрешения первого устройства 106 захвата изображений и разрешения захваченного изображения метки 102. Например, если разрешение первого устройства 106 захвата изображений является низким, то второе вычислительное устройство 110 может придать больший вес средней пигментации различных подобластей метки 102. Если разрешение первого устройства 106 захвата изображений является высоким, то второе вычислительное устройство 110 может придать измерениям нерегулярностей края различных подобластей более высокий вес, чем другим характеристикам.
[0057] Если метка 102 включает в себя информацию исправления ошибок, такую как информация, изложенная в ISO/IEC 16022, то второе вычислительное устройство 110 может использовать информацию исправления ошибок, чтобы взвешивать измеренные характеристики. Например, второе вычислительное устройство 110 может считывать информацию исправления ошибок, использовать информацию исправления ошибок, чтобы определить, какие подобласти метки 102 имеют ошибки, и придавать меньший вес измеренным характеристикам таких подобластей.
[0058] В соответствии с вариантом осуществления, при генерировании сигнатуры, второе вычислительное устройство 110 взвешивает измерения для одной или нескольких характеристик метки 102 на основе устройства 100 нанесения меток. Например, предположим, что устройство 100 нанесения меток является термографическим печатающим устройством. Дополнительно, предположим, что известно, что для этих меток, нанесенных устройством 100 нанесения меток, маловероятно, что проекции края, параллельные направлению движения материала подложки, дадут измерения линейности края величиной, достаточной для достижения минимального порога для характеристики линейности края. Второе вычислительное устройство 110 может, на основе этой известной специфической особенности устройства 100 нанесения меток, придавать меньший вес измерениям характеристики линейности края для метки 102.
[0059] Продолжая с фиг. 1, второе вычислительное устройство 110 использует идентификаторы местоположения, соответствующие поднабору метрик сигнатуры, для получения HID (блок 210). В одном варианте осуществления, второе вычислительное устройство 110 использует индексные числа, соответствующие поднабору метрик наибольшей величины сигнатуры, для получения HID. Как будет описано более подробно ниже, второе вычислительное устройство 110 может, при извлечении HID, использовать индексные числа, соответствующие поднабору каждого набора метрик, как блок в полном HID. Второе вычислительное устройство 110 сохраняет сигнатуру и HID (например, с использованием программы базы данных) в устройстве 112 хранения данных (например, массиве независимых дисковых накопителей с избыточностью) (блок 212) так, что HID ассоциирован с сигнатурой. В некоторых вариантах осуществления, HID может также использоваться для поиска сигнатуры (например, второе вычислительное устройство 110 использует программу базы данных, чтобы установить HID в качестве индексного ключа для сигнатуры). В некоторых вариантах осуществления, устройство 112 хранения данных составлено из множества устройств, которые распределены географически и по времени, как часто бывает в случае с сервисами облачного хранения. В некоторых вариантах осуществления, одно или несколько из измерения характеристик, анализа различных наборов метрик, генерации сигнатуры, получения HID и сохранения сигнатуры и HID выполняются первым вычислительным устройством 108. В других вариантах осуществления, все из этих этапов выполняются первым вычислительным устройством 108, и доступ к устройству 112 хранения данных напрямую осуществляется первым вычислительным устройством 108. В последнем варианте осуществления, второе вычислительное устройство 110 не используется. В других вариантах осуществления, второе вычислительное устройство 110 передает сигнатуру и HID на отдельный сервер базы данных (т.е., другое вычислительное устройство), которое сохраняет сигнатуру и HID в устройстве 112 хранения данных.
[0060] Продолжая с фиг. 1, неверифицированный физический объект 114 (ʺневерифицированный объект 114ʺ), который может или не может быть легитимным физическим объектом 104, требуется проверить, чтобы удостовериться, что он не является контрафактным или иным образом нелегитимным. Возможные варианты осуществления неверифицированного объекта 114 являются теми же самыми, что и варианты осуществления легитимного физического объекта 104. На неверифицированном объекте 114 находится метка-кандидат 116. Возможные варианты осуществления метки-кандидата 116 являются теми же самыми, что и варианты осуществления подлинной метки 102. Второе устройство 118 захвата изображений (например, камера, устройство машинного зрения или сканер) захватывает изображение метки-кандидата 116 (блок 250 на фиг. 2B) и передает изображение на третье вычислительное устройство 120. Как в случае с первым устройством 106 захвата изображений и первым вычислительным устройством 108, второе устройство 118 захвата изображений может быть частью третьего вычислительного устройства 120, и передача захваченного изображения метки-кандидата 116 может быть внутренней (т.е., от второго устройства 118 захвата изображений на логическую схему третьего вычислительного устройства 120). Третье вычислительное устройство 120 (или логическая схема в нем) принимает захваченное изображение и передает захваченное изображение на второе вычислительное устройство 110. Второе вычислительное устройство 110 использует захваченное изображение для измерения различных характеристик метки-кандидата 116, включая те же самые характеристики, что и измеренные вторым вычислительным устройством 110 на подлинной метке 102. Результатом этого измерения является набор метрик для характеристики (блок 252). При последующих измерениях, результат может включать в себя один или несколько наборов метрик для каждой из измеренных характеристик. Второе вычислительное устройство 110 затем генерирует сигнатуру, которая основана на наборе (или наборах) метрик (блок 254), и делает это с использованием того же самого метода, который оно использовало для генерации сигнатуры для подлинной метки 102. Если метка-кандидат 116 является, фактически, подлинной меткой 102 (или генерируется тем же самым процессом, что и подлинная метка 102), то сигнатура, которую создает второе вычислительное устройство 110, будет, подобно сигнатуре, генерируемой из захваченного изображения подлинной метки 102, основана на артефактах подлинной метки 102. Если, с другой стороны, метка-кандидат 116 не является подлинной меткой 102 (например, является контрафактной), то сигнатура, генерируемая этим последним изображением, будет основана на каких-либо других характеристиках, которые предоставляет метка-кандидат 116, - артефактах процесса контрафакта, отсутствии артефактов от устройства 100 нанесения меток и т.д. Второе вычислительное устройство 110 использует идентификаторы местоположения, соответствующие поднабору метрик сигнатуры метки-кандидата 116 (например, индексные числа поднабора метрик наибольшей величины), для получения HID для метки-кандидата 116 (блок 256) (таким же образом, что и изложено выше для блока 210) и сравнивает (например, через запрашивание базы данных) HID метки-кандидата 116 с HID подлинных меток, сохраненных в устройстве 112 хранения данных (блок 258). В качестве результата сравнения, второе вычислительное устройство 110 либо не принимает никакие близко совпадающие результаты (например, никакие результаты, которые проходят предопределенный порог), или принимает один или несколько близко совпадающих HID от устройства 114 хранения данных (блок 260). Если второе вычислительное устройство 110 не принимает никакие близко совпадающие результаты, то второе вычислительное устройство 110 указывает (например, путем передачи сообщения) третьему вычислительному устройству 120, указывая, что метка-кандидат 116 не может быть верифицирована (например, передает сообщение, указывающее, что метка-кандидат 116 не является подлинной) (блок 262). Третье вычислительное устройство 120 принимает сообщение и указывает, на пользовательском интерфейсе, что метка-кандидат 116 не может быть верифицирована (или что метка-кандидат 116 является контрафактной). В некоторых вариантах осуществления, третье вычислительное устройство 118 выполняет одно или несколько из этапов измерения, генерирования и извлечения и передает сигнатуру (или HID, если третье вычислительное устройство 118 извлекает HID) на второе вычислительное устройство 110.
[0061] Если, с другой стороны, второе вычислительное устройство 110 находит один или несколько HID, которые близко совпадают с HID метки-кандидата 116, то второе вычислительное устройство 110 будет отвечать извлечением, из устройства 112 хранения данных, сигнатур, которые ассоциированы с близко совпадающими HID (блок 264). Второе вычислительное устройство 110 затем сравнивает действительную сигнатуру, которую оно сгенерировало для метки-кандидата 116, с извлеченными подлинными сигнатурами (блок 266 на фиг. 2C). Второе вычислительное устройство 110 повторяет этот процесс для каждой сигнатуры, с которой ассоциирован близко совпадающий HID. Если второе вычислительное устройство 110 не может установить близкое совпадение сигнатуры метки-кандидата 116 с любой из извлеченных сигнатур (блок 268), то второе вычислительное устройство 110 указывает (например, путем передачи сообщения) третьему вычислительному устройству 120, указывая, что метка-кандидат 116 не может быть верифицирована (блок 270). Третье вычислительное устройство 120 принимает сообщение и указывает, на пользовательском интерфейсе, что метка-кандидат 116 не может быть верифицирована. Если, с другой стороны, второе вычислительное устройство 110 может установить близкое соответствие сигнатуры метки-кандидата 116 с извлеченной сигнатурой, то второе вычислительное устройство 110 указывает (например, путем передачи сообщения) третьему вычислительному устройству 120, что метка-кандидат 116 является подлинной (блок 272).
[0062] Возвращаясь к фиг. 3, описан пример системы, которая может использоваться в другом варианте осуществления. Процедуры, которые могут выполняться в этой системе, показаны в блок-схемах последовательностей операций на фиг. 4A, фиг. 4B и фиг. 4C. Фиг. 3, фиг. 4A, фиг. 4B и фиг. 4C описаны здесь параллельно.
[0063] В устройстве 300 упаковки расположены принтер 302 этикеток, устройство 304 нанесения меток, упаковочная линия 306, устройство 308 захвата изображений и первое вычислительное устройство 310. Принтер 302 этикеток наносит подлинные метки, включая подлинную метку 312 (ʺметку 312ʺ), на некоторое число этикеток, которые переносятся на ткань 314 этикетки (блок 402 на фиг. 4A). Возможные варианты осуществления подлинной метки включают в себя одномерный (ʺ1Dʺ) штрих-код и 2D штрих-код. Устройство 304 нанесения этикеток наносит этикетки (включая отдельно показанные этикетки 316 и 318 на фиг. 3) на легитимные физические объекты (блок 404), два из которых показаны на фиг. 3 со ссылочными позициями 320 и 322 (ʺпервый объект 320ʺ и ʺвторой объект 322ʺ). Фиг. 3 показывает физические объекты как коробки (например, коробки, содержащие произведенные продукты), но объекты не обязательно должны быть коробками или контейнерами. Возможные варианты осуществления легитимных физических объектов включают в себя варианты осуществления, перечисленные ранее для объекта 104 на фиг. 1.
[0064] Устройство 308 захвата изображений захватывает изображение метки 312 (блок 406) и передает захваченное изображение на первое вычислительное устройство 310. Первое вычислительное устройство 310 принимает захваченное изображение и передает захваченное изображение на второе вычислительное устройство 324 посредством сети 326 связи (ʺсети 326ʺ). Возможные варианты осуществления сети 326 включают в себя локальную сеть, глобальную сеть, общедоступную сеть, частную сеть и Интернет. Сеть 326 может быть проводной, беспроводной или их комбинацией. Второе вычислительное устройство 324 принимает захваченное изображение и выполняет измерения качества на метке 312 с использованием изображения (например, такие, как описано в ISO 15415) (блок 408). Например, второе вычислительное устройство 324 может определить, имеется ли неиспользованное исправление ошибок и фиксированное повреждение шаблона в метке 312. Второе вычислительное устройство 324 затем использует захваченное изображение для измерения характеристик метки 312, что приводит к одному или нескольким наборам метрик, которые включают в себя данные касательно артефактов метки 312 (блок 410). Например, второе вычислительное устройство 324 может измерять (для всех или поднабора подобластей подлинной метки 312): (1) среднюю пигментацию некоторых или всех подобластей подлинной метки 312 (например, всех или некоторых элементов), (2) любое отклонение в положении подобластей от сетки наилучшего соответствия, (3) преобладание случайных меток или пустот и (4) линейность одного или нескольких краев подобласти. Каждый набор метрик соответствует измеренной характеристике, хотя может иметься множество наборов метрик для одной характеристики. Например, для каждой измеряемой подобласти - скажем, сотни подобластей из одной тысячи в целом подобластей метки 312 - может иметься метрика средней пигментации, метрика отклонения от наилучшего соответствия, метрика преобладания случайных меток и три метрики линейности края. Таким образом, результирующий набор метрик будет представлять собой сотню метрик пигментации, сотню отклонений от наилучшего соответствия, сотню метрик для случайных меток или пустот и триста метрик (три набора по сто метрик каждый) линейности края. В варианте осуществления, каждый набор метрик представляет собой список, причем каждый элемент списка включает в себя информацию, идентифицирующую положение в метке 312 (например, индексное число на основе растра), из которой второе вычислительное устройство 324 взяло положенное в основу измерение и значение (например, величину) данных, полученное из самого измерения.
[0065] Второе вычислительное устройство 324 затем анализирует метрики, чтобы идентифицировать те метрики, которые будут использоваться для генерации электронной сигнатуры для метки 312 (блок 412), и генерирует сигнатуру на основе анализа (блок 414). Второе вычислительное устройство 324 идентифицирует поднабор метрик наибольшей величины сигнатуры (блок 416), получает блок HID с использованием идентификаторов местоположения, соответствующих идентифицированному поднабору (блок 418), создает HID на основе блока HID (блок 420 на фиг. 4A) и сохраняет HID в ассоциации с сигнатурой (блок 422) в устройстве 328 хранения данных (возможные реализации которого являются теми же самыми, что и реализации для устройства 112 хранения данных на фиг. 1). В некоторых вариантах осуществления, второе вычислительное устройство 324 повторяет блоки 416 и 418 для каждого набора метрик сигнатуры (например, один раз для набора измерений пигментации, один раз для набора измерений отклонения от сетки наилучшего соответствия, один раз для набора измерений внешних меток или пустот и один раз для каждого из трех отдельных наборов измерений для линейности края). В некоторых вариантах осуществления, первое вычислительное устройство 310 выполняет один или несколько из блоков 402-420 и передает сигнатуру или HID на второе вычислительное устройство 324.
[0066] Продолжая с фиг. 3, в некоторой точке в цепи распределения от оборудования 300 упаковки к точке распределения (например, точки продажи), пользователь 330 (например, продавец или работник правоохранительных органов) обрабатывает неверифицированный физический объект 332 (ʺневерифицированный объект 332ʺ), который имеет неверифицированную этикетку 334, которая несет метку-кандидат 336. Знак на неверифицированном объекте 332 или информация, закодированная в метке-кандидате 336, могут предполагать, что неверифицированный объект 332 происходит из легитимного источника, такого как оборудование 300 упаковки (или компания, для которой оборудование 300 упаковки обрабатывает объекты на упаковочной линии 306). В этом сценарии, пользователь 330 желает определить, является ли неверифицированный объект 332 контрафактным или иным образом нелегитимным.
[0067] Пользователь 330 запускает приложение на третьем вычислительном устройстве 338, которое на фиг. 3 изображено как смартфон. Третье вычислительное устройство 338, под управлением приложения (и, возможно, в ответ на дополнительный ввод от пользователя 330) захватывает изображение метки-кандидата 336 (блок 450 на фиг. 4B) (например, с использованием камеры 514, изображенной на фиг. 5). Третье вычислительное устройство 338 декодирует явные данные в метке-кандидате 336 (блок 452) (например, данные в штрих-коде, которые указывают идентичность продукта, на который нанесен штрих-код) и передает захваченное изображение на второе вычислительное устройство 324 посредством сети 326. Второе вычислительное устройство 324 затем использует захваченное изображение для измерения характеристики метки-кандидата 336, что приводит к одному или нескольким наборам метрик (блок 454), давая в результате один или несколько наборов метрик для каждой из измеренных характеристик. Второе вычислительное устройство 324 затем анализирует метрики, чтобы идентифицировать те метрики, которые будут использоваться для генерации электронной сигнатуры для метки 336 (блок 456), и генерирует сигнатуру на основе анализа (блок 458). Второе вычислительное устройство 324 может повторять блоки 454 и 456 для каждой характеристики, подлежащей измерению для метки, и даже повторять эти блоки множество раз для одной характеристики (выводя ʺпригодный для сигнатурыʺ набор метрик на каждом повторении). Второе вычислительное устройство 324 идентифицирует поднабор метрик наибольшей величины сигнатуры (блок 460) и извлекает набор метрик блока HID (сигнатуры) с использованием идентификаторов местоположения, ассоциированных с идентифицированным поднабором (блок 462). Второе вычислительное устройство 324 может повторять блоки 454 и 456 для каждого набора метрик сигнатуры, выводя множество блоков HID (по сути, один блок HID для каждого набора метрик). В некоторых вариантах осуществления, третье вычислительное устройство 338 выполняет блоки 454-462 и передает сигнатуру или HID на второе вычислительное устройство 324. Второе вычислительное устройство 324 затем выполняет процедуры, описанные выше в отношении фиг. 2B и фиг. 2C, которые воспроизводятся на фиг. 4B и фиг. 4C. Другими словами, второе вычислительное устройство 324 выполняет блоки 464, 466, 468, 470, 472, 474, 476 и 478 на фиг. 4B и фиг. 4C таким же образом, что и второе вычислительное устройство 110 на фиг. 1 выполняет блоки 258, 260, 262, 264, 266, 268, 270 и 272 на фиг. 2B и фиг. 2C.
[0068] В одной реализации, одно или несколько из вычислительных устройств 108, 110 и 120 на фиг. 1 и одно или несколько из вычислительных устройств 310, 324 и 338 на фиг. 3 имеют общую архитектуру, показанную на фиг. 5. Устройство, изображенное на фиг. 5, включает в себя логическую схему 502, первичную память 504 (например, энергозависимую память, память с произвольным доступом), вторичную память 506 (например, энергонезависимую память), устройства 508 пользовательского ввода (например, клавиатуру, мышь или тачскрин), дисплей 510 (например, дисплей на органических светоизлучающих диодах) и сетевой интерфейс 512 (который может быть проводным или беспроводным). Памяти 504 и 506 хранят инструкции и данные. Логическая схема 502 исполняет инструкции и использует данные для выполнения различных процедур, включая, в некоторых вариантах осуществления, способы, описанные в настоящем документе (включая, например, те процедуры, которые должны выполняться вычислительным устройством). Некоторые из вычислительных устройств могут также включать в себя камеру 514 (например, третье вычислительное устройство 338, особенно если оно реализовано как мобильное устройство).
[0069] В варианте осуществления, подлинная метка (такая как подлинная метка 312 на фиг. 3) составлена из некоторого числа местоположений, называемых в настоящем документе ʺподобластямиʺ. Подобласти могут соответствовать ʺэлементамʺ согласно ISO/IEC 15415 и могут быть одинакового размера. Для иллюстрации некоторых из принципов, обсуждаемых в настоящем документе, обратимся к фиг. 6, которая иллюстрирует метку 600, имеющую первую подобласть 650, вторую подобласть 652, третью подобласть 654 и четвертую подобласть 656. Характеристика первой подобласти 650 заключается в том, что средняя пигментация отклоняется значительно (например, в степени, которая превышает предопределенный порог) от других подобластей. Характеристика второй подобласти 652 заключается в том, что ее смещение от сетки наилучшего соответствия 658 значительно выше, чем смещение других подобластей. Характеристика третьей подобласти 654 заключается в том, что она включает в себя значительно более высокую частоту появлений пустот, чем другие подобласти. Наконец, характеристика четвертой подобласти 656 заключается в том, что она включает в себя край 660, линейность которого значительно меньше, чем у краев других подобластей.
[0070] В варианте осуществления, чтобы выполнить процесс анализа метрик, полученных из измерения характеристик метки (такого как в блоке 412 на фиг. 4A и блоке 456 на фиг. 4B), вычислительное устройство (такое как второе вычислительное устройство 324) выполняет следующие задачи. Вычислительное устройство генерирует сетку наилучшего соответствия 658. Тем самым, вычислительное устройство идентифицирует идеальные местоположения для границ между различными подобластями метки. Вычислительное устройство выбирает подобласти, измерения характеристик которых должны использоваться для генерирования сигнатуры для метки. В варианте осуществления, вычислительное устройство выполняет этот выбор на основе того, какие подобласти имеют характеристики, измерения которых больше всего отклоняются (например, выше предопределенного порога) от нормального или оптимального измерения, ожидаемого для этой подобласти. Примеры вида подобластей, которые выбрало бы вычислительное устройство в этом сценарии, включают в себя:
[0071] (1) Подобласти, у которых средний цвет, пигментация или интенсивность наиболее близки к глобально усредненному порогу, отличающему темные элементы от светлых элементов, как определено стандартом 2D штрих-кода - т.е., ʺнаиболее светлыеʺ темные элементы и ʺнаиболее темныеʺ светлые элементы. Первая подобласть 650 входит в эту категорию. В варианте осуществления, если вычислительное устройство идентифицирует данную подобласть как имеющую отклоняющуюся усредненную плотность пигментации, вычислительному устройству может потребоваться повторно оценить подобласти, для которых идентифицированная подобласть была ближайшим соседом. Когда вычислительное устройство выполняет такое повторное оценивание, вычислительное устройство может не учитывать идентифицированную подобласть в качестве опоры.
[0072] (2) Подобласти, положение которых больше всего отклоняется (например, выше предопределенного порога) от идеализированного местоположения, как определено сеткой наилучшего соответствия 658. В некоторых вариантах осуществления, вычислительное устройство определяет, входят ли подобласти в эту категорию, путем идентифицирования краев подобласти, определения положений краев и сравнения положений краев с их ожидаемыми положениями, которые определяются сеткой наилучшего соответствия 658. В других вариантах осуществления, вычислительное устройство генерирует гистограмму пограничной области между двумя смежными подобластями противоположной полярности (например, темные/светлые или светлые/темные), с областью выборки, перекрывающей тот же самый процент каждой подобласти относительно сетки наилучшего соответствия 658, и оценивает отклонение гистограммы от 50/50 бимодального распределения. Вторая подобласть 652 входит в эту категорию.
[0073] (3) Подобласти, которые содержат внешние маркировки или пустоты, светлые или темные. В варианте осуществления, вычислительное устройство определяет, входит ли подобласть в эту категорию, путем генерирования гистограммы яркости для подобласти и определения, является ли расстояние между наиболее удаленными основными модами гистограммы достаточно большим (например, выше предопределенного порога). Третья подобласть 654 соответствует этой категории.
[0074] (4) Подобласти, имеющие один или несколько краев, которые имеют одно или несколько из (a) длины, которая превышает предопределенный порог, (b) непрерывности для длины, которая превышает предопределенный порог (или падает ниже его), и (c) линейности, которая превышает предопределенный порог (или падает ниже его). В варианте осуществления, вычислительное устройство определяет, входит ли подобласть в эту категорию, путем вычисления пиксельного значения яркости по длине одной подобласти, сдвига от сетки наилучшего соответствия 658 на длину в половину подобласти, отрезка перпендикулярно линии сетки, ограничивающей край в сетке наилучшего соответствия 658. Четвертая подобласть 656 входит в эту категорию.
[0075] После того, как вычислительное устройство измеряет характеристики метки (подлинной или кандидата), вычислительное устройство делает измеренные характеристики метки доступными как список ассоциированного массива индексов (ассоциируемых положением подобласти (например, элемента) в метке).
[0076] Возвращаясь к фиг. 7, в другом примере, положим, что анализируемая метка представляет собой 1D линейный штрих-код 700. Признаки, которые вычислительное устройство (такое как второе вычислительное устройство 324) может использовать для формирования электронной сигнатуры, включают в себя: вариации 702 в ширине или интервале между полосами (штрихами); вариации 704 в усредненном цвете, пигментации или интенсивности; пустоты 706 в темных полосах (или темные пятна в белых полосах) и нерегулярности 708 в форме краев полос.
[0077] Возвращаясь к фиг. 8 и фиг. 9, теперь будет описан процесс, который вычислительное устройство (такое как второе вычислительное устройство 324) выполняет для идентификации поднабора метрик наибольшей величины электронной сигнатуры для метки в блоке 416 на фиг. 4A и блоке 460 на фиг. 4B (и получения HID из идентификаторов местоположения, ассоциированных с поднабором). Для каждой измеренной характеристики (и для каждого набора метрик для характеристики в этих случаях, где характеристика измеряется множество раз) вычислительное устройство берет набор метрик, которые составляют часть электронной сигнатуры, и сортирует набор по значению. На фиг. 8, например, первый набор 802 метрик (изображенный как список) представляет пигментацию для различных элементов 2D штрих-кода, причем каждый элемент имеет ассоциированное индексное число. Данные для каждого элемента являются безразмерными в этой точке, но когда вычислительное устройство первоначально выполняло измерение пигментации, оно делало это в терминах значения серого. Первый набор 802 является только одним из множества наборов метрик, которые составляют электронную сигнатуру для 2D штрих-кода. Вычислительное устройство сортирует первый набор 802 по величине значения данных и извлекает поднабор 804 индексных чисел, соответствующих поднабору 806 значений данных наибольшей величины. Вычислительное устройство затем составляет поднабор 804 блока HID индексных значений для первого набора 802 метрик.
[0078] В другом примере, на фиг. 9, первый набор 902 метрик соответствует первой характеристике метки (например, подлинной метки 312 или метки-кандидата 336), второй набор 904 метрик соответствует второй характеристике метки, и третий набор 906 метрик (ʺn-ый наборʺ или конечный набор) соответствует третьей характеристике метки. Однако может существовать любое число наборов метрик. Каждый член каждого набора метрик в этом примере включает в себя (1) индексное значение, которое коррелируется с растровым положением подобласти метки, из которой было получено измерение характеристики, и (2) значение данных, которое является величиной, которая является либо самим измерением, либо получено из измерения (например, после некоторой статистической обработки и нормализации). Вычислительное устройство сортирует каждый набор метрик по значению данных. Для каждого набора метрик, вычислительное устройство извлекает индексные значения, соответствующие поднабору наибольших величин значений данных. В этом примере, каждый поднабор наибольших величин представляет собой верхние двадцать пять значений данных набора метрик. Вычислительное устройство получает первый блок 908 HID из индексных значений, соответствующих поднабору наибольших величин первого набора 902 метрик. Вычислительное устройство аналогично получает второй блок 910 HID из индексных значений, соответствующих поднабору наибольших величин второго набора 904 метрик. Вычислительное устройство продолжает этот процесс до тех пор, пока оно не выполнит этот процесс для каждого из наборов метрик (т.е., по n-му набору 906 метрик для получения третьего или ʺn-гоʺ блока 912 HID), что приводит к набору блоков HID. Вычислительное устройство формирует HID путем агрегирования блоков HID. В этом примере, блоки HID сами содержат извлеченные индексные значения.
[0079] Возвращаясь к фиг. 10, показан пример того, как вычислительное устройство (например, второе вычислительное устройство 324) сравнивает HID, сгенерированный для метки-кандидата, с HID подлинной метки (например, как описано в связи с блоками 464 и 466 на фиг. 4B) в соответствии с вариантом осуществления. Вычислительное устройство пытается сопоставить индексные значения, которые составляют соответственные блоки HID метки-кандидата и подлинной метки, с подобными наборами индексных значений, сопоставляемыми друг с другом для сравнения ʺсопоставимых понятийʺ (например, извлеченный поднабор индексных значений для пигментации метки-кандидата сравнивается с извлеченным поднабором индексных значений для пигментации подлинной метки). Вычислительное устройство подсчитывает каждое совпадение по отношению к балльной оценке совпадения. Таким образом, например, блок 1002 подлинной метки и блок 1004 метки-кандидата имеют балльную оценку совпадения 21, в то время как блок 1006 метки-кандидата и блок 1008 подлинной метки имеют балльную оценку совпадения 4.
[0080] Возвращаясь к фиг. 11, описан пример того, как вычислительное устройство (например, второе вычислительное устройство 324) сравнивает полный HID подлинной метки с полным HID метки-кандидата в соответствии с вариантом осуществления. Вычислительное устройство берет каждый отдельный блок HID значения 1100 HID подлинной сигнатуры и сравнивает его с соответствующим блоком значения 1102 HID сигнатуры-кандидата и присваивает балльную оценку совпадения (например, как описано выше в отношении фиг. 10). Вычислительное устройство затем комбинирует каждую из балльных оценок в полную балльную оценку совпадения. Если полная балльная оценка совпадения удовлетворяет или превышает предопределенную пороговую балльную оценку, то вычислительное устройство считает HID близко совпадающим. Например, вычислительное устройство может использовать предопределенную пороговую бальную оценку 120, что означает, что если балльная оценка равна 120 или больше, то вычислительное устройство считает два HID близко совпадающими. Этот порог может быть настолько низким, как нуль. В некоторых вариантах осуществления вычислительное устройство пренебрегает минимумом и просто берет ʺверхние <n>ʺ балльных оценок HID (например, верхние 10). В таком случае, вычислительное устройство будет последовательно выполнять проверку верхних 10 лучших совпадений HID. Это направлено на возможность наличия неточной отсечки HID и тем самым генерирования ложного отрицания через этап фильтрации (ценой ненужных вычислений на действительно неподлинных кандидатах). Вычислительное устройство затем извлекает сигнатуру, ассоциированную с подлинным значением 1100 HID. Вычислительное устройство повторяет этот процесс до тех пор, пока не сравнит значение 1102 HID кандидата с числом (возможно, всеми) значений HID, хранящихся в базе данных сигнатур подлинной метки. Результатом этого процесса будет поднабор полного набора сигнатур подлинной метки, каждую из которых вычислительное устройство может затем сравнивать (посредством способа более ʺгрубой силыʺ) с сигнатурой метки-кандидата.
[0081] В соответствии с различными вариантами осуществления, вычислительное устройство сравнивает одну электронную сигнатуру (например, метки-кандидата) с другой электронной сигнатурой (например, подлинной метки) (например, в блоках 266 и 472), как описано далее. Вычислительное устройство (например, второе вычислительное устройство 324) сопоставляет по массивам индексов исходные наборы метрик двух меток для каждой характеристики. Вычислительное устройство также подвергает каждый исходный набор подлинной метки нормализованной корреляции с извлеченным набором метрик сходного порядка из метки-кандидата. Вычислительное устройство затем использует результаты корреляции, чтобы прийти к решению о совпадении/несовпадении (подлинный по отношению к контрафактному).
[0082] Например, вычислительное устройство сравнивает сигнатуру-кандидат с подлинной сигнатурой путем сравнения серии автокорреляции отсортированных метрик метки-кандидата с серией автокорреляции (сохраненной) отсортированной подлинной сигнатуры. Для ясности, хорошо известная статистическая операция:
является общим уравнением нормализованной корреляции, где r представляет собой результат корреляции, n представляет собой длину списка данных метрики, и x и y являются наборами данных метрик для подлинной метки и метки-кандидата, соответственно. Когда вычислительное устройство выполняет функцию автокорреляции, наборы x и y данных являются одинаковыми.
Чтобы сформировать серию автокорреляции в соответствии с вариантом осуществления, вычислительное устройство выполняет операцию, изложенную в уравнении нормализованной корреляции, множество раз, каждый раз сдвигая серию x на одно дополнительное положение индекса относительно серии y (напомним, что y является копией x). По мере того как сдвиг возрастает, набор данных ʺповорачиваетсяʺ к началу, когда последний индекс в серии данных y превышается вследствие сдвига индекса x. В соответствии с вариантом осуществления, вычислительное устройство выполняет это путем удваивания данных y и ʺпротаскиванияʺ данных x от сдвига 0 до сдвига n для генерации серий автокорреляции.
[0084] В некоторых вариантах осуществления, в блоке 212 на фиг. 2A и в блоке 422 на фиг. 4A, вместо сохранения всей сигнатуры в устройстве хранения данных, второе вычислительное устройство вместо этого сохраняет набор полиномиальных коэффициентов, которые описывают (до предопределенного порядка и точности) кривую наилучшего соответствия, совпадающую с формой результатов автокорреляции. Это возможно, поскольку второе вычислительное устройство выполняет процесс генерирования сигнатуры на отсортированных данных метрик, и, в результате, серия автокорреляции для данных характеристики (т.е., метрик, которые помогают представить артефакты в подлинной метке) обычно представляет собой просто полиномиальную кривую.
xy
i
i
(i+j)
i
i
[0085] В варианте осуществления, вычислительное устройство (например, второе вычислительное устройство 110 или второе вычислительное устройство 324) вычисляет r, где каждый член x является артефактом, представленным его величиной и местоположением, и каждый член y=x, где j является сдвигом двух наборов данных, для j=0 до (n-1). Поскольку x отсортированы по величине, и величина является самыми значимыми разрядами x, существует очень сильная корреляция при или вблизи j=0, быстро спадающая к j=n/2. Поскольку y представляет собой копию x, j и n-j взаимозаменяемы, серия автокорреляции формирует U-образную кривую, пример которой показан на фиг. 12, которая обязательно симметрична относительно j=0 и j=n/2. Таким образом, вычислительному устройству в этом варианте осуществления требуется вычислить только половину кривой, хотя на фиг. 12 для ясности показана полная кривая от j=0 до j=n.
[0086] В одной реализации, вычислительное устройство (такое как второе вычислительное устройство 110 или второе вычислительное устройство 324) выполняет блок 266 на фиг. 2C или блок 472 на фиг. 4C с использованием действительных значений автокорреляции и затем повторяет процесс на метке-кандидате с использованием смоделированной полиномиальной кривой. На практике, было обнаружено, что уравнение 6-го порядка, использующее шестибайтные значения с плавающей запятой для коэффициентов, будет иметь тенденцию к совпадению с данными подлинной сигнатуры в пределах однопроцентной ошибки кривой соответствия или ʺдостоверности распознаванияʺ. Результирующие балльные оценки совпадения, которое получает вычислительное устройство, могут находиться в пределах одного процента друг друга. Это может быть верно как для высокой балльной оценки совпадения (как ожидалось бы, если бы метка-кандидат была подлинной), так и для низкой балльной оценки совпадения (как ожидалось бы, если бы метка-кандидат не была подлинной).
[0087] В варианте осуществления, вычислительное устройство, которое анализирует измерения метки с целью генерирования электронной сигнатуры (например, как изложено в блоке 412 на фиг. 4A и блоке 456 на фиг. 4B), ограничивает и нормализует измерения, которые оно использует для генерации сигнатуры. Например, вычислительное устройство может выразить полиномиальные коэффициенты до фиксированной точности, выразить сами данные автокорреляции как значения между -1 и +1 и использовать, в качестве списка порядка сортировки, местоположение индексов массива в анализируемой метке (подлинной или кандидате). Если анализируемая метка является 2D матрицей данных, индекс массива может быть растрово-упорядоченным индексом положения элемента в метке, упорядоченным от обычного исходного положения для используемой символики. В одном общем типе 2D матрицы данных, исходное положение является точкой, где встречаются две сплошные линии, ограничивающие левую и нижнюю стороны сетки.
[0088] В соответствии с вариантом осуществления, вычислительное устройство сравнивает (пытается сопоставить) подлинную сигнатуру с сигнатурой-кандидатом (например, как изложено в блоке 266 на фиг. 2C или блоке 472 на фиг. 4C), как описано далее. Вычислительное устройство повторно составляет сигнатуры с использованием сохраненных полиномиальных коэффициентов, выполняет автокорреляцию метрик в каждом списке (т.е., для каждой измеренной характеристики) для генерации полиномиальных коэффициентов и сравнивает два набора полиномиальных коэффициентов (сравнивает две серии автокорреляции). Вычислительное устройство может выполнить это сравнение множеством способов. Например, вычислительное устройство может попытаться коррелировать серию автокорреляции метки-кандидата по отношению к (повторно сформированной) кривой автокорреляции сигнатуры подлинной метки. Альтернативно, вычислительное устройство может сформировать кривую для каждой из серий (кандидата и подлинной) автокорреляции и определять погрешность соответствия кривых на паре кривых. Фиг. 12 и фиг. 13 иллюстрируют этот процесс. Степень корреляции между двумя наборами значений автокорреляции для данной характеристики (или данного набора метрик характеристики) становится балльной оценкой совпадения для этой характеристики или набора метрик. Вычислительное устройство затем определяет, является ли метка-кандидат подлинной или нет, на основе всех из балльных оценок совпадения для различных характеристик.
[0089] В варианте осуществления, вычислительное устройство, которое анализирует метрики метки с целью генерирования электронной сигнатуры (например, как изложено в блоке 412 на фиг. 4A и блоке 456 на фиг. 4B) применяет анализ степенных рядов к данным автокорреляции для метки-кандидата и к данным автокорреляции для подлинной метки. Вычислительное устройство может применять такой анализ степенных рядов с использованием дискретного преобразования Фурье (ʺDFTʺ):
k
где X представляет собой k-ый частотный компонент, N представляет собой длину списка метрик, и x представляет собой набор данных метрик. Вычислительное устройство вычисляет степенной ряд DFT, анализирует каждый частотный компонент (представленный комплексным числом в серии DFT) на величину и отбрасывает фазовый компонент. Результирующие данные описывают распределение спектральной энергии данных метрики, от низкой к высокой частоте, и это становится основой для дальнейшего анализа. Примеры этих степенных рядов показаны графически на фиг. 14, фиг. 15 и фиг. 16.
[0090] В варианте осуществления, вычислительное устройство, которое анализирует метрики метки с целью генерирования электронной сигнатуры (например, как изложено в блоке 412 на фиг. 4A и блоке 456 на фиг. 4B), применяет две аналитики частотной области: куртозис и смещение распределения. В этом контексте, смещение распределения относится к измерению распределения энергии вокруг частоты центрального диапазона всего спектра. Чтобы выполнить куртозис (kurtosis), вычислительное устройство может использовать следующее уравнение:
где  является средним значением данных величины степенного ряда, s является стандартным отклонением величин, и N является числом проанализированных дискретных спектральных частот.
[0091] Чтобы вычислить смещение распределения (Distribution Bias) в варианте осуществления, второе вычислительное устройство использует следующее уравнение:
где N является числом проанализированных дискретных спектральных частот.
[0092] При использовании аналитики частотной области (например, использовании DFT) в варианте осуществления, вычислительное устройство рассматривает следующие критерии: гладкая полиномиальная кривая сигнатуры подлинной метки (полученная из сортировки по величине) дает распознаваемые характеристики в спектральной сигнатуре при анализе в частотной области. Метка-кандидат, когда данные метрик извлекаются в том же самом порядке, что и данные метрик, извлекаемые из подлинной метки, представит аналогичное спектральное распределение энергии, если символ является подлинным. Другими словами, порядок сортировки подлинного ʺсогласуетсяʺ с величинами метрики кандидата. Несогласованность в отсортированных величинах или другие наложенные сигналы (такие как артефакты фотокопирования), имеют тенденцию возникать как высокочастотные компоненты, которые в противном случае отсутствуют в спектрах подлинного символа, таким образом, обеспечивая дополнительную меру аутентичности метки. Это учитывает возможность того, что серия автокорреляции контрафакта может все еще удовлетворять минимальному статистическому порогу совпадения подлинной метки. Характеристики распределения степенного ряда DFT такого сигнала выявят низкое качество совпадения посредством высоких частот, присутствующих в ошибках совпадения малой амплитуды серии-кандидата. Такое условие может указывать на фотокопию подлинной метки. В частности, вычислительное устройство полагает, что высокий куртозис и высокий коэффициент распределения должны присутствовать в спектрах подлинной метки. В некоторых вариантах осуществления, вычислительное устройство использует эту информацию о распределении степенных рядов совместно с балльной оценкой совпадения как меру достоверности в верификации метки-кандидата.
[0093] Возвращаясь к фиг. 17, в варианте осуществления, вычислительное устройство генерирует электронную сигнатуру для метки (например, как изложено в блоке 208 на фиг. 2A, блоке 254 для фиг. 2B, блоке 414 на фиг. 4A и блоке 458 на фиг. 4B) путем кодирования сигнатуры как строки байтов, которая может быть представлена как знаки американского стандартного кода для обмена информацией (ʺASCIIʺ), а не как численные данные величины. Этот альтернативный формат позволяет вычислительному устройству использовать данные сигнатуры непосредственно в качестве индекса для поиска метки в устройстве хранения данных. В этом варианте осуществления, вместо сохранения местоположения и величины каждой метрики сигнатуры для подлинной метки, вычислительное устройство сохраняет наличие (или отсутствие) заметных сигнатурных признаков и каждое из оцененных местоположений в подлинной метке. Например, в случае символа 2D матрицы данных, который не несет или кодирует уникальный идентификатор или серийный номер, вычислительное устройство сохраняет данные сигнатуры метки как строку знаков, каждый из которых кодирует наличие или отсутствие признака, превышающего минимальный порог величины для каждой характеристики в подобласти, но не кодирует дополнительно данные о величине или числе признаков в любой одной характеристике. В этом примере, каждая подобласть в метке 1700 на фиг. 17 имеет четыре бита данных, один бит для каждого из набора метрик, где '1' указывает, что конкретная метрика имеет заметный признак в этой подобласти. Например, 0000 (шестнадцатеричный 0) может означать, что ни одна из четырех проверенных характеристик не представлена в степени, большей, чем пороговая величина в этой конкретной подобласти. Значение 1111 (шестнадцатеричное F) будет означать, что все четыре из проверенных характеристик представлены в степени большей, чем минимум, в этой конкретной подобласти.
[0094] В примере метки 1700, первые шесть подобластей кодируются, как описано далее. (1) Первая подобласть 1702 не имеет артефакта для средней яркости: она удовлетворительно черная. Она не имеет смещения сетки. Она имеет большую белую пустоту. Она не имеет артефакта формы края: ее края являются прямыми и ровными. Вычислительное устройство, таким образом, кодирует ее как 0010. (2) Вторая подобласть 1704 имеет пустоту и артефакт формы края. Вычислительное устройство, таким образом, кодирует ее как 0011. (3) Третья подобласть 1706 заметно серая, а не черная, но не имеет других артефактов. Вычислительное устройство, таким образом, кодирует ее как 1000. (4) Четвертая подобласть 1708 не имеет артефактов. Вычислительное устройство, таким образом, кодирует ее как 0000. (5) Пятая подобласть 1710 имеет смещение решетки, но не другие артефакты. Вычислительное устройство, таким образом, кодирует ее как 0100. (6) Шестой модуль 1712 не имеет артефактов. Вычислительное устройство, таким образом, кодирует ее как 0000. Таким образом, первые шесть модулей кодируются как двоичные 001000111000000001000000, шестнадцатеричные 238040, десятичные 35-128-64 или ASCII #€ @. С использованием кода 2D матрицы данных в качестве примера, с обычным размером символа 22×22 подобластей, участок строки ASCII, содержащий уникальные данные сигнатуры, будет 242 знака в длину, полагая, что данные компонуются как два модуля на знак (байт). Вычислительное устройство сохраняет строки сигнатуры подлинных меток в базе данных, простом файле, текстовом документе или любом другом конструкте, подходящем для хранения наполнений отдельных строк знаков.
[0095] В соответствии с вариантом осуществления, процесс, при помощи которого вычислительное устройство (например, второе вычислительное устройство 324) проверяет метку-кандидат для определения того, является ли метка подлинной, в реализуемом ASCII варианте осуществления, является следующим:
[0096] (1) Вычислительное устройство анализирует метку кандидата и извлекает его строку ASCII.
[0097] (2) Вычислительное устройство выполняет поисковый запрос посредством программы базы данных с использованием строки ASCII.
[0098] (3) Вычислительное устройство (под управлением программы базы данных) подвергает сигнатуры, хранящиеся в устройстве хранения данных, проверке на точное совпадение с полной поисковой строкой-кандидатом. Если вычислительное устройство не находит точного совпадения строки, вычислительное устройство может попытаться локализовать приблизительное совпадение либо путем поиска подстрок, либо путем поиска ʺнечеткого совпаденияʺ на всех строках.
[0099] (4) В тех случаях, когда поиск возвращает совпадение с одной опорной строкой по меньшей мере первого, минимального порога совпадения достоверности, вычислительное устройство считает подлинную метку и метку-кандидат как одно и то же. Другими словами, вычислительное устройство идентифицирует метку-кандидат как подлинную. Если, с другой стороны, поиск не возвращает никакой строки с процентным совпадением выше второго, более низкого порога, вычислительное устройство отклоняет метку-кандидат как контрафактную или недействительную.
[00100] (5) В тех случаях, когда поиск возвращает одну опорную строку с процентным совпадением между первым и вторым порогами, вычислительное устройство может считать результат неопределенным. В тех случаях, когда поиск возвращает две или более опорных строк с процентным совпадением выше второго порога, вычислительное устройство может считать результат неопределенным. Альтернативно, вычислительное устройство может провести дополнительный анализ, чтобы сопоставить строку метки-кандидата с одной из других сохраненных опорных строк.
[00101] (6) В тех случаях, когда результат не определен, вычислительное устройство может указывать (например, на пользовательском интерфейсе или путем передачи сообщения на третье вычислительное устройство 240), указывая, что результат является неопределенным. Вычислительное устройство может предложить пользователю предоставить другое изображение метки-кандидата для проверки. Вместо этого или в дополнение, вычислительное устройство может использовать способ повторной попытки для кодирования отдельных признаков в захваченном изображении метки-кандидата. Вычислительное устройство может применить способ повторной попытки к любой подобласти, у которой данные сигнатуры в метке-кандидате близки к порогу минимальной величины для этой метрики. Если проверяемая метка использует механизм исправления ошибок, способ повторной попытки может применяться к любой подобласти или части метки-кандидата, которую механизм исправления ошибок указывает как возможно поврежденную или измененную. Вместо этого или в дополнение, вычислительное устройство может ослабить любые данные сигнатуры с величиной, которая близка к порогу минимальной величины, например, путем поиска с предполагаемым битом присутствия (установленным в 1) и затем снова с непредполагаемым этим битом (установленным в 0) или путем подстановки ʺбезразличногоʺ символа. Альтернативно, вычислительное устройство может повторно вычислить запрос процентного совпадения путем придания низкого веса или игнорирования этих битов, представляющих признаки, которые близки к порогу.
Сценарий с низкой вариативностью
[00102] Варианты осуществления, описанные выше в связи с фиг. 4A-4C и фиг. 8-16, особенно эффективны в отношении технологий печати с ʺвысокой вариативностьюʺ (например, термографической или струйной печати), где резко выделяющиеся артефакты достаточно четко выраженной величины в готовом виде доступны, чтобы действовать как повторяемые местоположения HID. Однако другие технологии печати могут не проявлять один и тот же тип явных вариаций. Это можно видеть на фиг. 18, которая показывает графики двух волновых форм (сигналов). Первая волновая форма 1802 была извлечена из набора упорядоченных пар метрик и местоположений индексов из метки, напечатанной с использованием процесса термографической печати. Набор метрик (на оси y) в этом примере выражен как вариация от среднего значения всей волновой формы (среднее значение установлено как нуль на оси y). Ось x включает в себя значения индексов, отсортированные от самого низкого до самого высокого. Вторая волновая форма 1804 была извлечена из набора упорядоченных пар метрик и местоположений индексов из метки, напечатанной с использованием процесса флексографической печати. Можно видеть, что первая волновая форма 1802 представляет большую вариативность, чем вторая волновая форма 1804 (отметим различия в амплитуде и полной вариативности в соответственной серии данных).
[00103] В отношении данных термографической печати (первая волновая форма 1802), множество пиков высокой амплитуды могут использоваться для составления HID (способом, описанным выше) для неупорядоченного по сериям поиска (поиска в базе данных). Флексографические данные (вторая волновая форма 1804) показывает намного менее дифференцируемый числовой ряд с малым количеством различимых 'резко выделяющихся' вершин. Поскольку флексографические данные представляют низкую вариативность, в варианте осуществления, вычислительное устройство (одно или несколько из вычислительных устройств 108, 110 и 120 на фиг. 1 или одно или несколько из вычислительных устройств 310, 324 и 338 на фиг. 3) могут создавать HID с использованием других аспектов данных сигнатуры метрики, которые не опираются на наличие резко выделяющихся значений данных высокой величины. Теперь будут описаны различные методы для использования таких других аспектов.
[00104] В соответствии с вариантом осуществления, вычислительное устройство фильтрует волновую форму, что приводит к отфильтрованной волновой форме. Примеры возможных фильтров включают в себя процесс сглаживания, такой как скользящее среднее, свертка во временной области, операция ряда Фурье, пространственный полосовой фильтр и фильтр нижних частот. В примере, показанном на фиг. 19, вычислительное устройство применяет ко второй волновой форме 1804 скользящее среднее, что имеет эффект сглаживания серии данных в медленно изменяющуюся волновую форму. Фиг. 19 показывает вторую волновую форму 1804 перед фильтрацией (1904a) и после фильтрации (скользящего среднего, в этом случае) (1904b). Чтобы вычислить скользящее среднее в варианте осуществления, вычислительное устройство берет две или более точек данных из набора метрик, суммирует их, делит их сумму на полное число добавленных точек данных, заменяет первую точку данных средним и повторяет этот процесс с каждой последовательной точкой данных до тех пор, пока не достигается конец набора метрик.
[00105] В некоторых вариантах осуществления, вычислительное устройство фильтрует волновую форму способом, который разрешает ʺрасширениеʺ информации. Например, применение пространственного фильтра перед оконным средним позволяет данным в каждом окне включать в себя некоторую из информации, содержащейся в соседних окнах. Другими словами, вычислительное устройство включает информацию из смежного окна (окон) в усредненные точки данных в конкретном окне.
[00106] Вычислительное устройство затем извлекает атрибуты отфильтрованной волновой формы, такие как положение пересечений нуля, расстояния от пика до пика, данные интеграции или дифференциации и т.д. Любые или все из этих методов могут использоваться в качестве основы для создания HID. В варианте осуществления, вычислительное устройство разделяет отфильтрованную волновую форму на секции или 'диапазоны', как показано на фиг. 20 (девять диапазонов в этом примере), и вычисляет локальное среднее волновой формы в каждом диапазоне. Фиг. 20 показывает среднее по диапазону значение как наложенное на данные сигнатуры как прямоугольники. В некоторых вариантах осуществления, вычислительное устройство извлекает атрибуты неотфильтрованных волновых форм (т.е., не выполняет процесс фильтрации).
[00107] Вычислительное устройство нормализует эти средние по диапазону и формирует двоичное представление данных (проиллюстрировано на фиг. 21A). Двоичная строка представляет локальное среднее как находящееся выше или ниже общего среднего для средних по диапазонам. Эта двоичная строка теперь становится блоком HID для этой конкретной метрики. Вычислительное устройство формирует остальные блоки HID аналогично для каждой остающейся метрики.
[00108] В варианте осуществления, при использовании этого метода, вычислительное устройство оценивает сохраненный HID подлинной метки по сравнению с HID входящих кандидатов (например, блок 464 на фиг. 4B) способом, отличным от способа, описанного выше в отношении сценария с высокой вариативностью. Например, вместо поиска с нечеткой логикой, вычислительное устройство может использовать булевы операции для вычисления балльной оценки совпадения HID. В одной реализации, вычислительное устройство применяет побитовое инвертированное исключающее ИЛИ (NOT(XOR))по отношению к исходной и входящей битовым комбинациям-кандидатам. В качестве примера, с использованием исходного блока HID, сформированного на фиг. 21A, вычислительное устройство может оценить входящего кандидата следующим образом:
Подлинный (Блок 1): 1 1 0 1 0 1 0 1 1
Кандидат (Блок 1): 1 1 0 0 0 1 1 0 1
------------------------------------
Результат NOT(XOR): 1 1 1 0 1 1 0 0 1
[00109] Биты ʺсогласованностиʺ, представленные булевым результатом (1) ИСТИННО, затем суммируются вычислительным устройством (например, для вычисления расстояния Хемминга). Эта сумма становится балльной оценкой HID для этого блока. Как и ранее, вычислительное устройство выполняет этот процесс для всех блоков во всех исходных записях HID по отношению к HID метки-кандидата. По завершении, вычислительное устройство оценивает результирующий отсортированный список исходных электронных сигнатур по отношению к полной электронной сигнатуре-кандидату (например, предоставленного сотового телефона), как описано ранее. Если любые из электронных сигнатур из отсортированного списка выдают результат ʺподлинногоʺ для данных электронной сигнатуры-кандидата, то вычислительное устройство сообщает результат верификации как таковой. Если ни одно из отсортированного списка не выдает ʺподлинныйʺ результат, то вычислительное устройство сообщает (например, пользователю посредством пользовательского интерфейса локально или путем передачи сообщения на удаленное устройство (например, сотовый телефон)) результат верификации как ʺконтрафактныйʺ.
[00110] В соответствии с вариантом осуществления, вместо представления каждого диапазона волновой формы как двоичного значения (как описано в связи с фиг. 20 и 21A), вычислительное устройство сохраняет часть амплитудной информации во время фильтрации. Как показано на фиг. 21B, вычислительное устройство может, например, использовать действительные средние по диапазону значения для формирования HID. Затем, вместо использования расстояния Хемминга в качестве измерения сходства (чтобы определить, совпадают ли близко HID), вычислительное устройство использует ковариацию или численную корреляцию, чтобы оценить балльную оценку совпадения HID входящих кандидатов. Путем изменения ширины и числа окон усреднения, вычислительное устройство может повышать или понижать разрешение HID по необходимости, с более многочисленными и/или более узкими окнами, выдавая HID большей дискриминирующей способности (но также большими и требующими больше памяти для хранения), и более широкими и/или в меньшем количестве окнами, имеющими низкие требования к хранению (из-за большего сокращения данных), но с пропорционально низкой дискриминирующей способностью.
[00111] Чтобы проиллюстрировать сокращение в данных (и, следовательно, скорости поиска и требуемом хранении) с использованием одного или нескольких обсуждаемых методов, положим, что исходная волновая форма (например, 1802) имеет 700 точек данных. Каждая является числом с плавающей запятой в 32 бита, что больше 22 кб. В примере Хемминга/двоичном примере на фиг. 21A, вычислительное устройство сократит это до 9 битов. Это представляет понижение размерности от 700 32-битных точек данных до девяти 1-битных точек данных. В примере на фиг. 21B, где вычислительное устройство поддерживает амплитудную информацию (действительное среднее по диапазону значение), понижение размерности будет до 32×9=288 байтов. Таким образом, понижение размерности в этом примере будет от 700 32-битных точек до девяти 32-битных точек.
[00112] Возвращаясь к фиг. 22, показана блок-схема процесса, выполняемого вычислительным устройством в соответствии с вариантом осуществления. Исходная последовательность операций для этого варианта осуществления является той же самой, что и блоки 402-414 на фиг. 4A (для генерирования электронной сигнатуры для подлинной метки) и блоки 450-456 на фиг. 4B (для генерирования электронной сигнатуры для метки-кандидата), с отличием в том, как генерируется хэш-идентификатор. Однако, вместо блока 416 или блока 450, процесс переходит к блоку 2202 на фиг. 22, в котором вычислительное устройство извлекает волновую форму из метрик. Например, вычислительное устройство анализирует метрики как набор упорядоченных пар (метрика по отношению к идентификатору (например, индексному значению) местоположения в метке, где была получена метрика) и анализирует их, упорядоченных как волновая форма. В блоке 2204, вычислительное устройство фильтрует волновую форму. В блоке 2206, вычислительное устройство извлекает атрибуты отфильтрованной волновой формы. Вычислительное устройство повторяет блоки 1802-1806 для каждого набора метрик (например, первого набора метрик, второго набора метрик, третьего набора метрик и т.д.), каждой извлеченной волновой формы (например, первой волновой формы, второй волновой формы, третьей волновой формы и т.д.) и каждой отфильтрованной волновой формы (например, первой отфильтрованной волновой формы, второй отфильтрованной волновой формы, третьей отфильтрованной волновой формы и т.д.). В блоке 2208, вычислительное устройство формирует хэш-идентификатор из извлеченных атрибутов (одной или нескольких из отфильтрованных волновых форм). Процесс затем переходит к блоку 422 (фиг. 4A) или блоку 464 (фиг. 4B).
Создание веса
[00113] В варианте осуществления, вычислительное устройство использует процедуру для выбора или предпочтительно взвешивания метрик, извлеченных из определенных областей метки по метрикам из непредпочтительных областей метки. Это учитывает тот факт, что в сценарии с низкой вариативностью, некоторые области метки будут переносить более полезные признаки сигнатуры для формирования надежного HID, чем другие области. Это оценивание может производиться множеством способов, включая анализ амплитуды сигнала временной области, анализ энергии частотной области и другие способы. Кратко говоря, вычислительное устройство использует разные наборы правил для оценивания метрик в зависимости, например, от того, представляет ли анализируемая область высокую мощность или нет.
[00114] В варианте осуществления, вычислительное устройство использует меру полной энергии сигнала как получено из степенного ряда Фурье данных метрик для установления 'балльной оценки взвешивания' для каждого доступного набора данных метрик признаков сигнатуры. Вычислительное устройство вычисляет полную энергию сигнала путем суммирования отдельных спектральных энергий по степенному ряду, где энергия каждого спектрального компонента вычисляется как квадратный корень суммы квадратов действительной и мнимой частей числа частотной области.
[00115] Фиг. 23 показывает примерную волновую форму набора ʺвысокоэнергетичныхʺ данных метрик (дисперсию метрик от базового уровня или среднего в зависимости от идентификатора местоположения (например, индексного значения). Фиг. 24 показывает степенной ряд Фурье ʺвысокоэнергетичныхʺ данных метрик согласно фиг. 23. Данные метрик согласно фиг. 23 получили бы высокую балльную оценку и предпочтительно использовались бы в качестве исходных данных для блока HID.
[00116] Фиг. 25 показывает примерную волновую форму набора ʺнизкоэнергетичныхʺ данных метрик. Фиг. 26 показывает степенной ряд Фурье ʺнизкоэнергетичныхʺ данных метрик согласно фиг. 25. Данные метрик согласно фиг. 25 получили бы низкую балльную оценку и не использовались в качестве исходных данных для блока HID.
Вычисление балльной оценки взвешивания:
[00117] В варианте осуществления, чтобы вычислить балльную оценку взвешивания, вычислительное устройство суммирует амплитуды каждого диапазона в конкретном степенном ряду, который оно анализирует. Когда вычислительное устройство имеет балльную оценку для каждого набора данных метрик, оно затем сортирует по этим балльным оценкам в убывающем порядке и выбирает наборы данных метрик наивысшей балльной оценки (наивысшей энергии сигнала) для использования при формировании HID для этой метки.
Создание маски
[00118] В варианте осуществления, вычислительное устройство использует способы, описанные выше, при работе на линейных штрих-кодах UPC. В этом случае, доступны 52 блока HID, имеется два на ʺполосуʺ (штрих) в символе (одна серия данных метрики, извлеченная из переднего края каждой полосы, и одна из заднего края, исключая левую и правую защитные полосы). Вычислительное устройство может, например, сделать выбор использовать метрики с верхними пятью самыми высокими 'энергиями сигнатур' для выполнения операций блока HID.
[00119] В варианте осуществления, при создании ключа HID для оригинального штрих-кода UPC вычислительное устройство сохраняет все 52 набора данных метрик сигнатуры вместе с HID, извлеченным из него. Полагая длину блока HID в 10 битов, вычислительное устройство получит в итоге HID с полной длиной в 520 битов.
[00120] Для результативной обработки, вычислительное устройство может использовать схему взвешивания, совместимую с побитовыми операциями, используемыми в способе сравнения HID, описанном выше. В варианте осуществления, вычислительное устройство формирует маску, которая имеет булевы значения ИСТИННО в местоположениях битов, соответствующих блокам HID высокого/предпочтительного взвешивания, и булево ЛОЖНО во всех других местоположениях битов. На данном этапе, простая побитовая операция И с маской является тем, что необходимо для вычисления измерения сходства HID между двумя HID с использованием только блоков с сигналом наивысшей энергии (и поэтому наилучшей дискриминирующей способностью).
[00121] В качестве упрощенного примера, рассмотрим случай, где вычислительное устройство создало HID 8 блоков, каждый с 10 битами на блок, давая в результате 80-битовый HID. Дополнительно, вычислительное устройство будет, в этом примере, использовать только верхние 5 блоков HID наивысшей энергии для сравнения HID (A) сигнатуры исходной (подлинной) метки с HID (B) метки-кандидата. Фиг. 27 и 28 изображают процесс и иллюстрируют примерный результат битового отсчета (F) для HID хорошо совпадающего кандидата (фиг. 27) и HID плохо совпадающего кандидата (фиг. 28).
[00122] Следует понимать, что примерные варианты осуществления, описанные в настоящем документе, должны рассматриваться только в описательном смысле и не с целью ограничения. Описания признаков или аспектов в каждом варианте осуществления должны обычно рассматриваться как доступные для других аналогичных признаков или аспектов в других вариантах осуществления. Специалистам в данной области техники будет понятно, что различные изменения по форме и в деталях могут выполняться без отклонения от их сущности и объема, как определено следующей формулой изобретения. Например, этапы блок-схем последовательностей операций на фиг. 2A, фиг. 2B, фиг. 2C, фиг. 4A, фиг. 4B, фиг. 4C и фиг. 22 могут быть переупорядочены способами, которые будут очевидны специалистам в данной области техники. Более того, этапы этих блок-схем последовательностей операций наряду со способами, описанными в настоящем документе, могут все выполняться на одном вычислительном устройстве.