ВКР (1229297), страница 6

Файл №1229297 ВКР (Программно-аппаратный комплекс для распознавания пешеходов в сфере геомаркетинга) 6 страницаВКР (1229297) страница 62020-10-06СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

– функции для организации простого пользовательского интерфейса (все демо-приложения используют HighGUI).

Типичный процесс обработки изображения представлен на рисунке 2.14.

Рисунок 2.14 – Пример работы программы с использованием OpenCV

В версии 2.2 библиотека была реорганизована. Вместо универсальных модулей cxcore, cvaux, highGUI и других было создано несколько компактных модулей с более узкой специализацией:

– opencv_core – основная функциональность. Включает базовые структуры, вычисления и операции линейной алгебры, DFT, DCT, ввод/вывод в формате XML и YAML и т. д.;

– opencv_imgproc – обработка изображений;

– opencv_highgui – простой графический пользовательский интерфейс, ввод/вывод изображений и видео;

– opencv_ml – модели машинного обучения (SVM, деревья решений, обучение со стимулированием и т. д.);

– opencv_features2d – распознавание и описание плоских примитивов;

– opencv_video – анализ движения и отслеживание объектов;

– opencv_objdetect – обнаружение объектов на изображении;

– opencv_calib3d – калибровка камеры, поиск стерео-соответствия и элементы обработки трёхмерных данных;

– opencv_flann – библиотека быстрого поиска ближайших соседей (FLANN 1.5) и обертки OpenCV;

– opencv_contrib – сопутствующий код, ещё не готовый для применения;

– opencv_legacy – устаревший код (для обратной совместимости);

– opencv_gpu – ускорение некоторых функций OpenCV за счет CUDA, создан при поддержке NVidia.

3 РЕАЛИЗАЦИЯ Программно-аппаратного комплекса

3.1 Реализация аппаратного комплекса

Разрабатываемый программно-аппаратный комплекс предназначен для определения плотности и направления пешеходного и автомобильного потока на улицах городов. В дальнейшем на основе полученных данных может проводиться геомаркетинговый анализ: определение наиболее привлекательных мест для размещения рекламы и коммерческих предприятий; выявление часов наибольшей плотности пешеходного и автомобильного потока и т.д. Также полученная информация представлять интерес для правоохранительных органов (фиксация массового скопления народа, нарушение ПДД) и органов местного самоуправления (определение проблемных зон - наличие пробок, недостаток парковочных мест, низкая пропускная способность пешеходных тротуаров в часы пик и т.д.). Схема процесса обработки данных программно-аппаратным комплексом представлена на рисунке 3.1.

Рисунок 3.1 – Процессы работы программно-аппаратного комплекса

В настоящий момент закуплено оборудование для изготовления экспериментальной установки общей стоимостью 33 933 руб., из них собственные вложения – 19 538 руб. (Raspberry Pi2 OEM - 4 590 руб., карта памяти San Disk micro SD XC 64 Гб – 2 750 руб., Wi-Fi USB адаптер с антенной RTL 8188СUS – 429 руб., термокожух Computar Ganz GH-FW12 – 9 016 руб., Raspberry pi camera module rev 1.3 – 2 753 руб.) и финансовая поддержка РФФИ в рамках научного проекта №13-07-00615 – 14 395 руб. (IP-видеокамера с широкоугольным объективом Hikvision DS-2CD853F-EW – 12 990 руб., блок питания PD-25А – 1 405 руб.).

Основными компонентами устройства являются: корпус, блок питания, IP-камера, микрокомпьютер, интерфейсные модули. Устройство обеспечивается питанием 220 В. Блок питания преобразует напряжение питания в 5 В и 12 В. Напряжение в 5 В требуется для питания микрокомпьютера, а 12 В используется для нагревательного элемента и питания IP-камеры. Связь между IP-камерой и микрокомпьютером обеспечивается протоколом 10BASE, кроме того, микрокомпьютер оборудован WI-FI модулем. Изображения отдельных элементов представлены на рисунках 3.2-3.4.

Рисунок 3.2 – Блок питания

Рисунок 3.3 – Камера

Рисунок 3.4 – Микрокомпьютер

В процессе работы устройства IP-камера генерирует видео-поток и транслирует его по протоколу TCP/IP на микрокомпьютер по кабелю 10BASE. Микрокомпьютер производит обработку поступающих изображений и накапливает данные анализа в внутренней памяти RAM. В случае понижения температуры ниже допустимой, микрокомпьютер производит включение нагревательного элемента посредством реле. Эта часть реализована с помощью открытого порта GPIO, находящегося на верхней стороне платы микрокомпьютера. Для обеспечения возможности снятия видеоданных и данных статистики с устройства на микрокомпьютере установлен модуль Wi-Fi. Микрокомпьютер поддерживает открытой точку доступа (AP) модуля Wi-Fi. Сотрудник компании, приблизившись к устройству на расстояние ближе 20 метров, может подключиться к точке доступа с помощью персонального смартфона или планшета. После успешного подключения устройство отправляет результаты анализа на телефон сотрудника. Далее его можно просмотреть с помощью любого браузера. На рисунке 3.5 изображен собранный аппаратный модуль.

Рисунок 3.5 – Экспериментальная установка

Рисунок 3.6 – Мобильная установка

За время прохождения преддипломной практики на предприятии ООО «ИТЦ – Компьютер» была собрана экспериментальная и мобильные установки (рисунок 3.5 и 3.6). Установка испытана в различных погодных условиях и показала хорошую отказоустойчивость. Собран материал, необходимый для отладки алгоритма распознавания пешеходов.

