shitu_gallery_manager.md 6.2 KB
Newer Older
D
dongshuilong 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
# PP-ShiTu 库管理工具

本工具是PP-ShiTu的离线库管理工具,主要功能包括:新建图像库、更改图像库、建立索引库、更新索引库等功能。此工具是为了用户能够可视化的管理图像及对应的index库,用户可根据实际情况,灵活的增删改查相应的gallery图像库及索引文件,在提升用户体验的同时,辅助PP-ShiTu在实际应用的过程中达到更好的效果。

## 目录

- [1. 功能介绍](#1)

  - [1.1 新建图像库](#1.1)
  - [1.2 打开图像库](#1.2)
  - [1.3 导入图像](#1.3)
  - [1.4 图像操作](#1.3)

  - [1.5 其他功能](#1.5)

- [2. 使用说明](#2)

  - [2.1 环境安装](#2.1)
  - [2.2 模型准备](#2.2)
  - [2.3运行使用](#2.3)

- [3.生成文件介绍](#3)

- [致谢](#4)

- [FAQ](#FAQ)

<a name="1"></a>

## 1. 功能介绍

此工具主要功能包括:

- 构建`PP-ShiTu`中索引库对应的`gallery`图像库
- 根据构建的`gallery`图像库,生成索引库
-`gallery`图像库进行操作,如增删改查等操作,并更新对应的索引库

其中主界面的按钮如下图所示

<div align="center">
<img src="../../images/shitu_index_manager/menu.png"  width = "600" />
<p>界面按钮展示</p>
</div>

上图中第一行包括:`主要功能按钮``保存按钮``新增类别按钮``删减类别按钮`

第二行包括:`搜索框``搜索确定键``新加图像按钮``删除图像按钮`

D
dongshuilong 已提交
49 50 51 52 53 54
下面将进行具体功能介绍,其操作入口,可以点击`主要功能按钮`下拉菜单查看,如下图所示:

<div align="center">
<img src="../../images/shitu_index_manager/all_menu.png"  width = "600" />
<p>主要功能展示</p>
</div>
D
dongshuilong 已提交
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

<a name="1.1"></a>

### 1.1 新建图像库

点击新建库功能后,会选择一个**空的存储目录**或者**新建目录**,此时所有的图片及对应的索引库都会存放在此目录下。完成操作后,如下图所示

<div align="center">
<img src="../../images/shitu_index_manager/creat_images.png"  width = "600" />
<p>新建库</p>
</div>

此时,用户可以新建类别具体可以点击`新增类别按钮``删减类别按钮`。选中类别后,可以进行添加图像及相关操作,具体可以点击及`新加图像按钮``删除图像按钮`。完成操作后,**注意保存**

<a name="1.2"></a>

### 1.2 打开图像库

此功能是,用此工具存储好的库,进行打开编辑。注意,**打开库时,请选择打开的是新建库时文件夹路径**。打开库后,示例如下

<div align="center">
<img src="../../images/shitu_index_manager/main_page.png"  width = "600" />
<p>打开库</p>
</div>

<a name="1.3"></a>

### 1.3 导入图像

在打开图像库或者新建图像库完成后,可以使用导入图像功能,即导入用户自己生成好的图像库。具体有支持两种导入格式

- image_list格式:打开具体的`.txt`文件。`.txt`文件中每一行格式: `image_path label`。跟据文件路径及label导入
- 多文件夹格式:打开`具体文件夹`,此文件夹下存储多个子文件夹,每个子文件夹名字为`label_name`,每个子文件夹中存储对应的图像数据。 

<a name="1.4"></a>

### 1.4 图像操作

选择图像后,鼠标右击可以进行如下操作,可以根据需求,选择具体的操作,**注意修改完成图像后,请点击保存按钮,进行保存**

<div align="center">
<img src="../../images/shitu_index_manager/image_operation.png"  width = "600" />
<p>图像操作</p>
</div>

<a name="1.5"></a>

### 1.5 生成、更新index库

在用户完成图像库的新建、打开或者修改,并完成保存操作后。可以点击`主要功能按钮``新建/重建索引库``更新索引库`等功能,进行索引库的新建或者更新,生成`PP-ShiTu`使用的Index库

<a name="2"></a>

## 2. 使用说明

<a name="2.1"></a>

### 2.1 环境安装

安装好`PaddleClas`

```shell
pip install fastapi
pip install uvicorn
pip install pyqt5
```

<a name="2.2"></a>

### 2.2 模型准备

D
dongshuilong 已提交
126
请按照[PP-ShiTu快速体验](../quick_start/quick_start_recognition.md#2.2.1)中下载及准备inference model,并修改好`${PaddleClas}/deploy/configs/inference_drink.yaml`的相关参数。
D
dongshuilong 已提交
127 128 129 130 131 132 133 134

<a name="2.3"></a>

### 2.3 运行使用

运行方式如下

```shell
D
dongshuilong 已提交
135 136
cd ${PaddleClas}/deploy/shitu_index_manager
python index_manager.py -c ../configs/inference_drink.yaml
D
dongshuilong 已提交
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
```

<a name="3"></a>

## 3. 生成文件介绍

使用此工具后,会生成如下格式的文件

```shell
index_root/            # 库存储目录
|-- image_list.txt     # 图像列表,每行:image_path label。由前端生成及修改,后端只读 
|-- images             # 图像存储目录,由前端生成及增删查等操作。后端只读
|   |-- md5.jpg     		
|   |-- md5.jpg   
|   |-- ……  
|-- features.pkl       # 建库之后,保存的embedding向量,后端生成,前端无需操作
|-- index              # 真正的生成的index库存储目录,后端生成及操作,前端无需操作。
|   |-- vector.index   # faiss生成的索引库
|   |-- id_map.pkl     # 索引文件
```

其中`index_root`是使用此工具时,用户选择的存储目录,库的索引文件存储在`index`文件夹中。

使用`PP-ShiTu`时,索引文件目录需换成`index`文件夹的地址。

<a name="4"></a>

## 致谢

此工具的前端主要由[国内qt论坛](http://www.qtcn.org/)总坛主[小熊宝宝](https://github.com/cnhemiya)完成,感谢**小熊宝宝**的大力支持~~

此工具前端原项目地址:https://github.com/cnhemiya/shitu-manager

<a name="FAQ"></a>

## FAQ

- 问题1: 点击新建索引库后,程序假死

  答:生成索引库比较耗时,耐心等待一段时间就好

- 问题2: 导入图像是什么格式?

  答: 目前支持两种格式 1)image_list 格式,list中每行格式:path label。2)文件夹格式:类似`ImageNet`存储方式

- 问题3: 生成 index库报错

  答:在修改图像后,必须点击保存按钮,保存完成后,再继续生成index库。

- 问题4: 报错 图像与index库不一致

  答:可能用户自己修改了image_list.txt,修改完成后,请及时更新index库,保证其一致。