Я пытаюсь создать сценарий, который определяет определенный цвет в кадре, используя cv2. Версия кода для ЦП выполняется за то же время, что и версия для графического процессора. Вот фрагмент графического процессора:
импортировать cv2 импортировать numpy как np время импорта Lower_yellow = np.array([20, 100, 100], dtype=np.uint8) Upper_yellow = np.array([30, 255, 255], dtype=np.uint8) gpu_lower_yellow = cv2.cuda_GpuMat().upload(lower_yellow) gpu_upper_yellow = cv2.cuda_GpuMat().upload(upper_yellow) cap = cv2.VideoCapture("путь/к/любому/видео/файлу.mp4") start_time = время.время() номер_фрейма = 1 разрешение = 3 в то время как cap.isOpened(): если номер кадра % разрешения == 0: ret, кадр = cap.read() если не вернуть: перерыв # hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) # Masked_frame = get_masked_frame(hsv_frame, "скин") gpu_frame = cv2.cuda_GpuMat() gpu_frame.upload(кадр) hsv_frame = cv2.cuda.cvtColor(gpu_frame, cv2.COLOR_BGR2HSV) Masked_frame = cv2.cuda.inRange (hsv_frame, gpu_lower_yellow, gpu_upper_yellow) total_target_pixel = cv2.cuda.countNonZero(masked_frame) # if total_target_pixel > порог -> сделать что-нибудь номер_фрейма += 1 конечное_время = время.время() истекшее_время = конечное_время - начальное_время print(f"Прошедшее время: {elapsed_time} секунд") Я не вижу никаких улучшений по сравнению с версией кода для ЦП, и, проверив панель производительности, я вижу, что графический процессор простаивает. Я делаю неправильно, или на GPU такая обработка невозможна?
Я правильно установил наборы инструментов cudnn и cuda.

Мобильная версия