- •Глава 1 Обзор штрихкодов как способов кодирования информации 9
- •Глава 2 Разработка, тестирование и отладка программного средства распознавания штрихкодов на основе каскадов Хаара 42
- •Глава 3 Экспериментальная проверка программного средства распознавания штрихкодов на основе каскадов Хаара 66
- •Введение
- •Обзор штрихкодов как способов кодирования информации
- •Характеристика ооо «k2it»
- •Структура ооо "к2Айти"
- •Обзор существующих видов штрихкодов.
- •Способы кодирования информации
- •Особенности штрихкода AztecCode
- •Использование штрихкода AztecCode
- •Особенности штрихкода DataMatrix
- •Печать 2d штрихкодов
- •Регулирование и стандартизация
- •Типы сканеров
- •Устройства для считывания двухмерных штрихкодов
- •Программное обеспечение для чтения штрихкодов
- •Постановка задачи дипломного проектирования
- •Математические методы решения задачи
- •Интегральное представление изображений
- •Признаки Хаара
- •Обучение классификатора в методе Виолы-Джонса
- •Применяемый в алгоритме бустинг и разработка AdaBoost
- •Каскадная модель разрабатываемого алгоритма
- •Выводы по главе
- •Разработка, тестирование и отладка программного средства распознавания штрихкодов на основе каскадов Хаара
- •Обоснование выбора аппаратных и программных средств разработки программного обеспечения
- •Операционная система Microsoft Windows
- •Интегрированная среда разработки Microsoft Visual Studio
- •Язык программирования Visual c#
- •Платформа .Net framework
- •Библиотека компьютерного зрения Opencv
- •Библиотека генерации и чтения штрихкодов zXing
- •Алгоритм обучения каскада Хаара для задачи распознавания штрихкодов товаров.
- •Состав и структура программного обеспечения
- •Описание процесса тестирования и отладки программного обеспечения
- •Инструкция пользователю
- •Выводы по главе
- •Экспериментальная проверка программного средства распознавания штрихкодов на основе каскадов Хаара
- •Описание результатов испытаний
- •Оценивание характеристик качества программного средства распознавания штрихкодов товаров
- •Обоснование экономической эффективности программного средства распознавания штрихкодов товаров на основе каскадов Хаара.
- •Выводы по главе
- •Заключение
- •Список литературы
- •Приложение Исходный код пс
Состав и структура программного обеспечения
Разрабатываемое программное средство является
Структура ПС представляет собой набор следующих подсистем:
- Подсистема обученного каскада Хаара;
Данная подсистема представляет собой совокупность xml-файлов, необходимых для обработки входных данных из разного рода источников.
- Подсистема распознавания штрихкода;
Данная подсистема представляет собой использование обученного каскада для осуществления распознавания.
Разработанное программное обеспечение состоит из набора исходных текстов на языке C# , вспомогательных файлов базы изображений и xml-файлов.
Рисунок 2.7 – Структура модуля RecognitionForm
Данный модуль описывает совокупность распознавания штрихкодов с подаваемых на вход изображений и видео
- RecognitionForm – класс, описывающий применение каскада для распознавания (Таблица 2.1)
Таблица 2.1 – Класс RecognitionForm
Название метода/свойства |
Описание метода/свойства |
OpenFileDialog_FileOk |
метод, использующий обученный каскад для распознавания |
BtnSelect_Click |
метод, позволяющий загрузить файл для распознавания |
ProcessFrame |
метод использующий обученный каскад для распознавания изображений с полученных кадров |
Run |
метод разделяющий видеопоток на кадры |
RecognForm |
метод запускающий камеру на ПК |
Использование xml-файлов происходит функциями библиотеки Opencv с помощью чего достигается информационная закрытость модуля. Такой подход к проектированию обеспечивает модульность и легкую модификацию системы. Модульность – важное свойство программного обеспечения, по мнению Г. Майерса использование модульность при проектировании системы обеспечивает интеллектуальную возможность создания сколь угодно сложной программы.
Описание процесса тестирования и отладки программного обеспечения
Тестирование программного обеспечения — процесс выявления разного рода ошибок в разрабатываемом программном средстве. Тестирование является одной из самых популярных методик повышения качества программных продуктов. Целью успешного тестирования является выявление как можно большего числа ошибок в структурной и функциональной составляющей программы. Если тестирование не нарушило работоспособность программы – тест считается не успешным. Тестирование является важным этапом жизненного цикла (ЖЦ) программного обеспечения и составляет до 40-60% от всего ЖЦ.
Тестированию программных средств присущи некоторые функциональные особенности, а именно:
- отсутствие эталона;
- сложность программного средства;
- принципиальная невозможность полного тестирования.
Полное тестирование не может быть выполнено никогда по ряду причин:
- количество всевозможных комбинаций входных данных слишком велико;
- количество всевозможных последовательностей выполнения кода слишком велико;
- пользовательский интерфейс обычно слишком сложен для полного тестирования.
Так как исчерпывающее тестирование принципиально невозможно, искусство тестирования заключается в выборе тестов, способных обеспечить максимальную вероятность обнаружения ошибок.
Результаты тестирования используются для оценки надежности разрабатываемого программного средства. Кроме того, результаты тестирования позволяют определить необходимые исправления.
Отладка программы - этап разработки компьютерной программы, в процессе которого происходят обнаружение, локализация и устранение явных ошибок в программе. Отладка является поиском и устранением уже обнаруженных ошибок, тогда как тестирование – это средство обнаружения ошибок. Отладку можно представить в виде многократного повторения трех процессов: тестирования, в результате которого может быть констатировано наличие в ПС ошибки, поиска места ошибки в программах и документации ПС и редактирования программ и документации с целью устранения обнаруженной ошибки.
Существуют следующие методы тестирования программных средств:
- статический;
- детерминированный;
- стохастический;
- тестирование в режиме реального времени.
Имеется два подхода к тестированию:
Структурное тестирование – метод «белого ящика», тестируется логика программы, внутренняя структура программы.
Функциональное тестирование – метод «черного ящика» - тестируется спецификация, т.е. вход/выход без учета знаний о ее структуре.
Различают две группы методов отладки:
- аналитические;
- экспериментальные.
Аналитические методы базируются на анализе выходных данных для тестовых прогонов. Экспериментальные методы базируются на использовании вспомогательных средств отладки (отладочные печати, трассировки), позволяющих уточнить характер поведения программы при тех или иных исходных данных.
Общая стратегия отладки — обратное прохождение от замеченного симптома ошибки к исходной аномалии (месту в программе, где ошибка совершена).
Тестирование разработанного программного средства проводилось под операционной системой Microsoft Windows 7. Для поиска и локализации ошибок использовался внутренний отладчик среды разработки Microsoft Visual Studio 2012. Ошибки, которые были обнаружены и устранены в процессе тестирования и опытной эксплуатации представлены в таблице Таблица 2 .2
Таблица 2.2 – Основные ошибки, обнаруженные в результате тестирования ПС
№ |
Описание |
Условия возникновения |
1 |
parseError Done |
Недостаток изображений для создания вектор-файла, вызванный параметром по умолчанию. |
2 |
parseError Done |
Неверное значение имени файла в файле-описании |
3 |
Прекращено работа программы opencv_traincascade |
При попытке использования шаблона чересчур большого для возможного обучения |
4 |
NullReferenceException |
При закрытии экрана ноутбука |
5 |
Image reader can not be created. |
Неверный путь к вектор-файлу |
