目标数据集不是等宽高的,比如说有一张600x600x3的输入网络,但是图片的大小是1200x800的,我可不可以将这章图片先在右边填充1200x400,变成1200x1200,然后在resize到600x600?
现在有两种方法,一种是你说的填充再resize,还有一种是直接resize。这两种各有好处,
填充再resize的话,好处是可以保持物体的形状,物体形变对推断的时候是不利的。
比如,人脸检测,一般都是高跟宽是接近的,但是可以形变成高比宽大个好几倍,这在世界上是不存在这种脸型的,从而影响模型的准确性。
又比如,像0跟o,如果直接resize的话,那么就会变得难以分辨。
坏处是,填充的话,假如,你模型的输入是128*128,但你要输入的图片是128*256,那么等于你经过填充resize,实际输出的图片有效像素是64*128
这就等于模型输入的信息量减少了。
所以,具体要选择哪种方法,不仅要视应用场景,也要看你模型的输入,图片的输入的像素。
顺便一提,yolo是使用填充再resize的方法,但也有别的目标检测算法,是直接resize的。