OpenCV :Отслеживание 3D-объектов, движущихся в 2D-плоскости -

Недавно я работал над решением проблемы отслеживания объекта -. Что мне нужно сделать, так это идентифицировать и отслеживать трехмерные -объекты, которые могут перемещаться в двухмерной -плоскости, т. е. перемещаться по x и y и вращаться вокруг z. Объект, подлежащий отслеживанию, заранее известен, и из него можно извлечь любую требуемую информацию. Также предполагается, что условия освещения не претерпят резких изменений, а фон останется относительно стабильным. Отслеживаемые объекты обычно не имеют одного цвета, поэтому отслеживание по цвету невозможно.

Я успешно реализовал прототип для отслеживания нескольких 2D-объектов -с использованием вычитания фона и динамического сопоставления шаблонов. Теперь я хочу перейти к отслеживанию 3D -объектов, но до сих пор я был разочарован тем, что я нашел/достиг.Я перечислю некоторые попытки, которые я предпринял, в надежде, что кто-то может пролить свет.

1. )Динамический Соответствие шаблону:Я хотел бы, чтобы пользователь выбрал объект в видеокадре, а затем вокруг объекта была определена область поиска. Затем объект будет искаться внутри этой области. Этот ролик натолкнул меня на мысль изначально. К сожалению, у меня это не очень сработало, так как объект теряется, когда он подвергается вращению (поворачивается спиной к камере ). Я также пытался постоянно обновлять шаблон, когда объект был найден, но это приводило к тому, что шаблон становился другим (посторонним )объектом всякий раз, когда предполагаемый объект закрывался .

2.)Лукас -Канаде оптический поток :Я использовал openCV goodFeaturesToTrack, чтобы найти несколько хороших точек для отслеживания, и попытался отслеживать эти точки через несколько кадров, используя calcOpticalFlowPyrLK. Однако производительность этого алгоритма немного разочаровала. Я применил его к набору данных Oxford Corridor , но точки, которые я первоначально обнаружил, вскоре были потеряны.

3.)ПРИБОЙ:Я пытался обнаружить особенности с помощью SURF, но проблема заключалась в том, что было очень сложно применить это к 3D -объектам, которые могут значительно отличаться под разными углами обзора. Я надеялся найти документацию по SURF cv2, так как она, казалось, обеспечивала функциональность для снабжения экстрактора признаков SURF ключевыми точками (, возможно, из goodFeaturesToTrack ). К сожалению, я пока не смог найти способ сделать это. Мой вопрос о С.О.:OpenCV :Извлечение функций SURF из определенных пользователем -ключевых точек

Справочная информация :У меня есть одна стационарная веб-камера, и вся обработка выполняется на настольном компьютере. Я использую Python-оболочку OpenCV и подключаемый модуль PyDev для Eclipse в Windows 7.

Если кто-нибудь может предложить какие-либо дополнительные методы, чтобы попробовать,или даже некоторые указатели на улучшение производительности уже -упомянутых методов, я был бы очень признателен.

7
задан Community 23 May 2017 в 12:34
поделиться