k210单片机水果分拣 darknet模型转pb模型

前言

k210现在支持的主流模型是kmodel,在rtos下也可以使用tflite,之前的版本使用的是一个叫model compiler的转换工具,通过它转换成c语言,在maix的c语言人脸识别demo中使用过,我找了好久这个工具,终于找到了github网址,却显示404,勘智官方已经放弃,估计现在主推应该是kmodel kmodel可以通过堪智的nncase工具转换,maix在其上做了改进 说一下官方的nncase,如果是使用的micropython最好使用0.1.0rc5版本,0.2的版本会出现一些错误,而maix推出的也是在0.1.0rc5版本上进行了封装。 如果你想在k210上运行神经网络,你需要kmodel格式的模型,但是这样的模型怎么获取呢? 下面为nncase0.2支持的算子 这里我们需要转换为tflite模型,而tflite模型是tensorflow在移动端的模型,darknet并不能直接转换为tflite,我们需要一个工具-darkflow

darkflow安装

首先下载darknet的源码 git clone https://github.com/thtrieu/darkflow.git 如果使用linux系统,由于文件原因会报错,参考网上方法:在安装之前, 打开darkflow根目录下darkflow/utils中的loader.py,将其中121行中的self.offset由16改为20: self.offset = 20

darkflow需要以下的支持,如果没有安装可以使用pip进行安装 Python3, tensorflow 1.0, numpy

然后在darkflow文件夹下进行编译和安装

python3 setup.py build_ext --inplace
pip3 install -e .

如果显示这样便是安装成功

转换pb文件

darknet训练完成后会在backup文件夹下生成final.weight文件,将final.weight文件和cfg文件移动到darkflow文件夹下 修改labels.txt,将里面的种类数改为自己的种类数

使用命令将weights文件和cfg文件转换为pb文件

flow --model fruit.cfg --load  fruit_final.weights  --savepb

转换之后会显示网络结果 如果提示没有安装tensorflow,可以使用pip安装1.14版本

ModuleNotFoundError: No module named tensorflow
pip install tensorflow==1.4
经验分享 程序员 微信小程序 职场和发展