С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 3
Регистрация: 25.04.2015
Сообщений: 14
1

Разработка программы распознания жестов семафорной азбуки

26.04.2015, 19:43. Показов 2044. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, программисты-форумчане!
В институте получил задание на курсовой "Разработка программы распознания жестов семафорной азбуки".
Семафорная азбука:https://ru.wikipedia.org/wiki/... 0%BA%D0%B0
Среда разработки Visual Studio 2013 (WinForm), язык разработки С++, дополнительная библиотека OpenCV(версия 2.4.9)
После обсуждения с преподавателем способа реализации было предложено следующее:
1. Брать кадры с видео потока,
2. Делать детектирование человека в кадре,
3. Разделять кадр на части(зоны действия рук - то есть вертикально пополам),
4. Строить по каждой части кадра диаграммы, для определения в какой зоне кадра располагается рука.
5. Ну и соответственно определять какому символу данное расположение рук соответствует.
После обдумывания данного способа реализации и поиска информации в интернете, данный способ показался достаточно трудоемким.
Хотел посоветоваться с более опытными людьми, есть ли способы проще (готов выслушать все мнения и рекомендации, будет чудесно если ответы или предложения будут сопровождаться ссылками на примеры реализации алгоритмов или методов, дабы сэкономить время на поисках). Если этот метод самый оптимальный, то мой вопрос заключается во 2 пункте: "детектирование человека в кадре", подскажите алгоритм или метод отделения человека в кадре от фона, непосредственно с помощью библиотеки OPENCV?
Прошу прощения, если не корректно изложил суть вопроса, пишите поясню.
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2015, 19:43
Ответы с готовыми решениями:

Разработать программу, обучающую семафорной азбуке
Всем привет,ребят.Помогите пожайлуйста.Мне на курсах дали зачетную работу,а я ничего не знаю,и не...

Написание программы с использованием файловых переменных. Разработка программы для работы с текстовым файлом
Помогите пожалуйста : С помощью текстового редактора создать текстовый файл file1. Переписать...

