赞
踩
先说结论:长边resize到640或设定的尺寸,短边按比例取32的整数倍
YOLOv5 6.0代码在utils/datasets.py中,
YOLOv5 7.0代码在utils/dataloaders.py中,
前几行是判断w,h的长短并算比例,主要看最后一行
补充:np.ceil()是计算每个数组元素,大于等于该值的最小整数
pad和 stride在开始定义了,pad=0,stride=32
所以上面最后一行的意思就是先把shapes[]比例数组*resize后图片尺寸img_size/stride+pad,再ceil得到最小整数(并转化为整数形式),最后乘stride,所以得到的是尺寸是stride的整数倍。
举个例子,比如输入的是4096*2000的图片,要将长边resize到640,求短边为多少?
首先算比例并乘img_size,2000/4096*640=312.5,所以按等比例缩放应该为312.5,但是需要满足stride=32整数倍的最小值,所以应该取320,因此4096*2000的图片resize后应为640*320。这里stride取32也是因为yolov5总共进行了32倍下采样。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。