You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导出Yolo v7模型生成的心脏掩码的多边形坐标?

YOLOv7-seg导出掩码多边形坐标的实现方法
  • 定位掩码处理逻辑:在YOLOv7-seg的推理脚本(如segment/predict.py)中,模型推理后会输出包含掩码的结果,找到masks变量(模型输出的掩码张量)。

  • 转换掩码格式:将GPU上的掩码张量转为CPU端的numpy二值数组:

masks_np = masks.cpu().numpy().astype(np.uint8)

这里masks_np的形状为(n, h, w),n是检测到的目标数量,h、w是掩码的高度和宽度。

  • 提取多边形轮廓:用OpenCV的轮廓检测函数提取每个掩码的多边形坐标,示例代码如下:
import cv2
import numpy as np

polygons = []
for mask in masks_np:
    # 提取最外层轮廓,过滤内部小轮廓
    contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    if contours:
        # 取面积最大的轮廓(避免噪点干扰)
        largest_contour = max(contours, key=cv2.contourArea)
        # 转换为(x,y)坐标列表
        poly_coords = largest_contour.reshape(-1, 2).tolist()
        polygons.append(poly_coords)
  • 适配原图尺寸:如果模型输出的掩码尺寸小于原图,需要先将掩码缩放至原图尺寸再提取轮廓,示例:
# 假设原图尺寸为(img_h, img_w)
mask_resized = cv2.resize(mask, (img_w, img_h), interpolation=cv2.INTER_NEAREST)
  • 保存结果:将提取到的多边形坐标和对应的边界框、类别ID等信息一起保存(比如写入JSON文件),方便后续使用。

内容的提问来源于stack exchange,提问作者Alexander Rausch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 09:52:09