Я разработал программное обеспечение для тестирования обнаружения объектов с использованием дескриптора HOG.
Наличие перекрывающихся обнаружений (несколько ограничивающих рамок разных позиций и размеров) для каждого объекта требует процедуры для объединения их в один ограничивающий прямоугольник, который включает в себя все обнаружения, относящиеся к одному и тому же объекту. Как объединить несколько обнаружений для каждого объекта?
Это может быть достигнуто с помощью Функция 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
)
Конечно, вам придется попытаться настроить критерий подобия в соответствии с вашими потребностями.
Других решений пока нет …