K210学习记录(3)——kmodel生成与使用

0、引言

2022更新说明:这块芯片水太深,能不碰最好别碰,官方当时留的资料实在太少(或者说我太菜)。
如果要调用最新的nncase工具箱所支持的算子,最好采用嘉楠自家工具链+VScode进行开发。不建议采用迦南官方编译器,虽然集成了大量栗子,但讲解较为含糊,不利于开发,即使给了例程,大概率也不知道怎么改那些API)。
如果我做成了,后期我会出一个较为详细的文档,记录如何实现整个流程
Pytorch——》ONNX——》KModel——》Run

该博客仅作为学习K210单片机KPU跑目标检测模型记录,本人新人小白,本文旨在备忘,如有错误,还望指出,谢谢。
硬件:Sipeed Maix Dock开发板
软件:MaixPy IDE,NNCase Converter v0.1.0 RC5(模型转换工具)
相关工具及软件点击这里不需积分下载

1、模型转换

1.1、首先需要下载NNCase工具箱,各版本下载地址
1.2、有关nnc的使用,在Windows下首先在运行中,输入CMD,打开命令行窗口
1.3、使用cd命令,到nnc的根目录下
1.4、后使用nnc相关命令行进行操作,命令行说明可以参考
在将yolo.tflite模型放到ncc根目录下后,使用以下命令进行转换

ncc yolo.tflite yolo.kmodel -i tflite -o k210model --dataset images

其中yolo.tflite为ncc工具根目录下的待转换模型,yolo.kmodel为转换完成的模型名称(提前设定),-i tflite代表输入模型格式,而-o k210model则代表输出模型模式,–dataset images代表量化图片所存放的文件夹,images是文件夹名,一般放入训练集图片即可。
最终即可在ncc根目录下找到转换完成的kmodel文件
在这里插入图片描述

同时,你也可以使用QT版ncc转换工具,目前仅支持tflift格式的模型文件
在这里插入图片描述

2、模型使用

2.1、检查模型

通过上述步骤得到kmodel文件后,将其拷贝进FAT32格式的TF卡中(可以不用格式化),后将TF卡插入K210开发板
并使用以下代码进行测试。如成功读取到TF卡中的模型文件,液晶屏上将显示模型地址及模型尺寸。如下图所示

from Maix import GPIO, I2S, FFT
import image, lcd, math,sensor,time
import KPU as kpu

#初始化液晶屏
lcd.init(freq=15000000)
lcd.clear()

#加载SD卡中的模型
task = kpu.load("/sd/yolo.kmodel")
##测试模型是否加载成功,如成功会返回模型地址和模型尺寸
lcd.draw_string(1, 1, str(task), lcd.RED, lcd.BLACK)

在这里插入图片描述

其中kpu.load()函数的使用说明详见此,博客地址
在这里插入图片描述
源代码见此

STATIC mp_obj_t py_kpu_class_load(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args)
{
   
    int err = 0;
    uint32_t model_size;
    py_kpu_net_obj_t  *o = m_new_obj_with_finaliser(py_kpu_net_obj_t);
    o->base
  • 35
    点赞
  • 250
    收藏
    觉得还不错? 一键收藏
  • 37
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值