Тип работы:
Предмет:
Язык работы:


РАЗРАБОТКА ВИДЕОСТРИМИНГОГО ПРИЛОЖЕНИЯ С ОТСЛЕЖИВАНИЕМ ОТДЕЛЬНЫХ ОБЪЕКТОВ.

Работа №43635

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы72
Год сдачи2018
Стоимость4380 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
246
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 4
1. ОПИСАНИЕ И РЕАЛИЗАЦИЯ АЛГОРИТМОВ СЛЕЖЕНИЯ ЗА
ВЫДЕЛЕННЫМ ОБЪЕКТОМ 7
1.1. Постановка задачи 7
1.2. Описание алгоритма 8
1.2.1. Основные понятия 10
1.2.2. Алгоритм Канаде-Лукаса 12
1.2.3. Выделение и распознавание перемещения особых точек 16
1.2.4. Функции «голосования» 19
1.2.5. Отсеивание некорректных особых точек и определение центра
интересующего объекта 21
1.2.6. Алгоритм работы метода CMT на псевдокоде 23
1.2.7. Сравнение с другими алгоритмами слежения 24
1.3. Реализация алгоритма 27
2. ОПИСАНИЕ И РЕАЛИЗАЦИЯ АЛГОРИТМА ПРЯМОЙ ТРАНСЛЯЦИИ ВИДЕО 32
2.1. Принцип передачи видео с устройства на устройство 32
2.2. Описание технологии WebRTC 34
2.2.1. Введение и используемые термины 34
2.2.2. Механизм оповещения участников о изменениях 35
2.2.3. STUN и TURN серверы 37
2.3. Реализация трансляции видео в приложении для ОС Android 40
3. ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ И АРХИТЕКТУРА ПРИЛОЖЕНИЯ 43
ЗАКЛЮЧЕНИЕ 47
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 48
ПРИЛОЖЕНИЕ 49
Исходный код приложения 49



В современном мире у людей существует множество способов передачи информации, каждый из которых предназначен для конкретного вида сообщения. На данный момент информационные технологии массово используются для передачи визуальной и звуковой информации. Текущее развитие технологий широкополосных сетей и алгоритмов передачи данных позволяет передавать видео практически без задержек. Используя современные алгоритмы сжатия можно получить изображение, которое пользователь не сможет отличить от оригинала, но при этом ресурсов для передачи будет затрачено в разы меньше. Конечно, процесс сжатия требует большие вычислительные мощности от устройства, на котором кодируется видеопоток, а также декодируется. В связи с этим, долгое время на мобильных устройствах невозможно было предоставить пользователю приемлемого качества потоковое видео. Но безупречная работа таких программных комплексов как TeamViewer и Skype на устройствах с ОС Android показывает, что требуемую производительность уже можно добиться, используя наиболее оптимизированные алгоритмы. Исследуя алгоритмы, применяемые при передаче видео, было замечено, что огромные рывок в этой области совершила технология WebRTC. До применения данного алгоритма, добиться задержек меньше 0,5с при трансляции видео разрешением 1280x720 было невозможно.
Применение видео как средства передачи информации становится наиболее популярным, это доказывает постоянный рост аудитории портала YouTube. Кроме этого, видео часто применяется при общении людей в сети Интернет. Используя видео трансляции, пользователям легче объяснить что-то наглядно, указать на предмет или его продемонстрировать. Например, применяя программу TeamViewer, владелец компьютера может предоставить удаленный доступ своему собеседнику для решения какой-либо задачи. Используя видеоконференцию в Skype, человек может продемонстрировать свое окружение или конкретный объект.
Во время общения одному из собеседников может потребоваться зафиксировать внимание к какой-либо детали. Но, как часто бывает, окружение людей не статично, и объект может сместиться относительно камеры, или камера изменить свое положение в пространстве. Одним из примеров, является ситуация оказания технической помощи автовладельцам, у автомобиля которых случилась поломка в дороге. Поломка может быть незначительной, и водитель способен устранить ее самостоятельно при получении информационной поддержки от специалиста. В такой ситуации, при помощи телефона, водитель мог бы связаться с сервисным центром и получить необходимую консультацию при помощи видеосвязи. Но из-за технически сложной конструкции машины, желательно сопровождать беседу визуальными обозначениями деталей автомобиля, с которыми необходимо провести действия для устранения неисправности. Для таких случаев полезным был бы инструмент, способный «запомнить» объект, представляющий интерес, и выделять данный объект в дальнейшем.
Для реализации описанного выше функционала по «слежению» за выделенным объектом предназначен специальный класс алгоритмов, имеющий название «object tracking algorithms», которое часто переводят как «алгоритмы для трекинга объектов». Задачи по слежению за неизвестными объектами (а они являются неизвестными, т.к. нет информации об их структуре и особенностях) являются подклассом задач компьютерного зрения.
Цель выпускной квалификационной работы состоит в реализации приложения с прямой видеотрансляцией напрямую между двумя устройствами на базе ОС Android, особенностью которого будет отслеживание выделенных на экране неизвестных объектов.
Для достижения поставленной цели необходимо решить следующие задачи:
• Изучить существующие алгоритмы слежения за объектом;
• Выбрать метод показывающий оптимальную производительность на мобильных устройствах;
• Реализовать трансляцию видео с наименьшей задержкой.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В процессе выполнения выпускной квалификационно работы достигнута поставленная цель, а именно реализовано приложение для прямой видеотрансляции между двумя устройствами на базе ОС Android, способное отслеживать выделенные на экране заранее неизвестные объекты.
В результате работы
• Реализован алгоритм слежения за объектом CMT (Consensus-based Matching and Tracking of Keypoints for Object Tracking);
• достигнута приемлемая производительность алгоритма отслеживания, за счет выбора оптимального алгоритма для устройств под ОС Android, поддержки многопоточности, а также использования нативного кода и инструментов разработчика NDK;
• применена современная технология WebRTC для трансляции видео между устройствами;
• уменьшена задержка при передаче видео, с помощью отказа от медиасервера и передачи напрямую (peer-to-peer);
• у пользователя есть возможность изменить разрешение передаваемого видео, для комфортного просмотра.
Таким образом, поставленные перед выпускной квалификационной работой задачи решены.
В дальнейшем планируется продолжение работы над приложением для улучшения пользовательского интерфейса, а также разработка клиентов для других платформ. Кроме этого, в ближайшее время предполагается поиск решения для поддержки видео конференций, без заметного снижения качества передачи видео данных.



