118|1

6

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

AI挑战营(进阶) 四:onnx2rknn流程简析 [复制链接]

上节我们已经得到了retinaface和arcface的onnx模型本节,接下来终于进入到本次挑战最重要的环节。我们将onnx转换为可以在rv1106的npu上运行的rknn模型
 
首先我们可以在luckfox官方的仓库下找到luckfox官方提供的环境包:
链接已隐藏,如需查看请登录或者注册
部署rknn环境先前也有了很多教程,但是建议还是按照luckfox教程里的来。建议使用官方的这个库,里面的rknpu版本为1.6.2,而官方的为2.3.0。至少我在使用官方的rknpu转换到板端运行的时候会报版本不兼容的错误。使用官方的版本和转换脚本就不会。
按照官方教程指引找到转换脚本,官方有提供retinaface的转换脚本及模型,retinaface直接按照官方的教程转换即可。
 
得到模型后我们也可以使用第一节提到的rkmpi例程测试一下我们的模型。
至于arcface模型,官方只提供了facenet模型的例程,所以我们需要修改一下covert.py
#convert.py

import sys

from rknn.api import RKNN


if __name__ == '__main__':
    model_path = "../model/w600k_mbf.onnx"
    dataset_path = "../dataset/dataset.txt"
    output_path = "./arcface.rknn"
    model_type = "arcface"

    # Create RKNN object
    rknn = RKNN(verbose=False)

    # Pre-process config
    print('--> Config model')
    if model_type == 'Retinaface':
        rknn.config(mean_values=[[104, 117, 123]], std_values=[[1, 1, 1]], target_platform='rv1103',
                                quantized_algorithm="normal", quant_img_RGB2BGR=True,optimization_level=0)
        print("Use retinaface mode")
    elif model_type == 'arcface':
        rknn.config(mean_values=[[127.5, 127.5, 127.5]], std_values=[[127.5, 127.5, 127.5]], target_platform='rv1103')
    
    print('done')

    # Load model
    print('--> Loading model')
    ret = rknn.load_onnx(model=model_path)
    if ret != 0:
        print('Load model failed!')
        exit(ret)
    print('done')

    # Build model
    print('--> Building model')
    ret = rknn.build(do_quantization=True, dataset=dataset_path)
    if ret != 0:
        print('Build model failed!')
        exit(ret)
    print('done')

    # Export rknn model
    print('--> Export rknn model')
    ret = rknn.export_rknn(output_path)
    if ret != 0:
        print('Export rknn model failed!')
        exit(ret)
    print('done')

    # Release
    rknn.release()

后期再看看需不需要加入板端推理和精度分析的内容。

 

至此我们就已经在luckfox 上成功的部署了自己的转换的模型,下一节我们会基于官方的例程修改得到一个可以注册并识别多张人脸的例程。

arcface.rknn

3.59 MB, 下载次数: 0

最新回复

用retinaface的转换脚本和模型,retinaface直接按照官方的教程转换即可,方法不错   详情 回复 发表于 1 小时前
点赞 关注

回复
举报

6723

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

用retinaface的转换脚本和模型,retinaface直接按照官方的教程转换即可,方法不错

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/3 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表