(关键点检测)YOLOv8实现多类人体姿态估计的输出格式分析

(关键点检测)YOLOv8实现多类人体姿态估计的输出格式分析

1. 任务分析

判断人体关键点时一并给出关键点所属的类别,比如男人,女人。
示例

2. 所使用的数据配置文件

添加类别:0: male,1: female。

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes
names:
  0: male
  1: female

3. 网络结构

                   from  n    params  module                                       arguments
  0                  -1  1       464  ultralytics.nn.modules.conv.Conv             [3, 16, 3, 2]
  1                  -1  1      4672  ultralytics.nn.modules.conv.Conv             [16, 32, 3, 2]
  2                  -1  1      7360  ultralytics.nn.modules.block.C2f             [32, 32, 1, True]
  3                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]
  4                  -1  2     49664  ultralytics.nn.modules.block.C2f             [64, 64, 2, True]
  5                  -1  1     73984  ultralytics.nn.modules.conv.Conv             [64, 128, 3, 2]
  6                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]
  7                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]
  8                  -1  1    460288  ultralytics.nn.modules.block.C2f             [256, 256, 1, True]
  9                  -1  1    164608  ultralytics.nn.modules.block.SPPF            [256, 256, 5]
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']
 11             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 12                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']
 14             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 15                  -1  1     37248  ultralytics.nn.modules.block.C2f             [192, 64, 1]
 16                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]
 17            [-1, 12]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 18                  -1  1    123648  ultralytics.nn.modules.block.C2f             [192, 128, 1]
 19                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]
 20             [-1, 9]  1         0  ultralytics.nn.modules.conv.Concat           [1]
 21                  -1  1    493056  ultralytics.nn.modules.block.C2f             [384, 256, 1]
 22        [15, 18, 21]  1   1036129  ultralytics.nn.modules.head.Pose             [2, [17, 3], [64, 128, 256]]
YOLOv8n-pose summary: 250 layers, 3295665 parameters, 3295649 gradients, 9.3 GFLOPs

4. 导出模型

model = YOLO('~/ultralytics/runs/pose/train87/weights/best.pt')
# Export the model
model.export(format='onnx')

5. 用 netron 可视化

image.png

6. 输出格式分析

output0: 1x57x8400 (batch, xyhw+class_num*class_conf+17x3, boxes_num)
8400 = 80x80 + 40x40 + 20x20,对应多尺度特征图的大小。
57 = 4 + 2 +17 * 3

def non_max_suppression():
    bs = prediction.shape[0]  # batch size
    nc = nc or (prediction.shape[1] - 4)  # number of classes
    nm = prediction.shape[1] - nc - 4
    mi = 4 + nc  # mask start index
    xc = prediction[:, 4:mi].amax(1) > conf_thres  # candidates

7. 参考链接

https://github.com/ultralytics/ultralytics

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 16:20:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 16:20:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 16:20:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 16:20:03       20 阅读

热门阅读

  1. pytorch升级打怪(一)

    2024-03-10 16:20:03       22 阅读
  2. 力扣77-组合

    2024-03-10 16:20:03       24 阅读
  3. 设计模式之单例模式

    2024-03-10 16:20:03       22 阅读
  4. IntelliJ IDEA分支svn

    2024-03-10 16:20:03       28 阅读
  5. Linux运维_Bash脚本_编译安装GTK+-3.24.41

    2024-03-10 16:20:03       25 阅读
  6. Windows中毒应急方式

    2024-03-10 16:20:03       19 阅读
  7. c#开发100问?

    2024-03-10 16:20:03       24 阅读