pyblaze.multiprocessingでprocessにcropped imageを渡すと処理が進まない
Google ColabでOpenCVで読み込んだ画像を切り取り、それをpyblaze.multiprocessingのprocessに渡すとエラーも表示されずに処理中のままになる。
暫定対処
切り取る前の画像データを渡す。
import os
import pyblaze.multiprocessing as xmp
def func(num, image):
cropped_image = image[0:600, 0:600]
h, w, c = cropped_image.shape
return {'h': h, 'w': w}
nums = [0, 1]
fp = os.path.join(PATH_TO_IMAGE_DIR, IMAGE_FILE_NAME)
image = cv2.imread(fp)
worker = xmp.Vectorizer(func)
outputs = worker.process(nums, image)
ダメなパターン
切り取った画像データをprocessに渡すと無のまま進まない。
import os
import pyblaze.multiprocessing as xmp
def func(num, cropped_image):
h, w, c = cropped_image.shape
return {'h': h, 'w': w}
nums = [0, 1]
fp = os.path.join(PATH_TO_IMAGE_DIR, IMAGE_FILE_NAME)
image = cv2.imread(fp)
cropped_image = image[0:600, 0:600]
worker = xmp.Vectorizer(func)
outputs = worker.process(nums, cropped_image)
少しだけ確認
型だけ見てみた → 同じだった。
print(type(image))
print(type(patch_image))
# <class 'numpy.ndarray'>
# <class 'numpy.ndarray'>