- •Глава 1 Обзор штрихкодов как способов кодирования информации 9
- •Глава 2 Разработка, тестирование и отладка программного средства распознавания штрихкодов на основе каскадов Хаара 42
- •Глава 3 Экспериментальная проверка программного средства распознавания штрихкодов на основе каскадов Хаара 66
- •Введение
- •Обзор штрихкодов как способов кодирования информации
- •Характеристика ооо «k2it»
- •Структура ооо "к2Айти"
- •Обзор существующих видов штрихкодов.
- •Способы кодирования информации
- •Особенности штрихкода AztecCode
- •Использование штрихкода AztecCode
- •Особенности штрихкода DataMatrix
- •Печать 2d штрихкодов
- •Регулирование и стандартизация
- •Типы сканеров
- •Устройства для считывания двухмерных штрихкодов
- •Программное обеспечение для чтения штрихкодов
- •Постановка задачи дипломного проектирования
- •Математические методы решения задачи
- •Интегральное представление изображений
- •Признаки Хаара
- •Обучение классификатора в методе Виолы-Джонса
- •Применяемый в алгоритме бустинг и разработка AdaBoost
- •Каскадная модель разрабатываемого алгоритма
- •Выводы по главе
- •Разработка, тестирование и отладка программного средства распознавания штрихкодов на основе каскадов Хаара
- •Обоснование выбора аппаратных и программных средств разработки программного обеспечения
- •Операционная система Microsoft Windows
- •Интегрированная среда разработки Microsoft Visual Studio
- •Язык программирования Visual c#
- •Платформа .Net framework
- •Библиотека компьютерного зрения Opencv
- •Библиотека генерации и чтения штрихкодов zXing
- •Алгоритм обучения каскада Хаара для задачи распознавания штрихкодов товаров.
- •Состав и структура программного обеспечения
- •Описание процесса тестирования и отладки программного обеспечения
- •Инструкция пользователю
- •Выводы по главе
- •Экспериментальная проверка программного средства распознавания штрихкодов на основе каскадов Хаара
- •Описание результатов испытаний
- •Оценивание характеристик качества программного средства распознавания штрихкодов товаров
- •Обоснование экономической эффективности программного средства распознавания штрихкодов товаров на основе каскадов Хаара.
- •Выводы по главе
- •Заключение
- •Список литературы
- •Приложение Исходный код пс
Библиотека компьютерного зрения Opencv
OpenCV (Open Source Computer Vision Library) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом.
Библиотека написана на C/C++, имеет открытый исходный код, и включает более 1000 функций и алгоритмов. Она разрабатывается c 1998 г., сначала в компании Интел, теперь в Itseez при активном участии сообщества. О высокой популярности библиотеки свидетельствует количество загрузок, их более 6000000 (без учета svn/git трафика).
OpenCV является самой большой библиотекой по широте тематики по сравнению с такими известными библиотеками как Halcon и libmv .
Библиотека распространяется по лицензии BSD, что означает, что ее можно свободно и бесплатно использовать как в открытых проектах с открытым кодом, так и в закрытых, коммерческих проектах. Библиотеку не обязательно копировать целиком в свой проект, можно использовать лишь необходимые функции. Единственное требование лицензии – наличие в сопровождающих материалах копии лицензии OpenCV.
Из-за лицензии BSD библиотека используется многими компаниями, организациями, университетами, например, NVidia, Willow Garage, Intel, Google, Stanford University. Компании NVidia и WillowGarage частично спонсируют ее разработку.
Вполне возможно, что не все компании, использующие OpenCV, афишируют это. Приведем небольшой перечень известных авторам проектов, в которых используется OpenCV:
- Система зрения робота PR2, разработанного компанией WillowGarage. Проект PR2 нацелен на решение сложной задачи – создание платформы для персональной робототехники;
- Аудио-визуальная инсталляция в Музее Современного Искусства (Сан-Франциско);
- Контроль качества монет, изготавливаемых Центробанком Китая.
- Курсы компьютерного зрения в Стэнфорде;
- Панорамы улиц в картах Google.
Библиотека обладает многомерной архитектурой, и состоит из 16 модулей, в ней реализованы около тысячи алгоритмов. Функциональность доступна на разных языках: C, C++, Python, CUDA, Java; поддерживаются основные операционные системы: MS Windows, Linux, Mac, Android, iOS. Есть возможность использования сторонних библиотек, например, для работы с устройством Kinect (OpenNI), разработки параллельных программ (TBB).
Проект использует систему непрерывной интеграции. Основные модули библиотеки можно отнести к 4 группам (разделам):
- Модули core, highgui, реализующие базовую функциональность (базовые структуры, математические функции, генераторы случайных чисел, линейная алгебра, быстрое преобразование Фурье, ввод/вывод изображений и видео, ввод/вывод в форматах XML, YAML и др.);
- Модули imgproc, features2d для обработки изображений (фильтрация, геометрические преобразования, преобразование цветовых пространств, сегментация, обнаружение особых точек и ребер, контурный анализ и др);
- Модули video, objdetect, calib3d (калибровка камеры, анализ движения и отслеживание объектов, вычисление положения в пространстве, построение карты глубины, детектирование объектов, оптический поток);
- Модуль ml, реализующий алгоритмы машинного обучения (метод ближайших соседей, наивный байесовский классификатор, деревья решений, бустинг, градиентный бустинг деревьев решений, случайный лес, машина опорных векторов, нейронные сети и др.).
Важной особенностью является поддержка работы с xml-файлами. Результаты промежуточных вычислений можно сохранять в xml-файлах, а затем их прочитать, например, в другой программе, что облегчает разработку алгоритма по частям, работу над алгоритмом целой командой.
Заметим, что библиотека OpenCV реализует, как правило, только базовые операции, используемые в компьютерном зрении. Таким образом, ее можно рассматривать как в целом низкоуровневую библиотеку компьютерного зрения. Для решения серьезных задач необходимо на основе предоставленных библиотекой кирпичиков создавать свои сложные приложения.
Emgu CV является кроссплатформенной оболочкой .NET для библиотеки OpenCV. EmguCV позволяет с легкостью использовать библиотеки OpenCV (написанной на С/С++) в других языках программирования, например в Visual Basic.NET. EmguCV поддерживает также C#, Visual C++ и ряд других.
Выбор данной библиотеки был обусловлен тем, что она является одной из самых популярных и эффективных библиотек компьютерного зрения с возможностями кроссплатформенности и открытого кода.
