Введение
1 Анализ предметной области 5
1.1 Методы обучения машинному зрению 5
1.2 Методы обработки изображений 6
1.3 Методы распознавания изображений 8
1.4 Анализ существующего программного обеспечения 10
1.4.1 Самообучаемая программа IDE-LME от Disney Research для
распознавания образов 10
1.4.2 Система распознавания объектов на фотографии Google Lens 11
1.4.3 Распознавание текста 13
1.4.4 Распознавание лиц 15
1.5 Выводы 17
2 Проектирование программного обеспечения 19
2.1 Постановка задачи 19
2.2 Инструментальные средства разработки 19
2.3 Логическая структура 20
2.4 Архитектура программного обеспечения 22
3 Описание работы программного обеспечения 23
3.1 Используемые классы и методы 23
3.2 Функционал программного обеспечения 30
3.3 Алгоритм работы программы 30
3.4 Работа с программным обеспечением 36
ЗАКЛЮЧЕНИЕ 41
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 42
С развитием вычислительной техники всё большая часть задач стремится быть автоматизированной, упрощенной. Стремление к повышению быстроты, точности, качества решения проблем и является основным толчком к развитию информационных технологий и вычислительной техники. Автоматизировать механический труд человека (упаковка, сборка деталей, рассылка e-mail и т.д.) уже удалось в большой мере, сейчас становится всё более востребованным разработка различных аналитических, обучающихся, принимающих решение систем. И один из больших разделов этой области: распознавание объектов и машинное зрение. Это очень объемный и интересный раздел, реализация которого может быть применена в разных областях.
Исходя из этого была поставлена цель выпускной квалификационной работы: разработка программного обеспечения для распознавания объектов на изображении.
Требуется создание программного обеспечения, использование которого позволит обучать распознаванию и классифицировать объекты, считанные с изображения.
Для достижения цели ставятся следующие задачи:
- исследовать методы обучения машинному зрению, обработки и распознавания изображений;
- определить используемые алгоритмы;
- исследовать существующие аналоги;
- определить требования к разрабатываемому программному обеспечению;
- определить инструментальные средства разработки;
- разработать основные сущности программного обеспечения;
- разработать программное обеспечение.
В результате выпускной квалификационной работы было реализовано программное обеспечение для распознавания объектов на изображении, изучены методы обработки и распознавания изображений, алгоритмы обучения системы, изучения языка программирования C# и использование библиотеки OpenCvSharp. Все задачи ВКР выполнены. Приложение соответствует требованиям и готово для установки на устройства пользователей.
В дальнейшем возможно расширить функционал программного обеспечения следующими функциями:
- Организация базы данных для хранения классов объектов, обученных компонентов RTrees, тренировочных данных и реакций;
- Возможность выбора алгоритмов обучения, распознавания, классификации объекта и сравнения их точности;
- Алгоритм и визуализация распознавания положения объекта на изображении;
- Ввод пользователем положения объекта на изображении.
В ходе выполнения получены знания о методах распознавания объектов, способах обучения машинному зрению, алгоритмах классификации и принятия решений. Также получен опыт работы с подключением сторонних библиотек в среду Visual Studio 2017, в частности взаимодействие с библиотекой OpenCvSharp, классы и методы которой активно использовались при разработке программного обеспечения.