From da8cd05f08a92180317a123ae6b9e45ce6428de8 Mon Sep 17 00:00:00 2001 From: Yi Ge Date: Fri, 17 May 2019 16:26:06 +0200 Subject: [PATCH] use lazy map when performing parallel ocr --- videocr/video.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/videocr/video.py b/videocr/video.py index 6f68eba..43f9888 100644 --- a/videocr/video.py +++ b/videocr/video.py @@ -1,5 +1,5 @@ from __future__ import annotations -from concurrent import futures +from multiprocessing import Pool import datetime import pytesseract import cv2 @@ -46,11 +46,11 @@ class Video: frames = (v.read()[1] for _ in range(num_ocr_frames)) # perform ocr to frames in parallel - with futures.ProcessPoolExecutor() as pool: - ocr_map = pool.map(self._single_frame_ocr, frames, chunksize=10) + with Pool() as pool: + it_ocr = pool.imap(self._single_frame_ocr, frames, chunksize=10) self.pred_frames = [ PredictedFrame(i + ocr_start, data, conf_threshold) - for i, data in enumerate(ocr_map)] + for i, data in enumerate(it_ocr)] v.release()