苹果对CoreML框架封装的Vision,极大程度的简化了输入,特别是图片的输入,Vision可以接受任何大小的图片,然后自动将其自动截取到模型要求的大小,这就是VNImageCropAndScaleOption的功能。
今天我们来聊一聊VNImageCropAndScaleOption,其对预测结果的输出有至关重要的影响,主要是因为图片截取方式决定了后续预测数据的坐标转化(如人脸检测的人脸位置、landmark、mobileNet+ssd中被检测物体的位置等),今天我们先初步介绍一下不同的设置对应的图片截取方法。
VNImageCropAndScaleOptionCenterCrop = 0, // scale image maintaining aspect ratio to fit on the short side and crop centered on the long side
VNImageCropAndScaleOptionScaleFit = 1, // scale to size required by algorithm
VNImageCropAndScaleOptionScaleFill
三种截图方式的效果如下图
如原图为左边的部分,模型要求的大小为interest region size标注的大小。则:
VNImageCropAndScaleOptionCenterCrop
其结果为将原图先等比例缩放,其短边为interest region size的变长,然后从中间截取;
VNImageCropAndScaleOptionScaleFit
其结果为图片内容等比例缩放,然后短边部分进行扩充,即会留下白边;
VNImageCropAndScaleOptionScaleFill
其结果为宽高方向进行缩放,充满目标区域。