我正在处理不同大小的面部裁切,这些裁切是在从视频推断时生成的。每帧的面部裁切数量可以变化。假设我有n = 3个(127,321,3), (119,258,3), (135,127,3)
大小的面部作物。我需要将它们的大小一次调整为新的大小(new_w,new_h,3)
。调整大小通常会降低采样率。如果某些农作物需要上采样怎么办?
我当前正在循环使用opencv
调整大小功能,但是我需要实时进行(< 10 ms)
。我试图将图像转换为numpy数组,并将其调整为numpy数组,但是它扭曲了图像。我也尝试过创建进程池,但是它占用了太多我无法负担的资源,因为我的内存中还装有一个深度学习网络。
new_w, new_h = 112, 112 # new shape we need to resize images to
crops_batch = [[...],[...],[...]] # contains 3 images
resized_crops = [len(crops_batch),3,new_w,new_h]
for i in range(0, len(crops_batch)):
temp_img = crops_batch[i]
resized_img = cv2.resize(temp_img, (new_h, new_w))
resized_img = np.transpose(resized_img , (2,0,1)) # channels, width, height
resized_crops[i,:,:,:] = resized_img
我的目标是使用批处理来获得resized_crops
形状为(n,3,new_w,new_h)
的数组,因为我每秒必须处理数百种作物。
**编辑:**如果所有face_crops已经都相同大小怎么办?那我们该如何批量调整大小?
**编辑2:**我愿意使用C ++解决方案来帮助调整批量大小。