Я выполняю обработку видео в реальном времени на ODROID XU4 (Samsung Exynos5422 с графическим процессором Mali-T628) с использованием OpenCV 4.1 и Python 3.6. Я могу использовать графический процессор, преобразовав массивы Numpy, содержащие мои изображения, в UMat, например:
img_umat = cv2.UMat(img_array)
Это сделано, код обработки изображений работает быстрее, чем на CPU; однако передача в / из GPU занимает много времени (в некоторых случаях ~ 0,03 секунды). Есть ли способ обойти это?
Я новичок в программировании на GPU и ломал голову над разделом 8.3 здесь . Я не знаю, как инициализатор "cv2.UMat (array)" по умолчанию выделяет память, поэтому я попытался указать его, например,
host_mat = cv2.UMat(mat,cv2.USAGE_ALLOCATE_HOST_MEMORY)
Но когда я это делаю, ошибки не возникает и host_mat пуст. Я что-то делаю не так, или я полностью на ложном пути? Любые предложения приветствуются.