Я работаю над обнаружением лица записанного видео, и оно работает нормально, за исключением случаев, когда видео высокого качества, поэтому я хочу повысить производительность с помощью многопоточности. так как я могу прочитать несколько кадров одновременно. это только часть моего кода, которая изменяет размеры, обнаруживает и рисует прямоугольник для нескольких кадров одновременно, но очевидно, что считывание кадров занимает слишком много времени, поэтому мне нужно, чтобы последний выполнялся параллельно. какие-либо предложения?
for _ in range(tot_cyc): # tot_cyc : number of total cycles to read all frames
frames = np.empty((proc_fr, frameHeight, frameWidth, 3), np.dtype('uint8')) # proc_fr : number of frames to be processed in parallel
for _ in range(proc_fr):
frames[_] = read_frame()
with concurrent.futures.ThreadPoolExecutor() as executor:
x1 = executor.submit(detect_resize_draw, frames[0])
x2 = executor.submit(detect_resize_draw, frames[1])
resized[0] = x1.result()
resized[1] = x2.result()
for resize in resized:
cv2.imshow('video_test', resize)
if cv2.waitKey(1) == 13:
exit()