В настоящее время я использую обратную проекцию гистограммы OpenCV на основе патчей (cv::calcBackProjectPatch()
) для идентификации областей целевого материала на изображении. При разрешении изображения 640 x 480 и размере окна 10 x 10 на обработку одного изображения требуется ~ 1200 мс. Несмотря на то, что результаты великолепны, это слишком медленно для приложения реального времени (которое должно иметь время обработки не более ~ 100 мс).
Я уже пытался уменьшить размер окна и переключиться с CV_COMP_CORREL
на CV_COMP_INTERSECT
, чтобы ускорить обработку, но не заметил заметного ускорения. Это может быть объяснено документацией OpenCV (выделено мной):
Каждое новое изображение измеряется, а затем
преобразован в массив изображений
по выбранной рентабельности. Гистограммы
взяты из этого изображения изображения в области
покрыты «заплатой» с якорем в
центр, как показано на рисунке ниже.
Гистограмма нормализуется с помощью
параметр norm_factor, чтобы он мог
сравнивать с гист. Расчетный
гистограмма сравнивается с моделью
гистограмма; Хист использует функцию
cvCompareHist () со сравнением
Метод = method
). Результирующий
выход размещен на месте
соответствующий якорю патча в
вероятностное изображение dst. это
процесс повторяется как патч
скользнул по ROI. Итеративная гистограмма
обновить, вычитая конечные пиксели
покрыты патчем и добавление новых
покрытые пиксели к гистограмме могут
сохранить много операций, хотя это
еще не реализовано.
Это оставляет меня с несколькими вопросами:
- Есть ли другая библиотека, которая поддерживает итеративное обновление гистограммы?
- Насколько значительным будет ускорение использования итеративного обновления?
- Существуют ли другие способы ускорения операций такого типа?