整活时间,通过ncnn在esp32c3上部署神经网络

整活时间:通过ncnn在esp32c3上部署神经网络

这篇文章的起因是在b站刷到这个视频,9块9包邮的单片机就能跑深度学习,最近也学了ncnn,所以开始整活,主要是在esp32c3的单片机上部署了两层的简单网络来进行minist数据集的识别。

这篇主要是参考nihui大佬的这篇文章进行复现的,在 esp32c3 用 ncnn 跑神经网络 mnist - 知乎 (zhihu.com)我只要讲解我实现的过程。

源码地址:nihui/ncnn_on_esp32 (github.com)

开发平台

  1. 虚拟机 ubuntu
  2. esp32c3简约版(我在淘宝合宙家买的,真9.9元)
  3. VScode

部署过程

具体查看esp32c3的官方文档

首先安装在虚拟机安装所需依赖

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

获取esp-idf源码

mkdir -p ~/esp
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
git submodule update --init --recursive

安装 esp-idf sdk

sh install.sh

设置环境,是后面所有步骤的先决步骤

source export.sh

下载ncnn on esp源码

git clone https://github.com/nihui/ncnn_on_esp32.git

我这里主打快速上手,所以没有编译原来的ncnn的toolchain.cmake,想了解细节可以看nihui大佬那篇知乎文章

选择编译参数:

cd ncnn_on_esp32
idf.py set-target esp32c3
idf.py menuconfig

编译

idf.py build

编译成功的标志

在这里插入图片描述

接下来就是烧录了,

首先输入

ls /dev/tty*

通过type-c数据线连接单片机和电脑串口,再次输入

ls /dev/tty*

比较两次是哪个串口多出来了,那个就是单片机的烧录串口

比如我的叫ttyACM0

之后开始烧录了,输入

idf.py -p /dev/ttyACM0 flash

出现下面标志就是成功了

在这里插入图片描述

之后打开minicom,查看串口,关于minicom怎么安装,可以参考这篇博客https://blog.csdn.net/robertsf/article/details/5486108,记得配置的端口是单片机的烧录串口一样,比如我的就是ttyACM0。

之后按下单片机的reset键,等待一会,串口输出如下,那就是成功了。

在这里插入图片描述

一些坑:

esp on ncnn的源码中,在ncnn_on_esp32/CMakeLists.txt中的16行,需要改为

#修改前
target_link_libraries(${CMAKE_PROJECT_NAME}.elf ncnn)
#修改后
target_link_libraries(${CMAKE_PROJECT_NAME}.elf PRIVATE ncnn)

不然可能会出现在编译

idf.py set-target esp32c3

的时候,出现

在这里插入图片描述
以上也可以不使用虚拟机来进行部署,可能会出现网络桥接的一些坑,所以我也尝试了直接在树莓派上进行编译部署烧录(因为之前在树莓派部署过ncnn,所以可以直接用之前的ncnn工程),如下图所示,过程跟在虚拟机上一致,最后也是成功部署。
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值