ПЕРЕДАЧА ДАННЫХ, ИСПОЛЬЗУЯ ОПТИЧЕСКИЕ КОДЫ
DATA TRANSMISSION USING OPTICAL CODES

Данное раскрытие относится к передаче данных, используя оптические коды.
Оптические коды часто используют для передачи данных. Например, сканер оптического кода может считывать данные, кодированные в виде штрих-кода или в виде кода быстрого отклика (QR). Однако, по меньшей мере, некоторые типы оптических кодов требуют относительно длительного времени считывания. Некоторые технологии оптического кода позволяют использовать относительно узкий диапазон положений и углов, при которых код и устройство считывания должны быть размещены относительно друг друга. Иногда также необходимо, чтобы устройство считывания оптического кода вначале фокусировалось на объекте, на котором нанесен оптический код.
В ЕР 1705595 А2 описана система, которая передает информацию о пароле, как сигнал пароля в виде движущегося изображения. Сигнал пароля движущегося изображения изменяет свой однородный цвет рамки в заданном интервале времени, в соответствии с информацией пароля.
Другие варианты оптической передачи данных могут быть предпочтительными. Это относится, по меньшей мере, к некоторым из вариантов осуществления, представленных в формуле изобретения.
Данные могут быть кодированы в виде оптического кода, используя комбинации визуально различимых свойств. В некоторых случаях данные представляют, используя отношение двух или больше свойств.
Некоторые варианты осуществления способа содержат: принимают значения данных для кодирования в изображения и генерируют изображение, при этом изображение содержит множество областей кодирования, каждая из областей кодирования содержит соответствующее представление значения данных, значение данных можно различать на основе любой одной из множества областей кодирования, области кодирования размещены с выбранной плотностью в пределах изображения, равной, по меньшей мере, двум. Генерирование изображения содержит: выбирают, на основе значения данных, изображение кодирования из набора изображений кодирования. Выбранное изображение кодирования может содержать множество элементов, расположенных в виде решетки, элементы представляют собой идентичные элементы или представляют собой разные элементы. Множество элементов могут представлять собой разноцветные формы, такие как квадраты, прямоугольники, круги, кресты, треугольники, овалы, ромбы, звезды и триграммы. Цветные формы могут иметь цвета, по меньшей мере, один из красного, синего и зеленого. Множество элементов может быть размещено в виде повторяющейся структуры в решетке. В некоторых случаях выбранное изображение содержит первый элемент при представлении значения данных, генерирующий изображения, дополнительно содержащие: выбирают, на основе значения данных, дополнительное изображение из набора изображений кодирования, выбранное дополнительное изображение, содержащее второй элемент при представлении значения данных; и комбинируют выбранное изображение и выбранное дополнительное изображение. Представление значения данных может быть основано на отношении первого элемента в одной из областей кодирования и второго элемента в одной из областей кодирования. Отношение может представлять собой отношение количества первого элемента к количеству второго элемента. Отношение также может представлять собой отношение площади поверхности, занимаемой первым элементом, к площади поверхности, занимаемой вторым элементом. В некоторых случаях изображение представляет собой одно в последовательности изображений для декодирования, каждое изображение в последовательности изображений кодирует часть фрагмента информации. Последовательность изображений может представлять собой изменяющуюся по времени последовательность, отображаемую на электронном дисплее.
Дополнительные варианты способа содержат: используют датчик изображения, получающий изображение, по меньшей мере, части изображения, представленного на поверхности, при этом изображение содержит множество областей кодирования, каждая из областей содержит соответствующее представление общего значения данных, а области кодирования расположены с выбранной плотностью в пределах изображения, равной, по меньшей мере, двум; идентифицируют первый и второй элементы в, по меньшей мере, одной из областей; и на основе идентифицированных первого и второго элементов, определяют общее значение данных. В некоторых случаях каждое из соответствующих представлений общих значений данных основано на отношении между первым элементом в представлении и вторым элементом в представлении, определение общего значения данных, содержащее: определяют отношение и определяют ассоциированное значение для отношения.
Примерные варианты осуществления системы содержат: датчик изображения; и модуль управления на основе компьютера, соединенный с датчиком изображения, модуль управления, выполненный с возможностью получения, используя датчик изображения, изображения, по меньшей мере, части изображения, показанного на поверхности, при этом изображение содержит множество областей кодирования каждой из областей, содержащей соответствующее представление общего значения данных, а области кодирования размещены с выбранной плотностью в пределах изображения, равной, по меньшей мере, двум, идентифицируют первый и второй элементы в, по меньшей мере, одной из областей, и на основе идентифицированного первого и второго элементов; определяют общее значение данных. Датчик изображения может быть выполнен с возможностью считывать изображение, без фокусирования на поверхности.
Дополнительные варианты осуществления способа содержат: идентифицируют количество первого цвета в изображении, которое было захвачено с дисплея портативного электронного устройства; идентифицируют количество второго цвета в изображении; определяют отношение количества первого цвета к количеству второго цвета; и на основе определенного отношения, определяют значение, кодированное в изображении. В некоторых вариантах осуществления количество первого цвета и второго цвета представляют собой соответствующие площади поверхности в изображении.
Дополнительные варианты осуществления содержат устройство на основе компьютера, выполненное с возможностью выполнения одного или больше раскрытых способов.
По меньшей мере, некоторые варианты осуществления раскрытых способов могут быть воплощены, используя компьютер или устройство на основе компьютера, которое выполняет одно или больше действий способа, компьютер или устройство на основе компьютера, считывающее инструкции для выполнения действий способа с одного или больше считываемых компьютером носителей информации. Считываемые компьютером носители информации могут содержать, например, один или больше из оптических дисков, компонентов энергозависимого запоминающего устройства (таких как DRAM или SRAM), или компонентов энергонезависимого запоминающего устройства (таких как приводы жесткого диска, RAM типа Flash или ROM). Считываемые компьютером носители информации не охватывают чистые переходные сигналы. Способы, раскрытые здесь, не выполняют исключительно в уме человека.
Раскрытие относится к следующим фигурам, на которых:
на фиг. 1 показана блок-схема примерного варианта выполнения оптического считывающего устройства;
на фиг. 2 показана блок-схема примерного варианта выполнения системы для использования с оптическим считывающим устройством;
на фиг. 3 показан оптический код;
на фиг. 4А-4С показаны примерные изображения;
на фиг. 5 показаны примерные изображения;
на фиг. 6 показаны примерные изображения с соответствующими структурами;
на фиг. 7 показаны примерные комбинированные изображения;
на фиг. 8А и 8В показывают участки оптических кодов;
на фиг. 9 показан примерный оптический код, в котором элементы скомпонованы в решетке;
на фиг. 10 показан примерный вариант выполнения способа для генерирования оптического кода;
на фиг. 11 показан примерный вариант выполнения другого способа для генерирования оптического кода;
на фиг. 12 показан примерный вариант выполнения способа для декодирования оптического кода;
на фиг. 13 показан примерный вариант выполнения портативного электронного устройства;
на фиг. 14 показана блок-схема примерного варианта выполнения компьютера.
На фиг. 1 показана блок-схема примерного варианта осуществления оптического считывающего устройства ПО. Считывающее устройство ПО содержит датчик 120 изображения, соединенный с модулем 130 управления считывающим устройством. Датчик 120 изображения содержит, например, датчик CCD (прибор с зарядовой связью), датчик CMOS (комплементарный металлооксидный полупроводник), или оптический датчик другого типа. В некоторых случаях датчик 120 изображения может фокусироваться на изображении; в других случаях датчик 120 изображения выполнен так, что он не имеет возможности фокусирования на изображении. Датчик 120 изображения может иметь объектив или он может выполнять свою функцию без объектива. Модуль 130 управления считывающим устройством представляет собой устройство на основе компьютера, содержащее процессор, который запрограммирован для выполнения одного или больше действий способа, раскрытого в данной заявке. Процессор может быть соединен с запоминающим устройством, в котором содержатся соответствующие инструкции для процессора. Считывающее устройство ПО записывает изображение 140. Изображение 140 появляется на дисплее портативного электронного устройства (не показано), или на другой поверхности (например, на листе бумаги).
На фиг. 2 показана блок-схема примерного варианта осуществления системы 200 для использования с оптическим считывающим устройством 210, таким как считывающее устройство ПО на фиг. 1. Операцией системы 200 управляет модуль 202 управления системой. Модуль 202 управления представляет собой устройство на основе компьютера, содержащее процессор, который запрограммирован для выполнения одного или больше действий способа, раскрытого в данной заявке. Процессор может быть соединен с запоминающим устройством, в котором содержатся соответствующие инструкции для процессора.
Как упомянуто выше, считывающее устройство 210 может считывать изображение с дисплея портативного электронного устройства 220, или с неэлектронной поверхности, такой как лист бумаги. Портативное электронное устройство 220 представляет собой устройство с дисплеем для представления изображений, например, мобильный телефон, смартфон, планшетный компьютер, компьютеризированные наручные часы (например, "интеллектуальные часы"), портативный компьютер или другое устройство. Информация, считываемая с портативного электронного устройства 220 считывающим устройством 210, может быть передана в один или больше других компонентов. Например, информация может быть передана в систему 230 управления доступом, в систему 240 управления лифтом или в базу 250 данных. Информация, считываемая считывающим устройством 210, также может быть передана в другие компоненты, которые могут выполнять конкретные действия на основе информации. В общем, считывающее устройство 210 может быть выполнено с возможностью передачи информации в любой известный компонент, для обработки информации, принятой с помощью считывания оптических кодов. Компоненты системы 200 могут быть соединены с сетью 260 любого типа.
В некоторых вариантах осуществления сеть 270 беспроводной передачи данных позволяет системе 200 передавать информацию в портативное электронное устройство 220. Например, система 220 может передавать информацию оптического кода в портативное электронное устройство 220. Система 200 может принимать инструкции для передачи информации оптического кода из хост-устройства 280 на основе компьютера.
Оптические коды, используемые в вариантах осуществления, описанных в данной заявке, представляют собой одно - или двухмерные изображения. По меньшей мере, некоторые из примерных оптических кодов, представленных в заявке, в общем, имеют квадратную форму, но другие оптические коды могут иметь другие формы (например, прямоугольную, круглую, овальную, треугольную или другую форму). Информация, кодируемая в оптическом коде, может включать в себя, например, число, букву, комбинацию букв и чисел или любой другой тип информации.
Информация, кодируемая в оптических кодах, описанных в данной заявке, может быть выделена из кода, даже если часть кода не видима для устройства оптического считывания. Это возможно, поскольку кодируемая информация представлена во множестве областей кода. В частности, определенные свойства, которые представляют кодируемую информацию, повторяются во множестве областей кода. (Примеры таких свойств описаны везде в данной заявке.)
На фиг. 3 показан оптический код 300, имеющий площадь 310. (Для ясности детальные свойства кода 300 не показаны на фиг. 3.) В этом примере так называемая область 312 кодирования содержит достаточные свойства для представления кодированной информации. Области 314, 316, 318, и 320 кодирования также каждая содержит достаточные свойства для представления кодированной информации. Как можно видеть в этом примере, области кодирования могут иметь различные размеры и положения. Две области кодирования могут также частично накладываться друг на друга, такие как области 318, 320. Область 322 представляет собой пример области кодирования, которая содержит одну или больше других областей кодирования. Информация, содержащаяся в любой одной из областей 312, 314, 316, 318, 320, 322, достаточна для обеспечения для устройства оптического считывания возможности декодировать информацию, кодированную в оптическом коде 300, даже если одна или больше других частей кода не будут видимы для устройства считывания. Часть кода может не быть видимой, поскольку, например: код может быть частично закрыт объектом (например, палец пользователя находится на части дисплея, на котором представлен код); оптический код также является настолько близким к датчику изображения устройства оптического считывания, что некоторая часть кода находится за пределами области обзора датчика; датчик изображения загрязнен или поврежден; дисплей, на котором появляется код, загрязнен или поврежден; или по другой причине. В общем, чем больше количество областей кодирования в коде, тем более вероятно, что код будет успешно считан. Хотя области кодирования, показанные на фиг. 3, все являются круглыми, области кодирования также могут иметь другие формы (например, прямоугольную, круглую, овальную, треугольную или другую форму). Хотя области, показанные на фиг. 3, каждая имеет единичные соседние области, в дополнительных вариантах осуществления область кодирования может содержать две или больше не соседних областей. Каждая из не соседних областей может не содержать сама по себе достаточно свойств для представления кодированной информации, но вместе они содержат достаточно свойств.
По меньшей мере, в некоторых вариантах осуществления количество и размещение областей кодирования оптического кода выбирают в соответствии с известными или ожидаемыми частичными областями устройства оптического считывания. Термин "чувствительные области" относится к области оптического кода, которая захватывается устройством оптического считывания. В других вариантах осуществления чувствительные области могут иметь разные формы (например, прямоугольную, круглую, овальную, треугольную или другую форму). "Минимальная чувствительная область" представляет собой наименьшую область оптического кода, которую устройство оптического считывания может захватывать, и все еще имеет достаточное количество свойств для декодирования кодированной информации. Другими словами, минимальная чувствительная область должна содержать область кодирования оптического кода. Таким образом, области кодирования оптического кода могут быть размещены так, что, независимо от того, какая часть оптического кода будет считана оптическим устройством считывания, если только эта часть является такой же большой, как минимальная чувствительная область, устройство считывания может декодировать кодированную информацию из оптического кода в любом положении в пределах кода. Конечно, во многих случаях устройство оптического считывания может захватывать настолько большую часть кода, насколько это возможно, и, таким образом, фактическая чувствительная область может быть больше, чем минимальная чувствительная область. Чувствительная область или минимальная чувствительная область могут содержать одну соседнюю область, или она может содержать две или больше не соседних областей.
При генерировании оптического кода можно предположить, что минимальная чувствительная область может не обеспечивать требуемую простоту декодирования. Например, минимальная чувствительная область может предоставлять достаточную информацию для декодирования кода, но с более медленной, чем требуемая, скоростью, или с более высокими, чем требуются затратами на вычисления. По этим причинам может использоваться несколько большая чувствительная область, чем минимальная чувствительная область (например, область, которая больше на 1, 5, 10, 15, 20% или на другую величину). При использовании таких больших размеров чувствительной области можно упростить декодирование кода.
Оптический код может генерироваться, используя одно или больше изображений. В некоторых вариантах осуществления оптический код основан на одном изображении. В дополнительных вариантах осуществления оптический код основан на комбинации двух или больше изображений.
На фиг. 4А показано примерное изображение 410, которое состоит из множества форм 412, 414, 416, 418, 420, 422. Хотя на штриховом чертеже это не видно, каждая из этих форм заполнена одинаковым сплошным цветом. На фиг. 4 В показано другое примерное изображение, которое состоит из множества форм, таких как формы в изображении 410. Однако, в этом случае, поверхности заполнены структурой, вместо сплошного цвета. На фиг. 4С показано другое примерное изображение 450, которое состоит из множества форм, таких, как в изображении 410. Однако, в этом случае, поверхности заполнены дополнительными формами, а именно, малыми треугольниками и малыми кругами. В дополнительных вариантах осуществления могут использоваться градиенты в изображении, включающем в себя формы, которые формируют на основе градиентов и, таким образом, которые выглядят, как формы с отсутствующими явно определенными границами.
Прямоугольник 432 на фиг. 4 В представляет минимальную чувствительную область для устройства оптического считывания, которое считывает изображение 430. В этом случае часть изображения 430 в пределах прямоугольника 432 заполнена как структурированными формами изображения 430, так и фоновым изображением 436. Присутствие форм и фонового изображения обозначает конкретные данные, которые кодированы в изображении. Прямоугольник 434 представляет другую минимальную чувствительную область для изображения 430. Также в этом случае часть изображения 430 в пределах прямоугольника 434 заполнена как структурированными формами, так и фоновым изображением 436. Чувствительная область, большая, чем минимальные чувствительные области 432, 434, аналогично могла бы охватывать участки как фонового изображения, так и структурированных форм. В случае фиг. 4 В фоновое изображение 436 может, например, представлять сплошной цвет или другую структуру.
В различных вариантах осуществления фоновое изображение для изображения не используется для кодирования данных, но используется для помощи при калибровке датчика изображения устройства оптического считывания. Фоновое изображение также может использоваться, как декорация.
Возвращаясь к фиг. 4С, каждый прямоугольник 452, 454 представляет минимальные чувствительные области для устройства оптического считывания, которое считывает изображение 450. В этом конкретном изображении соответствующее свойство представляет собой отношение количества малых треугольников к количеству малых кругов в пределах заданной области. В каждой из областей 452, 454 отношение малых кругов к малым треугольникам составляет 1:1. Устройство оптического считывания может распознавать это отношение и использовать его для идентификации изображения 450 (то есть, для различения изображения 450 от, по меньшей мере, одного другого изображения). Чувствительная область больше, чем минимальные чувствительные области 452, 454, аналогично будет охватывать участок изображения 450, в котором отношение малых кругов к малым треугольникам составляет 1:1, поскольку это свойство, в общем, является соответствующим для всего изображения 450.
В некоторых вариантах осуществления оптический код формируют путем комбинирования одного или больше изображений. На фиг. 5 показаны примерные изображения 510, 520, 530, 540, каждое из которых содержит группу форм, таких как форма 512 в изображении 510. Изображения 510, 520, 530, 540 отличаются друг от друга тем, что их формы заполнены разными структурами. На фиг. 6 показаны примерные изображения 610, 620, 630, 640, каждое из которых заполнено соответствующей структурой. На фиг. 7 показано, как выбранные изображения на фиг. 5 и 6 могут быть скомбинированы друг с другом для формирования оптических кодов. Например, изображение 710 представляет собой комбинацию изображений 510 и 610; изображение 720 представляет собой комбинацию изображений 540 и 620; изображение 730 представляет собой комбинацию изображений 530 и 630; и изображение 740 представляет собой комбинацию изображений 530 и 640. Каждое из изображений на фиг. 7 может использоваться для представления конкретного значения. Например, изображение 710 может обозначать "0", изображение 720 может обозначать "1", изображение 730 может обозначать "3", и изображение 740 может обозначать "4". Дополнительные комбинации на основе изображений на фиг. 5 и 6 также могут использоваться, и им могут быть назначены соответствующие значения.
В некоторых вариантах осуществления изображения на фиг. 5 могут быть скомбинированы с использованием фонового изображения, закрашенного сплошным цветом, вместо структурированных фоновых изображений, таких, как показаны на фиг. 6.
В других вариантах осуществления элементы оптического кода размещены в виде решетки интервалов. Интервалы в решетке могут быть квадратными по форме, или они могут иметь другую форму. Интервалы могут иметь границу вокруг содержания интервалов (например, черную линию или линию другого цвета), или интервалы могут не иметь границы вокруг своего содержания. Каждый элемент, который размещен в интервалах решетки, имеет видимое свойство, которое позволяет устройству оптического считывания отличать его от другого возможного элемента (который может присутствовать или может, фактически, не присутствовать в решетке). Возможные свойства могут включать в себя, например: цвета, структуры, формы, градиенты, буквы, числа или другие свойства.
На фиг. 8А показана верхняя левая часть примерного оптического кода 810. Код 810 содержит элементы, размещенные в решетке, такие как элементы 812, 814, 816. Элементы 812, 814, 816 представляют собой квадраты, каждый из которых имеет разные структуры заполнения. Оставшиеся квадратные элементы решетки каждый имеет одну из этих структур заполнения, таким образом, что элементы 812, 814, 816 повторяют в последовательности для оптического кода 810. Конкретные используемые структуры, относительные пропорции, в которых элементы этих структур представлены в коде 810, или оба этих свойства обозначают конкретную информацию, кодированную в коде 810.
На фиг. 8В показана верхняя левая часть примерного оптического кода 820. Код 820 также содержит элементы, размещенные в решетке, такие как элементы 822, 824, 826. Эти элементы представляют собой квадраты, но они заполнены различными формами: элемент 822 содержит треугольник, элемент 824 содержит круг и элемент 826 содержит звезду. Остальные квадратные элементы решетки, каждый содержит одну из форм, такие, как элементы 822, 824, 826, повторяющиеся в последовательности на поверхности оптического кода 820. Конкретные используемые формы, относительные пропорции, в которых элементы с этими формами появляются в коде 820, или оба эти подхода, обозначают конкретную информацию, кодированную в коде 820.
На фиг. 9 показан примерный оптический код 900, в котором элементы (квадраты, заполненные цветом) размещены в решетке. Каждый из элементов в решетке представляет собой красный, зеленый или синий квадрат.(На штриховом чертеже на фиг. 9 каждый из цветов представлен разными структурами, как обозначено на фигуре.) В одном варианте осуществления элементы представляют собой квадрат приблизительно 0,2-0,3 см; другие размеры элемента также могут использоваться. Хотя в примере на фиг. 9 используются три разных цвета квадратов, в дополнительных вариантах осуществления может использоваться любое количество цветов (например, два цвета, четыре цвета, пять цветов, шесть цветов или другое количество цветов), любое количество структур заполнения, или оба эти подхода. В общем, использование меньшего количества цветов или структур означает, что цвета или структуры могут быть более различимыми друг от друга, и, таким образом, более легко различимыми устройством оптического считывания. Однако использование большего количества цветов или структур увеличивает количество информации, которая может быть кодирована в оптическом коде.
Прямоугольник 910 представляет минимальную чувствительную область для кода 900. В этом случае прямоугольник 910 имеет размер приблизительно один элемент на три элемента. Эта площадь является достаточно большой для определения отношения красного, зеленого и синего квадратов в коде 900. Конечно, больших размеров чувствительные области также можно использовать. Например, может использоваться чувствительная область, имеющая размер три элемента на три элемента. В зависимости от варианта осуществления, отношение может быть определено на основе количества квадратов, или на основе площади поверхности, занимаемой квадратами.
В некоторых случаях размер минимальной чувствительной области, по меньшей мере, частично представляет собой функцию того, какое количество разных типов элементов доступно (например, в данном примере, каково количество разных цветов квадратов). Например, если код 900 может быть построен из квадратов пяти разных цветов или десяти разных цветов, тогда прямоугольник 910 должен быть слишком малым для определения отношения всех пяти цветов или всех десяти цветов. В общем, в то время как концепция минимальной чувствительной области может быть полезной при понимании раскрываемых технологий, устройство оптического считывания не должно знать или использовать минимальную чувствительную область конкретного оптического кода при декодировании этого кода. В конкретных вариантах осуществления устройство оптического считывания запрограммировано распознавать одно или больше свойств оптического кода и, на основе распознанных свойств и их размеров, определять размер изображения. Устройство считывания может затем масштабировать изображение, если необходимо. На основе размера изображения, устройство считывания также может определять минимальную чувствительную область для оптического кода.
Код 900 может использоваться в варианте осуществления, в котором отношение установленных цветов определяет значение, кодируемое в коде. В Таблице 1, представленной ниже, показан пример схемы кодирования. В таблице "R" обозначает красный, "G" обозначает зеленый, и "В" означает синий.
При применении схемы кодирования в таблице 1 для примера кода 900, можно видеть, что код 900 содержит отношение R:G:B 1:1:1. Таким образом, код 900 интерпретируется, как кодирование значения 0.
В конкретных вариантах осуществления, в зависимости от таких факторов, как размер решетки, количество цветов, используемых для элементов решетки, и структура, используемая при размещении элементов в решетке, оптический код появляется составленным из вертикальных или горизонтальных цветных полосок, вместо отдельных квадратных элементов.
В дополнительных вариациях, в соответствии с вариантом осуществления на фиг. 9, пространства решетки заняты другими цветными формами, чем разноцветные квадраты. Например, можно использовать прямоугольники, круги, овалы, треугольники, кресты, ромбы, триграммы или другие формы.
Со ссылкой на примеры на фиг. 8А, 8В и 9, описаны варианты осуществления, в которых элементы (например, формы, квадраты, заполненные структурой, квадраты, заполненные цветом) повторяются в заданном порядке в решетке. В дополнительных вариантах осуществления элементы в решетке не повторяются в каком-либо конкретном порядке. Например, элементы могут быть размещены в решетке в случайном порядке, или в псевдослучайном порядке. Однако, по меньшей мере, в некоторых случаях, минимальная чувствительная область для изображений может быть меньшей, если элементы повторяются в данном порядке, поскольку это может помочь обеспечить то, что элементы будут распределены более равномерно в оптическом коде.
Примеры, показанные на фиг. 8А, 8В и 9, также описывают варианты осуществления, в которых заданный набор элементов повторяется вдоль рядов или вдоль столбцов в пределах решетки. Например, на фиг. 9 показана структура "красного квадрата, зеленого квадрата, синего квадрата", повторяющихся вдоль каждого ряда решетки. В дополнительных вариантах осуществления два или больше набора элементов повторяются ортогонально друг с другом в решетке. В одном примере решетка из разноцветных квадратов содержит первый набор элементов, "красный квадрат, зеленый квадрат, синий квадрат", и второй набор элементов, "черный круг, желтая звезда, градиент зеленого квадрата". Первый и второй наборы повторяются по решетке, первый и второй наборы расположены ортогонально друг с другом.
На фиг. 10 показан примерный вариант осуществления способа 1000, для генерирования оптического кода. Способ 1000 выполняется с помощью компьютера и может использоваться, в общем, для генерирования любых из вариантов осуществления оптического кода, описанных здесь. В действии 1010 способа компьютер принимает данные для кодирования оптического кода. Данные содержат, например, число, букву, слово или другую часть информации. В действии 1020, направленном на способ, компьютер генерирует изображение с множеством областей кодирования, каждая из областей содержит соответствующее представление данных. Другими словами, данные кодируют в каждой из областей кодирования таким образом, что, как описано выше, данные могут быть декодированы, используя любую из областей. В некоторых случаях оптический код передают пользователю в действии 1030 способа. Пользователь может затем представить код в устройство считывания кода.
На фиг. 11 показан примерный вариант осуществления другого способа 1100, для генерирования оптического кода. Так же как и способ 1000, способ 1100 выполняется с помощью компьютера, и может использоваться для генерирования любого из вариантов осуществления оптического кода, описанных здесь. В действии 1110 способа компьютер принимает данные для кодирования оптического кода. Данные содержат, например, число, букву, слово или другую часть информации.
В действии 1120 способа компьютер выбирает изображение из набора изображений кодирования. Изображения кодирования представляют собой изображения, которые можно использовать для представления данных. Например, изображение на фиг. 9, и другие изображения, которые описаны в связи с примером на фиг. 9, могут формировать набор изображений кодирования, из которых может быть выбрано изображение. Изображения на фиг. 4А-4С также могут сформировать такой набор. В некоторых случаях, выбранное изображение содержит, по меньшей мере, два элемента, которые представляют отношение, обозначающее кодированные данные. Например, оптический код 450 на фиг. 4С содержит малые треугольники и малые круги, которые представляют отношение. В качестве другого примера, на фиг. 9, красный, зеленый и синий квадраты представляют отношение. В других случаях присутствие определенных элементов (например, элементов определенного цвета или структуры) обозначает кодированные данные.
В некоторых вариантах осуществления изображение, выбранное в действии 1120 способа, формирует оптический код.
В некоторых вариантах осуществления, после выбора изображения, выбирают дополнительное изображение из набора изображений кодирования в действии ИЗО способа. Выбранные изображения комбинируют в действии 1140 способа для формирования оптического кода. Изображения фиг. 5 и 6 представляют собой примеры наборов изображений, из которых могут быть выбраны два изображения. На фиг. 7 показаны примеры комбинированных изображений, сформированных из изображений, показанных на фиг. 5 и 6.
Генерируется ли оптический код на основе комбинированных изображений или одного изображения, зависит от конкретного варианта осуществления. Во многих случаях, аналогичные или идентичные оптические коды могут генерироваться, используя одно или комбинированных изображения. Например, изображение на фиг. 9 можно генерировать путем комбинирования трех изображений, каждое из которых содержит наборы квадратов для соответствующего цвета. В качестве другого примера каждое изображение на фиг. 7 также может быть сохранено как единичное изображение, таким образом, что их не требуется генерировать из двух отдельных изображений при использовании.
Возвращаясь к фиг. 11, в некоторых случаях, оптический код передают пользователю в действии 1150 способа. Пользователь может затем представить код в устройство считывания кода.
На фиг. 12 показан примерный вариант осуществления способа 1200 для декодирования оптического кода. В действии 1210 способа устройство оптического считывания получает изображение, используя датчик изображения. Обычно изображение представляет собой, по меньшей мере, часть изображения, показанного на дисплее портативного электронного устройства. Однако, в некоторых вариантах осуществления, изображение находится на листе бумаги или на другой неэлектронной поверхности. Изображение содержит вариант осуществления любого из оптических кодов, раскрытых здесь. Таким образом, полученное в результате изображение содержит, по меньшей мере, одну область кодирования, и, возможно, множество областей кодирования. Заданная область кодирования может быть составлена из множества не смежных, меньших областей. В некоторых вариантах осуществления каждая из областей кодирования содержит, по меньшей мере, первый и второй элементы, отношение между элементами, представляющее общее кодированное значение данных. В других случаях присутствие конкретных элементов (например, элементов определенного цвета или структуры) обозначает кодированные данные.
В действии 1220 способа устройство оптического считывания обозначает первый и второй элементы в изображении. Это может быть выполнено, используя любой алгоритм компьютерного видения, например, алгоритмы из библиотеки компьютерного видения, такой как OpenCV.
В некоторых вариантах осуществления устройство считывания идентифицирует наибольшую область или области каждого цвета в изображении, возможно, используя функцию из библиотеки компьютерного видения. Такая технология может использоваться, например, с многоцветной решеткой на фиг. 9. После того как будет определена площадь каждого цвета, будет определено отношение площадей каждого цвета. На основе отношения определяют кодированное значение (например, используя справочную таблицу). Пример псевдокода для такого варианта осуществления (используя цвета) представлен ниже:
а = find_area (цвет = красный),
b = find_area (цвет = зеленый),
с = find_area (цвет = синий),
r = evaluate_ratio (а, b, с)
encoded_value - декодировать (r)
Другой пример псевдокода для такого варианта осуществления (используя формы) представлен ниже:
Num_shape_l = count (определить форму (крест))
Num_shape_2 = count (определить форму (квадрат))
r = evaluate_ratio (Num_shape_1, Num_shape_2)
encoded_value = decode (r)
В других вариантах осуществления устройство считывания идентифицирует определенные структуры или формы в оптическом коде. На основе таких структур или форм, представленных в коде, устройство считывания определяет кодированное значение. Пример псевдокода для такого варианта осуществления (используя структуру) представлен ниже:
а = find_pattern (точки)
b = fmd_pattern (линии)
с = find_pattern (перекрестная диагональная штриховка)
encoded_value = decode (istrue (a), istrue (b), istrue (с))
В вариантах осуществления, в которых используется отношение между элементами изображения, в действии 1230 способа, определяют отношение первого и второго элементов изображения. Отношение может быть основано на (1) соответствующих количествах первого и второго элементов, или может быть основано на (2) размерах соответствующих площадей поверхности, занимаемых этими элементами в изображении, или может быть основано на смеси (1) и (2). В вариантах осуществления, в которых не используется отношение, такое действие способа исключено.
В действии 1240 способа устройство оптического считывания определяет значение кодированных данных на основе определенного отношения или определенных элементов. Это может быть выполнено, используя, например, структуру данных, которая обозначает, какие значения данных соответствуют каким отношениям или каким парам элементов. Пример этого представлен в таблице 1, размещенной выше. В некоторых вариантах осуществления определенное значение данных передают в другой компонент или систему, такую как система управления доступом.
Хотя действия способа для способа 1200 описаны, как выполняемые устройством оптического считывания, по меньшей мере, некоторые из действий способа, вместо этого, могут быть выполнены модулем управления на основе компьютера.
На фиг. 13 показан примерный вариант осуществления портативного электронного устройства 1300, которое содержит дисплей 1310. В этом варианте осуществления оптический код 1320 представлен на дисплее 1310, окруженном рамкой 1330. Рамка 1330 помогает представлять границы кода 1320 таким образом, что устройство оптического считывания, менее вероятно, интерпретирует объекты за пределами кода 1320, как представляющие часть кода. На фиг. 13, рамка 1330 представлена в виде толстой, черной линии, но в различных вариантах осуществления, рамка 1330 может иметь другие формы и цвета.
В конкретных вариантах осуществления устройство оптического считывания считывает последовательность множества оптических кодов. Устройство считывания может просматривать эти коды на дисплее, например, смартфона или другого устройства, или на неэлектронной поверхности, такой как лист бумаги. Коды представляют один за другим, аналогично формату движущегося изображения или слайд-шоу. Коды могут быть представлены в виде замкнутой петли для обеспечения для устройства считывания множества возможностей их распознавания. Использование множества кодов может увеличивать количество информации, которую устройство оптического считывания считывает из устройства. В некоторых вариантах осуществления один из оптических кодов используется, как информация четности (например, как бит четности, или как изображение четности). В конкретных вариантах осуществления один из кодов обозначает начало последовательности кодов.
В некоторых случаях, когда портативное электронное устройство отображает последовательность оптических кодов, способность считывания отдельных кодов может быть улучшена путем отображения "нейтральной" рамки между каждым кодом. Нейтральная рамка представляет собой изображение, которое, в основном, используется для обозначения перехода между оптическими кодами. Например, нейтральная рамка может представлять собой рамку чистого цвета, такого как черный, серый, белый или другой цвет. Кроме того, коды могут быть представлены с более высокой скоростью, чем частота кадров устройства оптического считывания. Например, коды могут быть представлены с частотой в два раза больше, чем частота кадров устройства оптического считывания (например, устройство считывания имеет частоту кадров приблизительно 30 кадров/с, и изображения представляют с частотой приблизительно 60 кадров/с). Это позволяет исключить проблемы, которые возникают, когда дисплей электронного устройства и датчик изображения устройства оптического считывания не синхронизированы.
Портативное электронное устройство может отображать оптический код, используя различные программы, например: веб-браузер; программу мультимедийного просмотра (например, для графических изображений, фильмов или обоих из них); специализированное программное приложение; или другую программу.
По меньшей мере, в некоторых из раскрытых вариантов осуществления, свойства оптического кода достаточно выражены, чтобы их можно было различать глазом человека.
В любом из раскрытых вариантов осуществления структура заполнения может включать в себя цифры, буквы или другие знаки. В дополнительных вариантах осуществления изображение для формирования оптического кода содержит одну или больше полосок (прямых полосок, извилистых полосок, градиентных полосок), которые продолжаются через, по меньшей мере, часть изображения.
На фиг. 14 показана блок-схема примерного варианта осуществления компьютера 1400 (например, часть модуля управления системой, часть устройства оптического считывания, часть базы данных, часть портативного электронного устройства), который может использоваться с одной или больше технологиями, раскрытыми здесь. Компьютер 1400 содержит один или больше процессоров 1410. Процессор 1410 соединен с запоминающим устройством 1420, которое содержит один или больше считываемых компьютером носителей информации, на которых содержатся программные инструкции 1430. При выполнении процессором 1410, программные инструкции 1430 обеспечивают выполнение процессором 1410 одного или больше раскрытых здесь действий способа. Дополнительные варианты осуществления компьютера 1400 могут содержать один или больше дополнительных компонентов. Компьютер 1400 может быть соединен с одним или больше другими компьютерами или электронными устройствами через компонент ввода/вывода (не показан). По меньшей мере, в некоторых вариантах осуществления компьютер 1400 может быть подключен к другим компьютерам или электронным устройствам через сеть 1440. В конкретных вариантах осуществления компьютер 1400 работает с одним или больше другими компьютерами, которые расположены локально, удаленно, или используя оба подхода. Один или больше из раскрытых способов могут быть, таким образом, выполнены, используя распределенную вычислительную систему.
В общем, раскрытые варианты осуществления позволяют с помощью устройства оптического считывания считывать информацию из оптического кода, даже если часть кода является нечитаемой или недоступной. Таким образом, улучшается надежность устройства оптического считывания.
По меньшей мере, некоторые из раскрытых вариантов осуществления предоставляют оптические коды, которые могут быть считаны более быстро, чем другие оптические коды (например, коды QR).
Любой из раскрытых оптических кодов может быть считан, когда часть кода не видима для устройства оптического считывания.
В общем, раскрытые варианты осуществления позволяют считывать оптический код, в то время как код движется относительно устройства оптического считывания, что позволяет сделать обработку считывания кода более надежной. Например, код может быть считан, в то время, как он движется в направлении к или от устройства считывания. В другом примере, код может быть считан, в то время как он вращается относительно устройства считывания, или в то время как его удерживают под углом относительно устройства считывания. Эти аспекты позволяют улучшить надежность в ситуациях, когда пользователь не удерживает неподвижно оптический код во время считывания (например, если пользователь физически не способен выполнить это из-за возраста или физического недостатка).
Дополнительные варианты осуществления не требуют, чтобы датчик изображения был сфокусирован на поверхности, которая отображает оптический код. Таким образом, не требуется, чтобы датчик изображения выполнял фокусирование. Если датчик может выполнять фокусирование, тогда датчик все еще будет выполнен с возможностью адекватно считывать код перед тем, как будет выполнено фокусирование. Это может позволить считывать код быстрее, особенно, если поверхность, которая отображает код, движется во время считывания.
Раскрытые варианты осуществления, в общем, можно использовать с любым приложением, использующим оптический код. Один пример приложения представляет собой управление доступом. Гость может принимать оптический код от хозяина, оптический код, переданный по требованию хозяина. В некоторых случаях плата взимается по запросу. Смартфон гостя может принимать оптический код, возможно, через беспроводную сеть. Оптический код может содержать одиночное изображение или последовательность повторных изображений, меняющуюся со временем (например, фильм). Когда гость приближается к защищенным воротам здания хозяина, гость использует смартфон для отображения оптического кода, и гость представляет смартфон для устройства оптического считывания. Устройство считывания считывает код с телефона и передает этот код в систему управления доступом. После проверки кода, система управления доступом позволяет гостю войти в здание.
Хотя некоторые данные описаны здесь как сохраненные в таблице или в другой структуре данных, в общем, такие данные могут храниться в любом соответствующем типе структуры данных; структура, содержащая данные, может генерироваться, используя алгоритм.
Хотя некоторые варианты осуществления различных способов, раскрытых здесь, описаны, как содержащие определенное количество действий способа, дополнительные варианты осуществления данного способа могут содержать большее или меньшее количество действий способа, чем были в явном виде раскрыты здесь. В дополнительных вариантах осуществления действия способа выполняются в другом порядке, чем раскрыто здесь. В некоторых случаях, два или больше действия способа могут быть скомбинированы в одно действие способа. В некоторых случаях одно действие способа может быть подразделено на два или больше действия способа.
Используемый здесь термин "пользователь" может представлять собой человека, группу людей, машину или животное.
Если не только не указано другое, фраза, ссылающаяся на "по меньшей мере, один из" списка предметов, относится к любой комбинации таких предметов, включая в себя одиночные элементы. В качестве примера, "по меньшей мере, один из: a, b или с" предназначен для охвата: а; b; с; а и b; а и с; b и с; и a, b и в качестве другого примера "по меньшей мере, один из: а, b, и с" предназначен для охвата: а; b; с; а и b; а и с; b и с; и a, b и с.
После иллюстрации описанных принципов раскрытых технологий, для специалиста в данной области техники будет понятно, что раскрытые варианты осуществления могут быть модифицированы по компоновке и деталям, без выхода за пределы таких принципов. С учетом многих возможных вариантов осуществления, в которых можно применять принципы раскрытых технологий, следует понимать, что представленные варианты осуществления представляют собой только примеры технологий, и их не следует рассматривать, как ограничивающие объем изобретения. Скорее, объем изобретения определен следующей формулой изобретения и ее эквивалентами. Поэтому, я заявляю, как мое изобретение, все, что находится в пределах этой формулы изобретения.