1. Georg Nebehay, Roman Pflugfelder. Consensus-based Matching and Tracking
of Keypoints for Object Tracking, 2014. [Электронный ресурс] https: //www. gnebehay. com/publications/wacv_2014/wacv_2014.pdf (дата
обращения: 10.06.2018).
2. S. Hare, A. Saffari, and P. H. S. Torr. Struck: Structured output tracking with kernels, 2011 [Электронный ресурс] http://www.robots.ox.ac.uk/~tvg/ publications /2015/struck-author.pdf (дата обращения: 10.06.2018).
3. Z. Kalal, K. Mikolajczyk, and J. Matas. Tracking-Learning detection. TPAMI, 34(7), 2012 [Электронный ресурс] http://epubs.surrey.ac.uk/713800/1/Kalal- PAMI-2011%281%29.pdf (дата обращения: 10.06.2018).
4. S. Hare, A. Saffari, and P. H. S. Torr. Efficient online structured output learning for keypoint-based object tracking, 2012.
5. A. Adam, E. Rivlin, and I. Shimshoni. Robust fragments-based tracking using the integral histogram, 2006.
6. M. Godec, P. M. Roth, and H. Bischof. Hough-based tracking of non-rigid objects, 2011. [Электронный ресурс] http://www.cs.technion.ac.il/~amita/ fragtrack/fragtrack_cvpr06.pdf (дата обращения: 10.06.2018).
7. H. Grabner, C. Leistner, and H. Bischof. Semi-supervised On-Line boosting for robust tracking, 2008. [Электронный ресурс] pdfs.semanticscholar.org/1427 /fc2aace877b91e43aefd1fe0b2a19b01d78b.pdf (дата обращения: 10.06.2018).
8. OpenCV library [Электронный ресурс] https://opencv.org.
9. SDP for the WebRTC description [Электронный ресурс] https://www.ietf.org/ archive/id/draft-nandakumar-rtcweb-sdp-08.txt (дата обращения: 10.06.2018).
10. Getting Started with WebRTC for Android [Электронный ресурс] vivekc.xyz /getting-started-with-webrtc-for-android (дата обращения: 10.06.2018).
11. Set up signaling service to exchange messages [Электронный ресурс] codelabs. developers.google.com/codelabs/webrtc-web (дата обращения: 10.06.2018).


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