官方平台线上训练的K230分割模型能否改用yolo后处理

Viewed 17

问题描述


我使用的勘智开发者社区官方平台训练的K230 segment kmodel,发现部署到开发板上时运行的是CanMV/sdcard/libs/PlatTasks.py的代码,其SegmentationApp类的postprocess函数调用了aicube.seg_post_process这个API,发现这个API运行用时高达240ms,显著影响帧率,想问一下能否改用aidemo.yolov8_seg_postprocess来完成后处理,即线上训练获得的这个kmodel是否兼容yolo后处理

复现步骤


/sdcard/libs/PlatTasks.py的后处理里面,mask = aicube.seg_post_process() 即为我现在使用的后处理代码(如下图)image.png
这个句子完整语句:

mask = aicube.seg_post_process(self.results[0], self.num_classes, [self.model_input_size[1],self.model_input_size[0]], [self.display_size[1],self.display_size[0]])

实测该语句处理一帧从开发板摄像头获取的图像用时约240ms,帧率太低。模型规模为512*512。
目前,希望可以在适当修改代码下,能够把这行语句用yolo的API(如下)替换,以提高后处理速度,想问问这样的想法有没有可行性

seg_res = aidemo.yolov8_seg_postprocess(new_result.copy(),results[1][0],[self.rgb888p_size[1],self.rgb888p_size[0]],[self.model_input_size[1],self.model_input_size[0]],[self.rgb888p_size[1],self.rgb888p_size[0]],len(self.labels),self.conf_thresh,self.nms_thresh,self.mask_thresh,self.masks)

硬件板卡


庐山派K230

软件版本


CanMV_K230_LCKFB_micropython_v1.5-legacy-0-g413737f_nncase_v2.9.0 (1).img

1 Answers

你好,模型是不兼容的。yolo的后处理是给yolo模型使用的,你可以换模型,使用yolo进行训练。