Online AI Model Conversion Guide
线上 AI 模型转换简介
在本指南中,我们将引导您使用线上转换工具完成 AI 模型的转换流程。线上转换工具允许您上传模型文件,并将其转换为与 Ameba IC 兼容的格式。
注意:请登录以访问 线上转换工具。
请参考下表了解当前支持的线上转换模型。
模型 |
基本功能 |
所需文件 |
|---|---|---|
yolov3-tiny, darknet |
目标检测 |
|
yolov4-tiny, darknet |
目标检测 |
|
yolov7-tiny, darknet |
目标检测 |
|
yolov7-tiny, pytorch |
目标检测 |
|
scrfd/mobilefacenet |
人脸检测与识别 |
|
yamnet |
声音分类 |
|
CNN Gray/RGB |
图像分类 |
|
量化图片为可选上传项,最多可上传 10 张。
对于 CNN Gray/RGB,请参考以下说明以获取正确的转换模型。
训练模型时:支持的 tensorflow 版本最高为 2.14.1
保存模型时:将标志设置为"include_optimizer=False"
AI 模型转换完成后,系统将通过电子邮件发送下载链接。
更多关于模型部署的信息,请参考 定制化 AI 模型部署指南 。
有关 MobileFaceNet .pt 到 .onnx 模型转换指南,请参考 MobileFaceNet ONNX 转换 章节了解更多详情。
有关 SCRFD .pt 到 .onnx 模型转换指南,请参考 SCRFD 转换为 ONNX 章节了解更多详情。
MobileFaceNet ONNX 转换
MobileFaceNet 是一种高效的卷积神经网络(CNN)模型,使用了超过 100 万个参数。
MobileFaceNet 用于特征提取。由于 MobileFaceNet 属于轻量级模型类型,我们可以将此面部识别系统应用于移动和嵌入式设备。
我们可以从 GitHub 下载源代码和预训练模型:
git clone https://github.com/foamliu/MobileFaceNet.git.
cd MobileFaceNet
mkdir weights
cd weights
wget https://github.com/foamliu/MobileFaceNet/releases/download/v1.0/mobilefacenet.pt
为了获得更好的性能和兼容性,开发者可以通过执行以下命令将 .pt 转换为 .onnx:
python3 convert2onnx.py
代码参考
convert2onnx.py
from mobilefacenet import MobileFaceNet
import torch
import time
if __name__ == '__main__':
filename = 'weights/mobilefacenet.pt'
print('loading {}...'.format(filename))
start = time.time()
model = MobileFaceNet()
model.load_state_dict(torch.load(filename, map_location=torch.device('cpu')))
print('elapsed {} sec'.format(time.time() - start))
print(model)
output_onnx = 'weights/MobileFaceNet.onnx'
print("==> Exporting model to ONNX format at '{}'".format(output_onnx))
input_names = ["input0"]
output_names = ["output0"]
inputs = torch.randn(1, 3, 112, 112)
torch_out = torch.onnx._export(model, inputs, output_onnx, export_params=True, verbose=False,
input_names=input_names, output_names=output_names, opset_version=10)
转换后的 onnx 文件位于 weights/MobileFaceNet.onnx。
SCRFD 转换为 ONNX
SCRFD 是一种高效高精度的人脸检测方法,最初在 Arxiv 上发表。
它提供了一个易于使用的流水线,配合 NAS 支持来训练高效的人脸检测器。
您可以访问 InsignFace 了解更多信息。
对于边缘计算应用,建议开发者使用 SCRFD_500M_KPS。
设置 SCRFD 环境
SCRFD 的默认格式为 PyTorch,因此需要将其转换为 ONNX 格式:
cd ~/insightface/detection/scrfd
python tools/scrfd2onnx.py configs/scrfd/scrfd_500m_bnkps.py scrfd_500mkps.pt --shape 640 640
您可以在 InsignFace 中找到 tools/scrfd2onnx.py。
如果开发者遇到 Python 包依赖问题,可以尝试使用 virtualenv 创建隔离的 Python 环境,并参照我们的 requirements_scrfd.txt 来安装 Python 包。请从 requirements_scrfd 下载。
pip install -r requirements_scrfd.txt
为了向您展示如何快速转换和导出 SCRFD,我们可以从互联网下载预训练权重: scrfd.lite.ai.toolkit
请下载 scrfd_500m_bnkps_shape640x640.onnx 或 scrfd_500m_bnkps_shape320x320.onnx 用于边缘计算应用。