1. yolov8m
2. yolov8m-p2
3. yolov8m-p6
4. 细节
- 图中
CBS = Conv2d + BatchNorm2d + SiLU
,上方为卷积参数对应size, stride, padding
- 各模块细节至 附录 - Block Modules 查看
yolov8m-p2
通过增加一次上采样,与2-P2
融合得到针对小目标的P2
输出。yolov8m-p6
通过增加一次下采样和一次上采样,与10-P6
融合得到针对大目标的P6
输出;因为多了一次下采样需要图像的分辨率能被64整除,所以图像预处理输出的分辨率有所不同。yolov8m-p6
将SPPF
之后的C2f
模块替换为了C2
模块。SPPF
之前的C2f
模块中的Bottleneck
启用add
,而其之后的C2f / C2
中的Bottleneck
未启用add
5. Image Preprocess
上图按 yolov8m-p6
绘制,LetterBox
环节先保持长宽比将图像较长边缩放至 640,再对四周做填充,使
h
,
w
h,w
h,w 都可被模型最大下采样倍率整除(
p
6
→
2
6
=
64
\mathrm{p6}\to2^6=64
p6→26=64)
img = cv2.copyMakeBorder(
img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(114, 114, 114)
)