人体关键点检测
1.实验目的
学习检测摄像头拍摄到的画面中的人体关键点并通过画图提示。
2.核心代码
图像获取
pl=PipeLine(rgb888p_size=rgb888p_size,display_size=display_size,display_mode=display_mode)
img = pl.get_frame() # 拿到一个图像帧,供后续模型使用
使用 PipeLine
类获取一帧来自图像传感器(Camera)的图像。
图像的格式一般是 RGB888 planar,即三个通道数据独立存储(C, H, W)
图像预处理
self.ai2d.pad([0,0,0,0,top,bottom,left,right], 0, [0,0,0])
self.ai2d.resize(nn.interp_method.tf_bilinear, nn.interp_mode.half_pixel)
self.ai2d.build([1,3,ai2d_input_size[1],ai2d_input_size[0]],[1,3,self.model_input_size[1],self.model_input_size[0]])
用 Ai2D
对图像做 Padding + Resize,让它适配模型输入 [320, 320]
。
保持纵横比缩放,填充剩余区域(letterbox padding)防止变形。
转换格式为 NCHW
,且转换为 uint8 类型。
模型推理
res=person_kp.run(img)
继承自 AIBase
,这个函数内部会执行:
- 把 RGB 图像送入 Ai2D 处理
- 推理模型
.kmodel