本文提供了一个权重转换工具,可用于将 Yolov5 模型(例如,yolov5s.pt)导出到具有解码层和非最大抑制层(NMS)的 CoreML 模型(例如,yolov5s.mlmodel)。
轻松使用
在搭建好环境后只需要按照参数说明修改后,运行脚本就可以快速获取一些CoreML模型文件。
支持量化
支持FP16和Int8精度的转换,支持MacOs和Linux系统(Windows尚未测试)。
Xcode 预览
与官方的权重转换工具相比,我们添加了解码层和 NMS 层,以便导出的模型与 Apple 版本框架很好地配合,无需任何代码即可在 Xcode 上预览。
Core ML是苹果公司于2017年6月宣布了上线的一种不需要互联网连接即可进行机器学习的框架。Core ML旨在优化在移动设备上训练机器学习的功效,且不需要互联网连接即可进行机器学习。
利用 Core ML 在 App 中整合机器学习模型。Core ML 为所有模型提供了一种统一的呈现方式。App 可以使用 Core ML API 和用户数据进行预测,以及训练或精调模型,一切都在用户设备上完成。
运行此脚本需要 库(推荐),需要按照说明部署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中部署已经通过测试,其余情况自行测试。
克隆脚本仓库
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")
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文件
将模型导入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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务