Версия OpenCV с графическим интерфейсом для прототипирования функций (SIFT и т. Д.) Перед фактической разработкой проекта - PullRequest
4 голосов
/ 30 января 2011

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

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

Итак, что я хочу сделать:

  1. создать несколько скриншотов определенного персонажа в фильме (например, front / back / leftSide /rightSide)
  2. воспроизводить фильм
  3. во время воспроизведения фильма, постоянно создавать новые снимки экрана с фильмом
  4. для каждого снимка экрана, выполнять обнаружение функций (SIFT ?, с openCV?)чтобы увидеть, есть ли какие-либо из наших появлений персонажа (они все равно должны быть распознаны, если персонаж находится дальше и, таким образом, кажется меньшим или если персонаж, например, лежит).
  5. уведомляет всякий раз, когда персонаж

Это было бы возможно с OpenCV, верно?

"Проблема" в том, что мне пришлось бы изучать c ++ или python для разработки этого приложения.ication.Это не проблема, если мой фильм и скриншоты подходят для того, что я хочу сделать.

Итак, я хотел бы сначала протестировать свои скриншоты фильма.Существует ли версия OpenCV с графическим интерфейсом, в которой я могу вводить свои тестовые данные, а затем вручную запускать их алгоритмы обнаружения признаков в качестве прототипа?

Любая обратная связь приветствуется.Спасибо.

Ответы [ 5 ]

4 голосов
/ 31 января 2011

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

Хотя определенно возможно решить вашу проблему, обучениеКривая для этой проблемы довольно длинная.Если вы профессионал, то альтернативой тому, чтобы узнать об этом самостоятельно, было бы нанять эксперта, который сделает это за вас.Это будет стоить денег, но сэкономит ваше время.

РЕДАКТИРОВАТЬ

Что касается сопоставления с шаблоном, вы обычно не используете его для решения такой проблемы, потому чтовещь, которую вы ищете, это изменение внешнего вида и формы.На самом деле нет никаких «динамических параметров для установки».Самая близкая вещь, которую вы можете попробовать, - это иметь массив шаблонов, который будет пытаться охватить ожидаемые формы, которые может принять ваша цель.Но вряд ли это будет элегантным решением.Кроме того, он не будет масштабироваться.

Далее, к вашему вопросу о распознавании лиц.Это своего рода взаимосвязь, но большинство приложений распознавания лиц имеют дело с контролируемой средой: освещением, расстоянием, позой, углом и т. Д. За пределами этой контролируемой среды эффективность распознавания лиц значительно падает.Если вы обнаруживаете объекты в фильме, то ваша среда на самом деле не контролируется.

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

2 голосов
/ 02 июня 2012

Существует Find-Object от Матье Лаббе .Мне было очень полезно начать понимать дескрипторы, так как вы можете изменить их во время просмотра видео, чтобы увидеть, что происходит.

Возможно, это слишком поздно, но может помочь кому-то еще в поиске решения..

2 голосов
/ 31 января 2011

Ну, используя OpenCV, вы бы взяли кадр видеофайла и сделали с ним все вычисления.

Вы можете сделать несколько разных способов обнаружения символа на этом изображении, но это не так просто, чтобы иметь такую ​​гибкость, чтобы вы могли даже получить этого человека, если он лежит на полу, например, если вы только вводили эталонные изображения этот персонаж стоит.

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

Затем вам нужно написать свой код, который воспроизводит видео и который берет видеокадр, скажем, каждые 500 мс (или любой другой, по вашему желанию), получает сегментацию объекта, который вы представляете как этот символ, и сравнивает его со ссылкой. значения, которые вы получаете из вашего алгоритма обучения. Если есть совпадение, ваш код может кричать "Yehaaawww!" или делать другие вещи ...

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

В основном: да. OpenCV хорошо использовать для задач обработки изображений / компьютерного зрения. Но он предлагает множество методов и способов, и вам нужно найти способ, который работает для ваших изображений ... хотя это не тривиальная задача ...

Надеюсь, это поможет ...

1 голос
/ 05 января 2015

Вы пробовали компьютерные рамки зрения, такие как Cassandra ? Там вы можете сделать это, просто щелкнув мышью.

1 голос
/ 09 марта 2011

Вы пытались взглянуть на некоторые работы группы визуальной геометрии Оксфорда?

Их Видео Система Google в значительной степени описывает, что вы хотите, обнаружение экземпляров.

Их работа в Называние людей в телешоу также довольно актуально. Включен конвейер обнаружения лиц и черт лица, который можно запустить из Matlab. Вы знакомы с Matlab?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...