- •Глава 1 Обзор штрихкодов как способов кодирования информации 9
- •Глава 2 Разработка, тестирование и отладка программного средства распознавания штрихкодов на основе каскадов Хаара 42
- •Глава 3 Экспериментальная проверка программного средства распознавания штрихкодов на основе каскадов Хаара 66
- •Введение
- •Обзор штрихкодов как способов кодирования информации
- •Характеристика ооо «k2it»
- •Структура ооо "к2Айти"
- •Обзор существующих видов штрихкодов.
- •Способы кодирования информации
- •Особенности штрихкода AztecCode
- •Использование штрихкода AztecCode
- •Особенности штрихкода DataMatrix
- •Печать 2d штрихкодов
- •Регулирование и стандартизация
- •Типы сканеров
- •Устройства для считывания двухмерных штрихкодов
- •Программное обеспечение для чтения штрихкодов
- •Постановка задачи дипломного проектирования
- •Математические методы решения задачи
- •Интегральное представление изображений
- •Признаки Хаара
- •Обучение классификатора в методе Виолы-Джонса
- •Применяемый в алгоритме бустинг и разработка AdaBoost
- •Каскадная модель разрабатываемого алгоритма
- •Выводы по главе
- •Разработка, тестирование и отладка программного средства распознавания штрихкодов на основе каскадов Хаара
- •Обоснование выбора аппаратных и программных средств разработки программного обеспечения
- •Операционная система Microsoft Windows
- •Интегрированная среда разработки Microsoft Visual Studio
- •Язык программирования Visual c#
- •Платформа .Net framework
- •Библиотека компьютерного зрения Opencv
- •Библиотека генерации и чтения штрихкодов zXing
- •Алгоритм обучения каскада Хаара для задачи распознавания штрихкодов товаров.
- •Состав и структура программного обеспечения
- •Описание процесса тестирования и отладки программного обеспечения
- •Инструкция пользователю
- •Выводы по главе
- •Экспериментальная проверка программного средства распознавания штрихкодов на основе каскадов Хаара
- •Описание результатов испытаний
- •Оценивание характеристик качества программного средства распознавания штрихкодов товаров
- •Обоснование экономической эффективности программного средства распознавания штрихкодов товаров на основе каскадов Хаара.
- •Выводы по главе
- •Заключение
- •Список литературы
- •Приложение Исходный код пс
Устройства для считывания двухмерных штрихкодов
Считыватели 2D штрихкодов, в отличие от обыкновенных сканеров штрихкода, сначала улавливают их изображение, затем анализируют полученную картинку, и лишь затем извлекают из нее и декодируют штрихкод (рисунок 1.18). Устройства, применяющие анализ видеоизображения, необходимы для эффективного считывания матричных кодов, однако могут читать и обычные штрихкоды. Технология анализа видеоизображения открывает возможности для чтения подписей, оптического распознавания символов и т.п.
Рисунок 1.18. Считыватели 2D штрихкодов
Программное обеспечение для чтения штрихкодов
Несмотря на ряд существующих считывателей штрихкодов, в некоторых случаях удобнее использовать аналогичное программное обеспечение совместимое с персональными компьютерами или мобильными платформами. Достаточно известными являются программы Scan для устройств фирмы Appleи BarcodeScanner для устройств с операционной системой Android (Рисунок. 1.19). [20,21]
Рисунок 1.19. Интерфейсы программ Scan и BarcodeScanner
Достоинствами этих приложений являются скорость загрузки мобильность.
Недостатками являются невозможность распознавание некоторых QR-кодов, а также отсутствие открытого кода, и как следствие затруднение оптимизации распознавания и создание программного обеспечения с дополнительными функциями обработки распознанного штрихкода.
После изучения существующих разработок был сделан вывод о необходимости создания программного обеспечения с открытым исходным кодом для распознавания штрихкодов на основе каскадов Хаара.
Постановка задачи дипломного проектирования
Целью выпускной квалификационной работы является разработка программного обеспечения по распознаванию штрихкодов товаров, на основе каскадов Хаара. Наиболее подходящим для этой задачи технологией видится механизм каскадов Хаара. Данная разработка позволит упростить процесс распознавания штрихкода, сделать его доступнее, а так же облегчить процесс дальнейшей разработки программного обеспечения использующего распознавания как одной из стадий обработки информации.
Таким образом, требуется разработать программное обеспечение, реализующее следующие возможности:
- обучение каскада Хаара по предоставленной выборке положительных и отрицательных примеров;
- предоставление обученного каскада для использования его в задачах распознавания штрихкодов;
- детектирование и распознавание штрихкода по вводимому изображения с помощью обученного каскада;
- распознавание штрихкода с видеопотока с помощью обученного каскада
- выдача пользователю полученной информации.
Программное обеспечение должно обладать простым интуитивно понятным и дружественным интерфейсом, защищено от несанкционируемого доступа.
Математические методы решения задачи
Частью механизма применения штрихкодов является создания соответствующего оборудования и программного обеспечения для их распознавания.
Поставленная задача относится к задаче распознавания образов, для которой оптимальным видится в применении обученного каскада Хаара. Каскады Хаара основаны на методе Виолы-Джонса.
Основные принципы, на которых основан метод, таковы:
- используются изображения в интегральном представлении, что позволяет вычислять быстро необходимые объекты;
- используются признаки Хаара, с помощью которых происходит поиск нужного объекта;
- используется бустинг (от англ. boost – улучшение, усиление) для выбора наиболее подходящих признаков для искомого объекта на данной части изображения;
- все признаки поступают на вход классификатора, который даёт результат «верно» либо «ложь»;
- используются каскады признаков для быстрого отбрасывания окон, где не найден искомый образ.
Обучение классификаторов идет очень медленно, но результаты поиска очень быстры, именно поэтому был выбран данный метод распознавания кодов на изображении. Виола-Джонс является одним из лучших по соотношению показателей эффективность распознавания/скорость работы. Также этот детектор обладает крайне низкой вероятностью ложного обнаружения. Алгоритм хорошо работает и под небольшим углом, примерно до 30 градусов. При угле наклона больше 30 градусов процент обнаружений резко падает.
Требуется подробный разбор принципов, на которых основан алгоритм Виолы-Джонса.
