# lemon
**Repository Path**: Pacoshao/lemon
## Basic Information
- **Project Name**: lemon
- **Description**: 网速太慢
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-07-26
- **Last Updated**: 2021-07-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 基于Paddle-Lite的柠檬外观分类(4分类任务)
## 背景
项目源自比赛广岛Quest2020:柠檬外观分类使用的图像数据(第1阶段)用广岛县的柠檬形象挑战外观分类
比赛链接:[https://signate.jp/competitions/431](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](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
```bash
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。
```bash
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-matplotlib` , `apt 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源码
```bash
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`运行程序。
