玩客云安装Armbian基于PaddleLite实现图片分类和目标检查 Cortex-A5等其他可参考
本教程为本站原创,转载请注明本网站链接,否则视为侵权!
如果朋友还没有安装Armbian,或者怎么折腾也折腾不好,请直接翻到文章最后下载img文件!
教程中碰到出错的地方,可以重复运行代码尝试!其他的ArmV7 32位的也可以参考本文,
图片分类速度:1.1帧/秒,每张图片耗时约900ms,生产用途应该是顶不住了,,,卡的王炸,折腾几天快给我整疯掉了
目前人脸识别的功能还没有实现,因为还在不停的补bug,,,没有验证的解决方式(安装opencv):
sudo apt-get install libcv-dev
另外我发现报错提示的opencv2/highgui.hpp,其实在opencv2/highgui/highgui.hpp,另外还有n个相关错误,等我一一修复了直接压缩整个项目发布出来。。。
下一期更新S805安装Armbian使用orange神经计算棒。
截至2021年8月16日,错误已经解决了。当你能够实现图片分类,但是目标检测出错的时候,可以运行本代码(在object_detection_demo目录下),至此基于玩客云的人工智能开发已经全部实现,下一步将更换模型进行人脸识别,目前作者懒得整,你可以自己更换模型进行编译。作者正在研究用php联动实现相关功能中。。。
mv object_detection_demo.cc object_detection_demo.cc.bak && wget && mv 202108161629114351104669.cc object_detection_demo.cc && sudo ./run.sh armv7hf
成功实现目标检测图
真的是非常的不错,目标检测只花了2秒,,,,,,,,,,,,,,,,
让我们开始吧!
禁用自带的休眠,解决断网和断联的问题
apt-get remove --purge network-manager -y
关闭LED灯
wget https://gitee.com/yinjiangbi_admin/wankeyunled/raw/master/led/blue_off && chmod 777 blue_off && ./blue_off && echo "/root/blue_off" >> /etc/rc.local
首先根据官网配置环境 https://paddle-lite.readthedocs.io/zh/latest/source_compile/compile_env.html
本文仅为研究用途,测试发现S805性能并不是很出色,光环境搭建就需要至少一个小时。
首先安装armbian,教程网上有很多,这边仅提供玩客云容易断网的问题解决方案:
apt-get remove --purge network-manager -y
接下来更新apt缓存
apt-get update
下载PaddleLite
wget https://github.com/PaddlePaddle/Paddle-Lite-Demo/archive/refs/heads/master.zip
当然,github下载速度并不是很快,你可以选择使用本站备份的文件
wget && mv 202108071628351708634617.zip master.zip
接下来解压文件
unzip master.zip
进入目录
cd Paddle-Lite-Demo-master/
进入arm的lite目录
cd PaddleLite-armlinux-demo/
接下来下载依赖
sh download_models_and_libs.sh
但是!这个我运行识别,我更换为如下指令后运行成功:
sudo bash download_models_and_libs.sh
下载完成后输入
cd object_detection_demo && ./run.sh armv7hf
会报错:
run.sh: 15: run.sh: cmake: not found make: *** No targets specified and no makefile found. Stop. run.sh: 19: run.sh: ./object_detection_demo: not found
这是因为没有按照c编译环境,直接apt-get(顺便更新了下软件,大概要十分钟)
apt-get install cmake -y && sudo apt-get upgrade -y
然后会发现cmake版本低,踩坑
cd /root && apt-get remove cmake -y && wget https://github.com/Kitware/CMake/releases/download/v3.21.0-rc2/cmake-3.21.0-rc2.tar.gz && tar -zxvf cmake-3.21.0-rc2.tar.gz
安装提示操作后进入目录
cd cmake-3.21.0-rc2 && ./bootstrap
配置后make并链接即可,再返回运行sh run.sh即可查看结果
make && make install && ln -s 你的路径
最后,你可以选择安装宝塔,方便搭建web环境联动图片处理,但是可能会让本就卡顿的系统雪上加霜:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
结果示例:
此时,你可以进入build目录,然后直接运行
./image_classification_demo ../models/mobilenet_v1_for_cpu/model.nb ../labels/synset_words.txt ../images/tabby_cat.jpg ./result.jpg
本站Cmake10.3镜像文件下载
wget http://myfpga.cn/download/cmake-3.10.3.tar.gz
注意:编译库时请务必修改对应的.sh文件,指定arm版本为
armv7hf
否则将编译失败!请务必注意!如果你问我为什么是armv7hf而不是hf,因为s805没有FPU,我只能告诉你:
我也不知道,如果不这样就会报错,我也在找原因ing...
如果你并不希望局限于上述内容,请尝试依次运行以下一键部署代码:
编译环境一键安装(大约半个小时)
apt update -y && apt-get install -y --no-install-recommends gcc g++ make wget python unzip patchelf python-dev && wget http://myfpga.cn/download/cmake-3.10.3.tar.gz && tar -zxvf cmake-3.10.3.tar.gz && cd cmake-3.10.3 && ./configure && make && sudo make install && cmake --version
如果输出cmake的版本号,则代表成功,否则查询运行上面代码。
源码编译飞桨lite库(大约n个小时)
git clone https://github.com/PaddlePaddle/Paddle-Lite.git && rm -rf cmake-3.10.3.tar.gz && cd Paddle-Lite && git checkout 2.8-rc && cd ./lite/tools/ && rm -rf build_linux.sh && wget http://myfpga.cn/download/paddlelite_build_armbian.sh && sudo ./paddlelite_build_armbian.sh --arch=armv7hf --with_python=ON
此时,如果出现类似下属的界面则代表正在编译,等待大约n个小时即可。(我踩了n次坑,,,)
其间,如果遇到Pip相关问题,运行以下命令
wget && sudo python get-pip.py
出错了就重复运行,直到显示安装成功
如果报错提示没OPENCV库,安装依赖即可
sudo apt-get install gcc g++ make wget unzip libopencv-dev pkg-config
最后,如果还是有朋友弄不好,或者出现错误,这里提供我弄好的环境,压缩成img!
下载地址:
无压缩直接可用版:https://cloud.189.cn/web/share?code=ZNjaIjYZrMZz (访问码:o8ye)
需解压版本:https://cloud.189.cn/web/share?code=q6fqymvQJvQn(访问码:mqe6)
用户名:root
密码:myfpga
宝塔用户名:myfpga
宝塔密码:myfpga.cn
默认的网页内有图片分类和目标检测的示例,可以参考修改!
官方的模型转换工具我测试了n个model,都提示不支持,可谓是非常鸡肋。
不过转念一想,百度想搞好自己的paddle,就要把别的赶出去,也是正常的。
如果不想烧录整个固件,附上修改后的Demo目录压缩文件:
PaddleLite-armlinux-demo_fTEJPH.tar.gz
当然,你也可以直接运行armbian-config,在software里面安装OMV,或者Plex去实现你希望实现的功能,别忘了插个U盘或者移动硬盘哦~