/lemon

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

基于Paddle-Lite的柠檬外观分类(4分类任务)

背景

项目源自比赛广岛Quest2020:柠檬外观分类使用的图像数据(第1阶段)用广岛县的柠檬形象挑战外观分类

比赛链接:https://signate.jp/competitions/431

任务

根据以下图像数据对柠檬等级进行分类。

有四个等级:0:優良、1:良、2:加工品、3:規格外。

其中:训练集1102张图像,测试集1651张图像

【注意事项】

在本次比赛中,假设获胜者的模型和专有技术将在Raspberry Pi等小型IoT终端上实施。 禁止将TTA(测试时间增加)用于推理。

训练

训练数据使用的深度学习框架为百度的飞桨PaddlePaddle,训练源代码在百度AI Studio实训平台中,链接如下https://aistudio.baidu.com/aistudio/projectdetail/1592283

部署

部署采用百度飞桨轻量级推理部署框架Paddle Lite,测试硬件RK3399,OS:Ubuntu18.04.5 LTS,某厂USB2.0 UVC摄像头

  • armLinux 预测库基于Paddle Lite v2.8版本,包含C++(armv8、armv7hf),Python3.6(armv8)

提供了两种预测接口C++与Python3


环境准备

  • C++准备环境:

主要安装OpenCV3.2.0(推荐3.2)与CMake3.10

sudo apt-get update
sudo apt-get install gcc g++ make wget unzip libopencv-dev pkg-config
wget https://www.cmake.org/files/v3.10/cmake-3.10.3.tar.gz
tar -zxvf cmake-3.10.3.tar.gz
cd cmake-3.10.3
./configure
make
sudo make install
  • Python环境准备:

主要是安装,numpy(1.13.3),Pillow(8.1.0),matplotlib(2.1.1),OpenCV(3.2.0)(推荐3.2)

以上工具版本号仅供参考,非必须对齐。

优先推荐通过pip3 install xxx安装numpy,Pillow,matplotlib,OpenCV。

pip install numpy==1.13.3 pillow==8.1.0 matplotlib==2.1.1 opencv=3.2.0

安装matplotlib,OpenCV可能遇到报错,无需慌张,可apt install python3-dev后再次使用pip安装。若依旧不成功可使用apt install python3-matplotlibapt install python3-opencv安装。

配置好环境后稍后克隆一份部署Lemon源码,进入cd ./lemon/wheels文件夹后pip3 install paddlelite-2.8rc0-cp36-cp36m-linux_aarch64.whl(根据自己的Python版本选择,提供了Python2.7,3.5,3.6,3.7的包)

此类问题多百度,多参考其他人遇到问题解决的方式。当自己这类问题解决后,也写一篇博客来帮助其他人吧!


跑通Demo

首先克隆一份部署Lemon源码

git clone https://github.com/hang245141253/lemon.git

Lemon部署代码结构如下图所示:

部署代码将C++与Python接口代码放入了同一文件中。如果想在Demo的基础上,换新的模型或者改变应用模型的方式,只要替换自己的model.nb或者修改main.cc、lemon.py即可。

如果你已经配置好了对应接口的环境,接下来就可以运行代码了!

  • C++运行代码:

cd ./lemon/code进入code文件夹里后,执行sh cmake.sh会生成build文件夹,目标程序在build文件夹。在code目录下继续执行sh run.sh则开始执行部署程序。

  • Python运行代码:

cd ./lemon/code进入code文件夹里后,执行python3 lemon.py运行程序。