3.2 Реализация программного модуля

Программный модуль представляет собой программу, реализованную на языке С++, с использованием библиотек OpenCV. Модуль позволяет распознавать пешеходов на изображении и вычислять степень близости распознаваемого объекта к «эталону» пешехода.

3.2.1 Среда разработки и установка библиотеки компьютерного зрения OpenCV

OpenCV является библиотекой алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом, которая реализована на C/C++, также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков [52].

Для разработки приложения был выбран язык С++, так как он является, де-факто, промышленным стандартом и обладает гибким функционалом.

В связи с низким быстродействием микрокомпьютера используется операционная система семейства Linux Ubuntu. Для того, чтобы обрабатывать видеопоток на микрокомпьютере требуется установить библиотеку компьютерного зрения OpenCV. Для этого необходимо скомпилировать библиотеки в текущей операционной системе. После компиляции и основных настроек операционная система будет готова к работе с функциями библиотеки компьютерного зрения OpenCV.

Также была выбрана операционная система Ubuntu, так она основана на ОС Debian, которая будет работать на устройстве. Данные операционные системы не требовательны к ресурсам, поэтому подходят микрокомпьютерам, которые ограничены в производительности и по количеству ядер процессора, а также в оперативной памяти.

Сначала необходимо установить связи между OpenCV и Ubuntu. выполнив следующую команду. При ее выполнении некоторые библиотеки могут быть обновлены, а в случае отсутствия – загружены.

Листинг 3.1 ­– Установка библиотек

sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

Для корректной работы OpenCV со средой разработки нужно выполнить следующие команды. В процессе их выполнения будет создана директория для хранения исполняемого кода (скопированных файлов), алгоритмов библиотеки.

Листинг 3.2 ­– Компиляция библиотеки OpenCV

cd opencv

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..

make -j $(nproc)

sudo make install

Если установлены все необходимые компоненты, будет выведено сообщение об успешной компиляции, иначе – сообщение об ошибках.

Для корректной работы библиотеки необходимо выполнить следующие команды, которые позволяют подключить OpenCV к интегрированной среде разработки Qt Creator.

Листинг 3.3 ­– Конфигурация

sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

sudo ldconfig

Завершающим этапом является подключение библиотеки OpenCV к интегрированной среде разработки Qt Creator.

Листинг 3.4 ­– Подключение

INCLUDEPATH += /usr/local/include/opencv-3.0.0

LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_imgproc -lopencv_photo -lopencv_video -lopencv_videoio -lopencv_features2d -lopencv_calib3d

Поскольку требуется только консольный интерфейс, то оптимально сделать выбор в сторону интегрированной среды разработки Code Blocks, она менее требовательно ресурсам, чем интегрированная среда Qt Creator.

Рисунок 3.7 – Указания пути библиотекам

После подготовительных этапов и указания путей к библиотекам, генерации и конфигурирования библиотеки компьютерного зрения OpenCV, можно приступать к разработке программного модуля.

3.2.2 Реализация алгоритма распознавания пешеходов

Библиотека компьютерного зрения включает встроенные функции распознавания пешеходов. В модуле object содержится функция detectMultiScale, которая является реализаций алгоритма, основанного на HOG (histogram oriented gradients). Функция создает массив координат предположений на изображении и сопряженный массив с степенями соответствия детектированных объектов.

Рисунок 3.8 – Изображение с детектированными объектами

Изменяя входные параметры, можно управлять скоростью распознавания и качеством детектирования. Например, при снижении коэффициента масштаба, объекты большего или меньшего размера будут игнорироваться. Это также означает, что скорость распознавания может быть изменена.

Главной характеристикой, определяющей качество детектирования является корректно настроенный дескриптор. Для задачи определения пешеходов на изображении, необходимо использовать заранее обученный детектор. В данной работе использовался стандартный дескриптор, так как невозможно сделать корректную выборку изображений за короткий срок.

Алгоритмы вычисления HOG-признаков и их использования для детектирования объектов в OpenCV реализованы в классе HOGDescriptor (модуль objdetect).

HOGDescriptor(Size winSize, Size blockSize, Size blockStride, Size cellSize, int nbins, int derivAperture=1, double winSigma=-1, int histogramNormType=HOGDescriptor::L2Hys, double L2HysThreshold=0.2, bool gammaCorrection=false, int nlevels=HOGDescriptor::DEFAULT_NLEVELS)

– winSize – размер изображения (окна детектирования), для которого будут вычисляться HOG-признаки;

– blockSize – размер блока в пикселях;

– blockStride – шаг блока по горизонтали и вертикали;

– cellSize – размер ячейки в пикселях;

– nbins – количество полос в гистограмме ориентации градиентов одной ячейки;

– derivAperture – не используется;

– winSigma – величина стандартного отклонения взвешенных вкладов магнитуд градиентов в гистограммы;

– histogramNormType – алгоритм нормировки вектора признаков блока;

– L2HysThreshold – пороговое значение компонент вектора признаков (параметр алгоритма нормировки);

– gammaCorrection – выполнять ли гамма-коррекцию изображения;

– nlevels – максимальное количество изменений масштаба изображения (параметр детектора).

Если все изображения одинакового и фиксированного размера, объекты занимают (приблизительно) одинаковую область изображения, то вектора признаков данных изображений имеют одинаковую длину, с помощью алгоритмов обучения с учителем можно достаточно точно классифицировать изображения с объектом и без него.

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6539
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее