Приборы и средства промышленной автоматизации
Система машинного зрения на базе смарт-камеры Delta VIS100 позволяет эффективно решать задачу распознавания кодов с последующим их внесением в глобальную базу данных.
На сегодняшний день в России обязательной маркировке двухмерным кодом Data Matrix подлежит множество видов продукции — алкоголь, табачные изделия, лекарства, обувь, товары из натурального меха, молочная продукция, минеральная вода, парфюмерия, шины, фотоаппараты и т.д. При этом каждая единица товара маркируется индивидуальным кодом. Это позволяет обеспечить контроль за перемещением продукции от производителя к покупателю и её срока годности, защищает рынок и потребителя от фальсифицированного, некачественного и контрафактного товара, упрощает учет, складирование и логистику и т.д. К 2024 г. в России планируется расширить обязательную индивидуальную маркировку кодами Data Matrix на множество других категорий потребительских товаров. Кроме того, многие производители и компании используют QR-коды для маркировки товаров и сервисов.
Существуют разные способы нанесения маркировки на товары — лазерная печать, термотрансферный перенос, гравировка, наклейка этикеток и др. Наиболее удобный и быстрый для большинства производств — наклейка этикеток с 2D-кодами (QR или Data Matrix), отпечатанных типографским способом. При этом перед производителем продукции неизбежно возникают задачи контроля и целостности 2D-кода и его считывание (распознавание) с занесением в информационную систему предприятия, которая затем передает пакеты кодов в соответствующую глобальную базу данных — ЕГАИС, «Честный Знак» и др.
Эффективно решать задачи контроля 2D-кодов и их считывания без снижения производительности упаковочной линии позволяет система машинного зрения Delta на основе компактной смарт-камеры VIS100. Стационарные и ручные сканеры значительно ей проигрывают, поскольку не обладают требуемым для серийного производства быстродействием, имеют достаточно высокий процент ошибок считывания и требуют больших трудозатрат как при их внедрении, так и в процессе использования.
Камера и ПК в компактном корпусе
Смарт-камера VIS100 — самая миниатюрная из представленных сегодня на рынке, размером с обычную флешку. Это — весомое преимущество, поскольку дает возможность устанавливать камеру в любом месте производственной линии, даже труднодоступном.
В камере VIS100 установлен полноценный одноплатный промышленный компьютер, работающий под управлением двухъядерного процессора ARM Cortex A9 и ОС Linux. Также встроена программа для распознавания и считывания одномерных штрих-кодов и двумерных кодов QR и Data Matrix.
Основные преимущества смарт-камеры VIS100:
- Современная интегрированная система для высокоскоростной проверки продукции: камера и ПК в одном корпусе
- Встроенная операционная система Linux
- Простая интеграция с информационной системой предприятия
- Компактные размеры
- Программная настройка через веб-браузер для легкой и быстрой корректировки параметров
- Удобный и простой интерфейс для настройки
- Встроенная светодиодная подсветка, что часто избавляет от необходимости устанавливать дополнительное освещение
- Скорость съемки до 90 кадров в секунду
- Динамический диапазон CMOS-матрицы — 63 дБ
- Пыле- и влагозащищенный корпус (IP55)
- Ethernet-порт 10/100 Мбит/с
Распознавание практически с любого ракурса
Для решения задач автоматического считывания маркировочных кодов продукции на движущейся ленте конвейера упаковочной линии смарт-камера VIS100 подходит идеально. Благодаря своим техническим возможностям она способна распознавать и считывать 2D-коды, расположенные под углом к оптической оси камеры.
В условиях реального производства маркировочный код продукции, движущейся по конвейеру, всегда будет находиться под углом к оптической оси камеры. Бывают также ситуации, когда коды наносятся не на плоскую, а на округлую поверхность упаковки. В этих случаях задача распознавания кода усложняется.
Результаты проведенных в лаборатории нашей компании испытаний различных систем технического зрения показывают, что оптимальным решением для считывания кодов является смарт-камера Delta серии VIS100, которая способна уверенно распознавать 2D-коды класса Grade А (классификация по ИСО/МЭК 15415, отличное качество печати) при углах наклона камеры к плоскости кода от 20°до 160°, коды класса Grade B (хорошее качество печати) — от 45° до 135°. При этом неважно, как код ориентирован на плоскости относительно своей оси — VIS100 гарантированно распознает его при любом повороте. Время распознавания кодов Grade A и B не превышает 30 мс, кодов Grade C (плохая печать, нанесение кода на неровную поверхность) — до 150 мс. При превышении указанных значений углов наклона камеры процент считанных кодов может начать плавно снижаться.
В производственных условиях уровень освещенности цеха часто недостаточен для качественной фотосьемки обычной камерой. И в этом случае при использовании таких камер с другими системами машинного зрения возникает необходимость установки дополнительного источника света. Это удорожает систему и делает ее более громоздкой, что существенно ограничивает возможность ее применения в труднодоступных местах.
Смарт-камера VIS100 при своих компактных размерах уже оснащена встроенной светодиодной подсветкой. Во многих случаях ее мощности оказывается достаточно для качественного освещения зоны контроля и уверенного считывания кодов камерой.
Широкие возможности интеграции
Смарт-камера VIS100 имеет встроенные дискретные входы/выходы и коммуникационный порт Ethernet 10/100 Мбит/с.
К дискретному входу камеры можно подключить фотодатчик, который будет запускать процесс съемки и сканирования кода только лишь в тот момент, когда объект поступает в зону контроля. Это позволяет значительно сократить количество ошибок считывания и уменьшить время, затрачиваемое камерой на распознавание кодов.
VIS100 позволяет также решать и еще одну важнейшую задачу — удаление с конвейера продукции с дефектом кода, при котором он не считывается. Таким дефектом может быть, например, недостаточная контрастность печати, пропуск нескольких рядов символов, механическое повреждение наклейки и др.
Для реализации этой возможности к дискретному выходу камеры подключается устройство-отбраковщик. И если камера не смогла считать код, она выдает команду отбраковщику сбросить данный экземпляр продукции с конвейера.
Внимание! Поскольку дискретный выход VIS100 обладает определенной нагрузочной способностью, во избежание выхода камеры из строя необходимо обратить внимание на соответствие типа и характеристик входа подключаемого отбраковщика и при необходимости использовать соответствующие схемы сопряжения данных устройств. Детальнее см. документацию к VIS100.
Смарт-камеру VIS100 можно использовать также для слежения за соответствием нанесенных кодов типу продукции. Для этого необходимо занести в память камеры код GTIN той продукции, выпуск которой происходит в данный момент.
Веб-управление и удаленный контроль
Настройка и управление камерой VIS100 происходят через веб-интерфейс, при этом есть возможность установки прав доступа для различных пользователей. Такое решение позволяет оператору и технологу по локальной сети или через Wi-FI получать доступ к VIS100 со своего смартфона, планшета или любого переносного компьютера, оперативно проверять и корректировать ее работу.
VIS100, распознавая коды, ведет также статистику количества считанных и несчитанных кодов. Доступ к ней также возможен через веб-интерфейс. Эти данные помогают не только настроить систему считывания кодов в процессе ее внедрения, но и своевременно устранять различные неполадки в процессе ее промышленной эксплуатации.
Например, чтобы разобраться в причинах увеличения количества отбракованной продукции (нечитаемых кодов) оператор или технолог через веб-интерфейс могут подключиться к камере и визуально наблюдать выполняемые ею снимки. Возможно, изменилось позиционирование камеры или фотодатчика и часть кода не попадает в поле зрения камеры, или же загрязнилась линза объектива. В этих случаях необходимо физически устранить обнаруженные причины. А возможно — снизился уровень освещенности, и тогда можно удаленно скорректировать величину выдержки съёмки.
Ещё один мощный инструмент для распознавания кодов и одновременного решения других задач машинного зрения – программный пакет DIAVision VGR компании Delta Electronics. Он предназначен для построения систем технического зрения на базе традиционных персональных или промышленных компьютеров. Количество одновременно подключенных и обрабатываемых камер может достигать 6шт. При этом быстродействие таких систем значительно выше, чем у любых смарт-камер и ограничивается только лишь мощностью ПК и характеристиками используемых камер. Применение таких систем позволяет осуществлять считывание и контроль в высокоскоростном оборудовании, например, в типографских машинах.
30 августа 2021 г.
Что даёт сканирование QR-кодов? Как работать с чеками? / Дзен-мани
В соответствии со статьей 4 Федерального закона РФ 54-ФЗ онлайн кассы должны обеспечивать возможность печати на кассовом чеке QR-кода. Этот код содержит реквизиты кассового чека в том числе дату и общую сумму покупки.
Распознавание чеков доступно на территории России, Казахстана, Узбекистана и Черногории.
Как это работает по закону?
Фактически данные по каждому чеку хранятся на серверах налоговой службы (Россия) и ОФД (Казахстан), куда попадают после вашей покупки. Сразу после оплаты на кассе или по завершению рабочего дня магазин автоматически отсылает информацию о вашей покупке.
На руки при этом вы получаете чек, на котором есть QR-код с краткой информацией о покупке. Среди этой информации есть дата и время совершения покупки, общая сумма и реквизиты оператора фискальных данных (ОФД). Функция ОФД – обеспечить передачу данных о покупке (в том числе и содержимое чека) с кассового аппарата торговой точки в налоговую – по сути, это посредник между налоговой и кассовым аппаратом.
Как это работает в Дзен-мани?
Сканирование QR-кода в приложении Дзен-мани доступно, если в качестве основной валюты аккаунта установлен рубль РФ, тенге Казахстана или сум Узбекистана и действует премиум-подписка.
Чтобы просканировать QR-код с чека есть два варианта:
- В меню по кнопке с плюсом (в окне истории для Андроид или 3D touch на iOS)
- В окне создания/редактирования операций.
Сразу после сканирования кода, Дзен-мани записывает информацию о QR-коде в созданную вами операцию. Если операция уже была создана ранее, код прикрепится к ней.
Чтобы увидеть содержимое чека, нужно открыть операцию на просмотр и нажать на кнопку «Просмотреть чек». В этот момент Дзен-мани обращается к серверу налоговой (или ОФД), чтобы получить чек и показать его вам. Если чек получить не удалось, Дзен-мани покажет вам сообщение об ошибке.
Чтобы не запоминать, что нужно проверить доступен чек для открытия или нет, установите приложение налоговой, сканируйте чек там и настройке пуш-уведомления о доступности чека. Как только налоговая пришлёт вам пуш, что чек доступен, его можно будет открыть и в Дзен-мани.
Как только чек будет загружен в Дзен-мани хотя бы раз, дальше он будет открываться быстро без обращения к налоговой.
Почему QR-код не сканируется?
Если при сканировании чека на экране ничего не отображается (чёрный экран), нужно проверить не закрыт ли доступ к камере телефона для приложения Дзен-мани.
Если камера телефона наводится, но сканирования чека не происходит, первое что нужно сделать – попробовать просканировать чек официальным приложением налоговой службы «Проверка чеков»:
- Андроид – https://play.google.com/store/apps/details?id=ru.fns.billchecker
- iOS – https://itunes.apple.com/ru/app/проверка-кассового-чека-в-фнс-россии/id1169353005?mt=8
Если код не сканируется и в приложении налоговой, это верный признак того, что код не верен или повреждён. Любые артефакты, недостаток света или искажения рисунка могут помешать сканированию.
Почему чек не открывается для просмотра? Пишет «попробуйте позже».
Пока чек не будет доступен и загружен с сервера налоговой/ОФД, Дзен-мани не сможет вам его показать.
Даже если чек отображается на сайте ОФД (оператор фискальных данных), это не значит, что этот чек уже есть в базе налоговой службы РФ. Пока чек не будет в базе налоговой, Дзен-мани не сможет вам его показать.
Мы храним QR-код с чека, он никуда не денется. Просмотреть содержимое чека можно будет в любой момент после того, как он появится в налоговой и будет доступен для просмотра.
Даже если чек отображается в приложении «Проверка чеков», это не значит, что приложению Дзен-мани он становится автоматически доступен. Сервер налоговой искусственно ограничивает объём выдаваемых чеков. Если лимит на сегодня исчерпан, загрузить их из налоговой дальше можно будет на следующий день.
В рамках одного дня, даже если налоговая уже не отдаёт вам чек, хотя должна, можно пробовать открыть чек несколько раз подряд – каждый запрос использует новые свободные лимиты (их несколько).
Как разделить чек на несколько операций?
После того как чек был загружен и Дзен-мани показал его, можно разделить чек на несколько операций с разными категориями. Для этого в окне просмотра чека нужно выделить строки и распределить их по категориям.
После сохранения разделённого чека будет создано несколько разных операций с этим же чеком.
Как получить содержимое QR-кода, если чек не открывается?
Даже если чек не открывается, в окне просмотра чека, пока не вышло сообщение об ошибке загрузки, в правом верхнем углу есть кнопка для просмотра содержимого QR-кода в текстовом виде. Если нажать на неё, текст будет скопирован в буфер.
Локализация QR-кода — важный этап распознавания, которым пренебрегли | by Smart Engines
Чтение: 11 мин.·
10 января 2022 г.Распознавание QR-кода на изображении — хорошо известная проблема машинного зрения. Во-первых, объект исследования изначально разрабатывался как инструмент для более «комфортного» распознавания. Во-вторых, задача разбивается на несколько отдельных четких подзадач: локализация QR-кода, ориентация QR-кода и декодирование QR-кода. Получается, что отличные общедоступные библиотеки способны решить две последние задачи распознавания: ориентацию QR-кода и декодирование. Минус только в том, что для качественного декодирования такие библиотеки ожидают на входе четкое бинарное изображение QR-кода. С другой стороны, проблеме локализации QR-кода уделяется мало внимания.
На собственном опыте мы убедились, что чем точнее вы локализуете распознаваемый объект, тем проще будет выбрать необходимые инструменты предварительной обработки и выполнить само распознавание. Это означает, что если вы пытаетесь улучшить качество распознавания QR-кода в своем проекте, вам следует сначала обновить методы локализации QR-кода. Даже если впоследствии вам придется бинаризировать изображение, гораздо эффективнее (с точки зрения вычислений и качества) будет бинаризировать область со штрих-кодом, чем все изображение.
В этой статье мы расскажем, как можно улучшить качество локализации QR-кода с помощью классических методов обработки изображений, и поделимся цифрами, подтверждающими эффективность нашего алгоритма.
Мы расскажем об оригинальном методе локализации QR-кода, основанном на модифицированном фреймворке обнаружения объектов Виолы-Джонса.
Уверены, сегодня нет ни одного читателя Хабра, который бы не знал, что такое QR-код. Эти двухмерные штрих-коды буквально повсюду. Вполне естественно, что во всем мире есть масса инструментов, позволяющих достаточно эффективно добавлять QR-коды в свои проекты. Но дело в том, что эта эффективность напрямую зависит от качества используемых инструментов. И вот мы сталкиваемся с классической дилеммой: либо проблема решится (очень) хорошо, но будет (очень) дорого, либо будет решена бесплатно, но качество будет так себе. Можно ли доработать беззатратный вариант, чтобы проблема решалась хорошо? Если вам интересно, продолжайте читать!
Распознавание QR-кода на изображении — хорошо известная проблема машинного зрения. Во-первых, объект исследования изначально разрабатывался как инструмент для более «комфортного» распознавания. Во-вторых, задача разбивается на несколько отдельных четких подзадач: локализация QR-кода, ориентация QR-кода и декодирование QR-кода. Получается, что отличные общедоступные библиотеки способны решить две последние задачи распознавания: ориентацию QR-кода и декодирование. Минус только в том, что для качественного декодирования такие библиотеки ожидают на входе четкое бинарное изображение QR-кода. С другой стороны, проблеме локализации QR-кода уделяется мало внимания.
На собственном опыте мы убедились, что чем точнее вы локализуете распознаваемый объект, тем проще будет выбрать необходимые инструменты предварительной обработки и выполнить само распознавание. Это означает, что если вы пытаетесь улучшить качество распознавания QR-кода в своем проекте, вам следует сначала обновить методы локализации QR-кода. Даже если впоследствии вам придется бинаризировать изображение, гораздо эффективнее (с точки зрения вычислений и качества) будет бинаризировать область со штрих-кодом, чем все изображение.
В этой статье мы расскажем, как можно улучшить качество локализации QR-кода с помощью классических методов обработки изображений и поделимся цифрами, подтверждающими эффективность нашего алгоритма.
Мы расскажем об оригинальном методе локализации QR-кода, основанном на модифицированном фреймворке обнаружения объектов Виолы-Джонса.
В этом разделе мы упомянем основные характеристики QR-кода, которые используются для создания метода локализации, а также краткое описание оригинального метода обнаружения объектов Виолы-Джонса.
QR-код (аббревиатура от Quick Response Code) — двумерный штрих-код, разработанный в Японии в середине 90-х годов для обслуживания автомобильной промышленности. Благодаря быстрой читаемости и большей емкости хранения по сравнению со стандартными одномерными штрих-кодами, система QR-кодов стала популярной в различных областях по всему миру.
В отличие от стандартных одномерных штрих-кодов, которые, как правило, сканируются с помощью специализированного оборудования, QR-код обычно сканируется камерой. Структура QR-кода полностью определена стандартом ISO/IEC 18004. Чтобы построить устойчивый алгоритм распознавания для этих целей, QR-код имеет несколько опорных точек, образующих функциональный паттерн: три квадрата, расположенные по углам изображение QR-кода (они называются поисковыми шаблонами) и меньшие синхронизирующие квадраты по всему штрих-коду (они называются шаблонами выравнивания). Эти опорные точки позволяют нормализовать размер и ориентацию изображения.
Несмотря на то, что визуально все QR-коды выглядят одинаково, разные типы QR-кодов могут иметь различный состав своих элементов в зависимости от объема кодируемых данных. Кроме того, все большую популярность приобретают так называемые дизайнерские QR-коды. В них вместо некоторых дополнительных данных используются другие графические элементы (логотипы, эмблемы, знаки и т. д.), что гарантирует лучшее качество распознавания QR-кода. Все эти особенности QR-кода необходимо учитывать при разработке методов локализации и распознавания QR-кода.
Все и его собака уже писали о методе Виолы-Джонса здесь на Хабре. Даже мы сами делали это несколько раз (например, здесь, здесь и здесь). Тем не менее, считаем необходимым в нескольких словах остановиться на основных положениях этого метода.
Метод обнаружения объектов Виолы-Джонса был разработан для распознавания лиц на изображении в реальном времени. Этот фреймворк решает задачу обнаружения с помощью бинарной классификации для каждой точки изображения, т. е. каждая прямоугольная область, просматриваемая со всевозможными смещениями и во всех видах размеров, проверяется на наличие объекта с помощью предварительно обученного классификатора.
Платформа Виолы-Джонса использует прямоугольные элементы типа Хаара в качестве пространства экземпляра. Значение этих признаков представляет собой разницу между суммами значений яркости пикселей в пределах соседних прямоугольников. Для эффективного расчета значений признаков Хаара мы используем интегральные изображения, также называемые таблицей суммированных площадей в некоторой литературе. Платформа Виолы-Джонса связана с каждой функцией Хаара с помощью бинарного «слабого» классификатора h (x):X->{-1,+1} . Этот классификатор обычно представляется в виде дерева распознавания с одной ветвью:
, где θ и p — пороговое значение признака и четность классификатора соответственно. Следующим шагом является построение «сильного» классификатора как линейной комбинации «слабых» классификаторов, о которых мы упоминали ранее. Для этого мы можем использовать алгоритм машинного обучения AdaBoost. Высокая производительность фреймворка Виолы-Джонса обеспечивается за счет использования каскада «сильных» классификаторов, позволяющих находить «пустые» области изображения (не содержащие объектов) с малым количеством вычислений.
При построении подхода к локализации QR-кода мы руководствовались следующими особенностями задачи. Во-первых, разрабатываемый нами алгоритм должен обладать высокой производительностью, чтобы мы могли применять его в системах распознавания в реальном времени. Во-вторых, этот алгоритм должен быть устойчив к возможным искажениям штрих-кода на изображении. В-третьих, он должен учитывать любую существующую изменчивость QR-кода.
Как мы уже упоминали ранее, в качестве базового метода в нашей работе мы использовали инфраструктуру обнаружения объектов Виолы-Джонса. Этот метод зарекомендовал себя как эффективный при решении различных задач обнаружения жестких объектов, обеспечивая при этом высокую производительность. Однако мы не можем использовать фреймворк Виолы-Джонса в его оригинальной версии по следующим причинам:
- оригинальный метод Виолы-Джонса использует признаки Хаара, которые «подчеркивают» текстурные особенности объекта; в нашем случае QR-код состоит из черных и белых элементов, их распределение сильно варьируется от одного штрих-кода к другому.
- Оригинальный метод предназначен для обнаружения одинаковых объектов в заданной ориентации, что неприменимо в нашей ситуации.
Чтобы иметь возможность применить метод Виолы-Джонса для решения нашей задачи, мы будем использовать исходное семейство краевых функций, подобных Хаару, и каскадный классификатор, представленный в виде дерева решений. Первая модификация позволяет нам сосредоточиться на краевых характеристиках объекта, а не на его текстуре. Вторая модификация позволяет нам построить интегрированный классификатор, который сможет обнаруживать различные варианты объекта. Теперь поговорим подробнее о каждой модификации.
Мы использовали специальное семейство градиентных признаков Хаара для создания эффективного детектора QR-кода. Эти функции представляют собой прямоугольные функции типа Хаара, рассчитанные по карте направленных ребер, что делает их обобщающую способность намного сильнее.
Карта направленных ребер представляет собой изображение абсолютных значений градиента, в котором учитывается преобладающая ориентация градиента в точке (x,y), и может быть рассчитана как дискретизация наклона ребра на горизонтальную, вертикальную , +45° и -45° направления. Для построения детектора QR-кода использовались два типа карт направленных ребер: карта прямых ребер и карта диагональных ребер.
Предположим, у нас есть исходное изображение f(x,y). Затем мы можем вычислить аппроксимацию производной по горизонтали и вертикали с помощью оператора Собеля:
Кроме того, используя g_x и g_y, мы можем вычислить направление градиента для каждой точки изображения :
Карта прямых ребер состоит в основном из горизонтальных и вертикальных ребер и рассчитывается по следующей формуле:
Карта диагональных ребер состоит преимущественно из ребер по диагоналям и рассчитывается по следующей формуле:
Прямоугольные признаки Хаара рассчитываются по построенной карте направленных ребер (диагональных или прямых). В отличие от классических признаков Хаара, эти краевые признаки хорошо обобщают объекты с большим количеством рёбер.
Рис. Иллюстрация карты с направленными ребрами: а) исходное изображение QR-кода, б) карта прямых линий, в) повернутое изображение QR-кода, г) карта диагональных ребер повернутого QR-кода.
Дерево решений сильных классификаторов представлено в виде бинарного дерева решений: каждый узел является сильным классификатором, его правые ветви — это подокна, предположительно содержащие объект, а его левые ветви — те, которые не были распознаны как объект . Окончательный ответ представлен только в листах. Классический каскадный классификатор, который был описан в первоначальном исследовании Виолы и Джонса, представляет собой классификатор в виде дерева решений только с одним «положительным» выходом (листом) и множеством «отрицательных» выходов.
Из исследования видно, что любой путь от корня к низшему узлу древовидного классификатора решений можно представить как каскад, где некоторые сильные классификаторы имеют на входе инвертированный ответ. Следовательно, мы можем построить алгоритм обучения для древовидного классификатора решений, который использует процедуру обучения классического каскадного классификатора для обучения отдельных путей.
Древовидный классификатор решений позволяет обучать более эффективные (с точки зрения отзыва) классификаторы для переменных объектов по сравнению с классическими каскадными классификаторами.
В экспериментальных целях мы подготовили набор штрих-кодов, состоящий из 264 изображений, которые мы будем использовать для оценки эффективности нашего алгоритма. Физический размер изображений составлял около 1 МП. На каждом изображении присутствовал только один QR-код произвольной ориентации, размер штрих-кода составлял не менее 10% площади изображения. Ниже приведены некоторые примеры изображений из этого набора.
Подготовленный набор данных изображений был разделен на обучающие изображения и тестовые изображения. Там было 88 обучающих изображений и 176 тестовых изображений.
Обучающие изображения использовались как для положительных примеров, так и для отрицательных. Так как изначально положительных примеров было гораздо меньше, мы внедрили методы аугментации данных. Например, мы использовали вращение вокруг центра штрих-кода с шагом 1⁵⁰. После аугментации количество положительных примеров составило 2088.
На одних и тех же положительных и отрицательных примерах мы обучили три детектора QR-кода: классический каскадный классификатор со стандартными функциями Хаара, классический каскадный классификатор с краевыми функциями Хаара и дерево решений -подобный классификатор с краевыми функциями Хаара. Первый каскадный классификатор состоял из 12 уровней и всего 58 признаков. Второй каскадный классификатор состоял из 8 уровней и всего 39функции. Обученный древовидный классификатор решений состоял из 39 пиков, всего 110 признаков, а максимальный путь от корня к листу составлял 9. Вот пример обученного древовидного классификатора решений ниже.
Для оценки качества построенных детекторов QR-кода использовался модуль декодирования штрих-кода из открытой библиотеки компьютерного зрения OpenCV. Используя тестовую выборку (которая, как мы упоминали ранее, состояла из 176 изображений), мы запускали модуль декодирования без предварительной обработки, а также после предварительного поиска QR-кода с помощью обученных детекторов. Приводим результаты декодирования штрих-кода ниже:
№Название экспериментаКоличество декодированных изображений Качество декодирования1Только OpenCV10459,09%2VJ (функции оттенков серого, каскадный классификатор) + OpenCV10559,66%3VJ (функции краев, классификатор каскада) + OpenCV12369,89%4VJ (функции краев, классификатор дерева) + OpenCV13677,27 %
Из таблицы видно, что предварительная локализация QR-кода описанным способом позволяет значительно улучшить качество декодирования штрих-кода (количество ошибок декодирования уменьшилось на 44%). Кроме того, результаты показывают, что использование оригинальной структуры Виолы-Джонса (вместе со стандартными функциями Хаара и каскадным классификатором) неэффективно для решения проблемы локализации QR-кода.
Теперь давайте посмотрим, насколько точен каждый классификатор при обнаружении QR-кода. На изображении слева показаны результаты декодирования одного и того же штрих-кода с использованием классического каскадного классификатора со стандартными функциями Хаара, классического каскадного классификатора с краевыми функциями и древовидного классификатора с краевыми функциями. Мы видим, что древовидный классификатор обеспечивает наилучшую точность локализации QR-кода за счет учета вариативности QR-кода.
В настоящее время QR-коды используются в самых разных сферах жизни: в рекламной индустрии для кодирования URL-адресов, в госсекторе для предоставления электронных услуг и т.д. Хотя задачи сканирования QR-кодов сегодня чрезвычайно распространены, существующие библиотеки с открытым исходным кодом фокусируются в первую очередь на декодировании QR-кода и пренебрегают проблемой локализации. Честно говоря, настоящая цель этой статьи заключалась не столько в описании эффективного метода локализации QR-кода, сколько в попытке показать вам, уважаемый читатель, как с помощью бесплатных библиотек можно довести почти до промышленного уровня научное мышление и системный анализ, а также знания о том, как использовать классические инструменты цифровой обработки изображений.
Подробнее о сканере штрих-кода
Сканирование штрих-кода
Smart Code Engine
#qrcode #barcode #ai #barcodescanner #qrcodescanner #scanbarcode
Распознавание QR-кода на iOS 11 — Tech Talks — Videos 9000 1
Больше видео
iOS 11 предоставляет встроенную поддержку для обнаружения и обработки QR-кодов. Узнайте о поддерживаемых типах QR-кодов, о том, как каждый тип обрабатывается встроенными приложениями «Камера» и Safari, а также о том, как Universal Links может беспрепятственно направлять пользователей в ваше приложение при сканировании QR-кодов.
Скачать
Добро пожаловать в это видео о распознавании QR-кода в iOS 11.
Код быстрого ответа — это тип двумерного штрих-кода, используемый для встраивания информации, например URL-адресов.
В iOS 11 мы добавили системную поддержку для автоматического обнаружения QR-кодов как в приложении «Камера», так и в Safari. Во-первых, давайте посмотрим на камеру.
Камера автоматически сканирует QR-коды в режимах Фото и Квадрат. Это работает даже с экрана блокировки. Сказав Siri отсканировать QR-код, вы также перейдете в камеру.
Вот как это работает. Просто наведите камеру на QR-код. Появится уведомление с описанием действия, которое вы можете выполнить.
При нажатии на уведомление будет выполнено действие, в данном случае переход на сайт apple.com. Это так просто.
iOS поддерживает множество типов данных для QR-кодов. Далее я подробно рассмотрю каждый тип. Не стесняйтесь брать свое устройство iOS и сканировать эти коды. Вот пример QR-кода местоположения, в котором используется геосхема, позволяющая кодировать точку на Земле. Нажав на уведомление, вы попадете в приложение «Карты» с булавкой, опущенной в этом месте.
Вы можете сделать то же самое с URL-адресом Apple Maps, что дает вам больше гибкости в описании местоположения. Например, таким образом можно указать фактический адрес.
Для QR-кодов текстовых сообщений можно закодировать SMS URI. Нажав на уведомление, вы попадете в окно создания сообщения для этого номера телефона в приложении «Сообщения».
Формат SMSTO также поддерживается для описания действия текстового сообщения. Этот формат позволяет предварительно заполнить содержимое текстового сообщения.
Для адресов электронной почты вы можете просто закодировать адрес напрямую. Но чтобы убедиться, что он обрабатывается как адрес электронной почты, рекомендуется создать для него URI mailto. Нажав на это уведомление, вы попадете в окно нового сообщения в Mail с предварительно заполненным адресом электронной почты получателя.
Аналогично для номеров телефонов следует использовать URI tel, чтобы убедиться, что он правильно распознается как номер телефона. Нажатие на уведомление инициирует вызов на этот номер в приложении «Телефон».
Для контактных QR-кодов iOS поддерживает формат vCard. Эти коды могут быть полезны на визитных карточках. При нажатии на это уведомление отображается предварительный просмотр карточки контакта с вариантами сохранения в списке контактов. Вы также можете закодировать контактную информацию в формате MeCard, который обычно менее подробен, чем формат vCard.
iOS поддерживает QR-коды событий, закодированные в формате iCalendar. При нажатии на это уведомление событие добавляется в ваш календарь и показывает сведения о событии.
Наконец, iOS поддерживает QR-коды, содержащие информацию о конфигурации Wi-Fi, такую как тип аутентификации, сетевой SSID и пароль. Скрытые SSID не поддерживаются. Этот тип QR-кода удобен для быстрого подключения к сети Wi-Fi в интернет-кафе, например, где пользователю больше не нужно вводить всю информацию самостоятельно. Когда пользователь нажимает на баннер QR-кода Wi-Fi, ему будет предложено подключиться к сети Wi-Fi.
Я только что показал вам примеры QR-кодов, которые обрабатываются другими системными приложениями. Но как насчет вашего приложения? Как вы можете направить пользователя в ваше приложение после сканирования QR-кода? Вы можете поддерживать универсальные ссылки, чтобы ваши пользователи могли легко перенаправляться в установленное вами приложение при сканировании QR-кода, содержащего ссылку на ваш веб-сайт. Вот пример. Допустим, вы управляете как pizza.example.com, так и приложением PizzaFinder. Вы публикуете QR-код со ссылкой на ваш веб-сайт, чтобы пользователь мог получить к нему доступ с помощью быстрого сканирования. Но вы также хотели бы беспрепятственно направлять своих пользователей в приложение PizzaFinder, если оно установлено у них. Добавить поддержку универсальных ссылок очень просто. Во-первых, создайте файл ассоциации сайта-приложения-яблока, который вы разместите в корне вашего сервера или в подкаталоге .well-known, обслуживаемом через https. В этом файле вы указываете свой идентификатор приложения вместе с путями вашего веб-сайта, которые должны обрабатываться как универсальные ссылки. Значением ключа идентификатора приложения является идентификатор команды или префикс идентификатора приложения, за которым следует идентификатор пакета. Затем включите список доменов, которые ваше приложение должно обрабатывать, в праве «Связанные домены» вашего приложения. Чтобы сделать это в Xcode, откройте раздел «Связанные домены» на вкладке «Возможности» и добавьте запись для каждого домена, который поддерживает ваше приложение. Теперь, когда между веб-сайтом и приложением установлены универсальные ссылки, сканирование QR-кода с URL-адресом веб-сайта может привести пользователя непосредственно к вашему приложению. Вы даже можете настроить универсальные ссылки для ссылки на определенные области в вашем приложении. Если на устройстве не установлено приложение PizzaFinder, URL-адрес будет загружен в Safari. Вот почему важно предоставить ссылку App Store на ваше приложение с этой страницы, чтобы ваши пользователи могли легко установить ваше приложение для последующего сканирования QR-кода. Лучший способ сделать это — добавить смарт-баннер приложения. Это полезно, даже если вы интегрируете свой собственный сканер QR-кода в свое приложение, так как очень легко запустить камеру на вашем телефоне, даже с экрана блокировки. Теперь ваши пользователи могут быстро открывать опубликованные вами QR-коды без предварительного запуска вашего приложения. Чтобы добавить смарт-баннер приложения на свой веб-сайт, включите этот метатег в заголовок каждой страницы, на которой вы хотите разместить баннер. Вы можете найти свое приложение на странице iTunes Link Maker, чтобы получить идентификатор приложения. Теперь предположим, что со временем сайт pizza.example.com был расширен, чтобы люди могли публиковать истории о своих впечатлениях от пиццы. Для этой функции также было разработано отдельное приложение под названием PizzaStories. Вы также можете использовать универсальные ссылки, чтобы связать это приложение с веб-сайтом.
Чтобы настроить универсальную ссылку для PizzaStories, вам просто нужно добавить еще одну запись в файл ассоциации сайта-приложения-яблока с идентификатором пакета приложения. Вам также необходимо установить право доступа к ассоциированным доменам PizzaStories, как и в PizzaFinder. Теперь, когда для обоих приложений настроены универсальные ссылки, когда ваш пользователь впервые сканирует ваш QR-код и на устройстве установлены PizzaFinder и PizzaStories, он увидит уведомление о QR-коде приложения, подобное этому.
Когда пользователь нажимает на уведомление, появляется предупреждение с предложением выбрать приложение, в котором нужно открыть URL-адрес. Допустим, пользователь выбирает приложение PizzaStories. Их предпочтения будут сохранены. В следующем элементе, когда пользователь снова сканирует этот QR-код, предпочтительное приложение будет предложено в качестве приложения по умолчанию для открытия URL-адреса. Пользователь по-прежнему может изменить свое предпочтительное приложение с помощью 3D Touch или потянув уведомление. Помимо камеры, мы также добавили поддержку QR-кодов в Safari на iOS 11. Вот как это работает. Когда вы используете 3D Touch для предварительного просмотра изображения на веб-странице, Safari проверит изображение на наличие QR-кода и, если найдет его, добавит дополнительные действия в меню, связанные с содержимым кода.
Вы также можете долго нажимать на изображение QR-кода, и дополнительные действия меню появятся в контекстном меню.
Подводя итог, в этом видео мы показали вам, как ваши пользователи могут более легко сканировать QR-коды непосредственно из камеры и Safari. Применяя универсальные ссылки, ваши пользователи будут иметь более удобный интерфейс, перенаправляясь прямо в ваше приложение.