Details

Title: Разработка программной системы реального времени для распознавания мультикоптеров: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта»
Creators: Котов Иван Валентинович
Scientific adviser: Молодяков Сергей Александрович
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint: Санкт-Петербург, 2022
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: глубокое обучение; распознавание в реальном времени; изображение; алгоритмы обработки изображений; компьютерное зрение; deep learning; real-time recognition; image; image processing algorithms; computer vision
Document type: Bachelor graduation qualification work
File type: PDF
Language: Russian
Level of education: Bachelor
Speciality code (FGOS): 09.03.04
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2022/vr/vr22-2711
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Record key: ru\spstu\vkr\19646

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

Данная работа посвящена разработке программной системы реального времени для распознавания мультикоптеров. Для решения данной задачи было решено создать систему компьютерного зрения с использованием технологии CUDA, CUDNN; библиотек OPENCV, OPENMP, darknet; нейросети с архитектурой YOLO и обучающей выборки с более 2000 изображений. В системе компьютерного зрения выполняются предобработка изображения - над входным изображением выполняются преобразование повышения контрастности (выравнивание гистограмм). После этого нейронная сеть выполняет обработку получившегося изображения, результатом является матрица, состоящая из координат прямоугольников и вероятностей нахождения в соответствующей области искомого объекта. Далее выполняется постобработка — отбрасываются результаты с вероятностью ниже пороговой, выводятся результаты. Весь код написан на C, C++. По ходе работы удалось создать систему компьютерного зрения, которая после 4000 итераций на обучающей выборке (одна итерация = 64 изображения) смогла достигнуть точности обнаружения более 80 %. Результаты данной работы, а именно архитектуру и файл весов можно использовать для создания систем обнаружения мультикоптеров в реальном времени в виде декстопного или мобильного приложения, облачного сервиса или встраиваемой система, а также эти веса можно использовать для дальнейшего обучения этой нейросети на другой выборке.

This work is devoted to the development of a real-time software system for recognizing multicopters. To solve this problem, it was decided to create a computer vision system using CUDA, CUDNN technology; OPENCV, OPENMP, darknet libraries; neural networks with YOLO architecture and training dataset with more than 2000 images. In the computer vision system, image preprocessing is performed - a contrast enhancement transformation (histogram equalization) is performed over the input image. After that, the neural network processes the resulting image, the result is a matrix consisting of the coordinates of the rectangles and the probabilities of finding the desired object in the corresponding area. Next, post-processing is performed - results with a probability below the threshold are discarded, the results are output. All the code is written in C, C++. In the course of the work, it was possible to create a computer vision system that, after 4,000 iterations on a training sample (one iteration = 64 images), was able to achieve detection accuracy of more than 80%. The results of this work, namely the architecture and the weights file, can be used to create multicopter detection systems in real time in the form of a desktop or mobile application, cloud service or embedded system, and these weights can also be used for further training of this neural network on another dataset.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
Internet Authorized users SPbPU Read Print Download
-> Internet Anonymous

Table of Contents

  • Содержание
  • Введение
    • ГЛАВА 1. Анализ алгоритмов предобработки и методов распознавания
      • 1.1. Методы предобработки изображений
        • 1.1.1. Изменение размера изображения
        • 1.1.2. Выравнивание гистограмм
        • 1.1.2. Пространственный фильтр повышения резкости. Фильтр Лапласа
        • 1.1.3. Сглаживание и повышение резкости
        • 1.1.4. Выбор методов предобработки
      • 1.2. Алгоритмы высокоуровневой обработки изображений
        • 1.2.1. Стабилизация видео
        • 1.2.2. Отслеживание объекта. Трекер
    • ГЛАВА 2. Анализ построения систем распознавания видео, работающих в реальном времени
      • 2.1. Свойства систем распознавания в реальном времени
        • 2.1.1. Частота кадров
        • 2.1.2. Точность обнаружения
      • 2.2. Построение систем распознавания в реальном времени
        • 2.2.1. Принцип «Реального времени».
        • 2.2.2. Описание структуры системы распознавания в реальном времени
      • 2.3. Постановка задачи работы
    • ГЛАВА 3. Рассмотрение системного и архитектурного уровней разработки, выбор метода распознавания
      • 3.1. Выбор архитектуры системы распознавания в реальном времени
        • 3.1.1. Входные данные
        • 3.1.2. Библиотека компьютерного зрения OpenCV
        • 3.1.3. Выходные данные
      • 3.2. Выбор метода распознавания
        • 3.2.1. Выбор метода распознавания в условиях решаемой задачи
        • 3.2.1. Выбор архитектуры нейронной сети
      • 3.3. Выбор фрэймворка для обучения
    • ГЛАВА 4. Программная реализация. Создание обучающей выборки
      • 4.1. Программная реализация.
        • 4.1.1. Написание программного кода.
      • 4.2. Создание обучающей выборки
    • ГЛАВА 5. Отладка, тестирование, анализ полученных результатов.
      • 5.1. Отладка
        • 5.1.1. Запуск обучения
        • 5.1.2. Изучение зависимости точности от количества итераций
      • 5.2. Тестирование
        • 5.2.1. Валидация на тестовой выборке
      • 5.3. Анализ полученных результатов
        • 5.3.1. Проверка результатов обучения на отдельных изображения
        • 5.3.2. Запуск распознавания в реальном времени
  • Заключение
  • Список использованных источников

Usage statistics

stat Access count: 1
Last 30 days: 0
Detailed usage statistics