Способы и вычислительное устройство для определения того, является ли знак подлинным
WAYS AND COMPUTER DEVICE FOR DETERMINING WHETHER THE SIGN IS THE AUTHENTIC

ОБЛАСТЬ ТЕХНИКИ
[0001] Изобретение в целом имеет отношение к технологии защиты от подделок, а конкретнее к способам и к вычислительному устройству для определения того, является ли знак подлинным.
УРОВЕНЬ ТЕХНИКИ
[0002] Поддельные изделия, к сожалению, широко доступны, и часто их бывает трудно выявить. Когда подделыватели изготавливают поддельные товары, они обычно копируют маркировку и штриховые коды в дополнение к самим изделиям. На поверхностном уровне этикетки и штриховые коды могут казаться подлинными и даже выдавать достоверные данные при сканировании (например, декодировать соответствующий Универсальный код товара). Хотя в настоящее время доступно много технологий для противодействия такому копированию, большинство этих решений включает в себя вставку различных типов кодов, рисунков, микроволокон, микроточек и других признаков, чтобы помогать пересекать подделку. Такие методики требуют, чтобы производители применяли дополнительное оборудование и материал, и добавляют некий уровень сложности в производственный процесс.
ЧЕРТЕЖИ
[0003] Хотя прилагаемая формула изобретения обстоятельно излагает признаки настоящих методик, эти методики вместе с их целями и преимуществами можно лучше понять из нижеследующего подробного описания в сочетании с прилагаемыми чертежами, на которых:
[0004] фиг. 1 - пример системы, в которой можно реализовать различные варианты осуществления раскрытия изобретения;
[0005] фиг. 2A, фиг. 2B и фиг. 2C - блок-схемы алгоритмов процессов, осуществляемых одним или несколькими вычислительными устройствами в соответствии с вариантом осуществления;
[0006] фиг. 3 - другой пример системы, в которой можно реализовать различные варианты осуществления раскрытия изобретения;
[0007] фиг. 4A, фиг. 4B и фиг. 4C - блок-схемы алгоритмов процессов, осуществляемых одним или несколькими вычислительными устройствами в соответствии с вариантом осуществления;
[0008] фиг. 5 показывает архитектуру вычислительного устройства в соответствии с вариантом осуществления;
[0009] фиг. 6 показывает пример знака в соответствии с вариантом осуществления;
[0010] фиг. 7 показывает пример знака в соответствии с другим вариантом осуществления;
[0011] фиг. 8 показывает пример того, как вычислительное устройство сортирует набор показателей и выбирает идентификаторы местоположения в подмножестве показателей в соответствии с вариантом осуществления;
[0012] фиг. 9 показывает пример того, как вычислительное устройство создает блоки хэш-идентификаторов из идентификаторов местоположения, соответствующих нескольким подмножествам показателей, в соответствии с вариантом осуществления;
[0013] фиг. 10 показывает пример того, как вычислительное устройство сравнивает два блока хэш-идентификаторов и оценивает результаты сравнения в варианте осуществления;
[0014] фиг. 11 показывает пример того, как вычислительное устройство объединяет несколько блоков хэш-идентификаторов в общий хэш-идентификатор в варианте осуществления;
[0015] фиг. 12 и фиг. 13 иллюстрируют процесс, который осуществляет вычислительное устройство для преобразования степени корреляции между двумя наборами автокоррелированных значений для заданной характеристики (или заданного набора показателей для характеристики) в оценку совпадения для упомянутой характеристики или набора показателей в варианте осуществления;
[0016] фиг. 14, фиг. 15 и фиг. 16 показывают примеры степенного ряда, сформированного вычислительным устройством в варианте осуществления;
[0017] фиг. 17 показывает пример того, как вычислительное устройство формирует электронную сигнатуру для знака в варианте осуществления.
ОПИСАНИЕ
[0018] Настоящее раскрытие изобретения в целом ориентировано на способы и вычислительное устройство для определения того, является ли знак подлинным. В соответствии с различными вариантами осуществления вычислительное устройство (или его логические схемы) применяет неумышленно созданные артефакты в подлинном знаке, чтобы задать идентифицируемую электронную подпись ("сигнатуру"), и извлекает некоторые признаки сигнатуры, чтобы повысить простоту и скорость, с которыми можно искать многочисленные подлинные сигнатуры и сравнивать их с сигнатурами возможных знаков.
[0019] Данное раскрытие изобретения часто ссылается на "знак". При применении в данном документе "знак" является видимым индикатором, который намеренно помещается на физический объект. Знак может быть чем-то, что идентифицирует торговую марку (например, логотипом), чем-то, что несет информацию, например штриховым кодом (например, двумерным ("2D") штриховым кодом, который задан в стандарте Международной организации по стандартизации ("ISO") и Международной электротехнической комиссии ("IEC") ISO/IEC 16022), датой истечения срока или информацией сопровождения, например порядковым номером, или украшением. Знак просматривается в некоторой части электромагнитного спектра, хотя и не обязательно невооруженным глазом.
[0020] Термин "артефакт" при применении в данном документе является отличительной чертой знака, которая была порождена машиной или процессом, которая (который) создала знак, но не специально или намеренно (то есть дефектом). Примеры артефактов включают в себя: (a) отклонение усредненного цвета подобласти (например, ячейки 2-мерного штрихового кода) от среднего выведенного из знака (который может быть средним для соседних ячеек одинакового номинального цвета), (b) смещение положения подобласти относительно оптимальной сетки соседних подобластей, (c) области отличного цвета по меньшей мере из двух цветов от номинального цвета ячеек, (d) отклонение от номинальной формы непрерывной границы в знаке и (e) дефекты или другие изменения, получающиеся в результате печати знака. В некоторых вариантах осуществления артефакт не воспроизводится управляемо.
[0021] Термины "точно совпадают", "точное совпадение" и "точно совпавший" при применении в данном документе относятся к результатам определения, сделанного на основе сравнения между значениями (например, двумя хэш-идентификаторами), которое дает сходство между значениями, которое достигает либо превышает заранее установленную пороговую величину. Например, если заранее установленная пороговая величина равна 20 процентам, то можно сказать, что два хэш-идентификатора "точно совпадают", являются "точным совпадением" или "точно совпали", если 20 или более процентов составляющих частей (например, 20 или более процентов составляющих блоков хэш-идентификаторов) одного хэш-идентификатора равны по значению 20 или более процентам составляющих частей другого хэш-идентификатора.
[0022] Термин "идентификатор местоположения" при применении в данном документе относится к численному значению, которое отображается в некое местоположение в знаке. Отношением отображения между идентификатором местоположения и местоположением в знаке может быть "один-к-одному". Примером идентификатора местоположения, имеющего отношение отображения "один-к-одному" с местоположением в знаке, является индекс растра.
[0023] Термин "логические схемы" при применении в данном документе означает схему (тип электронных аппаратных средств), спроектированную для выполнения комплексных функций, заданных с точки зрения математической логики. Примеры логических схем включают в себя микропроцессор, контроллер или специализированную интегральную схему. Когда настоящее раскрытие изобретения ссылается на вычислительное устройство, осуществляющее некое действие, нужно понимать, что это также может означать, что встроенные в вычислительное устройство логические схемы фактически осуществляют это действие.
[0024] Термин "мобильное устройство связи" при применении в данном документе является устройством связи, которое допускает отправку и прием информации по беспроводной сети, например, сотовой сети или сети Wi-Fi. Примеры мобильных устройств связи включают в себя сотовые телефоны (например, смартфоны), планшетные компьютеры и портативные сканеры, обладающие функциональными возможностями беспроводной связи.
[0025] Данное раскрытие изобретения в целом ориентировано на способы и вычислительное устройство для определения того, является ли знак подлинным. В соответствии с вариантом осуществления вычислительное устройство принимает захваченное изображение возможного знака, измеряет характеристику возможного знака в нескольких местоположениях возможного знака, применяя захваченное изображение, получая в результате набор показателей для упомянутой характеристики (в некоторых случаях несколько наборов показателей). Вычислительное устройство формирует сигнатуру для возможного знака на основе набора показателей. Вычислительное устройство выводит хэш-идентификатор ("HID") с применением идентификаторов местоположения, соответствующих подмножеству местоположений, в которых оно измеряло характеристику (например, индексы растра у местоположений, которые дали измерения с наибольшей величиной). Вычислительное устройство на основе сравнения HID у возможного знака с ранее выведенным и сохраненным HID у подлинного знака определяет, точно ли совпадают соответствующие HID друг с другом. Если вычислительное устройство определяет, что HID у возможного знака точно совпадает (в соответствии с заранее установленной пороговой величиной) с HID у подлинного знака, то вычислительное устройство извлекает сигнатуру подлинного знака из устройства хранения данных (где сигнатура подлинного знака содержит данные касательно артефакта подлинного знака) и сравнивает сигнатуру возможного знака с извлеченной сигнатурой подлинного знака.
[0026] В другом варианте осуществления вычислительное устройство (или его логические схемы) принимает захваченное изображение подлинного знака, измеряет характеристику возможного знака с применением захваченного изображения, получая в результате набор показателей для упомянутой характеристики (в некоторых случаях несколько наборов показателей). Вычислительное устройство формирует сигнатуру для подлинного знака на основе набора показателей. Вычислительное устройство выводит HID из сигнатуры с применением идентификаторов местоположения, соответствующих подмножеству местоположений, в которых оно измеряло характеристику (например, индексы растра у местоположений, которые дали измерения с наибольшей величиной), и сохраняет HID совместно с сигнатурой в устройстве хранения данных. В одном варианте осуществления вычислительное устройство сохраняет HID и сигнатуру в базе данных таким образом, что вычислительное устройство может впоследствии запросить базу данных с применением HID (или с применением неизвестного HID, который может точно совпадать с HID сигнатуры подлинного знака).
[0027] В соответствии с различными вариантами осуществления HID у возможного знака может точно совпадать с HID у нескольких подлинных знаков. Однако сравнение HID у возможного знака с HID у подлинных знаков требует меньшего объема вычислений и применяет меньше памяти по сравнению с фактическими сигнатурами. Таким образом, применяя HID на начальном проходе по набору известных сигнатур подлинных знаков, вычислительное устройство или логические схемы могут значительно сократить количество фактических сигнатур, которые нужно сравнить.
[0028] Обращаясь к фиг. 1, показан пример системы, в которой можно реализовать различные варианты осуществления раскрытия изобретения. Процедуры, осуществляемые в рамках этой системы, показаны на блок-схемах алгоритмов из фиг. 2A, фиг. 2B и фиг. 2C. Фиг. 1 описывается здесь параллельно фиг. 2A, фиг. 2B и фиг. 2C.
[0029] Наносящее знак устройство 100 наносит подлинный знак 102 ("знак 102") на законный физический объект 104 ("объект 104") (этап 202 из фиг. 2A). В некоторых вариантах осуществления объект 104 является изделием, например, предметом одежды, дамской сумкой или модным аксессуаром. В других вариантах осуществления объект 104 является этикеткой, например, этикеткой со штриховым кодом, или упаковкой для некоторого другого физического объекта. Знак 102 может быть чем-то, что идентифицирует торговую марку (например, логотипом), чем-то, что несет информацию (например, штриховым кодом), или украшением. Возможные варианты осуществления наносящего знак устройства 100 включают в себя принтер (например, лазерный или термографический принтер), травильное устройство, гравировальное устройство, формовочное устройство, маркировочное устройство, швейное устройство и устройство термопереноса. Наносящее знак устройство 100 наносит знак 102, например, путем печати, травления, гравировки, формования, маркировки, вышивания или термического переноса знака 102 на объект 104. Знак 102 включает в себя один или несколько артефактов. В некоторых вариантах осуществления знак 102 также включает в себя намеренно созданные признаки защиты от подделок, например, микроскопические рисунки.
[0030] Первое устройство 106 захвата изображений (например, камера, устройство машинного зрения, или сканер) захватывает изображение знака 102 после того, как наносится знак 102 (этап 204). Обстоятельства, при которых первое устройство 106 захвата изображений захватывает изображение знака 102, управляются, так что есть разумная гарантия, что изображение фактически является изображением подлинного знака 102. Например, может быть небольшим интервал времени между нанесением знака 102 наносящим знак устройством 100 и получением изображения знака 102 первым устройством 106 захвата изображений, и первое устройство 106 захвата изображений может быть физически расположено рядом с наносящим знак устройством 100 на упаковочной линии. Таким образом, когда применяется термин "подлинный знак", он относится к знаку, который был нанесен наносящим знак устройством в законном источнике (то есть не скопирован противозаконно или скрытно).
[0031] Первое устройство 106 захвата изображений передает захваченное изображение первому вычислительному устройству 108. Возможные варианты осуществления первого вычислительного устройства 108 включают в себя настольный компьютер, смонтированный в стойке сервер, переносной компьютер, планшетный компьютер и мобильный телефон. В некоторых вариантах осуществления первое устройство 106 захвата изображений объединяется с первым вычислительным устройством 108, и в этом случае первое устройство 106 захвата изображений передает захваченное изображение логическим схемам первого вычислительного устройства 108. Первое вычислительное устройство 108 или логические схемы в нем принимает захваченное изображение и передает захваченное изображение второму вычислительному устройству 110. Возможные реализации второго вычислительного устройства 110 включают в себя все те устройства, перечисленные для первого вычислительного устройства 108.
[0032] Второе вычислительное устройство 110 принимает захваченное изображение и применяет захваченное изображение для измерения различных характеристик знака 102, получая в результате набор показателей, которые включают в себя данные касательно артефактов знака 102 (этап 206). Как будет описываться далее, набор показателей может быть одним из нескольких наборов показателей, которые формирует второе вычислительное устройство 110 о знаке 102. Второе вычислительное устройство 110 может осуществлять измерения в разных местоположениях на знаке 102. При этом второе вычислительное устройство 110 может разделить знак 102 на несколько подобластей (например, в соответствии с промышленным стандартом). В варианте осуществления, если знак 102 является 2-мерным штриховым кодом, то второе вычислительное устройство 110 осуществляет измерения во всех или в подмножестве общего количества подобластей (например, всех или подмножестве общего количества ячеек) знака 102. Примеры характеристик знака 102, которые может измерять второе вычислительное устройство 110, включают в себя: (a) форму признака, (b) соотношения сторон признака, (c) местоположения признака, (d) размер признака, (e) контраст признака, (f) линейность границы, (g) разрывности областей, (h) посторонние знаки, (i) дефекты печати, (j) цвет (например, светлота, оттенок или оба), (k) пигментацию и (l) изменения контраста. В некоторых вариантах осуществления второе вычислительное устройство 110 выполняет измерения в одних и тех же местоположениях от знака к знаку для каждой характеристики, но в разных местоположениях для разных характеристик. Например, второе вычислительное устройство 110 могло бы измерять среднюю пигментацию в первом наборе местоположений знака и в том же первом наборе местоположений для последующих знаков, но измерять линейность границы во втором наборе местоположений на знаке и на последующих знаках. Можно сказать, что два набора местоположений (для разных характеристик) являются "разными", если существует по меньшей мере одно местоположение, которое не является общим для обоих наборов.
[0033] В варианте осуществления результаты измерения характеристик вторым вычислительным устройством 110 включают в себя набор показателей. Может быть один или несколько наборов показателей для каждой из измеренных характеристик. Второе вычислительное устройство 110 анализирует набор показателей и на основе этого анализа формирует сигнатуру, которая основывается на наборе показателей (этап 208). Поскольку набор показателей включает в себя данные касательно артефакта (или нескольких артефактов) знака 102, сигнатура косвенно будет основываться на артефакте. Если знак 102 заключает в себе данные (как в случае 2-мерного штрихового кода), то второе вычислительное устройство 110 также может включать такие данные как часть сигнатуры. Иначе говоря, в некоторых вариантах осуществления сигнатура может основываться на артефактах знака 102 и на данных, переносимых знаком 102.
[0034] В варианте осуществления, чтобы сформировать сигнатуру, для каждой измеренной характеристики знака 102 второе вычислительное устройство 110 ранжирует показатели, ассоциированные с характеристикой, по величине и применяет как часть сигнатуры только те показатели, которые достигают заранее установленной пороговой величины. Например, второе вычислительное устройство 110 могло бы воздержаться от ранжирования тех показателей, которые ниже заранее установленной пороговой величины. В варианте осуществления существует разная заранее установленная пороговая величина для каждой измеряемой характеристики. Одна или несколько заранее установленных пороговых величин могут основываться на шумовом пороге и на разрешении первого устройства 106 захвата изображений.
[0035] В варианте осуществления второе вычислительное устройство 110 получает одну сотню точек данных для каждой характеристики и собирает шесть групп измерений: один набор измерений для пигментации, один набор измерений для отклонения от оптимальной сетки, один набор измерений для посторонних отметок или пропусков и три отдельных набора измерений для линейности границы.
[0036] Второе вычислительное устройство 110, как часть процесса ранжирования, может группировать показатели, которые ниже заранее установленной пороговой величины, независимо от их соответствующих местоположений (то есть независимо от их местоположений на знаке 102). Также второе вычислительное устройство 110 может упорядочивать показатели (например, по величине) в каждой категории характеристик как часть процесса ранжирования. Аналогичным образом второе вычислительное устройство 110 могло бы просто игнорировать показатели, которые ниже заранее установленной пороговой величины. Также процесс ранжирования может подразумевать просто отделение показателей, которые выше пороговой величины, от тех, которые ниже пороговой величины.
[0037] В варианте осуществления второе вычислительное устройство 110 упорядочивает измеренные характеристики в соответствии с тем, насколько чувствительны характеристики к проблемам с разрешением изображения. Например, если первое устройство 106 захвата изображений не обладает способностью захватывать изображение в высоком разрешении, то второму вычислительному устройству 110 было бы сложно идентифицировать нелинейности границ. Однако второе вычислительное устройство 110 может не испытывать проблем с идентификацией отклонений пигментации. Таким образом, второе вычислительное устройство 110 могло бы на этой основе отдавать предпочтение пигментации по сравнению с нелинейностями границы. В соответствии с вариантом осуществления второе вычислительное устройство 110 упорядочивает измеренные характеристики в обратном порядке зависимости от разрешения следующим образом: пигментация подобласти, смещение положения подобласти, местоположения пропусков или посторонних отметок и нелинейности границы.
[0038] В соответствии с вариантом осуществления второе вычислительное устройство 110 взвешивает измеренные характеристики знака 102 на основе одного или нескольких из разрешения первого устройства 106 захвата изображений и разрешения захваченного изображения знака 102. Например, если разрешение первого устройства 106 захвата изображений низкое, то второе вычислительное устройство 110 может назначить больший вес средней пигментации различных подобластей знака 102. Если разрешение первого устройства 106 захвата изображений высокое, то второе вычислительное устройство 110 может назначить измерениям дефектов границы у различных подобластей больший вес, нежели другим характеристикам.
[0039] Если знак 102 включает в себя информацию исправления ошибок, например, которая сформулирована ISO/IEC 16022, то второе вычислительное устройство 110 может применять информацию исправления ошибок, чтобы взвешивать измеренные характеристики. Например, второе вычислительное устройство 110 могло бы считать информацию исправления ошибок, применять информацию исправления ошибок для определения, какие подобласти знака 102 содержат ошибки, и понизить вес измеренных характеристик у таких подобластей.
[0040] В соответствии с вариантом осуществления при формировании сигнатуры второе вычислительное устройство 110 взвешивает измерения для одной или нескольких характеристик знака 102 на основе наносящего знак устройства 100. Например, предположим, что наносящее знак устройство 100 является термографическим принтером. Дополнительно предположим, что нам известно, что для тех знаков, нанесенных наносящим знак устройством 100, проекции границы, параллельные направлению движения материала подложки, вряд ли дадут измерения линейности границы с величиной, достаточной для достижения минимальной пороговой величины для характеристики линейности границы. Второе вычислительное устройство 110 на основе этой известной отличительной черты наносящего знак устройства 100 может понизить вес измерений характеристики линейности границы для знака 102.
[0041] Продолжая с фиг. 1, второе вычислительное устройство 110 применяет идентификаторы местоположения, соответствующие подмножеству показателей сигнатуры, для выведения HID (этап 210). В одном варианте осуществления второе вычислительное устройство 110 для выведения HID применяет индексы, соответствующие подмножеству показателей сигнатуры с наибольшей величиной. Как будет подробнее обсуждаться ниже, второе вычислительное устройство 110 при выведении HID может применять индексы, соответствующие подмножеству каждого набора показателей, в качестве блока в общем HID. Второе вычислительное устройство 110 сохраняет сигнатуру и HID (например, с применением программы работы с базой данных) в устройстве 112 хранения данных (например, массиве независимых дисков с избыточностью) (этап 212), так что HID ассоциируется с сигнатурой. В некоторых вариантах осуществления HID также может применяться для поиска сигнатуры (например, второе вычислительное устройство 110 применяет программу работы с базой данных для задания HID в качестве индексного ключа для сигнатуры). В некоторых вариантах осуществления устройство 112 хранения данных составлено из нескольких устройств, которые рассредоточены географически и во времени, как часто бывает с услугами облачного хранения. В некоторых вариантах осуществления одно или несколько из измерения характеристики, анализа различных наборов показателей, формирования сигнатуры, выведения HID и сохранения сигнатуры и HID осуществляются первым вычислительным устройством 108. В других вариантах осуществления все те этапы осуществляются первым вычислительным устройством 108, и первое вычислительное устройство 108 напрямую обращается к устройству 112 хранения данных. В последнем варианте осуществления второе вычислительное устройство 110 не применяется. В еще одних вариантах осуществления второе вычислительное устройство 110 передает сигнатуру и HID отдельному серверу баз данных (то есть другому вычислительному устройству), который сохраняет сигнатуру и HID в устройстве 112 хранения данных.
[0042] Продолжая с фиг. 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 из устройства 112 хранения данных (этап 260). Если второе вычислительное устройство 110 не принимает никакие точно совпадающие результаты, то второе вычислительное устройство 110 указывает (например, путем передачи сообщения) третьему вычислительному устройству 120, что возможный знак 116 нельзя проверить (например, передает сообщение, указывающее, что возможный знак 116 не является подлинным) (этап 262). Третье вычислительное устройство 120 принимает сообщение и указывает в интерфейсе пользователя, что возможный знак 116 нельзя проверить (или что возможный знак 116 поддельный). В некоторых вариантах осуществления третье вычислительное устройство 120 осуществляет один или несколько из этапов измерения, формирования и выведения и передает сигнатуру (или HID, если третье вычислительное устройство 120 выводит HID) второму вычислительному устройству 110.
[0043] С другой стороны, если второе вычислительное устройство 110 находит один или несколько HID, которые точно совпадают с HID возможного знака 116, то второе вычислительное устройство 110 ответит путем извлечения сигнатур, которые ассоциируются с точно совпадающими HID, из устройства 112 хранения данных (этап 264). Затем второе вычислительное устройство 110 сравнивает фактическую сигнатуру, которую оно сформировало для возможного знака 116, с извлеченными подлинными сигнатурами (этап 266 из фиг. 2C). Второе вычислительное устройство 110 повторяет этот процесс для каждой сигнатуры, с которой ассоциируется точно совпадающий HID. Если второе вычислительное устройство 110 не способно точно сопоставить сигнатуру возможного знака 116 с какой-нибудь из извлеченных сигнатур (этап 268), то второе вычислительное устройство 110 указывает (например, путем передачи сообщения) третьему вычислительному устройству 120, что возможный знак 116 нельзя проверить (этап 270). Третье вычислительное устройство 120 принимает сообщение и указывает в интерфейсе пользователя, что возможный знак 116 нельзя проверить. С другой стороны, если второе вычислительное устройство 110 может точно сопоставить сигнатуру возможного знака 116 с извлеченной сигнатурой, то второе вычислительное устройство 110 указывает (например, путем передачи сообщения) третьему вычислительному устройству 120, что возможный знак 116 является подлинным (этап 272).
[0044] Обращаясь к фиг. 3, описывается пример системы, которая может применяться в другом варианте осуществления. Процедуры, которые могут осуществляться в рамках этой системы, показаны на блок-схемах алгоритмов из фиг. 4A, фиг. 4B и фиг. 4C. Здесь фиг. 3, фиг. 4A, фиг. 4B и фиг. 4C описываются параллельно.
[0045] На упаковочном предприятии 300 расположены принтер 302 этикеток, наклеивающее этикетки устройство 304, упаковочная линия 306, устройство 308 захвата изображений и первое вычислительное устройство 310. Принтер 302 этикеток наносит подлинные знаки, включая подлинный знак 312 ("знак 312"), на некоторое количество этикеток, которые переносятся на ленте 314 этикеток (этап 402 из фиг. 4A). Возможные варианты осуществления подлинного знака включают в себя одномерный ("1-мерный") штриховой код и 2-мерный штриховой код. Наклеивающее этикетки устройство 304 наносит этикетки (включая отдельно показанные этикетки 316 и 318 из фиг. 3) на законные физические объекты (этап 404), два из которых показаны на фиг. 3 с номерами 320 и 322 ссылок ("первый объект 320" и "второй объект 322"). Фиг. 3 показывает физические объекты в виде коробок (например, коробок, содержащих произведенные изделия), но объекты не должны быть коробками или тарой. Возможные варианты осуществления законных физических объектов включают в себя ранее перечисленные для объекта 104 из фиг. 1.
[0046] Устройство 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 проводило лежащее в основе измерение, и значение данных (например, величину), выведенное из самого измерения.
[0047] Затем второе вычислительное устройство 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.
[0048] Продолжая с фиг. 3, в некоторой точке в сбытовой цепи от упаковочного предприятия 300 к точке распространения (например, торговой точке) пользователь 330 (например, продавец или полицейский) берет непроверенный физический объект 332 ("непроверенный объект 332"), который имеет непроверенную этикетку 334, которая заключает в себе возможный знак 336. Признаки на непроверенном объекте 332 или информация, кодированная в возможном знаке 336, могли бы подсказать, что непроверенный объект 332 возник из законного источника, например, упаковочного предприятия 300 (или компании, для которой упаковочное предприятие 300 обрабатывает исходные объекты на упаковочной линии 306). В этом сценарии пользователь 330 хочет определить, является ли непроверенный объект 332 поддельным или иного рода незаконным.
[0049] Пользователь 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.
[0050] В одной реализации одно или несколько вычислительных устройств 108, 110 и 120 из фиг. 1 и одно или несколько вычислительных устройств 310, 324 и 338 из фиг. 3 имеют обычную архитектуру, показанную на фиг. 5. Изображенное на фиг. 5 устройство включает в себя логические схемы 502, основное запоминающее устройство 504 (например, энергозависимое запоминающее устройство, оперативное запоминающее устройство), вспомогательное запоминающее устройство 506 (например, энергонезависимое запоминающее устройство), устройства 508 пользовательского ввода (например, клавиатуру, мышь или сенсорный экран), дисплей 510 (например, органический, светодиодный дисплей) и сетевой интерфейс 512 (который может быть проводным или беспроводным). Запоминающие устройства 504 и 506 хранят команды и данные. Логические схемы 502 исполняют команды и применяют данные для осуществления различных процедур, в некоторых вариантах осуществления, включающих в себя способы, описанные в этом документе (включают в себя, например, те процедуры, про которые сказано, что они осуществляются вычислительным устройством). Некоторые из вычислительных устройств также могут включать в себя камеру 514 (например, третье вычислительное устройство 338, особенно если оно реализуется в виде мобильного устройства).
[0051] В варианте осуществления подлинный знак (например, подлинный знак 312 из фиг. 3) состоит из некоторого количества местоположений, в этом документе называемых "подобластями". Подобласти могут соответствовать "ячейкам" в соответствии с ISO/IEC 15415 и могут быть однородными по размеру. Для иллюстрации некоторых обсуждаемых в этом документе идей обратим внимание на фиг. 6, которая иллюстрирует знак 600, имеющий первую подобласть 650, вторую подобласть 652, третью подобласть 654 и четвертую подобласть 656. Характеристикой первой подобласти 650 является то, что ее средняя пигментация значительно отклоняется от других подобластей (например, в степени, которая превышает заранее установленную пороговую величину). Характеристикой второй подобласти 652 является то, что ее смещение от оптимальной сетки 658 значительно выше, чем у других подобластей. Характеристикой третьей подобласти 654 является то, что она включает в себя значительно большую частоту пропусков, чем другие подобласти. В конечном счете характеристикой четвертой подобласти 656 является то, что она включает в себя границу 660, чья линейность значительно меньше, чем у границ других подобластей.
[0052] В варианте осуществления, чтобы осуществить процесс анализа показателей, полученных от измерения характеристик знака (например, на этапе 412 из фиг. 4A и этапе 456 из фиг. 4B), вычислительное устройство (например, второе вычислительное устройство 324) выполняет следующие задачи. Вычислительное устройство формирует оптимальную сетку 658. При этом вычислительное устройство идентифицирует идеальные местоположения для границ между различными подобластями знака. Вычислительное устройство выбирает подобласти, чьи измерения характеристики должны применяться для формирования сигнатуры для знака. В варианте осуществления вычислительное устройство осуществляет этот выбор на основе того, какие подобласти обладают характеристиками, чьи измерения больше всего отклоняются (например, выше заранее установленной пороговой величины) от нормального или оптимального измерения, предполагаемого для упомянутой подобласти. Примеры вида подобластей, которые выбрало бы вычислительное устройство в этом сценарии, включают в себя:
[0053] 1) подобласти, чей усредненный цвет, пигментация или интенсивность ближе всего к глобальной средней пороговой величине, отличающей темные ячейки от светлых ячеек, как задано стандартом 2-мерного штрихового кода - то есть "самые светлые" темные ячейки и "самые темные" светлые ячейки. Первая подобласть 650 попадает в эту категорию. В варианте осуществления, если вычислительное устройство идентифицирует заданную подобласть как имеющую аномальную плотность средней пигментации, то вычислительному устройству может понадобиться переоценить подобласти, для которых идентифицированная подобласть была ближайшим соседом. Когда вычислительное устройство осуществляет такую переоценку, вычислительное устройство может игнорировать идентифицированную подобласть в качестве эталона;
[0054] 2) подобласти, чье положение больше всего отклоняется (например, выше заранее установленной пороговой величины) от теоретического местоположения, которое задано оптимальной сеткой 658. В некоторых вариантах осуществления вычислительное устройство определяет, попадает ли заданная подобласть в эту категорию, путем идентификации границ подобласти, определения положений границ и сравнения положений границ с их предполагаемыми положениями, которые задаются оптимальной сеткой 658. В других вариантах осуществления вычислительное устройство формирует гистограмму граничной области между двумя соседними подобластями с противоположной полярностью (например, темная/светлая или светлая/темная), причем область выборки перекрывает одинаковый процент каждой подобласти относительно оптимальной сетки 658, и оценивает отклонение гистограммы от бимодального распределения 50/50. Вторая подобласть 652 попадает в эту категорию;
[0055] 3) подобласти, которые содержат посторонние отметки или пропуски, светлые либо темные. В варианте осуществления вычислительное устройство определяет, попадает ли подобласть в эту категорию, путем формирования гистограммы яркости для подобласти и определения, достаточно ли большое расстояние между крайними основными модами гистограммы (например, больше заранее установленной пороговой величины). Третья подобласть 654 попадает в эту категорию;
[0056] 4) подобласти, имеющие одну или несколько границ, которые имеют одну или несколько из (a) длины, которая превышает заранее установленную пороговую величину, (b) непрерывности для длины, которая превышает заранее установленную пороговую величину (или падает ниже), и (c) линейности, которая превышает заранее установленную пороговую величину (или падает ниже). В варианте осуществления вычислительное устройство определяет, попадает ли подобласть в эту категорию, путем вычисления пиксельного значения яркости по длине одной подобласти, смещения от оптимальной сетки 658 у длины половины подобласти, идущей перпендикулярно линии сетки, окаймляющей ту границу в оптимальной сетке 658. Четвертая подобласть 656 попадает в эту категорию.
[0057] После того как вычислительное устройство измеряет характеристики знака (подлинного или возможного), вычислительное устройство делает измеренные характеристики знака доступными в виде ассоциированного с массивом индексов списка (ассоциируемого по положению подобласти (например, ячейки) в знаке).
[0058] Обращаясь к фиг. 7, предположим в другом примере, что анализируемый знак является 1-мерным линейным штриховым кодом 700. Признаки, которые может применять вычислительное устройство (например, второе вычислительное устройство 324) для образования электронной сигнатуры, включают в себя: изменения 702 ширины или промежутка между штрихами; изменения 704 усредненного цвета, пигментации или интенсивности; пропуски 706 в черных штрихах (или черные точки в белых полосах); и дефекты 708 в форме границ штрихов.
[0059] Обращаясь к фиг. 8 и фиг. 9, сейчас будет описываться процесс, который осуществляет вычислительное устройство (например, второе вычислительное устройство 324), чтобы идентифицировать подмножество показателей электронной сигнатуры с наибольшей величиной для знака на этапе 416 из фиг. 4A и этапе 460 из фиг. 4B (и вывести HID из идентификаторов местоположений, ассоциированных с тем подмножеством). Для каждой измеренной характеристики (и для каждого набора показателей для характеристики в тех случаях, где характеристика измеряется несколько раз) вычислительное устройство берет набор показателей, которые составляют часть электронной сигнатуры, и сортирует набор по значению. Например, на фиг. 8 первый набор 802 показателей (изображенный в виде списка) представляет пигментацию для различных ячеек 2-мерного штрихового кода, причем каждая ячейка имеет ассоциированный индекс. Данные для каждой ячейки безразмерны в этот момент, но, когда вычислительное устройство изначально проводило измерение пигментации, оно делало это в значениях яркости. Первый набор 802 является всего лишь одним из нескольких наборов показателей, которые составляют электронную сигнатуру для 2-мерного штрихового кода. Вычислительное устройство сортирует первый набор 802 по величине значения данных и извлекает подмножество 804 индексов, соответствующее подмножеству 806 значений данных с наибольшей величиной. Затем вычислительное устройство делает подмножество 804 значений индекса блоком HID для первого набора 802 показателей.
[0060] В другом примере на фиг. 9 первый набор 902 показателей соответствует первой характеристике знака (например, подлинного знака 312 или возможного знака 336), второй набор 904 показателей соответствует второй характеристике знака, а третий набор 906 показателей ("n-й набор" или финальный набор) соответствует третьей характеристике знака. Однако, может быть любое количество наборов показателей. Каждый элемент каждого набора показателей в этом примере включает в себя (1) значение индекса, которое коррелирует с положением растра подобласти знака, из которого было получено измерение характеристики, и (2) значение данных, которое является величиной, которая либо сама является измерением, либо выводится из измерения (например, после некоторой статистической обработки и нормализации). Вычислительное устройство сортирует каждый набор показателей по значению данных. Для каждого набора показателей вычислительное устройство извлекает значения индекса, соответствующие подмножеству значений данных с наибольшей величиной. В этом примере каждое подмножество с наибольшей величиной является двадцатью пятью верхними значениями данных в наборе показателей. Вычислительное устройство выводит первый блок 908 HID из значений индекса, соответствующих подмножеству с наибольшей величиной в первом наборе 902 показателей. Вычислительное устройство аналогичным образом выводит второй блок 910 HID из значений индекса, соответствующих подмножеству с наибольшей величиной во втором наборе 904 показателей. Вычислительное устройство продолжает этот процесс до тех пор, пока не осуществит этот процесс для каждого из наборов показателей (то есть до n-го набора 906 показателей для выведения третьего или "n-го" блока 912 HID), получая в результате набор блоков HID. Вычислительное устройство образует HID путем агрегирования блоков HID. В этом примере блоки HID содержат сами извлеченные значения индекса.
[0061] Обращаясь к фиг. 10, в соответствии с вариантом осуществления показан пример того, как вычислительное устройство (например, второе вычислительное устройство 324) сравнивает HID, сформированный для возможного знака, с HID у подлинного знака (например, как описано в сочетании с этапами 464 и 466 на фиг. 4B). Вычислительное устройство пытается сопоставить значения индекса, которые составляют соответствующие блоки HID у возможного знака и подлинного знака, с похожими наборами значений индекса, сопоставляемыми друг с другом для сравнения "яблок с яблоками" (например, извлеченное подмножество значений индекса для пигментации возможного знака сравнивается с извлеченным подмножеством значений индекса для пигментации подлинного знака). Вычислительное устройство засчитывает каждое совпадение в оценку совпадения. Таким образом, например, блок 1002 подлинного знака и блок 1004 возможного знака имеют оценку совпадения 21, тогда как блок 1006 возможного знака и блок 1008 подлинного знака имеют оценку совпадения 4.
[0062] Обращаясь к фиг. 11, в соответствии с вариантом осуществления описывается пример того, как вычислительное устройство (например, второе вычислительное устройство 324) сравнивает общий HID у подлинного знака с таковым у возможного знака. Вычислительное устройство берет каждый отдельный блок HID в значении 1100 HID у подлинной сигнатуры и сравнивает его с соответствующим блоком в значении 1102 HID у возможной сигнатуры и назначает оценку совпадения (например, как описано выше по отношению к фиг. 10). Затем вычислительное устройство объединяет каждую из оценок в общую оценку совпадения. Если общая оценка совпадения достигает или превышает заранее установленную пороговую оценку, то вычислительное устройство считает HID точно совпавшими. Например, вычислительное устройство может применять заранее установленную пороговую оценку 120, означающую, что если оценка равна 120 или больше, то вычислительное устройство считало бы два HID точно совпадающими. Эта пороговая величина могла бы доходить до нуля. В некоторых вариантах осуществления вычислительное устройство пренебрегает минимумом и просто берет "<n> верхних" оценок HID (например, 10 верхних). В таком случае вычислительное устройство последовательно выполняло бы проверку над 10 верхними наилучшими совпадениями HID. Это касается вероятности получения неправильного сокращения HID и посредством этого формирования ошибочного отказа посредством этапа фильтрации (за счет ненужных вычислений над фактическими неподлинными вариантами). Затем вычислительное устройство извлекает сигнатуру, ассоциированную со значением 1100 подлинного HID. Вычислительное устройство повторяет этот процесс до тех пор, пока не сравнит значение 1102 возможного HID с некоторым количеством значений HID (возможно - всеми), сохраненных в базе данных сигнатур подлинных знаков. Итогом этого процесса будет подмножество всего набора сигнатур подлинных знаков, каждую из которых вычислительное устройство затем может сравнить (посредством более "грубого" способа) с сигнатурой возможного знака.
[0063] В соответствии с различными вариантами осуществления вычислительное устройство сравнивает одну электронную сигнатуру (например, у возможного знака) с другой электронной сигнатурой (например, у подлинного знака) (например, на этапах 266 и 472) следующим образом. Вычислительное устройство (например, второе вычислительное устройство 324) сопоставляет по индексу массива необработанные наборы показателей двух знаков для каждой характеристики. Вычислительное устройство также подвергает каждый необработанный набор подлинного знака нормализованной корреляции с извлеченным из возможного знака набором показателей похожего порядка. Затем вычислительное устройство применяет результаты корреляции, чтобы прийти к решению "есть совпадение/нет совпадения" (подлинный в отличие от поддельного).
[0064] Например, вычислительное устройство сравнивает возможную сигнатуру с подлинной сигнатурой путем сравнения автокорреляционной последовательности отсортированных показателей возможного знака с автокорреляционной последовательностью (сохраненной) отсортированной подлинной сигнатуры. Для ясности общеизвестная статистическая операция
является общим уравнением нормализованной корреляции, где r - результат корреляции, n - длина списка данных показателей и x и y - наборы данных показателей соответственно для подлинного знака и возможного знака. Когда вычислительное устройство выполняет автокорреляционную функцию, наборы данных x и y одинаковы.
[0065] Чтобы создать автокорреляционную последовательность в соответствии с вариантом осуществления, вычислительное устройство несколько раз осуществляет операцию, изложенную в уравнении нормализованной корреляции, каждый раз смещая последовательность x на одно дополнительное положение индекса относительно последовательности y (помня, что y является копией x). По ходу смещения набор данных "возвращается" к началу, так как превышается последний индекс в последовательности данных y из-за смещения индекса x. В соответствии с вариантом осуществления вычислительное устройство выполняет это путем дублирования данных y и "скольжения" данных x от смещения 0 до смещения n для формирования автокорреляционной последовательности.
[0066] В некоторых вариантах осуществления на этапе 212 на фиг. 2A и на этапе 422 на фиг. 4A вместо сохранения всей сигнатуры в устройстве хранения данных второе вычислительное устройство сохраняет вместо этого набор коэффициентов полинома, которые описывают (до заранее установленного порядка и точности) оптимальную кривую, совпадающую с формой результатов автокорреляции. Это осуществимо, потому что второе вычислительное устройство осуществляет процесс формирования сигнатуры над отсортированными данными показателей, и в результате автокорреляционная последовательность для характеристических данных (то есть показателей, которые помогают представлять артефакты в подлинном знаке) обычно является простой кривой, описываемой полиномом.
xy
i
i
(i+i)
i
i
[0067] В варианте осуществления вычислительное устройство (например, второе вычислительное устройство 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.
[0068] В одной реализации вычислительное устройство (например, второе вычислительное устройство 110 или второе вычислительное устройство 324) осуществляет этап 266 из фиг. 2C или этап 472 из фиг. 4C, применяя фактические числа автокорреляции, и затем повторяет процесс над возможным знаком, применяя смоделированную по полиному кривую. На практике обнаружено, что уравнение 6-го порядка, применяющие шестибайтовые значения с плавающей запятой для коэффициентов, чаще всего сопоставит данные подлинной сигнатуры в пределах однопроцентной погрешности подбора кривой или "верности распознавания". Результирующие оценки совпадения, которые получает вычислительное устройство, могут находиться в пределах одного процента друг от друга. Это может быть справедливо как для высокой оценки совпадения (которая ожидалась бы, если возможный знак был подлинным), так и для низкой оценки совпадения (которая ожидалась бы, если возможный знак не был подлинным).
[0069] В варианте осуществления вычислительное устройство, которое анализирует показатели знака с целью формирования электронной сигнатуры (например, как изложено на этапе 412 из фиг. 4A и этапе 456 из фиг. 4B), ограничивает и нормализует показатели, которое оно применяет для формирования сигнатуры. Например, вычислительное устройство может выражать коэффициенты полинома с заданной точностью, выражать сами данные автокорреляции в виде значений между -1 и +1 и применять, в качестве списка порядка сортировки, местоположение индекса массива в анализируемом знаке (подлинном или возможном). Если анализируемый знак является 2-мерной матрицей данных, то индекс массива может быть упорядоченным по растру индексом положения ячейки в знаке, упорядоченным от традиционного исходного положения для применяемой символики. В одном распространенном типе 2-мерной матрицы данных началом отсчета является точка, где встречаются два сплошных штриха, ограничивающих левую и нижнюю стороны сетки.
[0070] В соответствии с вариантом осуществления вычислительное устройство сравнивает (пытается сопоставить) подлинную сигнатуру с возможной сигнатурой (например, как изложено на этапе 266 из фиг. 2C или этапе 472 из фиг. 4C) следующим образом. Вычислительное устройство воссоздает сигнатуры с применением сохраненных коэффициентов полинома, автокоррелирует показатели в каждом списке (то есть для каждой измеренной характеристики) для формирования коэффициентов полинома и сравнивает два набора коэффициентов полинома (сравнивает две автокорреляционные последовательности). Вычислительное устройство может осуществлять это сравнение разными способами. Например, вычислительное устройство может попытаться коррелировать автокорреляционную последовательность возможного знака с (воссозданной) кривой автокорреляции у сигнатуры подлинного знака. В качестве альтернативы вычислительное устройство может построить кривую для каждой из автокорреляционных последовательностей (возможной и подлинной) и выполнить подбор кривой на паре кривых. Этот процесс иллюстрируют фиг. 12 и фиг. 13. Степень корреляции между двумя наборами автокоррелированных значений для заданной характеристики (или заданного набора показателей для характеристики) становится оценкой совпадения для упомянутой характеристики или набора показателей. Затем вычислительное устройство определяет, является ли возможный знак подлинным, на основе всех оценок совпадения для различных характеристик.
[0071] В варианте осуществления вычислительное устройство, которое анализирует показатели знака с целью формирования электронной сигнатуры (например, как изложено на этапе 412 из фиг. 4A и этапе 456 из фиг. 4B), применяет анализ степенных рядов к данным автокорреляции для возможного знака и к данным автокорреляции для подлинного знака. Вычислительное устройство может применять такой анализ степенных рядов с применением дискретного преобразования Фурье ("DFT"):
,
k
ая
где X - k частотная составляющая, N - длина списка показателей, а x - набор данных показателей. Вычислительное устройство вычисляет степенной ряд DFT, анализирует каждую частотную составляющую (представленную комплексным числом в последовательности DFT) на предмет величины и отбрасывает фазовую составляющую. Результирующие данные описывают распределение спектральной энергии данных показателя от низкой к высокой частоте и становятся основой для дополнительного анализа. Примеры этих степенных рядов показаны графически на фиг. 14, фиг. 15 и фиг. 16.
[0072] В варианте осуществления вычислительное устройство, которое анализирует показатели знака с целью формирования электронной сигнатуры (например, как изложено на этапе 412 из фиг. 4A и этапе 456 из фиг. 4B), применяет два аналитических показателя частотной области: эксцесс и смещение распределения. В этом смысле смещение распределения относится к мере распределения энергии вокруг центральной частоты полного спектра. Для вычисления эксцесса вычислительное устройство может применять следующее уравнение:
Эксцесс=,
где  - среднее данных величины степенного ряда, s - среднеквадратическое отклонение величин, а N - количество анализируемых дискретных спектральных частот.
[0073] Для вычисления смещения распределения в варианте осуществления второе вычислительное устройство применяет следующее уравнение:
Смещение распределения=,
где N - количество анализируемых дискретных спектральных частот.
[0074] При применении аналитических показателей частотной области (например, применении DFT) в варианте осуществления вычислительное устройство принимает во внимание следующие критерии: Гладкая кривая сигнатуры подлинного знака, описываемая полиномом (возникающая из сортировки по величине), дает распознаваемые характеристики в спектральной сигнатуре при анализе в частотной области. Возможный знак, когда данные показателей извлекаются в том же порядке, как извлекались из подлинного знака, покажет аналогичное спектральное распределение энергии, если символ подлинный. Другими словами, подлинный порядок сортировки "согласуется" с величинами показателя возможного знака. Расхождение в отсортированных величинах или другие наложенные сигналы (например, артефакты фотокопирования) обычно проявляются в виде высокочастотных составляющих, которые в противном случае отсутствуют в спектрах подлинного символа, соответственно обеспечивая дополнительную меру аутентичности знака. Это касается вероятности того, что поддельная автокорреляционная последовательность могла бы все же отвечать минимальной статистической пороговой величине совпадения у подлинного знака. Характеристики распределения у степенного ряда DFT такого сигнала покажут плохое качество совпадения посредством высоких частот, присутствующих в небольших ошибках совпадения амплитуды у возможной последовательности. Такое состояние могло бы указывать фотокопирование подлинного знака. В частности, вычислительное устройство считает, что в спектрах подлинного знака должен присутствовать высокий эксцесс и высокий коэффициент распределения. В некоторых вариантах осуществления вычислительное устройство применяет эту информацию о распределении степенного ряда в сочетании с оценкой совпадения в качестве меры уверенности при проверке возможного знака.
[0075] Обращаясь к фиг. 17, в варианте осуществления вычислительное устройство формирует электронную сигнатуру для знака (например, как изложено на этапе 208 из фиг. 2A, этапе 254 для фиг. 2B, этапе 414 из фиг. 4A и этапе 458 из фиг. 4B) путем кодирования сигнатуры в виде строки байтов, которую можно представить в виде символов Американского стандартного кода обмена информацией ("ASCII"), а не в виде числовых данных величины. Этот альтернативный формат позволяет вычислительному устройству применять данные сигнатуры непосредственно в качестве индекса для поиска знака в устройстве хранения данных. В этом варианте осуществления вместо сохранения местоположения и величины каждого показателя сигнатуры для подлинного знака вычислительное устройство сохраняет наличие (или отсутствие) значимых признаков сигнатуры и каждое из оцениваемых местоположений в подлинном знаке. Например, в случае символа 2-мерной матрицы данных, который не заключает в себе или не кодирует уникальный идентификатор, либо порядковый номер, вычислительное устройство сохраняет данные сигнатуры знака в виде строки символов, при этом каждый кодирует наличие или отсутствие признака, превышающего минимальную пороговую величину величины для каждой характеристики в подобласти, но не кодирует дополнительные данные о величине или количестве признаков в любой другой характеристике. В этом примере каждая подобласть в знаке 1700 из фиг. 17 имеет четыре разряда данных, по одному разряду для каждого из набора показателей, где "1" указывает, что конкретный показатель обладает значимым признаком в упомянутой подобласти. Например, 0000 (шестнадцатеричный 0) может означать, что ни одна из четырех проверяемых характеристик не присутствует в степени большей, чем пороговая величина в упомянутой конкретной подобласти. Значение 1111 (шестнадцатеричный F) означало бы, что все четыре проверяемые характеристики присутствуют в степени, большей минимума в той конкретной подобласти.
[0076] В примере знака 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 # € @. Применяя в качестве примера код 2-мерной матрицы данных, при типичном размере символа в 22×22 подобласти часть строки ASCII, содержащая уникальные данные сигнатуры, имела бы длину 242 символа, допуская, что данные упаковываются по два модуля на символ (байт). Вычислительное устройство сохраняет строки сигнатуры у подлинных знаков в базе данных, неструктурированном файле, текстовом документе или в любой другой конструкции, подходящей для хранения совокупностей отдельных строк символов.
[0077] В соответствии с вариантом осуществления процесс, с помощью которого вычислительное устройство (например, второе вычислительное устройство 324) проверяет возможный знак для определения того, является ли знак подлинным, в реализованном по ASCII варианте осуществления выглядит следующим образом:
[0078] 1) вычислительное устройство анализирует возможный знак и извлекает его строку ASCII;
[0079] 2) вычислительное устройство выполняет поисковый запрос посредством программы работы с базой данных, применяя ту строку ASCII.
[0080] 3) вычислительное устройство (под управлением программы работы с базой данных) подвергает сигнатуры, сохраненные в устройстве хранения данных, проверке на точное совпадение полной возможной строки поиска. Если вычислительное устройство не обнаруживает точного совпадения строки, то вычислительное устройство может попытаться найти приблизительное совпадение либо путем поиска подстрок, либо путем поиска "нечеткого совпадения" по полным строкам;
[0081] 4) там, где поиск возвращает совпадение с одной эталонной строкой по меньшей мере с первой пороговой величиной совпадения минимальной уверенности, вычислительное устройство считает подлинный знак и возможный знак одинаковыми. Другими словами, вычислительное устройство идентифицирует возможный знак как подлинный. С другой стороны, если поиск не возвращает строку с процентным совпадением выше второй, меньшей пороговой величины, то вычислительное устройство отклоняет возможный знак как поддельный или недействительный;
[0082] 5) там, где поиск возвращает одну эталонную строку с процентным совпадением между первой и второй пороговыми величинами, вычислительное устройство может считать результат неопределенным. Там, где поиск возвращает две или более эталонные строки с процентным совпадением выше второй пороговой величины, вычислительное устройство может считать результат неопределенным. В качестве альтернативы вычислительное устройство может провести дополнительный анализ для сопоставления строки возможного знака с одной из других сохраненных эталонных строк;
[0083] 6) когда результат неопределенный, вычислительное устройство может указывать (например, в интерфейсе пользователя или путем передачи сообщения третьему вычислительному устройству 240), что результат неопределенный. Вычислительное устройство может пригласить пользователя представить другое изображение возможного знака для проверки. Вместо этого или дополнительно вычислительное устройство может применить способ повторной попытки для кодирования отдельных признаков в захваченном изображении возможного знака. Вычислительное устройство может применить способ повторной попытки к любой подобласти, чьи данные сигнатуры в возможном знаке близки к минимальной пороговой величине для того показателя. Если проверяемый знак применяет механизм исправления ошибок, то способ повторной попытки может применяться к любой подобласти или части возможного знака, которую механизм исправления ошибок указывает как возможно поврежденную или измененную. Вместо этого или дополнительно вычислительное устройство может преуменьшить значение любых данных сигнатуры с величиной, которая близка к упомянутой минимальной пороговой величине, например, путем поиска с выставленным разрядом наличия (установленным в 1), а затем снова со снятым разрядом (установленным в 0), или путем подстановки символа "обобщения". В качестве альтернативы вычислительное устройство может пересчитать запрос процентного совпадения путем снижения веса или игнорирования тех разрядов, которые представляют признаки, которые близки к пороговой величине.
[0084] Следует понимать, что описанные в этом документе примерные варианты осуществления следует рассматривать только в описательном смысле, а не с целью ограничения. Описания признаков или аспектов в каждом варианте осуществления, как правило, следует рассматривать как доступные для других аналогичных признаков или аспектов в других вариантах осуществления. Средние специалисты в данной области техники поймут, что в них могут быть сделаны различные изменения по форме и в деталях без отклонения от их сущности и объема, которые заданы нижеследующей формулой изобретения. Например, этапы блок-схем алгоритмов из фиг. 2A, фиг. 2B, фиг. 2C, фиг. 4A, фиг. 4B и фиг. 4C можно переупорядочить таким образом, который будет очевиден специалистам в данной области техники. Кроме того, этапы этих блок-схем алгоритмов, а также описанные в этом документе способы можно осуществлять на одном вычислительном устройстве.