Алгоритм распознания символов
Предположим имеется некая база данных(сканированные рисунки) символов, имеется рисунок символа(или...

Распознания разбитого стекла на смартфоне
Приветствую! Подскажите пожалуйста в какую сторону плыть чтоб решить данную проблему - Нужно...

8
1605 / 1507 / 251
Регистрация: 19.02.2010
Сообщений: 4,069
26.04.2015, 20:49 2
Цитата Сообщение от Dmitrii_tsh Посмотреть сообщение
подскажите алгоритм или метод отделения человека в кадре от фона, непосредственно с помощью библиотеки OPENCV?
Он там есть, алгоритм 2005г и уже относительно устаревший и отстающий от более поздних методов вычитания фона. В книге Брадского и Кехлера (именно она же вроде была переведена на русский?) описывался.
0
0 / 0 / 3
Регистрация: 25.04.2015
Сообщений: 14
26.04.2015, 21:28  [ТС] 3
Можно ссылочку на книгу или точное название книги? Но хотелось бы увидеть пример работы данного алгоритма - ибо реализация с книги алгоритма есть занятие не из быстрых.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
26.04.2015, 21:37 4
Самый простой способ - правильно одеть сигнальщика. Например, даем сигнальщику красную каску и два красных флага. На картинке определяем каску и флаги как три самых больших красных кляксы. Ну а дальше строим угол "флаг1-каска-флаг2" и сопоставляем его с базой жестов. Правда, подозреваю что преподаватель скажет что контрастная одежка - это не спортивно.
0
0 / 0 / 3
Регистрация: 25.04.2015
Сообщений: 14
26.04.2015, 21:43  [ТС] 5
Цитата Сообщение от Renji Посмотреть сообщение
Правда, подозреваю что преподаватель скажет что контрастная одежка - это не спортивно.
С языка снял, уже предлагал - не вариант.
0
1605 / 1507 / 251
Регистрация: 19.02.2010
Сообщений: 4,069
26.04.2015, 22:19 6
Лучший ответ Сообщение было отмечено Dmitrii_tsh как решение

Решение

Dmitrii_tsh, "Learning OpenCV", Gary Bradski and Adrian Kaehler, 2008. Может, было и более позднее переиздание у буржуинов.

В книге Лажаньера "OpenCV 2 Computer Vision Application Programming Cookbook" 2011г задача вычитания фона не рассмотрена. Вроде была ещё и какая-то третья книга (а, может, уже и четвёрта, и пятая,..), но мне мой склероз изменяет. В общем, на Твирпиксе гляньте ключу "OpenCV" - обе названные буржуинские книги должны быть, ну всё остальное тоже найдётся.

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

Ну а глянуть можно просто на пару статей по алгоритму Codebook - именно он реализован в OpenCV для вычитания фона.
http://www.umiacs.umd.edu/~knk... IP2004.pdf
http://www.umiacs.umd.edu/user... lished.pdf
Естественно, есть пиксельный шум по кадру, пришивка отбрасываемого объектом тени к результату,.. В общем, просто старый (да-да, для задачи вычитания фона - алгоритм 10летней давности уже является старым) классический алгоритм, который более свежим проигрывает и в скорости, и в качестве. Тем не менее, в итоге Вы примете решение - надо ли ставить задачу как задачу вычитания фона (я же не знаю, видео с какими свойствами и особенностями фона Вы будете распознавать).
1
2082 / 1573 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
26.04.2015, 22:32 7
Цитата Сообщение от Renji Посмотреть сообщение
Правда, подозреваю что преподаватель скажет что контрастная одежка - это не спортивно.
У него флаги именно для того чтобы было неспортивно
0
0 / 0 / 3
Регистрация: 25.04.2015
Сообщений: 14
26.04.2015, 22:32  [ТС] 8
Ох, не силен я в свойствах видео, могу лишь только сказать, что видео будет идти с веб камеры. Схема работы: 5 секунд идет видео поток(в это время человек в кадре должен изобразить определенный символ),остановка на 5 сек. для обработки взятого изображения, занесение распознанной буквы в textbox.(Что то в этом роде я представляю.)
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
надо ли ставить задачу как задачу вычитания фона (я же не знаю, видео с какими свойствами и особенностями фона Вы будете распознавать).
Есть мысли как это можно иначе реализовать?
0
1605 / 1507 / 251
Регистрация: 19.02.2010
Сообщений: 4,069
29.04.2015, 22:19 9
Лучший ответ Сообщение было отмечено Dmitrii_tsh как решение

Решение

Dmitrii_tsh, да, тогда, скорее всего, не вычитание фона (для этого надо предварительно некоторое время поснимать "пустой" фон, без человека).
Наверно, надо поглядеть в сторону распознавания жестов рук (gesture recognition) - отслеживать движущиеся части тела (тушка и голова у человека могут не двигаться) и по их взаимному расположению (и предыдущей траектории движения) принимать решение. Или распознавание поз - тоже достаточно много работ было.

Хотя, если человек в итоге замирает - то можно обычным "вычитанием" двух последовательных кадров (из последующего - предыдущий) и взятием чего-то типа суммы модулей пиксельных разностей определить момент, когда движение прекращается, и тогда разность кадров перед самым завершением движения (т.е. чуть назад) даст некоторый приемлемый контур положений рук и флажков. Будет два "облака" движущихся точек (считаем, что тушка не двигается), у каждого облака можно определить направление (диагональное, горизонтальное или вертикальное), и по их взаимному расположению (в т.ч. и по расположению в кадре - есть 2 вертикальных положения рук, поднятые и "по швам") и по направлениям влёгкую принять решение о подаваемом сигнале.
Может быть, такой вполне тупой и простой способ справится хорошо - надо экспериментировать.
1
29.04.2015, 22:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.04.2015, 22:19
Помогаю со студенческими работами здесь

API Яндекса распознания голоса
Здравствуйте изучаю апи яндекса по распознанию голоса, взял их пример довольно простой, столкнулся...

Язык жестов
Добрый день, необходима помощь по написанию программы "Язык жестов". Программа представляет собой...

Класс для распознания флагов в строке
Видел на просторах инета класс для работы с флагами, но ступил и не сохранил - строка ABC...

Нужна программа распознания сканируемых символов
Нужна программа на или или для распознавания сканируемых символов....Срочно ,..кто чем может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru