提交 f079ccce 编写于 作者: H HydrogenSulfate

add android demo docs

上级 68d7abf5
......@@ -6,33 +6,70 @@
## 目录
* [1. 环境配置](#环境配置)
* [2. 图像识别体验](#图像识别体验)
* [2.1 下载、解压 inference 模型与 demo 数据](#2.1)
* [2.2 瓶装饮料识别与检索](#瓶装饮料识别与检索)
* [2.2.1 识别单张图像](#识别单张图像)
* [2.2.2 基于文件夹的批量识别](#基于文件夹的批量识别)
* [3. 未知类别的图像识别体验](#未知类别的图像识别体验)
* [3.1 准备新的数据与标签](#准备新的数据与标签)
* [3.2 建立新的索引库](#建立新的索引库)
* [3.3 基于新的索引库的图像识别](#基于新的索引库的图像识别)
* [4. 服务端识别模型列表](#4)
- [1. PP-ShiTu android端 demo 快速体验](#1-pp-shitu-android端-demo-快速体验)
- [1.1 安装 PP-ShiTu android demo](#11-安装-pp-shitu-android-demo)
- [1.2 功能体验](#12-功能体验)
- [1.3 功能详细介绍](#13-功能详细介绍)
- [2. PP-ShiTu PC端 demo 快速体验](#2-pp-shitu-pc端-demo-快速体验)
- [2.1 环境配置](#21-环境配置)
- [2.2 图像识别体验](#22-图像识别体验)
- [2.2.1 下载、解压 inference 模型与 demo 数据](#221-下载解压-inference-模型与-demo-数据)
- [2.2.2 瓶装饮料识别与检索](#222-瓶装饮料识别与检索)
- [2.2.3 识别单张图像](#223-识别单张图像)
- [2.2.4 基于文件夹的批量识别](#224-基于文件夹的批量识别)
- [2.3 未知类别的图像识别体验](#23-未知类别的图像识别体验)
- [2.3.1 准备新的数据与标签](#231-准备新的数据与标签)
- [2.3.2 建立新的索引库](#232-建立新的索引库)
- [2.3.3 基于新的索引库的图像识别](#233-基于新的索引库的图像识别)
- [5. 服务端识别模型列表](#5-服务端识别模型列表)
<a name="PP-ShiTu demo 快速体验"></a>
## 1. PP-ShiTu android端 demo 快速体验
<a name="环境配置"></a>
### 1.1 安装 PP-ShiTu android demo
## 1. 环境配置
可以通过扫描下方二维码或者[点击链接](https://paddle-imagenet-models-name.bj.bcebos.com/demos/PP-ShiTu.apk)下载并安装APP
<img src="../../images/quick_start/android_demo/PPShiTu_qcode.png" height="250" width="250" />
<a name="功能体验"></a>
### 1.2 功能体验
目前 PP-ShiTu android demo 具有图像检索、图像加库、库保存、更换检索库、查看检索库内的标签等基本功能,接下来介绍如何体验这几个功能。
1. 图像检索:点击上方的“相机”按钮<img src="../../images/quick_start/android_demo/zhaoxiangji.png" width="25" height="25"/>或者“放大镜”按钮<img src="../../images/quick_start/android_demo/sousuo.png" width="25" height="25"/>,拍摄一张图像或者选中一张图像,然后等待几秒钟,APP便会将图像中的主体框标注出来并且在图像下方给出预测的类别。
2. 图像加库:点击上方的“上传”按钮<img src="../../images/quick_start/android_demo/shangchuan.png" width="25" height="25"/>或者“加号”按钮<img src="../../images/quick_start/android_demo/jia.png" width="25" height="25"/>,即可拍摄一张图像或从图库中选择一张图像,然后再输入这张图像的类别名字(比如`keyboard`),点击“确定”按钮,即可完成图片入库。
3. 库保存:点击上方的“保存“按钮<img src="../../images/quick_start/android_demo/baocun.png" width="25" height="25"/>,再输入希望保存下的检索库与类别标签文件的文件名(如填入`data1`,为了简化逻辑,检索库文件`*.index`与类别标签文件`*.txt`使用相同的文件名),即可将当前库保存到手机内存中。
4. 更换检索库:点击上方的“齿轮“按钮<img src="../../images/quick_start/android_demo/shezhi.png" width="25" height="25"/>,点击“Label Path”一栏,在弹出的选项中选择需要更换的库,然后再点击“Index Path”,在弹出的选项中选择需要更换的类别标签文件(一般一个库对应一个类别标签文件,因此更换检索库意味着需要同时更换库文件和类别标签文件,否则可能会造成检索结果错误)。
5. 查看检索库的标签:首先点击上方的“齿轮“按钮,再点击“Label Path”,在弹出的选项中选择想要查看的标签文件,然后点击“查看当前标签库”按钮,在弹出的窗口中即可查看标签文件的内容。
<a name="功能介绍"></a>
### 1.3 功能详细介绍
1. 图像检索:在选择好要检索的图片之后,首先会通过检测模型进行主体检测,得到图像中的物体的区域,然后将这块区域裁剪出来输入到识别模型中,得到对应的特征向量并在检索库中检索,返回并显示最终的检索结果。
2. 图像加库:在选择好要入库的图片之后,首先会通过检测模型进行主体检测,得到图像中的物体的区域,然后将这块区域裁剪出来输入到识别模型中,得到对应的特征向量,再与用户输入的图像标签一起加入到检索库中。
3. 库保存:此功能只需输入希望保存的文件名即可,如输入`database_1`,则会将检索向量库保存为`database_1.index`,标签库保存为`database_1.txt`
4. 更换检索库:切换好检索向量库后,需要同时切换与之匹配的检索标签库。
5. 查看检索库的标签:可按照[功能体验-查看检索库的标签](#22-功能体验)中说明进行查看,当标签库过多(如本demo自带的986类标签库)时,可在弹窗中滑动查看。
<a name="环境配置"></a>
## 2. PP-ShiTu PC端 demo 快速体验
### 2.1 环境配置
* 安装:请先参考文档 [环境准备](../installation/install_paddleclas.md) 配置 PaddleClas 运行环境。
* 进入 `deploy` 运行目录。本部分所有内容与命令均需要在 `deploy` 目录下运行,可以通过下面的命令进入 `deploy` 目录。
```
```shell
cd deploy
```
<a name="图像识别体验"></a>
## 2. 图像识别体验
### 2.2 图像识别体验
轻量级通用主体检测模型与轻量级通用识别模型和配置文件下载方式如下表所示。
......@@ -79,9 +116,9 @@ cd ..
wget {数据下载链接地址} && tar -xf {压缩包的名称}
```
<a name="2.1"></a>
<a name="2.2.1"></a>
### 2.1 下载、解压 inference 模型与 demo 数据
#### 2.2.1 下载、解压 inference 模型与 demo 数据
下载 demo 数据集以及轻量级主体检测、识别模型,命令如下。
......@@ -100,7 +137,7 @@ wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/drink_da
解压完毕后,`drink_dataset_v1.0/` 文件夹下应有如下文件结构:
```
```log
├── drink_dataset_v1.0/
│ ├── gallery/
│ ├── index/
......@@ -113,7 +150,7 @@ wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/drink_da
`models` 文件夹下应有如下文件结构:
```
```log
├── general_PPLCNet_x2_5_lite_v1.0_infer
│ ├── inference.pdiparams
│ ├── inference.pdiparams.info
......@@ -135,7 +172,7 @@ python3.7 python/build_gallery.py -c configs/inference_general.yaml -o Global.re
<a name="瓶装饮料识别与检索"></a>
### 2.2 瓶装饮料识别与检索
#### 2.2.2 瓶装饮料识别与检索
以瓶装饮料识别 demo 为例,展示识别与检索过程(如果希望尝试其他方向的识别与检索效果,在下载解压好对应的 demo 数据与模型之后,替换对应的配置文件即可完成预测)。
......@@ -149,7 +186,7 @@ pip install faiss-cpu==1.7.1post2
<a name="识别单张图像"></a>
#### 2.2.1 识别单张图像
##### 2.2.3 识别单张图像
运行下面的命令,对图像 `./drink_dataset_v1.0/test_images/nongfu_spring.jpeg` 进行识别与检索
......@@ -167,7 +204,7 @@ python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.u
最终输出结果如下。
```
```log
[{'bbox': [244, 49, 509, 964], 'rec_docs': '农夫山泉-饮用天然水', 'rec_scores': 0.7585664}]
```
......@@ -179,7 +216,7 @@ python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.u
<a name="基于文件夹的批量识别"></a>
#### 2.2.2 基于文件夹的批量识别
##### 2.2.4 基于文件夹的批量识别
如果希望预测文件夹内的图像,可以直接修改配置文件中的 `Global.infer_imgs` 字段,也可以通过下面的 `-o` 参数修改对应的配置。
......@@ -190,7 +227,7 @@ python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.i
终端中会输出该文件夹内所有图像的识别结果,如下所示。
```
```log
...
[{'bbox': [345, 95, 524, 586], 'rec_docs': '红牛-强化型', 'rec_scores': 0.80164653}]
Inference: 23.43583106994629 ms per batch image
......@@ -213,7 +250,7 @@ Inference: 150.06470680236816 ms per batch image
<a name="未知类别的图像识别体验"></a>
## 3. 未知类别的图像识别体验
### 2.3 未知类别的图像识别体验
对图像 `./drink_dataset_v1.0/test_images/mosilian.jpeg` 进行识别,命令如下
......@@ -235,7 +272,7 @@ python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.i
<a name="准备新的数据与标签"></a>
### 3.1 准备新的数据与标签
#### 2.3.1 准备新的数据与标签
首先需要将与待检索图像相似的图像列表拷贝到索引库原始图像的文件夹。这里 PaddleClas 已经将所有的图像数据都放在文件夹 `drink_dataset_v1.0/gallery/` 中。
......@@ -246,7 +283,7 @@ python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.i
<a name="建立新的索引库"></a>
### 3.2 建立新的索引库
#### 2.3.2 建立新的索引库
使用下面的命令构建 `index` 索引,加速识别后的检索过程。
......@@ -258,7 +295,7 @@ python3.7 python/build_gallery.py -c configs/inference_general.yaml -o IndexProc
<a name="基于新的索引库的图像识别"></a>
### 3.3 基于新的索引库的图像识别
#### 2.3.3 基于新的索引库的图像识别
使用新的索引库,对上述图像进行识别,运行命令如下。
......@@ -269,7 +306,7 @@ python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.i
输出结果如下。
```
```log
[{'bbox': [396, 553, 508, 621], 'rec_docs': '光明_莫斯利安', 'rec_scores': 0.5921005}]
```
......@@ -278,8 +315,8 @@ python3.7 python/predict_system.py -c configs/inference_general.yaml -o Global.i
![](../../images/recognition/drink_data_demo/output/mosilian.jpeg)
<a name="4"></a>
## 4. 服务端识别模型列表
<a name="5"></a>
## 5. 服务端识别模型列表
目前,我们更推荐您使用[轻量级通用主体检测模型与轻量级通用识别模型](#轻量级通用主体检测模型与轻量级通用识别模型),以获得更好的测试结果。但是如果您希望体验服务端识别模型,服务器端通用主体检测模型与各方向识别模型、测试数据下载地址以及对应的配置文件地址如下。
......@@ -316,7 +353,7 @@ wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/recognit
解压完毕后,`recognition_demo_data_v1.1` 文件夹下应有如下文件结构:
```
```log
├── recognition_demo_data_v1.1
│ ├── gallery_cartoon
│ ├── gallery_logo
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册