YOLOv8 多种任务网络结构详细解析 | 目标检测、实例分割、人体关键点检测、图像分类-Backbone

时间:2024-06-02 10:47:56

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-p6SPPF 之后的 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 p626=64

img = cv2.copyMakeBorder(
	img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(114, 114, 114)
)