赞
踩
B站链接:
https://www.bilibili.com/video/BV1ET4y1c7rw/
CSDN文件下载:
https://download.csdn.net/download/qq_38649386/12920715
目录
国产芯片K210官方资料齐全,但是开源项目资料比较少。开发过程中,需要按照实际项目修改引脚参数、外设寄存器配置、编写程序函数以及算法移植。
K210支持C/C++和Micro-Python语言进行应用开发。经过多次摸索,现已掌握其开发流程,并记录运行效果。
针对测试过程中出现的问题,提出了可行的方法。
背景介绍:
k210带独立FPU的双核处理,64位的CPU位宽,8M的片上SRAM,400M的可调标称频率,支持乘法、除法和平方根运算的双精度FPU,在AI处理方面k210可进行卷积、批归一化、激活、池化等运算。也可以进行语音方向扫描和语音数据输出的前置处理工作,可实现人脸检测,语音识别,颜色、物体识别,MNIST手写数字识别,Feature map显示,Tiny yolov2 20分类等多种功能。
本次实验使用开发板型号:Widora AIRV R3 摄像头型号OV2640 像素 200W
下载安装Kendryte IDE,资源见下面链接,压缩包有各种数据手册。
资源:
官方资源页面链接:https://canaan-creative.com/developer
https://github.com/kendryte/kendryte-gnu-toolchain/releases
包含:程序SDK库、SDK开发文档、Model Demo。
Kendryte IDE下载链接:
http://kendryte-ide.s3-website.cn-northwest-1.amazonaws.com.cn/
更多工具下载链接:
下图资料见压缩包或官方网站:
图 IDE使用手册
图 K210芯片数据手册
图 SDK编程指南
安装完成后打开此程序即可。需连接互联网使用。如下图:
图 IDE快捷键
数据线插单片机连接电脑之前需要在电脑上安装驱动,驱动可在开发板资源下载。软件见压缩包。
Widora AIRV R3官网下载链接:https://widora.io/k210dev
Widora AIRV R3相关硬件资源链接:https://widora.io/airv3
Widora AIRV R3相关教学代码见压缩包:
使用IDE创建工程环境略过,详情见IDE开发指南,内容详细。
图 工程目录
图 代码风格
编程支持C语言开发,可尝试是否支持C++开发。代码风格和51、STM32相同,入门难度低。
本实验用YOLO算法模型,代码见压缩包。
加载深度学习模型,需使用官方工具ncc,详情见相关资料文档。
图 加载模型代码
设置模型用到的参数,调用模型句柄即可正常调用。
图 参数设置
下载提供例程测试开发板能正常运行。代码见压缩包,效果如下图:
图 LCD测试
下载camera代码测试,发现显示图像底色反转,如下图:
图 底色问题
分析原因:1.LCD显示设置错误(原始数据无问题);2.摄像头参数设置错误;(原始数据有问题)
经过调试,在LCD初始化时加入显示反转命令可解决次问题。效果如下图:
图 调试后底色正常
显示图像时,设定LCD显示图像XY轴和上下左右方位即可。修改命令如下:
图 XY轴反转
调试完上述问题后仍发现图像显示呈BGR颜色顺序显示,经过修改camera初始化寄存器配置参数,没有解决次问题。
但是下载使用其他程序测试Camera,可按RGB颜色顺序在LCD上正常显示图像。
图 R和B颜色反转
MicroPython是基于Python3的语法做的一款解析器,包含了Python3的大多数基础语法,主要运行在性能和内存有限的嵌入式芯片上。
MaixPy是将MicroPython移植到K210的一个项目,支持MCU常规操作,以快速开发具有极低成本和体积实用的AIOT领域智能应用。
Maxipy文档链接:
https://cn.maixpy.sipeed.com/zh/
下载链接:
https://dl.sipeed.com/MAIX/MaixPy/ide/
图 IDE下载
下载更新MaixPy 固件相当于给开发板烧录系统,使用Type C 线连接开发板和电脑,下载开发板固件。
Sipeed开发板官方固件下载地址链接:
https://github.com/sipeed/MaixPy/releases
https://dl.sipeed.com/MAIX/MaixPy/release/master/
Widora AIRV R3:在文档压缩包中
固件文件:
图 固件
上图显示的.bin固件可正常使用。
效果图:
图 bin下载
固件文件:
图 固件
上图显示的.bin固件下载后,左右反转,或者出现BGR色彩顺序。
效果图:
图 bin下载
同上一章节中驱动安装。
软件名称:“Kflash_gui”,保存于文档压缩包中。也可自行网上搜索下载。
https://github.com/sipeed/kflash_gui/releases
下载烧录软件kflash_gui 应用,打开相应固件库文件.bin,选择对应开发板型号,设置下载到Flash、串口波特率1500000、低速模式,插上开发板后设置串口(COM4),点击下载按钮进行烧录,等待烧录完成,点击完成按钮。
经实验Widora AIRV R3可选择开发板型号为:sipeed Maix Dock/sipeed Maix Bit(无麦克风)。
图片:
图 下载流程
代码实例见官方文档:
https://cn.maixpy.sipeed.com/zh/
1.数据线链接电脑并显示串口,点击IDE工具栏选择相应开发板型号,与下载固件选择型号保持一致。
2.点击界面左下方链接按钮,链接开发板。
3.点击左下方下载按钮进行在线运行。
4.如需要离线运行,需要保存代码至开发板,选择工具栏中保存脚本到开发板选项即可。
图 界面
编写自己项目的深度学习框架代码(tensorflow)。
本实验使用MNIST代码https://github.com/sipeed/Maix-TF-workspace.git
打包Kfpkg固件:https://blog.sipeed.com/p/390.html
可参考参考上一小节MNIST代码,在目录下生成pb文件,即模型文件。
本次实验使用现有已生成的模型文件进行测试。相关资源文件在压缩包中存放。
部署流程&模型转换:https://blog.csdn.net/dby_bright/article/details/99779311
得到上一小节pb文件后,将其转化为.bin和.kfpkg文件。具体流程参照上文模型部署链接以及自行百度搜索学习。
本次实验多用的MNIST资料中解压压缩包后得到两个文件,.bin和.kfpkg文件。
运行MNIST模型:https://blog.sipeed.com/p/668.html
用Kflash_gui软件下载.kfpkg模型文件,尤其要注意代码中加载模型的地址要与.kfpkg模型文件中.json中的地址保持一致。
图 模型文件
模型下载完成后,可在编写的代码中使用该模型。
测试代码见下一章节。
测试代码见压缩包,代码风格如下:
图 LCD代码
加载MNIST手写字体识别深度学习模型,用开发板上摄像头识别图片上数字。
测试代码见压缩包。
测试结果如图:
图 深度学习模型测试
长时间运行,芯片温度比较高。
图 Widora跑人脸检测温度
图 Sipeed跑人脸检测温度
运行模型不能太大,Micro-Python适合2MB到3MB之间,C语言开发可达到6MB。模型过大,或者处理图片比较大的时候容易出现爆内存的现象,程序跑飞。
测试Maixpy离线运行时发现,离线运行程序不稳定。其次,容易出现程序跑飞的情况。可能原因是处理图片过大内存不够,或者离线运行测试时,所用图片非MNIST数据集图片,不能正常处理,所以程序跑飞。只需要在代码中,做相关处理。
C语言开发环境在上文中已经调试完成,现在只需要将深度学习框架语言移植到C语言环境即可。再调用开发板上相关引脚完成相关任务。
依靠Maixpy用python进行开发K210程序。只需要将深度学习框架语言移植到C语言环境即可。再调用开发板上相关引脚完成相关任务。
3.2.3 CPU芯片协同处理
参照物联网或者无人机解决方案,可加入STM32芯片,和K210协同处理任务。可选用芯片有STM32F1、STM32MP1、STM32H7,根据项目需求选型即可,方案成本比较低。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。