Поисковые мероприятия БЛА. Диплом.Ворд. А. В. Сытин Р. Н. Поляков Орёл, 2020 г
Скачать 1.19 Mb.
|
4 Интеллектуальная программа распознавания объектов для беспилотного летательного аппарата Постановка задачи Для выполнения задачи используется dataset «sdd lacmus version» с изображениями, которые были получены с БПЛА. Совместно со снимками в dataset присутствует файл с разметкой для обучения, который указывает на положение людей на снимках. Данный dataset представлен разработчиками кроссплатформенного приложения Lacmus, которое помогает найти потерявшихся людей с помощью компьютерного зрения и нейронных сетей. Для макета программного обеспечения было взято 1133 изображений для обучения и 48 изображений для тестирования. На рисунке 4.1 представлен пример такого снимка. Рисунок 4.1 - Пример снимка из dataset «sdd lacmus version» Обучение нейросети будет осуществляться на фрагментах изображений размером 66х83. Пример фрагмента изображения представлен на рисунке 4.2. Рисунок 4.2 - Пример фрагмента изображения для обучения ИНС Обучение искусственной нейронной сети (ИНС) будет производиться с помощью модуля nnstart программного комплекса Matlab (временная лицензия для студентов). Программа для подготовки данных Программа для подготовки данных на основе dataset фотографий и файла с разметкой местоположения людей на фото осуществляет подготовку данных для обучения ИНС. На выходе программа сохраняет mat файл с матрицами inputs (входные данные для обучения) и targets (данные разметки). Каждое изображение dataset разбивается на сэмплы (sample) размером 50x50 пикселей и разворачиваются в вектор-строку. Для каждого сэмпла определяется наличие или отсутствие на нем людей. На рисунке 4.3 представлены примеры сэплов из фрагмента изображения и соответствующая для них разметка. Листинг кода представлен в приложении В. Рисунок 4.3 - Примеры сэмплов для обучения prepare_data.m 2 303 байт - prepare_data.m English (United States) Программа для подготовки данных «prepare_data» имеет следующие атрибуты: Наименование исполняемого файла Размер исполняемого файла «Иконка» исполняемого файла Исходное имя файла Язык
Системные программные средства, используемые программой step.m, должны быть представлены локализованной версией операционной системы Windows 7/8/8.1/10. Также для функционирования программы prepare_data.m на ПК необходимо предустановленное программное обеспечение MatLab (версии не ниже 2013b). Программа MatLab должна быть установлена в каталог C:\Program Files\MATLAB\. Для установки данной программы необходимо скачать пробную версию и временную лицензию для студентов с сайта https://matlab.ru/education/student-trial, запустить установочный файл и следовать указаниям установщика. Исходным языком программирования для «prepare_data.m» является язык программирования среды MatLab. Программа «prepare_data.m» работает под управлением ОС Windows 7/8/8.1/10. Основной функцией программы «prepare_data.m» является вызов из каталога C:\Program Files\MATLAB\...\bin\ программы matlab.exe. Дополнительно программа step.m проверяет наличие по указанному пути (C:\Program Files\MATLAB\...\bin\) исполняемого модуля программы matlab.exe, в случае его отсутствия, выдается сообщение «Файл matlab.exe не найден, переустановите программу». Основная задача программы prepare_data - подготовка данных на основе файлов изображений для обучения ИНС. Программа «prepare_data.m» не имеет функциональных ограничений на применение. Программа «prepare_data.m» состоит из одной запускаемой формы и не имеет других составных частей. Программа «prepare_data.m» в ходе своей работы запускает программу «MatLab», поэтому для ее функционирования необходимо предустановленная в каталог «C:\Program Files\MATLAB\» программа matlab.exe (версии не ниже 2013b). Описание работы программы по блок-схеме, представленной на рисунках 4.4 и 4.5:
Начало к + 50<=1322 Цикл i_dir от 1 до кол-во директорий 4 Цикл i от 1 до кол-во изображений 7 нет нет Создание матриц inputs, targets, inputs_neg, targets_neg 2 Указание директорий с изображениями загрузка списка файлов в ЦсНг-ой 5 директории загрузка разметки изображений в 6 директории 19 j = j + 50; 8 Загрузка i-ro изображения Поиск разметки для i-ro изображения к = 1 Рисунок 4.4 - Блок-схема программы «prepare_data» Конец Фрагмент содержит людей /Случайное число от 0 до 100 х. меньше 5 / нет нет i dir = i dir + 1 Рисунок 4.5 - Блок-схема программы «prepare_data» (продолжение) добавить в конец inputs_neg fragment добавить в конец targets_neg [1 ;0] inputs = [inputs; inputs_neg]; targets = [targets; 24 targets_neg]; Сохранение данных 25 15 flag = true; флаг класса фрагмента изначально пустой добавить в конец _ inputs fragment добавить в конец 17 targets [0;1] fragment = часть изображения с координатами (j;k): I3 (j+49,k + 49) преобразование фрагмента и вектор- 14 строку k = к + 50 18
Блок №1. Начало программы. Блок №2. Создание матриц inputs, targets, inputs_neg_ targets_neg. Блок №3. Объявление названия папок с изображениями для обучения. Блок №4. Цикл для перебора всех папок. Блок №5. Занесение имен файлов в указанной папке в массив. Блок №6. Для соответствующей папки с изображениями загружается файл с разметкой, в котором указано положение людей на снимках. Блок №7. Цикл для перебора всех изображений в папке. Блок №8. Загрузка изображения в матрицу и поиск координат людей на изображении. Блок №9. Сброс положения сэмпла по координате у. Блок №10. Проверка условия достижения крайней координаты у. Блок №11. Сброс положения сэмпла по координате х. Блок №12. Проверка условия достижения крайней координаты х. Блок №13. Выделение сэмпла. Блок №14. Преобразование сэмпла в обучающий пример. Блок №15. Сброс флага наличия людей на фрагменте снимка. Блок №16. Проверка условия наличия людей на фрагменте снимка. Блок №17. Обновление матриц inputs и targets. Блок №18. Обновление положения координаты х. Блок №19. Обновление положения координаты у. Блок №20. Проверка случайного числа для отсечения части негативных примеров. Блок №21. Обновление матриц inputs_neg и targets_neg. Блок №22. Инкрементация для перебора изображений. Блок №23. Инкрементация для перебора папок. Блок №24. Слияние матриц негативных и положительных примеров. Блок №25. Сохранение матриц inputs и targets в mat файл. Блок №26. Конец программы.
|