使用 YOLO 将无界输入导出到 mlpackage/mlmodel 文件

问题描述 投票:0回答:1

我想创建一个 .mlpackage 或 .mlmodel 文件,我可以将其导入 Xcode 中以进行图像分割。为此,我想使用 YOLO 中的分段包来检查它是否符合我的需求。

现在的问题是该脚本创建了一个 .mlpackage 文件,该文件仅接受固定大小(640x640)的图像:

from ultralytics import YOLO

model = YOLO("yolo11n-seg.pt")

model.export(format="coreml")

我想在这里进行一些更改,可能是用

coremltools
来处理无限范围(我想处理任意大小的图像)。这里有一些描述:https://apple.github.io/coremltools/docs-guides/source/flexible-inputs.html#enable-unbounded-ranges,但我不明白如何实现它我的剧本。

python machine-learning yolo coreml mlmodel
1个回答
0
投票

如何导出具有灵活输入大小的YOLO分割模型

from ultralytics import YOLO
import coremltools as ct

# Export to torchscript first
model = YOLO("yolov8n-seg.pt")
model.export(format="torchscript")

# Convert to CoreML with flexible input size
input_shape = ct.Shape(
    shape=(1, 3, 
           ct.RangeDim(lower_bound=32, upper_bound=1024, default=640),
           ct.RangeDim(lower_bound=32, upper_bound=1024, default=640))
)

mlmodel = ct.convert(
    "yolov8n-seg.torchscript",
    inputs=[ct.ImageType(
        name="images",
        shape=input_shape,
        color_layout=ct.colorlayout.RGB,
        scale=1.0/255.0
    )],
    minimum_deployment_target=ct.target.iOS16
)

mlmodel.save("yolov8n-seg-flexible.mlpackage")

这将创建一个 .mlpackage,它接受 32 32 到 1024 1024 之间的图像(您可以根据需要修改这些范围)。默认值为 640 640。

在这里阅读相关内容:

© www.soinside.com 2019 - 2024. All rights reserved.