Как объединить перекрывающиеся обнаружения для каждого обнаруженного объекта?

Я разработал программное обеспечение для тестирования обнаружения объектов с использованием дескриптора HOG.

  • Я использовал метод сканирования окна, чтобы обнаружить экземпляры классов целевых объектов.
  • Изображение проверяется несколько раз с использованием окон сканирования разных размеров для обнаружения объектов разных размеров (обнаружение нескольких масштабов). Таким образом, каждый объект может быть обнаружен несколько раз.

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

2

Решение

Это может быть достигнуто с помощью Функция OpenCV groupRectangles, какие кластеры прямоугольников с одинаковыми размерами и местоположениями в соответствии с параметром подобия. Хотя, я считаю, что эта функция уже может быть использована в Функция HOG DetectionMultiScale согласно параметру group_threshold:

void gpu::HOGDescriptor::detectMultiScale(
const GpuMat& img,
vector<Rect>& found_locations,
double hit_threshold=0,
Size win_stride=Size(),
Size padding=Size(),
double scale0=1.05,
int group_threshold=2
)

Конечно, вам придется попытаться настроить критерий подобия в соответствии с вашими потребностями.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]