您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页Yolov5将pt权重转为coreml

Yolov5将pt权重转为coreml

来源:意榕旅游网
简体中文 |
介绍

本文提供了一个权重转换工具,可用于将 Yolov5 模型(例如,yolov5s.pt)导出到具有解码层和非最大抑制层(NMS)的 CoreML 模型(例如,yolov5s.mlmodel)。

轻松使用
在搭建好环境后只需要按照参数说明修改后,运行脚本就可以快速获取一些CoreML模型文件。

支持量化
支持FP16和Int8精度的转换,支持MacOs和Linux系统(Windows尚未测试)。

Xcode 预览
与官方的权重转换工具相比,我们添加了解码层和 NMS 层,以便导出的模型与 Apple 版本框架很好地配合,无需任何代码即可在 Xcode 上预览。



一、CoreML是什么?

Core ML是苹果公司于2017年6月宣布了上线的一种不需要互联网连接即可进行机器学习的框架。Core ML旨在优化在移动设备上训练机器学习的功效,且不需要互联网连接即可进行机器学习。
利用 Core ML 在 App 中整合机器学习模型。Core ML 为所有模型提供了一种统一的呈现方式。App 可以使用 Core ML API 和用户数据进行预测,以及训练或精调模型,一切都在用户设备上完成。

二、使用步骤

1.安装环境

运行此脚本需要 库(推荐),需要按照说明部署yolov5运行环境。

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
git checkout v6.2                                # switch to v6.2 tag
pip install -r requirements.txt                  # install

运行脚本还需要以下coremltools库,安装命令如下

pip install coremltools==6.0

在linux的python3.8中部署已经通过测试,其余情况自行测试。

2.开始使用

克隆脚本仓库

git clone https://github.com/ClintRen/yolov5_convert_weight_to_coreml.git
    parser.add_argument(
        "--yolov5-repo",
        required=True,
        # default="",
        help="path to yolov5 repo",
    )
    parser.add_argument(
        "--weight", type=str, default="yolov5s.pt", help="yolov5 weights path"
    )
    parser.add_argument(
        "--img-size",
        type=int,
        default=0,
        help="image imput size (pixels)",
    )
    parser.add_argument(
        "--conf-thres", type=float, default=0.25, help="confidence threshold"
    )
    parser.add_argument(
        "--iou-thres", type=float, default=0.45, help="NMS IoU threshold"
    )
    parser.add_argument(
        "--device", default="cpu", help="cuda device, i.e. 0 or 0,1,2,3 or cpu"
    )
    parser.add_argument(
        "--quantize",
        default=True,
        action="store_true",
        help="quantize model to FP16 and Int8",
    )

此外,以下额外信息会显示在CoreML文件的Metadata当中。

    # Other model options
    parser.add_argument("--description", default="yolov5s", help="Model description")
    parser.add_argument("--author", default="yolov5", help="Model author")
    parser.add_argument("--version", default="6.2", help="Model version")
    parser.add_argument("--license", default="GPL-3.0", help="Model license")

3.示例

python convert.py --yolov5-repo /path/to/yolov5 --weight yolov5s.pt --img-size 0 --quantize

命令说明

python convert.py             # 执行convert.py脚本
--yolov5-repo /path/to/yolov5 # yolov5路径
--weight yolov5s.pt           # 权重文件,本仓库自带yolov5s.pt供大家测试,它是yolov5-v6.2版本的
--img-size 0                # 输入图片尺寸
--quantize                    # 量化,额外输出FP16和Int8精度的CoreMl文件

4.Xcode检测预览

将模型导入Xcode中,可以看到模型文件信息(如Metadata, Precision, Class Labels, Input, Output等)

下图是用yolov5s_Int8.mlmodel在Xcode-Preview中的的检测结果,无需编写额外的代码。

总结

以上就是快速将yolov5权重文件转为多精度且具有解码层和NMS层的CoreML文件和在Xcode预览的全过程。
如果对你有帮助麻烦你在点一个star,谢谢。

参考

[1]

[2]

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务